am 7d899d6f: Fix how browser determines if it has connectivity.
Merge commit '7d899d6f5364a5b20716497a3be5e2f778a2bc0e' into eclair-mr2
* commit '7d899d6f5364a5b20716497a3be5e2f778a2bc0e':
Fix how browser determines if it has connectivity.
diff --git a/res/layout/title_bar.xml b/res/layout/title_bar.xml
index 1ea33fc..780c00a 100644
--- a/res/layout/title_bar.xml
+++ b/res/layout/title_bar.xml
@@ -29,6 +29,7 @@
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="5dip"
+ android:layout_marginLeft="1dip"
android:max="100"
/>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index b907996..851d196 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -16,8 +16,12 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"Prohlížeč"</string>
- <string name="new_tab" msgid="4505722538297295141">"Nové okno"</string>
- <string name="active_tabs" msgid="3050623868203544623">"Okna"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
+ <!-- no translation found for new_tab (4505722538297295141) -->
+ <skip />
+ <!-- no translation found for active_tabs (3050623868203544623) -->
+ <skip />
<string name="tab_bookmarks" msgid="2305793036003473653">"Záložky"</string>
<string name="tab_most_visited" msgid="1077402532455000703">"Často navštěvované"</string>
<string name="tab_history" msgid="1979267558744613746">"Historie"</string>
@@ -78,8 +82,10 @@
<string name="remove_history_item" msgid="5021424935726728618">"Odstranit z historie"</string>
<string name="set_as_homepage" msgid="4752937379414905560">"Nastavit jako domovskou stránku"</string>
<string name="bookmark_saved" msgid="2766434679871317557">"Uloženo do záložek."</string>
- <string name="bookmark_not_saved" msgid="700600955089376724">"Záložku nelze uložit."</string>
- <string name="homepage_set" msgid="8768087280310966395">"Domovská stránka byla nastavena."</string>
+ <!-- no translation found for bookmark_not_saved (700600955089376724) -->
+ <skip />
+ <!-- no translation found for homepage_set (8768087280310966395) -->
+ <skip />
<string name="bookmark_needs_title" msgid="6245900436119218187">"Záložka musí mít název."</string>
<string name="bookmark_needs_url" msgid="7809876865972755158">"Záložka musí mít umístění."</string>
<string name="empty_bookmark" msgid="7008697085928540511">"Nelze vytvořit prázdnou záložku."</string>
@@ -107,7 +113,8 @@
<string name="shortcut_bookmark" msgid="3974876480401135895">"Přidat do záložek"</string>
<string name="history" msgid="2451240511251410032">"Historie"</string>
<string name="menu_view_download" msgid="2124570321712995120">"Stahování"</string>
- <string name="copy_page_url" msgid="7635062169011319208">"Kopírovat adresu URL stránky"</string>
+ <!-- no translation found for copy_page_url (7635062169011319208) -->
+ <skip />
<string name="share_page" msgid="593756995297268343">"Sdílet stránku"</string>
<string name="contextmenu_openlink" msgid="7237961252214188935">"Otevřít"</string>
<string name="contextmenu_openlink_newwindow" msgid="992765050093960353">"Otevřít v novém okně"</string>
@@ -122,40 +129,54 @@
<string name="contextmenu_add_contact" msgid="3183511922223645716">"Přidat kontakt"</string>
<string name="contextmenu_send_mail" msgid="1014513374828775660">"Odeslat e-mail"</string>
<string name="contextmenu_map" msgid="7471390435434034912">"Mapa"</string>
- <string name="choosertitle_sharevia" msgid="4600490613341909086">"Sdílet pomocí"</string>
+ <!-- no translation found for choosertitle_sharevia (4600490613341909086) -->
+ <skip />
<string name="clear" msgid="7070043081700011461">"Vymazat"</string>
<string name="replace" msgid="4843033491070384047">"Nahradit"</string>
<string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"Záložky"</string>
<string name="menu_preferences" msgid="6709237687234102240">"Nastavení"</string>
<string name="pref_content_title" msgid="722227111894838633">"Nastavení obsahu stránky"</string>
<string name="pref_content_load_images" msgid="2125616852957377561">"Načítat obrázky"</string>
- <string name="pref_content_load_images_summary" msgid="5055874125248398584">"Zobrazovat na webových stránkách obrázky"</string>
+ <!-- no translation found for pref_content_load_images_summary (5055874125248398584) -->
+ <skip />
<string name="pref_content_block_popups" msgid="7808433807197256726">"Blokovat vyskakovací okna"</string>
<string name="pref_content_javascript" msgid="4570972030299516843">"Povolit JavaScript"</string>
<string name="pref_content_open_in_background" msgid="824123779725118663">"Otevřít na pozadí"</string>
- <string name="pref_content_plugins" msgid="7231944644794301582">"Aktivovat pluginy"</string>
- <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Otevírat nová okna za aktuálním oknem"</string>
+ <!-- no translation found for pref_content_plugins (7231944644794301582) -->
+ <skip />
+ <!-- no translation found for pref_content_open_in_background_summary (1737664075721181678) -->
+ <skip />
<string name="pref_content_homepage" msgid="6082437160778559806">"Nastavit domovskou stránku"</string>
<string name="pref_content_autofit" msgid="8260474534053660809">"Automaticky přizpůsobit stránky"</string>
- <string name="pref_content_autofit_summary" msgid="4587831659894879986">"Přizpůsobit velikost webových stránek obrazovce"</string>
- <string name="pref_content_landscape_only" msgid="2022546812766219672">"Zobrazení pouze na šířku"</string>
- <string name="pref_content_landscape_only_summary" msgid="1008238895535428855">"Zobrazit stránky pouze s displejem otočeným na šířku"</string>
+ <!-- no translation found for pref_content_autofit_summary (4587831659894879986) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only (2022546812766219672) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only_summary (1008238895535428855) -->
+ <skip />
<string name="pref_privacy_title" msgid="1052470980370846151">"Nastavení ochrany osobních údajů"</string>
<string name="pref_privacy_clear_cache" msgid="3380316479925886998">"Vymazat mezipaměť"</string>
<string name="pref_privacy_clear_cache_summary" msgid="2216463577207991454">"Vymazat všechen obsah a databáze uložené do místní mezipaměti"</string>
- <string name="pref_privacy_clear_cache_dlg" msgid="5541011591300753881">"Obsah a databáze uložené v místní mezipaměti budou vymazány."</string>
+ <!-- no translation found for pref_privacy_clear_cache_dlg (5541011591300753881) -->
+ <skip />
<string name="pref_privacy_clear_cookies" msgid="3095583579133780331">"Vymazat všechny soubory cookie"</string>
- <string name="pref_privacy_clear_cookies_summary" msgid="6962742063990677520">"Vymazat všechny soubory cookie prohlížeče"</string>
- <string name="pref_privacy_clear_cookies_dlg" msgid="552855688091432682">"Všechny soubory cookie budou vymazány."</string>
+ <!-- no translation found for pref_privacy_clear_cookies_summary (6962742063990677520) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_cookies_dlg (552855688091432682) -->
+ <skip />
<string name="pref_privacy_clear_history" msgid="8723795508825198477">"Vymazat historii"</string>
<string name="pref_privacy_clear_history_summary" msgid="6868501330708940734">"Vymazat historii stránek prohlížeče"</string>
- <string name="pref_privacy_clear_history_dlg" msgid="544903007914753853">"Historie stránek prohlížeče bude vymazána."</string>
+ <!-- no translation found for pref_privacy_clear_history_dlg (544903007914753853) -->
+ <skip />
<string name="pref_privacy_clear_form_data" msgid="4232668196344383987">"Vymazat data formulářů"</string>
<string name="pref_privacy_clear_form_data_summary" msgid="1790390894719517167">"Vymazat všechna uložená data formulářů"</string>
- <string name="pref_privacy_clear_form_data_dlg" msgid="4443621086781197928">"Všechna uložená data formulářů budou vymazána."</string>
+ <!-- no translation found for pref_privacy_clear_form_data_dlg (4443621086781197928) -->
+ <skip />
<string name="pref_privacy_clear_passwords" msgid="4750234112289277480">"Vymazat hesla"</string>
- <string name="pref_privacy_clear_passwords_summary" msgid="8856782718942903335">"Vymazat všechna uložená hesla"</string>
- <string name="pref_privacy_clear_passwords_dlg" msgid="2083869328824248255">"Všechna uložená hesla budou vymazána."</string>
+ <!-- no translation found for pref_privacy_clear_passwords_summary (8856782718942903335) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_passwords_dlg (2083869328824248255) -->
+ <skip />
<string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"Povolit polohu"</string>
<string name="pref_privacy_enable_geolocation_summary" msgid="8437020934664306205">"Povolit webovým stránkám požádat o přístup k informacím o vaší poloze"</string>
<string name="pref_privacy_clear_geolocation_access" msgid="6649680770030042980">"Zrušit přístup k informacím o poloze"</string>
@@ -163,7 +184,8 @@
<string name="pref_privacy_clear_geolocation_access_dlg" msgid="7327063124488827244">"Zrušit přístup k informacím o poloze pro všechny webové stránky"</string>
<string name="pref_security_title" msgid="5763978646932160021">"Nastavení zabezpečení"</string>
<string name="pref_security_remember_passwords" msgid="6492957683454529549">"Zapamatovat hesla"</string>
- <string name="pref_security_remember_passwords_summary" msgid="256388703356349137">"Ukládat uživatelská jména a hesla pro webové stránky"</string>
+ <!-- no translation found for pref_security_remember_passwords_summary (256388703356349137) -->
+ <skip />
<string name="pref_security_save_form_data" msgid="1213669802810198893">"Zapamatovat data formuláře"</string>
<string name="pref_security_save_form_data_summary" msgid="4994074685153708026">"Zapamatovat si data zadaná do formulářů pro další použití"</string>
<string name="pref_security_show_security_warning" msgid="8901135676266754559">"Zobrazit upozornění zabezpečení"</string>
@@ -186,14 +208,17 @@
<item msgid="3840999588443167001">"Blízko"</item>
</string-array>
<string name="pref_default_zoom_dialogtitle" msgid="6095974367125109021">"Výchozí přiblížení"</string>
- <string name="pref_content_load_page" msgid="2219810141690955452">"Při otevírání stránek zobrazit přehled"</string>
- <string name="pref_content_load_page_summary" msgid="8792093504054149369">"Zobrazit přehled nově otevřených stránek"</string>
+ <!-- no translation found for pref_content_load_page (2219810141690955452) -->
+ <skip />
+ <!-- no translation found for pref_content_load_page_summary (8792093504054149369) -->
+ <skip />
<string name="pref_extras_title" msgid="3091250467679722382">"Upřesnit nastavení"</string>
<string name="pref_extras_website_settings" msgid="67866640052455549">"Nastavení webových stránek"</string>
<string name="pref_extras_website_settings_summary" msgid="3917568895776162240">"Zobrazit pokročilá nastavení pro jednotlivé webové stránky"</string>
<string name="pref_extras_reset_default" msgid="8904000515846202110">"Obnovit výchozí"</string>
<string name="pref_extras_reset_default_summary" msgid="7984680562706914966">"Vymazat všechna data prohlížeče a obnovit všechna nastavení na výchozí hodnoty"</string>
- <string name="pref_extras_reset_default_dlg" msgid="6894807766578874830">"Budou vymazána všechna data prohlížeče a obnoveny výchozí hodnoty nastavení."</string>
+ <!-- no translation found for pref_extras_reset_default_dlg (6894807766578874830) -->
+ <skip />
<string name="pref_extras_reset_default_dlg_title" msgid="2250334970728938936">"Obnovit výchozí"</string>
<string name="pref_development_title" msgid="3263854204533056480">"Ladit"</string>
<string name="pref_default_text_encoding" msgid="5742965543955558478">"Kódování textu"</string>
@@ -207,15 +232,18 @@
<string name="pref_default_text_encoding_dialogtitle" msgid="5508255018084978547">"Kódování textu"</string>
<string name="pref_default_text_encoding_default" msgid="5272126711231936722">"Latin-1"</string>
<string name="browserFrameRedirect" msgid="7049675479777828343">"Přesměrování"</string>
- <string name="browserFrame307Post" msgid="1429094844669510768">"Probíhá přesměrování webové stránky. Chcete data zadaná do formuláře znovu odeslat do nového umístění?"</string>
+ <!-- no translation found for browserFrame307Post (1429094844669510768) -->
+ <skip />
<string name="browserFrameNetworkErrorLabel" msgid="126892350904924893">"Problémy s datovým připojením"</string>
<string name="browserFrameFileErrorLabel" msgid="8063691502792670367">"Problém se souborem"</string>
<string name="browserFrameFormResubmitLabel" msgid="2685923472682180360">"Potvrdit"</string>
<string name="browserFrameFormResubmitMessage" msgid="2752182215695632138">"Stránka, kterou se pokoušíte zobrazit, obsahuje data, která již byla odeslána (POSTDATA). Pokud data odešlete znovu, jakákoli akce vykonaná pomocí formuláře na stránce bude provedena znovu (např. hledání či nákup online)."</string>
<string name="loadSuspendedTitle" msgid="675991625288706944">"Žádné připojení k síti"</string>
- <string name="loadSuspended" msgid="3133656588880851273">"Prohlížeč nemůže tuto stránku načíst, protože není k dispozici připojení k Internetu."</string>
+ <!-- no translation found for loadSuspended (3133656588880851273) -->
+ <skip />
<string name="clear_history" msgid="5998307092715979619">"Vymazat historii"</string>
- <string name="browser_history" msgid="1038987118290272525">"Nedávno navštívené stránky"</string>
+ <!-- no translation found for browser_history (1038987118290272525) -->
+ <skip />
<string name="empty_history" msgid="8738772352308207274">"Historie prohlížeče je prázdná."</string>
<string name="add_new_bookmark" msgid="8086367791400349049">"Přidat záložku..."</string>
<string name="add_bookmark_short" msgid="3783984330998103735">"Přidat"</string>
@@ -258,7 +286,8 @@
<string name="download_pending_network" msgid="6548714525679461053">"Čekání na datové připojení..."</string>
<string name="download_running_paused" msgid="6418029352085656495">"Čekání na datové připojení..."</string>
<string name="download_canceled" msgid="6057083743144492515">"Stahování bylo zrušeno."</string>
- <string name="download_not_acceptable" msgid="313769696131563652">"Nelze stáhnout. Tento obsah není tímto telefonem podporován."</string>
+ <!-- no translation found for download_not_acceptable (313769696131563652) -->
+ <skip />
<string name="download_file_error" msgid="1206648050615176113">"Stahování nelze dokončit. Není dostatek místa."</string>
<string name="download_length_required" msgid="9038605488460437406">"Nelze stáhnout. Velikost položky nelze určit."</string>
<string name="download_precondition_failed" msgid="8327584102874295580">"Stahování bylo přerušeno a nelze v něm pokračovat."</string>
@@ -270,14 +299,20 @@
<string name="webstorage_clear_data_summary" msgid="3523128713743907805">"Odebrat všechny databáze přidružené k těmto webovým stránkám"</string>
<string name="webstorage_clear_data_dialog_title" msgid="345457466368974706">"Vymazat uložená data"</string>
<string name="webstorage_clear_data_dialog_message" msgid="6678281256970470125">"Všechna data uložená těmito webovými stránkami budou smazána"</string>
- <string name="webstorage_clear_data_dialog_ok_button" msgid="2516563534211898636">"Vymazat vše"</string>
+ <!-- no translation found for webstorage_clear_data_dialog_ok_button (2516563534211898636) -->
+ <skip />
<string name="webstorage_clear_data_dialog_cancel_button" msgid="2028867751958942762">"Zrušit"</string>
<string name="webstorage_origin_summary_mb_stored" msgid="1985885826292236210">"MB uloženo ve vašem telefonu"</string>
- <string name="loading_video" msgid="4887871585216091096">"Načítání videa"</string>
- <string name="geolocation_permissions_prompt_message" msgid="356796102004052471">"Web <xliff:g id="WEBSITE_ORIGIN">%s</xliff:g> požaduje informace o vaší poloze"</string>
- <string name="geolocation_permissions_prompt_share" msgid="9084486342048347976">"Sdílet polohu"</string>
- <string name="geolocation_permissions_prompt_dont_share" msgid="6303025160237860300">"Odmítnout"</string>
- <string name="geolocation_permissions_prompt_remember" msgid="3118526300707348308">"Zapamatovat předvolbu"</string>
+ <!-- no translation found for loading_video (4887871585216091096) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_message (356796102004052471) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_share (9084486342048347976) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_dont_share (6303025160237860300) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_remember (3118526300707348308) -->
+ <skip />
<string name="geolocation_settings_page_title" msgid="1745477985097536528">"Zrušit přístup k informacím o poloze"</string>
<string name="geolocation_settings_page_summary_allowed" msgid="9180251524290811398">"Tyto stránky mohou aktuálně získat přístup k informacím o vaší poloze"</string>
<string name="geolocation_settings_page_summary_not_allowed" msgid="4589649082203102544">"Tyto stránky nemohou aktuálně získat přístup k informacím o vaší poloze"</string>
@@ -285,10 +320,15 @@
<string name="geolocation_settings_page_dialog_message" msgid="7586671987576403993">"Přístup těchto webových stránek k informacím o poloze bude zrušen"</string>
<string name="geolocation_settings_page_dialog_ok_button" msgid="4789434178048077287">"Zrušit přístup"</string>
<string name="geolocation_settings_page_dialog_cancel_button" msgid="7941036504673409747">"Zrušit"</string>
- <string name="website_settings_clear_all" msgid="8739804325997655980">"Vymazat vše"</string>
- <string name="website_settings_clear_all_dialog_title" msgid="7791826325122461718">"Vymazat všechna nastavení webu?"</string>
- <string name="website_settings_clear_all_dialog_message" msgid="6150502090601476333">"Všechna data webových stránek a oprávnění přistupovat k informacím o poloze budou vymazána."</string>
- <string name="website_settings_clear_all_dialog_ok_button" msgid="6401582240627669431">"Vymazat všechna data"</string>
- <string name="website_settings_clear_all_dialog_cancel_button" msgid="1896757051856611674">"Zrušit"</string>
+ <!-- no translation found for website_settings_clear_all (8739804325997655980) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_title (7791826325122461718) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_message (6150502090601476333) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_ok_button (6401582240627669431) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_cancel_button (1896757051856611674) -->
+ <skip />
<string name="zoom_overview_button_text" msgid="4146579940085488881">"Přehled"</string>
</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 5828716..1d1f5e4 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -16,8 +16,12 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"Browser"</string>
- <string name="new_tab" msgid="4505722538297295141">"Nyt vindue"</string>
- <string name="active_tabs" msgid="3050623868203544623">"Vinduer"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
+ <!-- no translation found for new_tab (4505722538297295141) -->
+ <skip />
+ <!-- no translation found for active_tabs (3050623868203544623) -->
+ <skip />
<string name="tab_bookmarks" msgid="2305793036003473653">"Bogmærker"</string>
<string name="tab_most_visited" msgid="1077402532455000703">"Mest besøgte"</string>
<string name="tab_history" msgid="1979267558744613746">"Oversigt"</string>
@@ -78,8 +82,10 @@
<string name="remove_history_item" msgid="5021424935726728618">"Fjern fra oversigt"</string>
<string name="set_as_homepage" msgid="4752937379414905560">"Indstil som startside"</string>
<string name="bookmark_saved" msgid="2766434679871317557">"Gemt i bogmærker."</string>
- <string name="bookmark_not_saved" msgid="700600955089376724">"Bogmærket kunne ikke gemmes."</string>
- <string name="homepage_set" msgid="8768087280310966395">"Startsiden er indstillet."</string>
+ <!-- no translation found for bookmark_not_saved (700600955089376724) -->
+ <skip />
+ <!-- no translation found for homepage_set (8768087280310966395) -->
+ <skip />
<string name="bookmark_needs_title" msgid="6245900436119218187">"Bogmærke skal have et navn."</string>
<string name="bookmark_needs_url" msgid="7809876865972755158">"Bogmærke skal have en placering."</string>
<string name="empty_bookmark" msgid="7008697085928540511">"Der kan ikke oprettes et tomt bogmærke."</string>
@@ -107,7 +113,8 @@
<string name="shortcut_bookmark" msgid="3974876480401135895">"Bogmærke"</string>
<string name="history" msgid="2451240511251410032">"Oversigt"</string>
<string name="menu_view_download" msgid="2124570321712995120">"Downloads"</string>
- <string name="copy_page_url" msgid="7635062169011319208">"Kopier sidens webadresse"</string>
+ <!-- no translation found for copy_page_url (7635062169011319208) -->
+ <skip />
<string name="share_page" msgid="593756995297268343">"Del side"</string>
<string name="contextmenu_openlink" msgid="7237961252214188935">"Åbn"</string>
<string name="contextmenu_openlink_newwindow" msgid="992765050093960353">"Åbn i et nyt vindue"</string>
@@ -122,40 +129,54 @@
<string name="contextmenu_add_contact" msgid="3183511922223645716">"Tilføj kontakt"</string>
<string name="contextmenu_send_mail" msgid="1014513374828775660">"Send e-mail"</string>
<string name="contextmenu_map" msgid="7471390435434034912">"Kort"</string>
- <string name="choosertitle_sharevia" msgid="4600490613341909086">"Del via"</string>
+ <!-- no translation found for choosertitle_sharevia (4600490613341909086) -->
+ <skip />
<string name="clear" msgid="7070043081700011461">"Ryd"</string>
<string name="replace" msgid="4843033491070384047">"Erstat"</string>
<string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"Bogmærker"</string>
<string name="menu_preferences" msgid="6709237687234102240">"Indstillinger"</string>
<string name="pref_content_title" msgid="722227111894838633">"Indstillinger for sideindhold"</string>
<string name="pref_content_load_images" msgid="2125616852957377561">"Indlæs billeder"</string>
- <string name="pref_content_load_images_summary" msgid="5055874125248398584">"Vis billeder på websider"</string>
+ <!-- no translation found for pref_content_load_images_summary (5055874125248398584) -->
+ <skip />
<string name="pref_content_block_popups" msgid="7808433807197256726">"Bloker pop op-vinduer"</string>
<string name="pref_content_javascript" msgid="4570972030299516843">"Aktiver Javascript"</string>
<string name="pref_content_open_in_background" msgid="824123779725118663">"Åbn i baggrunden"</string>
- <string name="pref_content_plugins" msgid="7231944644794301582">"Aktiver plugins"</string>
- <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Åbn nye vinduer bag det aktuelle"</string>
+ <!-- no translation found for pref_content_plugins (7231944644794301582) -->
+ <skip />
+ <!-- no translation found for pref_content_open_in_background_summary (1737664075721181678) -->
+ <skip />
<string name="pref_content_homepage" msgid="6082437160778559806">"Indstil startside"</string>
<string name="pref_content_autofit" msgid="8260474534053660809">"Aut. tilpassede sider"</string>
- <string name="pref_content_autofit_summary" msgid="4587831659894879986">"Formater websider, så de passer til skærmen"</string>
- <string name="pref_content_landscape_only" msgid="2022546812766219672">"Kun liggende visning"</string>
- <string name="pref_content_landscape_only_summary" msgid="1008238895535428855">"Vis kun sider i den bredere liggende retning"</string>
+ <!-- no translation found for pref_content_autofit_summary (4587831659894879986) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only (2022546812766219672) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only_summary (1008238895535428855) -->
+ <skip />
<string name="pref_privacy_title" msgid="1052470980370846151">"Fortrolighedsindstillinger"</string>
<string name="pref_privacy_clear_cache" msgid="3380316479925886998">"Ryd cache"</string>
<string name="pref_privacy_clear_cache_summary" msgid="2216463577207991454">"Ryd lokalt cachelagret indhold og databaser"</string>
- <string name="pref_privacy_clear_cache_dlg" msgid="5541011591300753881">"Lokalt cachelagret indhold og databaser slettes."</string>
+ <!-- no translation found for pref_privacy_clear_cache_dlg (5541011591300753881) -->
+ <skip />
<string name="pref_privacy_clear_cookies" msgid="3095583579133780331">"Ryd alle cookiedata"</string>
- <string name="pref_privacy_clear_cookies_summary" msgid="6962742063990677520">"Ryd alle browsercookies"</string>
- <string name="pref_privacy_clear_cookies_dlg" msgid="552855688091432682">"Alle cookies slettes."</string>
+ <!-- no translation found for pref_privacy_clear_cookies_summary (6962742063990677520) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_cookies_dlg (552855688091432682) -->
+ <skip />
<string name="pref_privacy_clear_history" msgid="8723795508825198477">"Ryd oversigt"</string>
<string name="pref_privacy_clear_history_summary" msgid="6868501330708940734">"Ryd browserens navigationsoversigt"</string>
- <string name="pref_privacy_clear_history_dlg" msgid="544903007914753853">"Browserens navigationsoversigt slettes."</string>
+ <!-- no translation found for pref_privacy_clear_history_dlg (544903007914753853) -->
+ <skip />
<string name="pref_privacy_clear_form_data" msgid="4232668196344383987">"Ryd formulardata"</string>
<string name="pref_privacy_clear_form_data_summary" msgid="1790390894719517167">"Ryd alle gemte formulardata"</string>
- <string name="pref_privacy_clear_form_data_dlg" msgid="4443621086781197928">"Alle gemte formulardata ryddes."</string>
+ <!-- no translation found for pref_privacy_clear_form_data_dlg (4443621086781197928) -->
+ <skip />
<string name="pref_privacy_clear_passwords" msgid="4750234112289277480">"Ryd adgangskoder"</string>
- <string name="pref_privacy_clear_passwords_summary" msgid="8856782718942903335">"Ryd alle gemte adgangskoder"</string>
- <string name="pref_privacy_clear_passwords_dlg" msgid="2083869328824248255">"Alle gemte adgangskoder slettes."</string>
+ <!-- no translation found for pref_privacy_clear_passwords_summary (8856782718942903335) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_passwords_dlg (2083869328824248255) -->
+ <skip />
<string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"Aktiver placering"</string>
<string name="pref_privacy_enable_geolocation_summary" msgid="8437020934664306205">"Tillad websteder at anmode om adgang til din placering"</string>
<string name="pref_privacy_clear_geolocation_access" msgid="6649680770030042980">"Ryd placeringsadgang"</string>
@@ -163,7 +184,8 @@
<string name="pref_privacy_clear_geolocation_access_dlg" msgid="7327063124488827244">"Ryd placeringsadgang for alle websteder"</string>
<string name="pref_security_title" msgid="5763978646932160021">"Sikkerhedsindstillinger"</string>
<string name="pref_security_remember_passwords" msgid="6492957683454529549">"Husk adgangskoder"</string>
- <string name="pref_security_remember_passwords_summary" msgid="256388703356349137">"Gem brugernavne og adgangskoder til websteder"</string>
+ <!-- no translation found for pref_security_remember_passwords_summary (256388703356349137) -->
+ <skip />
<string name="pref_security_save_form_data" msgid="1213669802810198893">"Husk formulardata"</string>
<string name="pref_security_save_form_data_summary" msgid="4994074685153708026">"Husk data, jeg indtaster i formularer, til senere brug"</string>
<string name="pref_security_show_security_warning" msgid="8901135676266754559">"Vis sikkerhedsadvarsler"</string>
@@ -186,14 +208,17 @@
<item msgid="3840999588443167001">"Luk"</item>
</string-array>
<string name="pref_default_zoom_dialogtitle" msgid="6095974367125109021">"Standardzoom"</string>
- <string name="pref_content_load_page" msgid="2219810141690955452">"Åbn sider i oversigt"</string>
- <string name="pref_content_load_page_summary" msgid="8792093504054149369">"Vis oversigt over sider, som er åbnet for nylig"</string>
+ <!-- no translation found for pref_content_load_page (2219810141690955452) -->
+ <skip />
+ <!-- no translation found for pref_content_load_page_summary (8792093504054149369) -->
+ <skip />
<string name="pref_extras_title" msgid="3091250467679722382">"Avancerede indstillinger"</string>
<string name="pref_extras_website_settings" msgid="67866640052455549">"Webstedsindstillinger"</string>
<string name="pref_extras_website_settings_summary" msgid="3917568895776162240">"Vis avancerede indstillinger for individuelle websteder"</string>
<string name="pref_extras_reset_default" msgid="8904000515846202110">"Nulstil til standard"</string>
<string name="pref_extras_reset_default_summary" msgid="7984680562706914966">"Ryd alle browserdata, og nulstil alle indstillinger til standard"</string>
- <string name="pref_extras_reset_default_dlg" msgid="6894807766578874830">"Alle browserdata slettes, og indstillingerne nulstilles til standardværdier."</string>
+ <!-- no translation found for pref_extras_reset_default_dlg (6894807766578874830) -->
+ <skip />
<string name="pref_extras_reset_default_dlg_title" msgid="2250334970728938936">"Nulstil til standard"</string>
<string name="pref_development_title" msgid="3263854204533056480">"Fejlretning"</string>
<string name="pref_default_text_encoding" msgid="5742965543955558478">"Tekstkodning"</string>
@@ -207,15 +232,18 @@
<string name="pref_default_text_encoding_dialogtitle" msgid="5508255018084978547">"Tekstkodning"</string>
<string name="pref_default_text_encoding_default" msgid="5272126711231936722">"Latin-1"</string>
<string name="browserFrameRedirect" msgid="7049675479777828343">"Omdiriger"</string>
- <string name="browserFrame307Post" msgid="1429094844669510768">"Dette websted omdirigeres. Send dine indtastede formulardata til den nye placering?"</string>
+ <!-- no translation found for browserFrame307Post (1429094844669510768) -->
+ <skip />
<string name="browserFrameNetworkErrorLabel" msgid="126892350904924893">"Dataforbindelsesproblem"</string>
<string name="browserFrameFileErrorLabel" msgid="8063691502792670367">"Der er et problem med filen"</string>
<string name="browserFrameFormResubmitLabel" msgid="2685923472682180360">"Bekræft"</string>
<string name="browserFrameFormResubmitMessage" msgid="2752182215695632138">"Den side, du prøver at få vist, indeholder data, der allerede er indsendt (\"POSTDATA\"). Hvis du sender dataene igen, gentages alle handlinger, som formularen på siden udførte (som f.eks. en søgning eller et online køb)."</string>
<string name="loadSuspendedTitle" msgid="675991625288706944">"Der er ingen netværksforbindelse"</string>
- <string name="loadSuspended" msgid="3133656588880851273">"Browseren kan ikke indlæse denne side, fordi der ikke er nogen internetforbindelse."</string>
+ <!-- no translation found for loadSuspended (3133656588880851273) -->
+ <skip />
<string name="clear_history" msgid="5998307092715979619">"Ryd oversigt"</string>
- <string name="browser_history" msgid="1038987118290272525">"Seneste besøgte sider"</string>
+ <!-- no translation found for browser_history (1038987118290272525) -->
+ <skip />
<string name="empty_history" msgid="8738772352308207274">"Browseroversigt er tom."</string>
<string name="add_new_bookmark" msgid="8086367791400349049">"Tilføj bogmærke ..."</string>
<string name="add_bookmark_short" msgid="3783984330998103735">"Tilføj"</string>
@@ -258,7 +286,8 @@
<string name="download_pending_network" msgid="6548714525679461053">"Venter på dataforbindelse ..."</string>
<string name="download_running_paused" msgid="6418029352085656495">"Venter på dataforbindelse ..."</string>
<string name="download_canceled" msgid="6057083743144492515">"Download annulleret."</string>
- <string name="download_not_acceptable" msgid="313769696131563652">"Der kan ikke downloades. Indholdet understøttes ikke på denne telefon."</string>
+ <!-- no translation found for download_not_acceptable (313769696131563652) -->
+ <skip />
<string name="download_file_error" msgid="1206648050615176113">"Download kan ikke afsluttes. Der er ikke nok plads."</string>
<string name="download_length_required" msgid="9038605488460437406">"Der kan ikke downloades. Størrelsen på elementet kan ikke afgøres."</string>
<string name="download_precondition_failed" msgid="8327584102874295580">"Download blev afbrudt. Den kan ikke genoptages."</string>
@@ -270,14 +299,20 @@
<string name="webstorage_clear_data_summary" msgid="3523128713743907805">"Fjern alle databaser, der er tilknyttet dette websted"</string>
<string name="webstorage_clear_data_dialog_title" msgid="345457466368974706">"Ryd lagrede data"</string>
<string name="webstorage_clear_data_dialog_message" msgid="6678281256970470125">"Alle data, der er lagret af dette websted, slettes"</string>
- <string name="webstorage_clear_data_dialog_ok_button" msgid="2516563534211898636">"Ryd alle"</string>
+ <!-- no translation found for webstorage_clear_data_dialog_ok_button (2516563534211898636) -->
+ <skip />
<string name="webstorage_clear_data_dialog_cancel_button" msgid="2028867751958942762">"Annuller"</string>
<string name="webstorage_origin_summary_mb_stored" msgid="1985885826292236210">"Mb lagret på din telefon"</string>
- <string name="loading_video" msgid="4887871585216091096">"Indlæser video"</string>
- <string name="geolocation_permissions_prompt_message" msgid="356796102004052471">"<xliff:g id="WEBSITE_ORIGIN">%s</xliff:g> ønsker at kende din placering"</string>
- <string name="geolocation_permissions_prompt_share" msgid="9084486342048347976">"Del placering"</string>
- <string name="geolocation_permissions_prompt_dont_share" msgid="6303025160237860300">"Afvis"</string>
- <string name="geolocation_permissions_prompt_remember" msgid="3118526300707348308">"Husk indstilling"</string>
+ <!-- no translation found for loading_video (4887871585216091096) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_message (356796102004052471) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_share (9084486342048347976) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_dont_share (6303025160237860300) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_remember (3118526300707348308) -->
+ <skip />
<string name="geolocation_settings_page_title" msgid="1745477985097536528">"Ryd placeringsadgang"</string>
<string name="geolocation_settings_page_summary_allowed" msgid="9180251524290811398">"Dette websted kan i øjeblikket få adgang til din placering"</string>
<string name="geolocation_settings_page_summary_not_allowed" msgid="4589649082203102544">"Dette websted har i øjeblikket adgang til din placering"</string>
@@ -285,10 +320,15 @@
<string name="geolocation_settings_page_dialog_message" msgid="7586671987576403993">"Placeringsadgang ryddes for dette websted"</string>
<string name="geolocation_settings_page_dialog_ok_button" msgid="4789434178048077287">"Ryd adgang"</string>
<string name="geolocation_settings_page_dialog_cancel_button" msgid="7941036504673409747">"Annuller"</string>
- <string name="website_settings_clear_all" msgid="8739804325997655980">"Ryd alle"</string>
- <string name="website_settings_clear_all_dialog_title" msgid="7791826325122461718">"Vil du rydde alle webstedsindstillinger?"</string>
- <string name="website_settings_clear_all_dialog_message" msgid="6150502090601476333">"Alle webstedsdata og placeringstilladelser slettes."</string>
- <string name="website_settings_clear_all_dialog_ok_button" msgid="6401582240627669431">"Slet alle data"</string>
- <string name="website_settings_clear_all_dialog_cancel_button" msgid="1896757051856611674">"Annuller"</string>
+ <!-- no translation found for website_settings_clear_all (8739804325997655980) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_title (7791826325122461718) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_message (6150502090601476333) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_ok_button (6401582240627669431) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_cancel_button (1896757051856611674) -->
+ <skip />
<string name="zoom_overview_button_text" msgid="4146579940085488881">"Oversigt"</string>
</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index a8be685..3027798 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -16,8 +16,12 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"Browser"</string>
- <string name="new_tab" msgid="4505722538297295141">"Neues Fenster"</string>
- <string name="active_tabs" msgid="3050623868203544623">"Fenster"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
+ <!-- no translation found for new_tab (4505722538297295141) -->
+ <skip />
+ <!-- no translation found for active_tabs (3050623868203544623) -->
+ <skip />
<string name="tab_bookmarks" msgid="2305793036003473653">"Lesezeichen"</string>
<string name="tab_most_visited" msgid="1077402532455000703">"Meistbesucht"</string>
<string name="tab_history" msgid="1979267558744613746">"Verlauf"</string>
@@ -78,8 +82,10 @@
<string name="remove_history_item" msgid="5021424935726728618">"Aus Verlauf entfernen"</string>
<string name="set_as_homepage" msgid="4752937379414905560">"Als Startseite festlegen"</string>
<string name="bookmark_saved" msgid="2766434679871317557">"Gespeichert in Lesezeichen."</string>
- <string name="bookmark_not_saved" msgid="700600955089376724">"Lesezeichen kann nicht gespeichert werden."</string>
- <string name="homepage_set" msgid="8768087280310966395">"Startseite festgelegt."</string>
+ <!-- no translation found for bookmark_not_saved (700600955089376724) -->
+ <skip />
+ <!-- no translation found for homepage_set (8768087280310966395) -->
+ <skip />
<string name="bookmark_needs_title" msgid="6245900436119218187">"Das Lesezeichen muss über einen Namen verfügen."</string>
<string name="bookmark_needs_url" msgid="7809876865972755158">"Das Lesezeichen muss über einen Speicherort verfügen."</string>
<string name="empty_bookmark" msgid="7008697085928540511">"Sie können kein leeres Lesezeichen erstellen."</string>
@@ -107,7 +113,8 @@
<string name="shortcut_bookmark" msgid="3974876480401135895">"Lesezeichen"</string>
<string name="history" msgid="2451240511251410032">"Verlauf"</string>
<string name="menu_view_download" msgid="2124570321712995120">"Downloads"</string>
- <string name="copy_page_url" msgid="7635062169011319208">"Seiten-URL kopieren"</string>
+ <!-- no translation found for copy_page_url (7635062169011319208) -->
+ <skip />
<string name="share_page" msgid="593756995297268343">"Seitenlink weiterleiten"</string>
<string name="contextmenu_openlink" msgid="7237961252214188935">"Öffnen"</string>
<string name="contextmenu_openlink_newwindow" msgid="992765050093960353">"In neuem Fenster öffnen"</string>
@@ -122,40 +129,54 @@
<string name="contextmenu_add_contact" msgid="3183511922223645716">"Kontakt hinzufügen"</string>
<string name="contextmenu_send_mail" msgid="1014513374828775660">"E-Mail senden"</string>
<string name="contextmenu_map" msgid="7471390435434034912">"Karte"</string>
- <string name="choosertitle_sharevia" msgid="4600490613341909086">"Freigeben über"</string>
+ <!-- no translation found for choosertitle_sharevia (4600490613341909086) -->
+ <skip />
<string name="clear" msgid="7070043081700011461">"Löschen"</string>
<string name="replace" msgid="4843033491070384047">"Ersetzen"</string>
<string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"Lesezeichen"</string>
<string name="menu_preferences" msgid="6709237687234102240">"Einstellungen"</string>
<string name="pref_content_title" msgid="722227111894838633">"Einstellungen für Seiteninhalt"</string>
<string name="pref_content_load_images" msgid="2125616852957377561">"Bilder laden"</string>
- <string name="pref_content_load_images_summary" msgid="5055874125248398584">"Bilder auf Webseiten anzeigen"</string>
+ <!-- no translation found for pref_content_load_images_summary (5055874125248398584) -->
+ <skip />
<string name="pref_content_block_popups" msgid="7808433807197256726">"Popupfenster blockieren"</string>
<string name="pref_content_javascript" msgid="4570972030299516843">"JavaScript aktivieren"</string>
<string name="pref_content_open_in_background" msgid="824123779725118663">"Im Hintergrund öffnen"</string>
- <string name="pref_content_plugins" msgid="7231944644794301582">"Plug-Ins aktivieren"</string>
- <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Neues Fenster hinter dem aktuellen Fenster öffnen"</string>
+ <!-- no translation found for pref_content_plugins (7231944644794301582) -->
+ <skip />
+ <!-- no translation found for pref_content_open_in_background_summary (1737664075721181678) -->
+ <skip />
<string name="pref_content_homepage" msgid="6082437160778559806">"Startseite festlegen"</string>
<string name="pref_content_autofit" msgid="8260474534053660809">"Seiten autom. anpassen"</string>
- <string name="pref_content_autofit_summary" msgid="4587831659894879986">"Webseiten an den Bildschirm anpassen"</string>
- <string name="pref_content_landscape_only" msgid="2022546812766219672">"Anzeige nur im Querformat"</string>
- <string name="pref_content_landscape_only_summary" msgid="1008238895535428855">"Seiten nur im breiteren Querformat anzeigen"</string>
+ <!-- no translation found for pref_content_autofit_summary (4587831659894879986) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only (2022546812766219672) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only_summary (1008238895535428855) -->
+ <skip />
<string name="pref_privacy_title" msgid="1052470980370846151">"Datenschutzeinstellungen"</string>
<string name="pref_privacy_clear_cache" msgid="3380316479925886998">"Cache löschen"</string>
<string name="pref_privacy_clear_cache_summary" msgid="2216463577207991454">"Content und Datenbanken aus dem lokalen Cache löschen"</string>
- <string name="pref_privacy_clear_cache_dlg" msgid="5541011591300753881">"Content und Datenbanken werden aus dem lokalen Cache gelöscht."</string>
+ <!-- no translation found for pref_privacy_clear_cache_dlg (5541011591300753881) -->
+ <skip />
<string name="pref_privacy_clear_cookies" msgid="3095583579133780331">"Alle Cookiedaten löschen"</string>
- <string name="pref_privacy_clear_cookies_summary" msgid="6962742063990677520">"Alle Browser-Cookies löschen"</string>
- <string name="pref_privacy_clear_cookies_dlg" msgid="552855688091432682">"Alle Cookies werden gelöscht."</string>
+ <!-- no translation found for pref_privacy_clear_cookies_summary (6962742063990677520) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_cookies_dlg (552855688091432682) -->
+ <skip />
<string name="pref_privacy_clear_history" msgid="8723795508825198477">"Verlauf löschen"</string>
<string name="pref_privacy_clear_history_summary" msgid="6868501330708940734">"Navigationsverlauf des Browsers löschen"</string>
- <string name="pref_privacy_clear_history_dlg" msgid="544903007914753853">"Der Navigationsverlauf des Browsers wird gelöscht."</string>
+ <!-- no translation found for pref_privacy_clear_history_dlg (544903007914753853) -->
+ <skip />
<string name="pref_privacy_clear_form_data" msgid="4232668196344383987">"Formulardaten löschen"</string>
<string name="pref_privacy_clear_form_data_summary" msgid="1790390894719517167">"Alle gespeicherten Formulardaten löschen"</string>
- <string name="pref_privacy_clear_form_data_dlg" msgid="4443621086781197928">"Alle gespeicherten Formulardaten werden gelöscht."</string>
+ <!-- no translation found for pref_privacy_clear_form_data_dlg (4443621086781197928) -->
+ <skip />
<string name="pref_privacy_clear_passwords" msgid="4750234112289277480">"Passwörter löschen"</string>
- <string name="pref_privacy_clear_passwords_summary" msgid="8856782718942903335">"Alle gespeicherten Passwörter löschen"</string>
- <string name="pref_privacy_clear_passwords_dlg" msgid="2083869328824248255">"Alle gespeicherten Passwörter werden gelöscht."</string>
+ <!-- no translation found for pref_privacy_clear_passwords_summary (8856782718942903335) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_passwords_dlg (2083869328824248255) -->
+ <skip />
<string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"Standort aktivieren"</string>
<string name="pref_privacy_enable_geolocation_summary" msgid="8437020934664306205">"Zugriff auf Ihren Standort für Websites ermöglichen"</string>
<string name="pref_privacy_clear_geolocation_access" msgid="6649680770030042980">"Standortzugriff löschen"</string>
@@ -163,7 +184,8 @@
<string name="pref_privacy_clear_geolocation_access_dlg" msgid="7327063124488827244">"Standortzugriff für alle Websites löschen"</string>
<string name="pref_security_title" msgid="5763978646932160021">"Sicherheitseinstellungen"</string>
<string name="pref_security_remember_passwords" msgid="6492957683454529549">"Passwörter merken"</string>
- <string name="pref_security_remember_passwords_summary" msgid="256388703356349137">"Benutzernamen und Passwörter für Websites speichern"</string>
+ <!-- no translation found for pref_security_remember_passwords_summary (256388703356349137) -->
+ <skip />
<string name="pref_security_save_form_data" msgid="1213669802810198893">"Formulardaten merken"</string>
<string name="pref_security_save_form_data_summary" msgid="4994074685153708026">"Daten in Formularen zur späteren Verwendung merken"</string>
<string name="pref_security_show_security_warning" msgid="8901135676266754559">"Sicherheitswarnungen"</string>
@@ -186,14 +208,17 @@
<item msgid="3840999588443167001">"Schließen"</item>
</string-array>
<string name="pref_default_zoom_dialogtitle" msgid="6095974367125109021">"Standard-Zoom"</string>
- <string name="pref_content_load_page" msgid="2219810141690955452">"Seiten in der Übersicht öffnen"</string>
- <string name="pref_content_load_page_summary" msgid="8792093504054149369">"Übersicht über kürzlich geöffnete Seiten anzeigen"</string>
+ <!-- no translation found for pref_content_load_page (2219810141690955452) -->
+ <skip />
+ <!-- no translation found for pref_content_load_page_summary (8792093504054149369) -->
+ <skip />
<string name="pref_extras_title" msgid="3091250467679722382">"Erweiterte Einstellungen"</string>
<string name="pref_extras_website_settings" msgid="67866640052455549">"Websiteeinstellungen"</string>
<string name="pref_extras_website_settings_summary" msgid="3917568895776162240">"Erweiterte Einstellungen für einzelne Websites anzeigen"</string>
<string name="pref_extras_reset_default" msgid="8904000515846202110">"Auf Standard zurücksetzen"</string>
<string name="pref_extras_reset_default_summary" msgid="7984680562706914966">"Alle Browserdaten löschen und Einstellungen auf Standard zurücksetzen"</string>
- <string name="pref_extras_reset_default_dlg" msgid="6894807766578874830">"Alle Browserdaten werden gelöscht. Alle Einstellungen werden auf die Standardeinstellung zurückgesetzt."</string>
+ <!-- no translation found for pref_extras_reset_default_dlg (6894807766578874830) -->
+ <skip />
<string name="pref_extras_reset_default_dlg_title" msgid="2250334970728938936">"Auf Standardeinstellung zurücksetzen"</string>
<string name="pref_development_title" msgid="3263854204533056480">"Debuggen"</string>
<string name="pref_default_text_encoding" msgid="5742965543955558478">"Textcodierung"</string>
@@ -207,15 +232,18 @@
<string name="pref_default_text_encoding_dialogtitle" msgid="5508255018084978547">"Textcodierung"</string>
<string name="pref_default_text_encoding_default" msgid="5272126711231936722">"Latin-1"</string>
<string name="browserFrameRedirect" msgid="7049675479777828343">"Redirect"</string>
- <string name="browserFrame307Post" msgid="1429094844669510768">"Diese Webseite wird umgeleitet. Sollen Ihre eingegebenen Formulardaten an den neuen Standort gesendet werden?"</string>
+ <!-- no translation found for browserFrame307Post (1429094844669510768) -->
+ <skip />
<string name="browserFrameNetworkErrorLabel" msgid="126892350904924893">"Datenverbindungsproblem"</string>
<string name="browserFrameFileErrorLabel" msgid="8063691502792670367">"Problem mit Datei"</string>
<string name="browserFrameFormResubmitLabel" msgid="2685923472682180360">"Bestätigen"</string>
<string name="browserFrameFormResubmitMessage" msgid="2752182215695632138">"Die Seite, die Sie anzuzeigen versuchen, enthält Daten, die bereits gesendet wurde (\"POST-DATEN\"). Wenn Sie die Daten erneut senden, wird jede Aktion, die das Formular auf der Seite ausgeführt hat, wiederholt (wie beispielsweise eine Suche oder ein Online-Kauf)."</string>
<string name="loadSuspendedTitle" msgid="675991625288706944">"Keine Netzwerkverbindung"</string>
- <string name="loadSuspended" msgid="3133656588880851273">"Der Browser kann diese Seite nicht laden, da keine Internetverbindung besteht."</string>
+ <!-- no translation found for loadSuspended (3133656588880851273) -->
+ <skip />
<string name="clear_history" msgid="5998307092715979619">"Verlauf löschen"</string>
- <string name="browser_history" msgid="1038987118290272525">"Kürzlich besuchte Seiten"</string>
+ <!-- no translation found for browser_history (1038987118290272525) -->
+ <skip />
<string name="empty_history" msgid="8738772352308207274">"Browserverlauf ist leer."</string>
<string name="add_new_bookmark" msgid="8086367791400349049">"Lesezeichen hinzufügen..."</string>
<string name="add_bookmark_short" msgid="3783984330998103735">"Hinzufügen"</string>
@@ -258,7 +286,8 @@
<string name="download_pending_network" msgid="6548714525679461053">"Warten auf Datenverbindung..."</string>
<string name="download_running_paused" msgid="6418029352085656495">"Warten auf Datenverbindung..."</string>
<string name="download_canceled" msgid="6057083743144492515">"Download abgebrochen."</string>
- <string name="download_not_acceptable" msgid="313769696131563652">"Der Download kann nicht durchgeführt werden, da der Content auf diesem Telefon nicht unterstützt wird."</string>
+ <!-- no translation found for download_not_acceptable (313769696131563652) -->
+ <skip />
<string name="download_file_error" msgid="1206648050615176113">"Download kann nicht beendet werden, da nicht genügend Speicherplatz vorhanden ist."</string>
<string name="download_length_required" msgid="9038605488460437406">"Download kann nicht gestartet werden, da die Größe des Elements nicht bestimmt werden kann."</string>
<string name="download_precondition_failed" msgid="8327584102874295580">"Download wurde unterbrochen und kann nicht fortgesetzt werden."</string>
@@ -270,14 +299,20 @@
<string name="webstorage_clear_data_summary" msgid="3523128713743907805">"Alle mit dieser Website verknüpften Datenbanken entfernen"</string>
<string name="webstorage_clear_data_dialog_title" msgid="345457466368974706">"Gespeicherte Daten löschen"</string>
<string name="webstorage_clear_data_dialog_message" msgid="6678281256970470125">"Alle von dieser Website gespeicherten Daten werden gelöscht."</string>
- <string name="webstorage_clear_data_dialog_ok_button" msgid="2516563534211898636">"Alles löschen"</string>
+ <!-- no translation found for webstorage_clear_data_dialog_ok_button (2516563534211898636) -->
+ <skip />
<string name="webstorage_clear_data_dialog_cancel_button" msgid="2028867751958942762">"Abbrechen"</string>
<string name="webstorage_origin_summary_mb_stored" msgid="1985885826292236210">"Auf Ihrem Telefon gespeicherte MB"</string>
- <string name="loading_video" msgid="4887871585216091096">"Video wird geladen"</string>
- <string name="geolocation_permissions_prompt_message" msgid="356796102004052471">"<xliff:g id="WEBSITE_ORIGIN">%s</xliff:g> möchte Ihren Standort in Erfahrung bringen."</string>
- <string name="geolocation_permissions_prompt_share" msgid="9084486342048347976">"Standort freigeben"</string>
- <string name="geolocation_permissions_prompt_dont_share" msgid="6303025160237860300">"Ablehnen"</string>
- <string name="geolocation_permissions_prompt_remember" msgid="3118526300707348308">"Voreinstellung speichern"</string>
+ <!-- no translation found for loading_video (4887871585216091096) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_message (356796102004052471) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_share (9084486342048347976) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_dont_share (6303025160237860300) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_remember (3118526300707348308) -->
+ <skip />
<string name="geolocation_settings_page_title" msgid="1745477985097536528">"Standortzugriff löschen"</string>
<string name="geolocation_settings_page_summary_allowed" msgid="9180251524290811398">"Diese Website hat derzeit Zugriff auf Ihren Standort."</string>
<string name="geolocation_settings_page_summary_not_allowed" msgid="4589649082203102544">"Diese Website hat derzeit keinen Zugriff auf Ihren Standort."</string>
@@ -285,10 +320,15 @@
<string name="geolocation_settings_page_dialog_message" msgid="7586671987576403993">"Der Standortzugriff für diese Website wird gelöscht."</string>
<string name="geolocation_settings_page_dialog_ok_button" msgid="4789434178048077287">"Zugriff löschen"</string>
<string name="geolocation_settings_page_dialog_cancel_button" msgid="7941036504673409747">"Abbrechen"</string>
- <string name="website_settings_clear_all" msgid="8739804325997655980">"Alles löschen"</string>
- <string name="website_settings_clear_all_dialog_title" msgid="7791826325122461718">"Sollen alle Website-Einstellungen gelöscht werden?"</string>
- <string name="website_settings_clear_all_dialog_message" msgid="6150502090601476333">"Alle Websitedaten und Standortberechtigungen werden gelöscht."</string>
- <string name="website_settings_clear_all_dialog_ok_button" msgid="6401582240627669431">"Alle Daten löschen"</string>
- <string name="website_settings_clear_all_dialog_cancel_button" msgid="1896757051856611674">"Abbrechen"</string>
+ <!-- no translation found for website_settings_clear_all (8739804325997655980) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_title (7791826325122461718) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_message (6150502090601476333) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_ok_button (6401582240627669431) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_cancel_button (1896757051856611674) -->
+ <skip />
<string name="zoom_overview_button_text" msgid="4146579940085488881">"Übersicht"</string>
</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index bbe3dde..caf60c9 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -16,8 +16,12 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"Internet"</string>
- <string name="new_tab" msgid="4505722538297295141">"Νέο παράθυρο"</string>
- <string name="active_tabs" msgid="3050623868203544623">"Παράθυρα"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
+ <!-- no translation found for new_tab (4505722538297295141) -->
+ <skip />
+ <!-- no translation found for active_tabs (3050623868203544623) -->
+ <skip />
<string name="tab_bookmarks" msgid="2305793036003473653">"Σελιδοδείκτες"</string>
<string name="tab_most_visited" msgid="1077402532455000703">"Οι πιο δημοφιλείς"</string>
<string name="tab_history" msgid="1979267558744613746">"Ιστορικό"</string>
@@ -78,8 +82,10 @@
<string name="remove_history_item" msgid="5021424935726728618">"Κατάργηση από το ιστορικό"</string>
<string name="set_as_homepage" msgid="4752937379414905560">"Ορισμός ως αρχική σελίδα"</string>
<string name="bookmark_saved" msgid="2766434679871317557">"Αποθηκεύτηκε στους σελιδοδείκτες."</string>
- <string name="bookmark_not_saved" msgid="700600955089376724">"Δεν ήταν δυνατή η αποθήκευση του σελιδοδείκτη."</string>
- <string name="homepage_set" msgid="8768087280310966395">"Ορισμός αρχικής σελίδας."</string>
+ <!-- no translation found for bookmark_not_saved (700600955089376724) -->
+ <skip />
+ <!-- no translation found for homepage_set (8768087280310966395) -->
+ <skip />
<string name="bookmark_needs_title" msgid="6245900436119218187">"Ο σελιδοδείκτης πρέπει να έχει ένα όνομα."</string>
<string name="bookmark_needs_url" msgid="7809876865972755158">"Ο σελιδοδείκτης πρέπει να έχει μια τοποθεσία."</string>
<string name="empty_bookmark" msgid="7008697085928540511">"Δεν είναι δυνατή η δημιουργία κενού σελιδοδείκτη."</string>
@@ -107,7 +113,8 @@
<string name="shortcut_bookmark" msgid="3974876480401135895">"Σελιδοδείκτης"</string>
<string name="history" msgid="2451240511251410032">"Ιστορικό"</string>
<string name="menu_view_download" msgid="2124570321712995120">"Λήψεις"</string>
- <string name="copy_page_url" msgid="7635062169011319208">"Αντιγραφή διεύθυνσης url της σελίδας"</string>
+ <!-- no translation found for copy_page_url (7635062169011319208) -->
+ <skip />
<string name="share_page" msgid="593756995297268343">"Κοινή χρήση σελίδας"</string>
<string name="contextmenu_openlink" msgid="7237961252214188935">"Άνοιγμα"</string>
<string name="contextmenu_openlink_newwindow" msgid="992765050093960353">"Άνοιγμα σε νέο παράθυρο"</string>
@@ -122,40 +129,54 @@
<string name="contextmenu_add_contact" msgid="3183511922223645716">"Προσθήκη επαφής"</string>
<string name="contextmenu_send_mail" msgid="1014513374828775660">"Αποστολή μηνύματος ηλεκτρονικού ταχυδρομείου"</string>
<string name="contextmenu_map" msgid="7471390435434034912">"Χάρτης"</string>
- <string name="choosertitle_sharevia" msgid="4600490613341909086">"Κοινή χρήση μέσω"</string>
+ <!-- no translation found for choosertitle_sharevia (4600490613341909086) -->
+ <skip />
<string name="clear" msgid="7070043081700011461">"Εκκαθάριση"</string>
<string name="replace" msgid="4843033491070384047">"Αντικατάσταση"</string>
<string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"Σελιδοδείκτες"</string>
<string name="menu_preferences" msgid="6709237687234102240">"Ρυθμίσεις"</string>
<string name="pref_content_title" msgid="722227111894838633">"Ρυθμίσεις περιεχομένου σελίδας"</string>
<string name="pref_content_load_images" msgid="2125616852957377561">"Φόρτωση εικόνων"</string>
- <string name="pref_content_load_images_summary" msgid="5055874125248398584">"Προβολή εικόνων στις ιστοσελίδες"</string>
+ <!-- no translation found for pref_content_load_images_summary (5055874125248398584) -->
+ <skip />
<string name="pref_content_block_popups" msgid="7808433807197256726">"Αποκλεισμός αναδυόμενων παραθύρων"</string>
<string name="pref_content_javascript" msgid="4570972030299516843">"Ενεργοποίηση JavaScript"</string>
<string name="pref_content_open_in_background" msgid="824123779725118663">"Άνοιγμα στο παρασκήνιο"</string>
- <string name="pref_content_plugins" msgid="7231944644794301582">"Ενεργοποίηση πρόσθετων"</string>
- <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Άνοιγμα νέων παραθύρων πίσω από το τρέχον"</string>
+ <!-- no translation found for pref_content_plugins (7231944644794301582) -->
+ <skip />
+ <!-- no translation found for pref_content_open_in_background_summary (1737664075721181678) -->
+ <skip />
<string name="pref_content_homepage" msgid="6082437160778559806">"Ορισμός ως αρχική σελίδα"</string>
<string name="pref_content_autofit" msgid="8260474534053660809">"Αυτόματη προσαρμογή σελίδων"</string>
- <string name="pref_content_autofit_summary" msgid="4587831659894879986">"Μορφοποίηση ιστοσελίδων για την προσαρμογή τους στο μέγεθος της οθόνης"</string>
- <string name="pref_content_landscape_only" msgid="2022546812766219672">"Προβολή μόνο σε τοπίο"</string>
- <string name="pref_content_landscape_only_summary" msgid="1008238895535428855">"Προβολή σελίδων μόνο στον ευρύτερο προσανατολισμό τοπίου στην οθόνη"</string>
+ <!-- no translation found for pref_content_autofit_summary (4587831659894879986) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only (2022546812766219672) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only_summary (1008238895535428855) -->
+ <skip />
<string name="pref_privacy_title" msgid="1052470980370846151">"Ρυθμίσεις απορρήτου"</string>
<string name="pref_privacy_clear_cache" msgid="3380316479925886998">"Εκκαθάριση προσωρινής μνήμης"</string>
<string name="pref_privacy_clear_cache_summary" msgid="2216463577207991454">"Εκκαθάριση τοπικά αποθηκευμένου στη μνήμη cache περιεχομένου και βάσεων δεδομένων"</string>
- <string name="pref_privacy_clear_cache_dlg" msgid="5541011591300753881">"Περιεχόμενο και βάσεις δεδομένων που έχουν αποθηκευτεί στην τοπική προσωρινή μνήμη θα διαγραφού ."</string>
+ <!-- no translation found for pref_privacy_clear_cache_dlg (5541011591300753881) -->
+ <skip />
<string name="pref_privacy_clear_cookies" msgid="3095583579133780331">"Εκκαθάριση όλων των δεδομένων cookie"</string>
- <string name="pref_privacy_clear_cookies_summary" msgid="6962742063990677520">"Εκκαθάριση όλων των cookie του προγράμματος περιήγησης"</string>
- <string name="pref_privacy_clear_cookies_dlg" msgid="552855688091432682">"Όλα τα cookie θα διαγραφούν."</string>
+ <!-- no translation found for pref_privacy_clear_cookies_summary (6962742063990677520) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_cookies_dlg (552855688091432682) -->
+ <skip />
<string name="pref_privacy_clear_history" msgid="8723795508825198477">"Εκκαθάριση ιστορικού"</string>
<string name="pref_privacy_clear_history_summary" msgid="6868501330708940734">"Εκκαθάριση του ιστορικού πλοήγησης του προγράμματος περιήγησης"</string>
- <string name="pref_privacy_clear_history_dlg" msgid="544903007914753853">"Θα γίνει διαγραφή του ιστορικού πλοήγησης του προγράμματος περιήγησης."</string>
+ <!-- no translation found for pref_privacy_clear_history_dlg (544903007914753853) -->
+ <skip />
<string name="pref_privacy_clear_form_data" msgid="4232668196344383987">"Εκκαθάριση δεδομένων φόρμας"</string>
<string name="pref_privacy_clear_form_data_summary" msgid="1790390894719517167">"Εκκαθάριση όλων των αποθηκευμένων δεδομένων φόρμας"</string>
- <string name="pref_privacy_clear_form_data_dlg" msgid="4443621086781197928">"Θα γίνει διαγραφή όλων των αποθηκευμένων δεδομένων φόρμας."</string>
+ <!-- no translation found for pref_privacy_clear_form_data_dlg (4443621086781197928) -->
+ <skip />
<string name="pref_privacy_clear_passwords" msgid="4750234112289277480">"Εκκαθάριση κωδικών πρόσβασης"</string>
- <string name="pref_privacy_clear_passwords_summary" msgid="8856782718942903335">"Απαλοιφή όλων των αποθηκευμένων κωδικών πρόσβασης"</string>
- <string name="pref_privacy_clear_passwords_dlg" msgid="2083869328824248255">"Θα γίνει διαγραφή όλων των αποθηκευμένων κωδικών πρόσβασης."</string>
+ <!-- no translation found for pref_privacy_clear_passwords_summary (8856782718942903335) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_passwords_dlg (2083869328824248255) -->
+ <skip />
<string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"Ενεργοποίηση τοποθεσίας"</string>
<string name="pref_privacy_enable_geolocation_summary" msgid="8437020934664306205">"Να επιτρέπεται σε ιστότοπους το αίτημα πρόσβασης στην τοποθεσία σας"</string>
<string name="pref_privacy_clear_geolocation_access" msgid="6649680770030042980">"Εκκαθάριση πρόσβασης τοποθεσίας"</string>
@@ -163,7 +184,8 @@
<string name="pref_privacy_clear_geolocation_access_dlg" msgid="7327063124488827244">"Εκκαθάριση πρόσβασης τοποθεσίας για όλους τους ιστότοπους"</string>
<string name="pref_security_title" msgid="5763978646932160021">"Ρυθμίσεις ασφαλείας"</string>
<string name="pref_security_remember_passwords" msgid="6492957683454529549">"Απομνημόνευση κωδικών πρόσβασης"</string>
- <string name="pref_security_remember_passwords_summary" msgid="256388703356349137">"Αποθήκευση ονομάτων χρήστη και κωδικών πρόσβασης για ιστότοπους"</string>
+ <!-- no translation found for pref_security_remember_passwords_summary (256388703356349137) -->
+ <skip />
<string name="pref_security_save_form_data" msgid="1213669802810198893">"Απομνημόνευση δεδομένων φόρμας"</string>
<string name="pref_security_save_form_data_summary" msgid="4994074685153708026">"Απομνημόν.των δεδομ.που εισάγ.σε φόρμ.για μελλοντ.χρήση"</string>
<string name="pref_security_show_security_warning" msgid="8901135676266754559">"Εμφάνιση προειδοποιήσεων ασφαλείας"</string>
@@ -186,14 +208,17 @@
<item msgid="3840999588443167001">"Κλείσιμο"</item>
</string-array>
<string name="pref_default_zoom_dialogtitle" msgid="6095974367125109021">"Προεπιλεγμένο ζουμ"</string>
- <string name="pref_content_load_page" msgid="2219810141690955452">"Άνοιγμα σελίδων στην επισκόπιση"</string>
- <string name="pref_content_load_page_summary" msgid="8792093504054149369">"Εμφάνιση επισκόπισης σελίδων που ανοίξατε πρόσφατα"</string>
+ <!-- no translation found for pref_content_load_page (2219810141690955452) -->
+ <skip />
+ <!-- no translation found for pref_content_load_page_summary (8792093504054149369) -->
+ <skip />
<string name="pref_extras_title" msgid="3091250467679722382">"Σύνθετες ρυθμίσεις"</string>
<string name="pref_extras_website_settings" msgid="67866640052455549">"Ρυθμίσεις ιστότοπου"</string>
<string name="pref_extras_website_settings_summary" msgid="3917568895776162240">"Προβολή σύνθετων ρυθμίσεων για μεμονωμένους ιστότοπους"</string>
<string name="pref_extras_reset_default" msgid="8904000515846202110">"Επαναφορά προεπιλογών"</string>
<string name="pref_extras_reset_default_summary" msgid="7984680562706914966">"Εκκαθ.όλων των δεδ.του προγρ.περιήγ.και επαναφ.όλων των ρυθμ.στις προεπ.ρυθμ."</string>
- <string name="pref_extras_reset_default_dlg" msgid="6894807766578874830">"Θα γίνει διαγραφή όλων των δεδομένων του προγράμματος περιήγησης και επαναφορά των ρυθμίσεων στις προεπιλεγμένες τιμές."</string>
+ <!-- no translation found for pref_extras_reset_default_dlg (6894807766578874830) -->
+ <skip />
<string name="pref_extras_reset_default_dlg_title" msgid="2250334970728938936">"Επαναφορά προεπιλογών"</string>
<string name="pref_development_title" msgid="3263854204533056480">"Εντοπισμός σφαλμάτων"</string>
<string name="pref_default_text_encoding" msgid="5742965543955558478">"Κωδικοποίηση κειμένου"</string>
@@ -207,15 +232,18 @@
<string name="pref_default_text_encoding_dialogtitle" msgid="5508255018084978547">"Κωδικοποίηση κειμένου"</string>
<string name="pref_default_text_encoding_default" msgid="5272126711231936722">"Latin-1"</string>
<string name="browserFrameRedirect" msgid="7049675479777828343">"Ανακατεύθυνση"</string>
- <string name="browserFrame307Post" msgid="1429094844669510768">"Γίνεται ανακατεύθυνση αυτής της ιστοσελίδας. Να αποσταλούν ξανά τα δεδομένα φόρμας που έχετε εισάγει, στην νέα τοποθεσία;"</string>
+ <!-- no translation found for browserFrame307Post (1429094844669510768) -->
+ <skip />
<string name="browserFrameNetworkErrorLabel" msgid="126892350904924893">"Πρόβλημα σύνδεσης δεδομένων"</string>
<string name="browserFrameFileErrorLabel" msgid="8063691502792670367">"Υπάρχει πρόβλημα με το αρχείο"</string>
<string name="browserFrameFormResubmitLabel" msgid="2685923472682180360">"Επιβεβαίωση"</string>
<string name="browserFrameFormResubmitMessage" msgid="2752182215695632138">"Η σελίδα που προσπαθείτε να προβάλλετε, περιέχει δεδομένα που έχουν ήδη υποβληθεί (\"POSTDATA\"). Εάν αποστείλετε ξανά τα δεδομένα, όλες οι ενέργειες που εκτελέστηκαν από τη φόρμα στη σελίδα (όπως μια αναζήτηση ή μια αγορά στο διαδίκτυο) θα επαναληφθούν."</string>
<string name="loadSuspendedTitle" msgid="675991625288706944">"Δεν υπάρχει σύνδεση δικτύου"</string>
- <string name="loadSuspended" msgid="3133656588880851273">"Το πρόγραμμα περιήγησης δεν μπορεί να φορτώσει αυτήν τη σελίδα διότι δεν υπάρχει σύνδεση στο διαδίκτυο."</string>
+ <!-- no translation found for loadSuspended (3133656588880851273) -->
+ <skip />
<string name="clear_history" msgid="5998307092715979619">"Εκκαθάριση ιστορικού"</string>
- <string name="browser_history" msgid="1038987118290272525">"Σελίδες που επισκεφθήκατε πρόσφατα"</string>
+ <!-- no translation found for browser_history (1038987118290272525) -->
+ <skip />
<string name="empty_history" msgid="8738772352308207274">"Το ιστορικό του προγράμματος περιήγησης είναι κενό."</string>
<string name="add_new_bookmark" msgid="8086367791400349049">"Προσθήκη σελιδοδείκτη..."</string>
<string name="add_bookmark_short" msgid="3783984330998103735">"Προσθήκη"</string>
@@ -258,7 +286,8 @@
<string name="download_pending_network" msgid="6548714525679461053">"Αναμονή για σύνδεση δεδομένων…"</string>
<string name="download_running_paused" msgid="6418029352085656495">"Αναμονή για σύνδεση δεδομένων…"</string>
<string name="download_canceled" msgid="6057083743144492515">"Η λήψη ακυρώθηκε."</string>
- <string name="download_not_acceptable" msgid="313769696131563652">"Δεν είναι δυνατή η λήψη. Το περιεχόμενο δεν υποστηρίζεται από αυτό το τηλέφωνο."</string>
+ <!-- no translation found for download_not_acceptable (313769696131563652) -->
+ <skip />
<string name="download_file_error" msgid="1206648050615176113">"Δεν είναι δυνατή η ολοκλήρωση της λήψης. Δεν υπάρχει αρκετός διαθέσιμος χώρος."</string>
<string name="download_length_required" msgid="9038605488460437406">"Δεν είναι δυνατή η λήψη. Δεν είναι δυνατός ο προσδιορισμός του μεγέθους του στοιχείου."</string>
<string name="download_precondition_failed" msgid="8327584102874295580">"Η λήψη διακόπηκε. Δεν είναι δυνατή η συνέχισή της."</string>
@@ -270,14 +299,20 @@
<string name="webstorage_clear_data_summary" msgid="3523128713743907805">"Κατάργηση όλων των βάσεων δεδομένων που σχετίζονται με αυτόν τον ιστότοπο"</string>
<string name="webstorage_clear_data_dialog_title" msgid="345457466368974706">"Εκκαθάριση αποθηκευμένων δεδομένων"</string>
<string name="webstorage_clear_data_dialog_message" msgid="6678281256970470125">"Όλα τα δεδομένα που αποθηκεύτηκαν από αυτόν τον ιστότοπο θα διαγραφούν"</string>
- <string name="webstorage_clear_data_dialog_ok_button" msgid="2516563534211898636">"Εκκαθάριση όλων"</string>
+ <!-- no translation found for webstorage_clear_data_dialog_ok_button (2516563534211898636) -->
+ <skip />
<string name="webstorage_clear_data_dialog_cancel_button" msgid="2028867751958942762">"Άκυρο"</string>
<string name="webstorage_origin_summary_mb_stored" msgid="1985885826292236210">"MB αποθηκευμένα στο τηλέφωνό σας"</string>
- <string name="loading_video" msgid="4887871585216091096">"Φόρτωση βίντεο"</string>
- <string name="geolocation_permissions_prompt_message" msgid="356796102004052471">"Η σελίδα <xliff:g id="WEBSITE_ORIGIN">%s</xliff:g> θέλει να μάθει την τοποθεσία σας"</string>
- <string name="geolocation_permissions_prompt_share" msgid="9084486342048347976">"Κοινή χρήση τοποθεσίας"</string>
- <string name="geolocation_permissions_prompt_dont_share" msgid="6303025160237860300">"Απόρριψη"</string>
- <string name="geolocation_permissions_prompt_remember" msgid="3118526300707348308">"Διατήρηση προτίμησης"</string>
+ <!-- no translation found for loading_video (4887871585216091096) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_message (356796102004052471) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_share (9084486342048347976) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_dont_share (6303025160237860300) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_remember (3118526300707348308) -->
+ <skip />
<string name="geolocation_settings_page_title" msgid="1745477985097536528">"Εκκαθάριση πρόσβασης τοποθεσίας"</string>
<string name="geolocation_settings_page_summary_allowed" msgid="9180251524290811398">"Αυτήν τη στιγμή, αυτός ο ιστότοπος έχει πρόσβαση στην τοποθεσία σας"</string>
<string name="geolocation_settings_page_summary_not_allowed" msgid="4589649082203102544">"Δεν είναι δυνατή η πρόσβαση στην τοποθεσία σας από αυτόν τον ιστότοπο"</string>
@@ -285,10 +320,15 @@
<string name="geolocation_settings_page_dialog_message" msgid="7586671987576403993">"Η πρόσβαση στην τοποθεσία για αυτόν τον ιστότοπο θα απαλειφθεί"</string>
<string name="geolocation_settings_page_dialog_ok_button" msgid="4789434178048077287">"Εκκαθάριση πρόσβασης"</string>
<string name="geolocation_settings_page_dialog_cancel_button" msgid="7941036504673409747">"Άκυρο"</string>
- <string name="website_settings_clear_all" msgid="8739804325997655980">"Εκκαθάριση όλων"</string>
- <string name="website_settings_clear_all_dialog_title" msgid="7791826325122461718">"Εκκαθάριση όλων των ρυθμίσεων ιστοτόπου;"</string>
- <string name="website_settings_clear_all_dialog_message" msgid="6150502090601476333">"Θα γίνει διαγραφή όλων των δεδομένων ιστοτόπων και αδειών τοποθεσιών."</string>
- <string name="website_settings_clear_all_dialog_ok_button" msgid="6401582240627669431">"Διαγραφή όλων των δεδομένων"</string>
- <string name="website_settings_clear_all_dialog_cancel_button" msgid="1896757051856611674">"Ακύρωση"</string>
+ <!-- no translation found for website_settings_clear_all (8739804325997655980) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_title (7791826325122461718) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_message (6150502090601476333) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_ok_button (6401582240627669431) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_cancel_button (1896757051856611674) -->
+ <skip />
<string name="zoom_overview_button_text" msgid="4146579940085488881">"Επισκόπηση"</string>
</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 1b1f6e2..bac94e5 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -16,6 +16,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"Navegador"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
<string name="new_tab" msgid="4505722538297295141">"Ventana nueva"</string>
<string name="active_tabs" msgid="3050623868203544623">"Windows"</string>
<string name="tab_bookmarks" msgid="2305793036003473653">"Marcadores"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index f261691..0dd77f8 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -16,8 +16,12 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"Navegador"</string>
- <string name="new_tab" msgid="4505722538297295141">"Nueva ventana"</string>
- <string name="active_tabs" msgid="3050623868203544623">"Ventanas"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
+ <!-- no translation found for new_tab (4505722538297295141) -->
+ <skip />
+ <!-- no translation found for active_tabs (3050623868203544623) -->
+ <skip />
<string name="tab_bookmarks" msgid="2305793036003473653">"Marcadores"</string>
<string name="tab_most_visited" msgid="1077402532455000703">"Más visitados"</string>
<string name="tab_history" msgid="1979267558744613746">"Historial"</string>
@@ -78,8 +82,10 @@
<string name="remove_history_item" msgid="5021424935726728618">"Elliminar del historial"</string>
<string name="set_as_homepage" msgid="4752937379414905560">"Establecer como página principal"</string>
<string name="bookmark_saved" msgid="2766434679871317557">"Guardar en marcadores"</string>
- <string name="bookmark_not_saved" msgid="700600955089376724">"No se ha podido guardar el marcador."</string>
- <string name="homepage_set" msgid="8768087280310966395">"Página principal establecida"</string>
+ <!-- no translation found for bookmark_not_saved (700600955089376724) -->
+ <skip />
+ <!-- no translation found for homepage_set (8768087280310966395) -->
+ <skip />
<string name="bookmark_needs_title" msgid="6245900436119218187">"El marcador debe tener un nombre."</string>
<string name="bookmark_needs_url" msgid="7809876865972755158">"El marcador debe tener una ubicación."</string>
<string name="empty_bookmark" msgid="7008697085928540511">"No se puede crear un marcador vacío."</string>
@@ -107,7 +113,8 @@
<string name="shortcut_bookmark" msgid="3974876480401135895">"Marcar"</string>
<string name="history" msgid="2451240511251410032">"Historial"</string>
<string name="menu_view_download" msgid="2124570321712995120">"Descargas"</string>
- <string name="copy_page_url" msgid="7635062169011319208">"Copiar URL de página"</string>
+ <!-- no translation found for copy_page_url (7635062169011319208) -->
+ <skip />
<string name="share_page" msgid="593756995297268343">"Compartir página"</string>
<string name="contextmenu_openlink" msgid="7237961252214188935">"Abrir"</string>
<string name="contextmenu_openlink_newwindow" msgid="992765050093960353">"Abrir en ventana nueva"</string>
@@ -122,40 +129,54 @@
<string name="contextmenu_add_contact" msgid="3183511922223645716">"Añadir contacto"</string>
<string name="contextmenu_send_mail" msgid="1014513374828775660">"Enviar mensaje de correo electrónico"</string>
<string name="contextmenu_map" msgid="7471390435434034912">"Mapa"</string>
- <string name="choosertitle_sharevia" msgid="4600490613341909086">"Compartir a través de"</string>
+ <!-- no translation found for choosertitle_sharevia (4600490613341909086) -->
+ <skip />
<string name="clear" msgid="7070043081700011461">"Borrar"</string>
<string name="replace" msgid="4843033491070384047">"Sustituir"</string>
<string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"Marcadores"</string>
<string name="menu_preferences" msgid="6709237687234102240">"Ajustes"</string>
<string name="pref_content_title" msgid="722227111894838633">"Configuración de contenido de la página"</string>
<string name="pref_content_load_images" msgid="2125616852957377561">"Cargar imágenes"</string>
- <string name="pref_content_load_images_summary" msgid="5055874125248398584">"Mostrar imágenes en páginas web"</string>
+ <!-- no translation found for pref_content_load_images_summary (5055874125248398584) -->
+ <skip />
<string name="pref_content_block_popups" msgid="7808433807197256726">"Bloquear ventanas emer."</string>
<string name="pref_content_javascript" msgid="4570972030299516843">"Habilitar JavaScript"</string>
<string name="pref_content_open_in_background" msgid="824123779725118663">"Abrir en segundo plano"</string>
- <string name="pref_content_plugins" msgid="7231944644794301582">"Habilitar complementos"</string>
- <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Abrir nuevas ventanas detrás de la actual"</string>
+ <!-- no translation found for pref_content_plugins (7231944644794301582) -->
+ <skip />
+ <!-- no translation found for pref_content_open_in_background_summary (1737664075721181678) -->
+ <skip />
<string name="pref_content_homepage" msgid="6082437160778559806">"Establecer página principal"</string>
<string name="pref_content_autofit" msgid="8260474534053660809">"Ajustar páginas automát."</string>
- <string name="pref_content_autofit_summary" msgid="4587831659894879986">"Configurar las páginas web para ajustarlas a la pantalla"</string>
- <string name="pref_content_landscape_only" msgid="2022546812766219672">"Vista solo horizontal"</string>
- <string name="pref_content_landscape_only_summary" msgid="1008238895535428855">"Mostrar solo las páginas con la orientación de pantalla horizontal"</string>
+ <!-- no translation found for pref_content_autofit_summary (4587831659894879986) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only (2022546812766219672) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only_summary (1008238895535428855) -->
+ <skip />
<string name="pref_privacy_title" msgid="1052470980370846151">"Configuración de privacidad"</string>
<string name="pref_privacy_clear_cache" msgid="3380316479925886998">"Borrar caché"</string>
<string name="pref_privacy_clear_cache_summary" msgid="2216463577207991454">"Borrar bases de datos y contenido de la memoria caché local"</string>
- <string name="pref_privacy_clear_cache_dlg" msgid="5541011591300753881">"Las bases de datos y el contenido se eliminarán de la memoria caché local."</string>
+ <!-- no translation found for pref_privacy_clear_cache_dlg (5541011591300753881) -->
+ <skip />
<string name="pref_privacy_clear_cookies" msgid="3095583579133780331">"Borrar los datos de cookies"</string>
- <string name="pref_privacy_clear_cookies_summary" msgid="6962742063990677520">"Borrar todas las cookies del navegador"</string>
- <string name="pref_privacy_clear_cookies_dlg" msgid="552855688091432682">"Se eliminarán todas las cookies."</string>
+ <!-- no translation found for pref_privacy_clear_cookies_summary (6962742063990677520) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_cookies_dlg (552855688091432682) -->
+ <skip />
<string name="pref_privacy_clear_history" msgid="8723795508825198477">"Borrar historial"</string>
<string name="pref_privacy_clear_history_summary" msgid="6868501330708940734">"Borrar el historial de exploración del navegador"</string>
- <string name="pref_privacy_clear_history_dlg" msgid="544903007914753853">"Se eliminará el historial de exploración del navegador."</string>
+ <!-- no translation found for pref_privacy_clear_history_dlg (544903007914753853) -->
+ <skip />
<string name="pref_privacy_clear_form_data" msgid="4232668196344383987">"Borrar datos de formulario"</string>
<string name="pref_privacy_clear_form_data_summary" msgid="1790390894719517167">"Borrar todos los datos guardados del formulario"</string>
- <string name="pref_privacy_clear_form_data_dlg" msgid="4443621086781197928">"Se eliminarán todos los datos guardados del formulario."</string>
+ <!-- no translation found for pref_privacy_clear_form_data_dlg (4443621086781197928) -->
+ <skip />
<string name="pref_privacy_clear_passwords" msgid="4750234112289277480">"Borrar contraseñas"</string>
- <string name="pref_privacy_clear_passwords_summary" msgid="8856782718942903335">"Borrar todas las contraseñas guardadas"</string>
- <string name="pref_privacy_clear_passwords_dlg" msgid="2083869328824248255">"Se eliminarán todas las contraseñas guardadas."</string>
+ <!-- no translation found for pref_privacy_clear_passwords_summary (8856782718942903335) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_passwords_dlg (2083869328824248255) -->
+ <skip />
<string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"Habilitar ubicación"</string>
<string name="pref_privacy_enable_geolocation_summary" msgid="8437020934664306205">"Permitir que los sitios soliciten acceso a tu ubicación"</string>
<string name="pref_privacy_clear_geolocation_access" msgid="6649680770030042980">"Permitir acceso a la ubicación"</string>
@@ -163,7 +184,8 @@
<string name="pref_privacy_clear_geolocation_access_dlg" msgid="7327063124488827244">"Permitir que todos los sitios web accedan a la ubicación"</string>
<string name="pref_security_title" msgid="5763978646932160021">"Configuración de seguridad"</string>
<string name="pref_security_remember_passwords" msgid="6492957683454529549">"Recordar contraseñas"</string>
- <string name="pref_security_remember_passwords_summary" msgid="256388703356349137">"Guardar nombres de usuario y contraseñas de sitios web"</string>
+ <!-- no translation found for pref_security_remember_passwords_summary (256388703356349137) -->
+ <skip />
<string name="pref_security_save_form_data" msgid="1213669802810198893">"Recordar formularios"</string>
<string name="pref_security_save_form_data_summary" msgid="4994074685153708026">"Recordar datos introducidos en formularios"</string>
<string name="pref_security_show_security_warning" msgid="8901135676266754559">"Mostrar advertencias"</string>
@@ -186,14 +208,17 @@
<item msgid="3840999588443167001">"Cerca"</item>
</string-array>
<string name="pref_default_zoom_dialogtitle" msgid="6095974367125109021">"Zoom predeterminado"</string>
- <string name="pref_content_load_page" msgid="2219810141690955452">"Abrir páginas en visión general"</string>
- <string name="pref_content_load_page_summary" msgid="8792093504054149369">"Mostrar información general de las páginas abiertas recientemente"</string>
+ <!-- no translation found for pref_content_load_page (2219810141690955452) -->
+ <skip />
+ <!-- no translation found for pref_content_load_page_summary (8792093504054149369) -->
+ <skip />
<string name="pref_extras_title" msgid="3091250467679722382">"Configuración avanzada"</string>
<string name="pref_extras_website_settings" msgid="67866640052455549">"Configuración del sitio web"</string>
<string name="pref_extras_website_settings_summary" msgid="3917568895776162240">"Ver configuración avanzada de sitios web individuales"</string>
<string name="pref_extras_reset_default" msgid="8904000515846202110">"Restablecer valores pred."</string>
<string name="pref_extras_reset_default_summary" msgid="7984680562706914966">"Borrar todos los datos del navegador y restablecer la configuración predeterminada"</string>
- <string name="pref_extras_reset_default_dlg" msgid="6894807766578874830">"Se eliminarán todos los datos del navegador y se restablecerá la configuración predeterminada."</string>
+ <!-- no translation found for pref_extras_reset_default_dlg (6894807766578874830) -->
+ <skip />
<string name="pref_extras_reset_default_dlg_title" msgid="2250334970728938936">"Restablecer valores predeterminados"</string>
<string name="pref_development_title" msgid="3263854204533056480">"Depurar"</string>
<string name="pref_default_text_encoding" msgid="5742965543955558478">"Codificación de texto"</string>
@@ -207,15 +232,18 @@
<string name="pref_default_text_encoding_dialogtitle" msgid="5508255018084978547">"Codificación de texto"</string>
<string name="pref_default_text_encoding_default" msgid="5272126711231936722">"Latín-1"</string>
<string name="browserFrameRedirect" msgid="7049675479777828343">"Redireccionamiento"</string>
- <string name="browserFrame307Post" msgid="1429094844669510768">"Esta página web se ha redirigido a otra ubicación. ¿Quieres enviar los datos del formulario cumplimentado a la nueva ubicación?"</string>
+ <!-- no translation found for browserFrame307Post (1429094844669510768) -->
+ <skip />
<string name="browserFrameNetworkErrorLabel" msgid="126892350904924893">"Problema de conectividad de datos"</string>
<string name="browserFrameFileErrorLabel" msgid="8063691502792670367">"Problema con archivo"</string>
<string name="browserFrameFormResubmitLabel" msgid="2685923472682180360">"OK"</string>
<string name="browserFrameFormResubmitMessage" msgid="2752182215695632138">"La página que intentas ver contiene datos que ya se han enviado (\"POSTDATA\"). Si reenvías los datos, se repetirá cualquier acción realizada por el formulario de la página (como las búsquedas o las compras online)."</string>
<string name="loadSuspendedTitle" msgid="675991625288706944">"Sin conexión de red"</string>
- <string name="loadSuspended" msgid="3133656588880851273">"El navegador no puede cargar esta página porque no existe conexión a Internet."</string>
+ <!-- no translation found for loadSuspended (3133656588880851273) -->
+ <skip />
<string name="clear_history" msgid="5998307092715979619">"Borrar historial"</string>
- <string name="browser_history" msgid="1038987118290272525">"Páginas visitadas recientemente"</string>
+ <!-- no translation found for browser_history (1038987118290272525) -->
+ <skip />
<string name="empty_history" msgid="8738772352308207274">"El historial del navegador está vacío."</string>
<string name="add_new_bookmark" msgid="8086367791400349049">"Añadir marcador…"</string>
<string name="add_bookmark_short" msgid="3783984330998103735">"Añadir"</string>
@@ -258,7 +286,8 @@
<string name="download_pending_network" msgid="6548714525679461053">"Esperando conexión de datos…"</string>
<string name="download_running_paused" msgid="6418029352085656495">"Esperando conexión de datos…"</string>
<string name="download_canceled" msgid="6057083743144492515">"Descarga cancelada"</string>
- <string name="download_not_acceptable" msgid="313769696131563652">"No se puede realizar la descarga, porque el teléfono no admite el contenido que se quiere descargar."</string>
+ <!-- no translation found for download_not_acceptable (313769696131563652) -->
+ <skip />
<string name="download_file_error" msgid="1206648050615176113">"No se puede completar la descarga porque no hay suficiente espacio."</string>
<string name="download_length_required" msgid="9038605488460437406">"No se puede realizar la descarga, porque no es posible determinar el tamaño del elemento."</string>
<string name="download_precondition_failed" msgid="8327584102874295580">"La descarga se ha interrumpido y no se puede reanudar."</string>
@@ -270,14 +299,20 @@
<string name="webstorage_clear_data_summary" msgid="3523128713743907805">"Eliminar todas las bases de datos asociadas a este sitio web"</string>
<string name="webstorage_clear_data_dialog_title" msgid="345457466368974706">"Borrar datos almacenados"</string>
<string name="webstorage_clear_data_dialog_message" msgid="6678281256970470125">"Todos los datos almacenados por este sitio web se eliminarán."</string>
- <string name="webstorage_clear_data_dialog_ok_button" msgid="2516563534211898636">"Borrar todo"</string>
+ <!-- no translation found for webstorage_clear_data_dialog_ok_button (2516563534211898636) -->
+ <skip />
<string name="webstorage_clear_data_dialog_cancel_button" msgid="2028867751958942762">"Cancelar"</string>
<string name="webstorage_origin_summary_mb_stored" msgid="1985885826292236210">"MB almacenados en tu teléfono"</string>
- <string name="loading_video" msgid="4887871585216091096">"Cargando vídeo"</string>
- <string name="geolocation_permissions_prompt_message" msgid="356796102004052471">"<xliff:g id="WEBSITE_ORIGIN">%s</xliff:g> quiere conocer tu ubicación."</string>
- <string name="geolocation_permissions_prompt_share" msgid="9084486342048347976">"Compartir ubicación"</string>
- <string name="geolocation_permissions_prompt_dont_share" msgid="6303025160237860300">"Rechazar"</string>
- <string name="geolocation_permissions_prompt_remember" msgid="3118526300707348308">"Recordar preferencia"</string>
+ <!-- no translation found for loading_video (4887871585216091096) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_message (356796102004052471) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_share (9084486342048347976) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_dont_share (6303025160237860300) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_remember (3118526300707348308) -->
+ <skip />
<string name="geolocation_settings_page_title" msgid="1745477985097536528">"Permitir acceso a la ubicación"</string>
<string name="geolocation_settings_page_summary_allowed" msgid="9180251524290811398">"Este sitio puede acceder actualmente a tu ubicación."</string>
<string name="geolocation_settings_page_summary_not_allowed" msgid="4589649082203102544">"Este sitio no puede acceder actualmente a tu ubicación."</string>
@@ -285,10 +320,15 @@
<string name="geolocation_settings_page_dialog_message" msgid="7586671987576403993">"Se permitirá que este sitio web acceda a tu ubicación."</string>
<string name="geolocation_settings_page_dialog_ok_button" msgid="4789434178048077287">"Permitir acceso"</string>
<string name="geolocation_settings_page_dialog_cancel_button" msgid="7941036504673409747">"Cancelar"</string>
- <string name="website_settings_clear_all" msgid="8739804325997655980">"Borrar todo"</string>
- <string name="website_settings_clear_all_dialog_title" msgid="7791826325122461718">"¿Quieres borrar toda la configuración del sitio web?"</string>
- <string name="website_settings_clear_all_dialog_message" msgid="6150502090601476333">"Se eliminarán todos los permisos de ubicación y los datos del sitio web."</string>
- <string name="website_settings_clear_all_dialog_ok_button" msgid="6401582240627669431">"Eliminar todos los datos"</string>
- <string name="website_settings_clear_all_dialog_cancel_button" msgid="1896757051856611674">"Cancelar"</string>
+ <!-- no translation found for website_settings_clear_all (8739804325997655980) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_title (7791826325122461718) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_message (6150502090601476333) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_ok_button (6401582240627669431) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_cancel_button (1896757051856611674) -->
+ <skip />
<string name="zoom_overview_button_text" msgid="4146579940085488881">"Información general"</string>
</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index cd37d4d..33eaba4 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -16,8 +16,12 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"Navigateur"</string>
- <string name="new_tab" msgid="4505722538297295141">"Nouvelle fenêtre"</string>
- <string name="active_tabs" msgid="3050623868203544623">"Fenêtres"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
+ <!-- no translation found for new_tab (4505722538297295141) -->
+ <skip />
+ <!-- no translation found for active_tabs (3050623868203544623) -->
+ <skip />
<string name="tab_bookmarks" msgid="2305793036003473653">"Favoris"</string>
<string name="tab_most_visited" msgid="1077402532455000703">"Les + visités"</string>
<string name="tab_history" msgid="1979267558744613746">"Historique"</string>
@@ -78,8 +82,10 @@
<string name="remove_history_item" msgid="5021424935726728618">"Supprimer de l\'historique"</string>
<string name="set_as_homepage" msgid="4752937379414905560">"Définir comme page d\'accueil"</string>
<string name="bookmark_saved" msgid="2766434679871317557">"Enregistré dans les favoris"</string>
- <string name="bookmark_not_saved" msgid="700600955089376724">"Impossible d\'enregistrer le favori."</string>
- <string name="homepage_set" msgid="8768087280310966395">"La page d\'accueil a été définie."</string>
+ <!-- no translation found for bookmark_not_saved (700600955089376724) -->
+ <skip />
+ <!-- no translation found for homepage_set (8768087280310966395) -->
+ <skip />
<string name="bookmark_needs_title" msgid="6245900436119218187">"Vous devez attribuer un nom à votre favori."</string>
<string name="bookmark_needs_url" msgid="7809876865972755158">"Le favori doit disposer d\'un emplacement."</string>
<string name="empty_bookmark" msgid="7008697085928540511">"Impossible de créer un favori vide."</string>
@@ -107,7 +113,8 @@
<string name="shortcut_bookmark" msgid="3974876480401135895">"Favori"</string>
<string name="history" msgid="2451240511251410032">"Historique"</string>
<string name="menu_view_download" msgid="2124570321712995120">"Téléchargements"</string>
- <string name="copy_page_url" msgid="7635062169011319208">"Copier l\'URL de la page"</string>
+ <!-- no translation found for copy_page_url (7635062169011319208) -->
+ <skip />
<string name="share_page" msgid="593756995297268343">"Partager la page"</string>
<string name="contextmenu_openlink" msgid="7237961252214188935">"Ouvrir"</string>
<string name="contextmenu_openlink_newwindow" msgid="992765050093960353">"Ouvrir une nouvelle fenêtre"</string>
@@ -122,40 +129,54 @@
<string name="contextmenu_add_contact" msgid="3183511922223645716">"Ajouter un contact"</string>
<string name="contextmenu_send_mail" msgid="1014513374828775660">"Envoyer un e-mail"</string>
<string name="contextmenu_map" msgid="7471390435434034912">"Plan"</string>
- <string name="choosertitle_sharevia" msgid="4600490613341909086">"Partager via"</string>
+ <!-- no translation found for choosertitle_sharevia (4600490613341909086) -->
+ <skip />
<string name="clear" msgid="7070043081700011461">"Effacer"</string>
<string name="replace" msgid="4843033491070384047">"Remplacer"</string>
<string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"Favoris"</string>
<string name="menu_preferences" msgid="6709237687234102240">"Paramètres"</string>
<string name="pref_content_title" msgid="722227111894838633">"Paramètres du contenu de la page"</string>
<string name="pref_content_load_images" msgid="2125616852957377561">"Charger les images"</string>
- <string name="pref_content_load_images_summary" msgid="5055874125248398584">"Afficher les images des pages Web"</string>
+ <!-- no translation found for pref_content_load_images_summary (5055874125248398584) -->
+ <skip />
<string name="pref_content_block_popups" msgid="7808433807197256726">"Bloquer les pop-up"</string>
<string name="pref_content_javascript" msgid="4570972030299516843">"Activer JavaScript"</string>
<string name="pref_content_open_in_background" msgid="824123779725118663">"Ouvrir en arrière-plan"</string>
- <string name="pref_content_plugins" msgid="7231944644794301582">"Activer les plug-ins"</string>
- <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Ouvrir les nouvelles fenêtres derrière la fenêtre actuelle"</string>
+ <!-- no translation found for pref_content_plugins (7231944644794301582) -->
+ <skip />
+ <!-- no translation found for pref_content_open_in_background_summary (1737664075721181678) -->
+ <skip />
<string name="pref_content_homepage" msgid="6082437160778559806">"Configurer la page d\'accueil"</string>
<string name="pref_content_autofit" msgid="8260474534053660809">"Redimensionner"</string>
- <string name="pref_content_autofit_summary" msgid="4587831659894879986">"Configurer les pages Web pour qu\'elles s\'ajustent à l\'écran"</string>
- <string name="pref_content_landscape_only" msgid="2022546812766219672">"Affichage en mode Paysage uniquement"</string>
- <string name="pref_content_landscape_only_summary" msgid="1008238895535428855">"Toujours afficher les pages dans le sens de la largeur, en orientation paysage"</string>
+ <!-- no translation found for pref_content_autofit_summary (4587831659894879986) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only (2022546812766219672) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only_summary (1008238895535428855) -->
+ <skip />
<string name="pref_privacy_title" msgid="1052470980370846151">"Paramètres de confidentialité"</string>
<string name="pref_privacy_clear_cache" msgid="3380316479925886998">"Effacer le cache"</string>
<string name="pref_privacy_clear_cache_summary" msgid="2216463577207991454">"Supprimer les bases de données et le contenu mis localement en cache"</string>
- <string name="pref_privacy_clear_cache_dlg" msgid="5541011591300753881">"Les bases de données et le contenu mis localement en cache vont être supprimés."</string>
+ <!-- no translation found for pref_privacy_clear_cache_dlg (5541011591300753881) -->
+ <skip />
<string name="pref_privacy_clear_cookies" msgid="3095583579133780331">"Effacer tous les cookies"</string>
- <string name="pref_privacy_clear_cookies_summary" msgid="6962742063990677520">"Effacer tous les cookies du navigateur"</string>
- <string name="pref_privacy_clear_cookies_dlg" msgid="552855688091432682">"Tous les cookies vont être supprimés."</string>
+ <!-- no translation found for pref_privacy_clear_cookies_summary (6962742063990677520) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_cookies_dlg (552855688091432682) -->
+ <skip />
<string name="pref_privacy_clear_history" msgid="8723795508825198477">"Effacer l\'historique"</string>
<string name="pref_privacy_clear_history_summary" msgid="6868501330708940734">"Effacer l\'historique du navigateur"</string>
- <string name="pref_privacy_clear_history_dlg" msgid="544903007914753853">"L\'historique du navigateur sera supprimé."</string>
+ <!-- no translation found for pref_privacy_clear_history_dlg (544903007914753853) -->
+ <skip />
<string name="pref_privacy_clear_form_data" msgid="4232668196344383987">"Eff. données formulaires"</string>
<string name="pref_privacy_clear_form_data_summary" msgid="1790390894719517167">"Effacer toutes les données de formulaire enregistrées"</string>
- <string name="pref_privacy_clear_form_data_dlg" msgid="4443621086781197928">"Toutes les données de formulaire enregistrées seront supprimées."</string>
+ <!-- no translation found for pref_privacy_clear_form_data_dlg (4443621086781197928) -->
+ <skip />
<string name="pref_privacy_clear_passwords" msgid="4750234112289277480">"Effacer les mots de passe"</string>
- <string name="pref_privacy_clear_passwords_summary" msgid="8856782718942903335">"Effacer tous les mots de passe enregistrés"</string>
- <string name="pref_privacy_clear_passwords_dlg" msgid="2083869328824248255">"Tous les mots de passe enregistrés seront effacés."</string>
+ <!-- no translation found for pref_privacy_clear_passwords_summary (8856782718942903335) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_passwords_dlg (2083869328824248255) -->
+ <skip />
<string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"Activer la localisation"</string>
<string name="pref_privacy_enable_geolocation_summary" msgid="8437020934664306205">"Autoriser les sites à demander l\'accès à vos données de localisation"</string>
<string name="pref_privacy_clear_geolocation_access" msgid="6649680770030042980">"Supprimer l\'accès aux données de localisation"</string>
@@ -163,7 +184,8 @@
<string name="pref_privacy_clear_geolocation_access_dlg" msgid="7327063124488827244">"Supprimer l\'accès aux données de localisation pour tous les sites Web"</string>
<string name="pref_security_title" msgid="5763978646932160021">"Paramètres de sécurité"</string>
<string name="pref_security_remember_passwords" msgid="6492957683454529549">"Mém. mots de passe"</string>
- <string name="pref_security_remember_passwords_summary" msgid="256388703356349137">"Enregistrer les noms d\'utilisateur et les mots de passe pour les sites Web"</string>
+ <!-- no translation found for pref_security_remember_passwords_summary (256388703356349137) -->
+ <skip />
<string name="pref_security_save_form_data" msgid="1213669802810198893">"Mém. données formulaire"</string>
<string name="pref_security_save_form_data_summary" msgid="4994074685153708026">"Mémoriser les données saisies dans les formulaires pour les réutiliser"</string>
<string name="pref_security_show_security_warning" msgid="8901135676266754559">"Avertiss. de sécurité"</string>
@@ -186,14 +208,17 @@
<item msgid="3840999588443167001">"Proche"</item>
</string-array>
<string name="pref_default_zoom_dialogtitle" msgid="6095974367125109021">"Zoom par défaut"</string>
- <string name="pref_content_load_page" msgid="2219810141690955452">"Ouvrir les pages avec une vue d\'ensemble"</string>
- <string name="pref_content_load_page_summary" msgid="8792093504054149369">"Afficher une vue d\'ensemble des pages qui viennent d\'être ouvertes"</string>
+ <!-- no translation found for pref_content_load_page (2219810141690955452) -->
+ <skip />
+ <!-- no translation found for pref_content_load_page_summary (8792093504054149369) -->
+ <skip />
<string name="pref_extras_title" msgid="3091250467679722382">"Paramètres avancés"</string>
<string name="pref_extras_website_settings" msgid="67866640052455549">"Paramètres du site Web"</string>
<string name="pref_extras_website_settings_summary" msgid="3917568895776162240">"Afficher les paramètres avancés de sites Web individuels"</string>
<string name="pref_extras_reset_default" msgid="8904000515846202110">"Rétablir valeurs par défaut"</string>
<string name="pref_extras_reset_default_summary" msgid="7984680562706914966">"Effacer toutes les données du navigateur et rétablir les paramètres par défaut"</string>
- <string name="pref_extras_reset_default_dlg" msgid="6894807766578874830">"Toutes les données du navigateur seront supprimées et les paramètres par défaut rétablis."</string>
+ <!-- no translation found for pref_extras_reset_default_dlg (6894807766578874830) -->
+ <skip />
<string name="pref_extras_reset_default_dlg_title" msgid="2250334970728938936">"Rétablir les valeurs par défaut"</string>
<string name="pref_development_title" msgid="3263854204533056480">"Débogage"</string>
<string name="pref_default_text_encoding" msgid="5742965543955558478">"Codage du texte"</string>
@@ -207,15 +232,18 @@
<string name="pref_default_text_encoding_dialogtitle" msgid="5508255018084978547">"Codage du texte"</string>
<string name="pref_default_text_encoding_default" msgid="5272126711231936722">"Latin-1"</string>
<string name="browserFrameRedirect" msgid="7049675479777828343">"Rediriger"</string>
- <string name="browserFrame307Post" msgid="1429094844669510768">"Cette page Web est en cours de redirection. Voulez-vous renvoyer les données de formulaire saisies vers le nouvel emplacement ?"</string>
+ <!-- no translation found for browserFrame307Post (1429094844669510768) -->
+ <skip />
<string name="browserFrameNetworkErrorLabel" msgid="126892350904924893">"Problème de connectivité des données"</string>
<string name="browserFrameFileErrorLabel" msgid="8063691502792670367">"Problème de fichier"</string>
<string name="browserFrameFormResubmitLabel" msgid="2685923472682180360">"Confirmer"</string>
<string name="browserFrameFormResubmitMessage" msgid="2752182215695632138">"La page que vous tentez d\'afficher contient des données qui ont déjà été envoyées (\"POSTDATA\"). Si vous renvoyez les données, toute action effectuée par le formulaire sur la page exécutée (notamment les lancements de recherche ou les achats en ligne) sera répétée."</string>
<string name="loadSuspendedTitle" msgid="675991625288706944">"Aucune connexion réseau"</string>
- <string name="loadSuspended" msgid="3133656588880851273">"Impossible de charger cette page dans le navigateur, car il n\'y a pas de connexion Internet."</string>
+ <!-- no translation found for loadSuspended (3133656588880851273) -->
+ <skip />
<string name="clear_history" msgid="5998307092715979619">"Effacer l\'historique"</string>
- <string name="browser_history" msgid="1038987118290272525">"Pages récemment consultées"</string>
+ <!-- no translation found for browser_history (1038987118290272525) -->
+ <skip />
<string name="empty_history" msgid="8738772352308207274">"L\'historique du navigateur est vide."</string>
<string name="add_new_bookmark" msgid="8086367791400349049">"Ajouter aux favoris..."</string>
<string name="add_bookmark_short" msgid="3783984330998103735">"Ajouter"</string>
@@ -258,7 +286,8 @@
<string name="download_pending_network" msgid="6548714525679461053">"En attente d\'une connexion de données..."</string>
<string name="download_running_paused" msgid="6418029352085656495">"En attente d\'une connexion de données..."</string>
<string name="download_canceled" msgid="6057083743144492515">"Téléchargement annulé"</string>
- <string name="download_not_acceptable" msgid="313769696131563652">"Impossible d\'effectuer le téléchargement. Le contenu n\'est pas pris en charge sur ce téléphone."</string>
+ <!-- no translation found for download_not_acceptable (313769696131563652) -->
+ <skip />
<string name="download_file_error" msgid="1206648050615176113">"Téléchargement interrompu. Espace insuffisant."</string>
<string name="download_length_required" msgid="9038605488460437406">"Téléchargement impossible. La taille de l\'élément n\'a pas pu être déterminée."</string>
<string name="download_precondition_failed" msgid="8327584102874295580">"Téléchargement interrompu. Impossible de reprendre le téléchargement."</string>
@@ -270,14 +299,20 @@
<string name="webstorage_clear_data_summary" msgid="3523128713743907805">"Supprimer toutes les bases de données associées à ce site Web"</string>
<string name="webstorage_clear_data_dialog_title" msgid="345457466368974706">"Effacer les données stockées"</string>
<string name="webstorage_clear_data_dialog_message" msgid="6678281256970470125">"Toutes les données stockées par le site Web vont être supprimées."</string>
- <string name="webstorage_clear_data_dialog_ok_button" msgid="2516563534211898636">"Tout effacer"</string>
+ <!-- no translation found for webstorage_clear_data_dialog_ok_button (2516563534211898636) -->
+ <skip />
<string name="webstorage_clear_data_dialog_cancel_button" msgid="2028867751958942762">"Annuler"</string>
<string name="webstorage_origin_summary_mb_stored" msgid="1985885826292236210">"Mo stockés sur votre téléphone"</string>
- <string name="loading_video" msgid="4887871585216091096">"Chargement de la vidéo"</string>
- <string name="geolocation_permissions_prompt_message" msgid="356796102004052471">"<xliff:g id="WEBSITE_ORIGIN">%s</xliff:g> souhaite connaître votre position géographique."</string>
- <string name="geolocation_permissions_prompt_share" msgid="9084486342048347976">"Partager ma position"</string>
- <string name="geolocation_permissions_prompt_dont_share" msgid="6303025160237860300">"Refuser"</string>
- <string name="geolocation_permissions_prompt_remember" msgid="3118526300707348308">"Mémoriser les préférences"</string>
+ <!-- no translation found for loading_video (4887871585216091096) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_message (356796102004052471) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_share (9084486342048347976) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_dont_share (6303025160237860300) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_remember (3118526300707348308) -->
+ <skip />
<string name="geolocation_settings_page_title" msgid="1745477985097536528">"Supprimer l\'accès aux données de localisation"</string>
<string name="geolocation_settings_page_summary_allowed" msgid="9180251524290811398">"Ce site a actuellement accès à vos données de localisation."</string>
<string name="geolocation_settings_page_summary_not_allowed" msgid="4589649082203102544">"Ce site n\'a actuellement pas accès à vos données de localisation."</string>
@@ -285,10 +320,15 @@
<string name="geolocation_settings_page_dialog_message" msgid="7586671987576403993">"L\'accès de ce site Web aux données de localisation va être supprimé."</string>
<string name="geolocation_settings_page_dialog_ok_button" msgid="4789434178048077287">"Supprimer l\'accès"</string>
<string name="geolocation_settings_page_dialog_cancel_button" msgid="7941036504673409747">"Annuler"</string>
- <string name="website_settings_clear_all" msgid="8739804325997655980">"Tout effacer"</string>
- <string name="website_settings_clear_all_dialog_title" msgid="7791826325122461718">"Effacer tous les paramètres du site Web ?"</string>
- <string name="website_settings_clear_all_dialog_message" msgid="6150502090601476333">"Toutes les données du site Web et les autorisations de localisation seront supprimées."</string>
- <string name="website_settings_clear_all_dialog_ok_button" msgid="6401582240627669431">"Supprimer toutes les données"</string>
- <string name="website_settings_clear_all_dialog_cancel_button" msgid="1896757051856611674">"Annuler"</string>
+ <!-- no translation found for website_settings_clear_all (8739804325997655980) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_title (7791826325122461718) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_message (6150502090601476333) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_ok_button (6401582240627669431) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_cancel_button (1896757051856611674) -->
+ <skip />
<string name="zoom_overview_button_text" msgid="4146579940085488881">"Présentation"</string>
</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 1648486..c664be3 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -16,8 +16,12 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"Browser"</string>
- <string name="new_tab" msgid="4505722538297295141">"Nuova finestra"</string>
- <string name="active_tabs" msgid="3050623868203544623">"Finestre"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
+ <!-- no translation found for new_tab (4505722538297295141) -->
+ <skip />
+ <!-- no translation found for active_tabs (3050623868203544623) -->
+ <skip />
<string name="tab_bookmarks" msgid="2305793036003473653">"Segnalibri"</string>
<string name="tab_most_visited" msgid="1077402532455000703">"I più visitati"</string>
<string name="tab_history" msgid="1979267558744613746">"Cronologia"</string>
@@ -78,8 +82,10 @@
<string name="remove_history_item" msgid="5021424935726728618">"Rimuovi da cronologia"</string>
<string name="set_as_homepage" msgid="4752937379414905560">"Imposta come home page"</string>
<string name="bookmark_saved" msgid="2766434679871317557">"Salvato nei segnalibri."</string>
- <string name="bookmark_not_saved" msgid="700600955089376724">"Impossibile salvare il preferito."</string>
- <string name="homepage_set" msgid="8768087280310966395">"Home page impostata."</string>
+ <!-- no translation found for bookmark_not_saved (700600955089376724) -->
+ <skip />
+ <!-- no translation found for homepage_set (8768087280310966395) -->
+ <skip />
<string name="bookmark_needs_title" msgid="6245900436119218187">"Inserisci un nome per il segnalibro."</string>
<string name="bookmark_needs_url" msgid="7809876865972755158">"Inserisci un URL per il segnalibro."</string>
<string name="empty_bookmark" msgid="7008697085928540511">"Impossibile creare un segnalibro vuoto."</string>
@@ -107,7 +113,8 @@
<string name="shortcut_bookmark" msgid="3974876480401135895">"Segnalibro"</string>
<string name="history" msgid="2451240511251410032">"Cronologia"</string>
<string name="menu_view_download" msgid="2124570321712995120">"Download"</string>
- <string name="copy_page_url" msgid="7635062169011319208">"Copia URL della pagina"</string>
+ <!-- no translation found for copy_page_url (7635062169011319208) -->
+ <skip />
<string name="share_page" msgid="593756995297268343">"Condividi pagina"</string>
<string name="contextmenu_openlink" msgid="7237961252214188935">"Apri"</string>
<string name="contextmenu_openlink_newwindow" msgid="992765050093960353">"Apri in nuova finestra"</string>
@@ -122,48 +129,63 @@
<string name="contextmenu_add_contact" msgid="3183511922223645716">"Aggiungi contatto"</string>
<string name="contextmenu_send_mail" msgid="1014513374828775660">"Invia email"</string>
<string name="contextmenu_map" msgid="7471390435434034912">"Mappa"</string>
- <string name="choosertitle_sharevia" msgid="4600490613341909086">"Condividi tramite"</string>
+ <!-- no translation found for choosertitle_sharevia (4600490613341909086) -->
+ <skip />
<string name="clear" msgid="7070043081700011461">"Cancella"</string>
<string name="replace" msgid="4843033491070384047">"Sostituisci"</string>
<string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"Segnalibri"</string>
<string name="menu_preferences" msgid="6709237687234102240">"Impostazioni"</string>
<string name="pref_content_title" msgid="722227111894838633">"Impostazioni contenuti pagina"</string>
<string name="pref_content_load_images" msgid="2125616852957377561">"Carica immagini"</string>
- <string name="pref_content_load_images_summary" msgid="5055874125248398584">"Visualizza immagini in pagine web"</string>
+ <!-- no translation found for pref_content_load_images_summary (5055874125248398584) -->
+ <skip />
<string name="pref_content_block_popups" msgid="7808433807197256726">"Blocca finestre pop-up"</string>
<string name="pref_content_javascript" msgid="4570972030299516843">"Attiva JavaScript"</string>
<string name="pref_content_open_in_background" msgid="824123779725118663">"Apri in secondo piano"</string>
- <string name="pref_content_plugins" msgid="7231944644794301582">"Attiva plug-in"</string>
- <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Apri le nuove finestre dietro la finestra corrente"</string>
+ <!-- no translation found for pref_content_plugins (7231944644794301582) -->
+ <skip />
+ <!-- no translation found for pref_content_open_in_background_summary (1737664075721181678) -->
+ <skip />
<string name="pref_content_homepage" msgid="6082437160778559806">"Imposta home page"</string>
<string name="pref_content_autofit" msgid="8260474534053660809">"Adatta autom. pagine"</string>
- <string name="pref_content_autofit_summary" msgid="4587831659894879986">"Adatta le pagine web allo schermo"</string>
- <string name="pref_content_landscape_only" msgid="2022546812766219672">"Visualizzazione solo orizzontale"</string>
- <string name="pref_content_landscape_only_summary" msgid="1008238895535428855">"Visualizza le pagine solo con l\'orientamento dello schermo orizzontale più largo"</string>
+ <!-- no translation found for pref_content_autofit_summary (4587831659894879986) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only (2022546812766219672) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only_summary (1008238895535428855) -->
+ <skip />
<string name="pref_privacy_title" msgid="1052470980370846151">"Impostazioni privacy"</string>
<string name="pref_privacy_clear_cache" msgid="3380316479925886998">"Cancella cache"</string>
<string name="pref_privacy_clear_cache_summary" msgid="2216463577207991454">"Cancella i contenuti e i database memorizzati localmente nella cache"</string>
- <string name="pref_privacy_clear_cache_dlg" msgid="5541011591300753881">"I contenuti e i database memorizzati localmente nella cache verranno eliminati."</string>
+ <!-- no translation found for pref_privacy_clear_cache_dlg (5541011591300753881) -->
+ <skip />
<string name="pref_privacy_clear_cookies" msgid="3095583579133780331">"Cancella tutti i dati dei cookie"</string>
- <string name="pref_privacy_clear_cookies_summary" msgid="6962742063990677520">"Cancella tutti i cookie del browser"</string>
- <string name="pref_privacy_clear_cookies_dlg" msgid="552855688091432682">"Verranno eliminati tutti i cookie."</string>
+ <!-- no translation found for pref_privacy_clear_cookies_summary (6962742063990677520) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_cookies_dlg (552855688091432682) -->
+ <skip />
<string name="pref_privacy_clear_history" msgid="8723795508825198477">"Cancella cronologia"</string>
<string name="pref_privacy_clear_history_summary" msgid="6868501330708940734">"Cancella la cronologia di esplorazione del browser"</string>
- <string name="pref_privacy_clear_history_dlg" msgid="544903007914753853">"La cronologia di navigazione del browser verrà eliminata."</string>
+ <!-- no translation found for pref_privacy_clear_history_dlg (544903007914753853) -->
+ <skip />
<string name="pref_privacy_clear_form_data" msgid="4232668196344383987">"Cancella dati moduli"</string>
<string name="pref_privacy_clear_form_data_summary" msgid="1790390894719517167">"Cancella tutti i dati dei moduli salvati"</string>
- <string name="pref_privacy_clear_form_data_dlg" msgid="4443621086781197928">"Tutti i dati dei moduli salvati verranno eliminati."</string>
+ <!-- no translation found for pref_privacy_clear_form_data_dlg (4443621086781197928) -->
+ <skip />
<string name="pref_privacy_clear_passwords" msgid="4750234112289277480">"Cancella password"</string>
- <string name="pref_privacy_clear_passwords_summary" msgid="8856782718942903335">"Cancella tutte le password salvate"</string>
- <string name="pref_privacy_clear_passwords_dlg" msgid="2083869328824248255">"Tutte le password salvate verranno eliminate."</string>
- <string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"Attiva posizione"</string>
+ <!-- no translation found for pref_privacy_clear_passwords_summary (8856782718942903335) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_passwords_dlg (2083869328824248255) -->
+ <skip />
+ <string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"Attiva localizzazione"</string>
<string name="pref_privacy_enable_geolocation_summary" msgid="8437020934664306205">"Consenti ai siti di richiedere l\'accesso alla tua posizione"</string>
<string name="pref_privacy_clear_geolocation_access" msgid="6649680770030042980">"Cancella accesso a posizione"</string>
<string name="pref_privacy_clear_geolocation_access_summary" msgid="7750143359497314679">"Cancella l\'accesso alla posizione per tutti i siti web"</string>
<string name="pref_privacy_clear_geolocation_access_dlg" msgid="7327063124488827244">"Cancella l\'accesso alla posizione per tutti i siti web"</string>
<string name="pref_security_title" msgid="5763978646932160021">"Impostazioni di protezione"</string>
<string name="pref_security_remember_passwords" msgid="6492957683454529549">"Memorizza le password"</string>
- <string name="pref_security_remember_passwords_summary" msgid="256388703356349137">"Salva nomi utente e password per i siti web"</string>
+ <!-- no translation found for pref_security_remember_passwords_summary (256388703356349137) -->
+ <skip />
<string name="pref_security_save_form_data" msgid="1213669802810198893">"Memorizza dati moduli"</string>
<string name="pref_security_save_form_data_summary" msgid="4994074685153708026">"Memorizza i dati che digito nei moduli per usi futuri"</string>
<string name="pref_security_show_security_warning" msgid="8901135676266754559">"Mostra avvisi protezione"</string>
@@ -186,14 +208,17 @@
<item msgid="3840999588443167001">"Chiudi"</item>
</string-array>
<string name="pref_default_zoom_dialogtitle" msgid="6095974367125109021">"Zoom predefinito"</string>
- <string name="pref_content_load_page" msgid="2219810141690955452">"Apri pagine in panoramica"</string>
- <string name="pref_content_load_page_summary" msgid="8792093504054149369">"Visualizza la panoramica delle pagine appena aperte"</string>
+ <!-- no translation found for pref_content_load_page (2219810141690955452) -->
+ <skip />
+ <!-- no translation found for pref_content_load_page_summary (8792093504054149369) -->
+ <skip />
<string name="pref_extras_title" msgid="3091250467679722382">"Impostazioni avanzate"</string>
<string name="pref_extras_website_settings" msgid="67866640052455549">"Impostazioni siti web"</string>
<string name="pref_extras_website_settings_summary" msgid="3917568895776162240">"Visualizza le impostazioni avanzate dei singoli siti web"</string>
<string name="pref_extras_reset_default" msgid="8904000515846202110">"Ripristina valori predefiniti"</string>
<string name="pref_extras_reset_default_summary" msgid="7984680562706914966">"Cancella tutti i dati del browser e ripristina tutte le impostazioni predefinite"</string>
- <string name="pref_extras_reset_default_dlg" msgid="6894807766578874830">"Verranno eliminati tutti i dati del browser e verranno ripristinate le impostazioni predefinite."</string>
+ <!-- no translation found for pref_extras_reset_default_dlg (6894807766578874830) -->
+ <skip />
<string name="pref_extras_reset_default_dlg_title" msgid="2250334970728938936">"Ripristina valori predefiniti"</string>
<string name="pref_development_title" msgid="3263854204533056480">"Debug"</string>
<string name="pref_default_text_encoding" msgid="5742965543955558478">"Codifica testo"</string>
@@ -207,15 +232,18 @@
<string name="pref_default_text_encoding_dialogtitle" msgid="5508255018084978547">"Codifica testo"</string>
<string name="pref_default_text_encoding_default" msgid="5272126711231936722">"Latin-1"</string>
<string name="browserFrameRedirect" msgid="7049675479777828343">"Reindirizza"</string>
- <string name="browserFrame307Post" msgid="1429094844669510768">"La pagina web è in fase di reindirizzamento. Inviare di nuovo i dati del modulo alla nuova posizione?"</string>
+ <!-- no translation found for browserFrame307Post (1429094844669510768) -->
+ <skip />
<string name="browserFrameNetworkErrorLabel" msgid="126892350904924893">"Problema di connettività dati"</string>
<string name="browserFrameFileErrorLabel" msgid="8063691502792670367">"Problemi con il file"</string>
<string name="browserFrameFormResubmitLabel" msgid="2685923472682180360">"Conferma"</string>
<string name="browserFrameFormResubmitMessage" msgid="2752182215695632138">"La pagina che stai tentando di visualizzare contiene dati già inviati (\"POSTDATA\"). Se invii di nuovo i dati, ogni azione effettuata dal modulo nella pagina (come una ricerca o un acquisto online) verrà ripetuta."</string>
<string name="loadSuspendedTitle" msgid="675991625288706944">"Nessuna connessione di rete"</string>
- <string name="loadSuspended" msgid="3133656588880851273">"Il browser non può caricare questa pagina senza una connessione a Internet."</string>
+ <!-- no translation found for loadSuspended (3133656588880851273) -->
+ <skip />
<string name="clear_history" msgid="5998307092715979619">"Cancella cronologia"</string>
- <string name="browser_history" msgid="1038987118290272525">"Pagine visitate di recente"</string>
+ <!-- no translation found for browser_history (1038987118290272525) -->
+ <skip />
<string name="empty_history" msgid="8738772352308207274">"La cronologia del browser è vuota."</string>
<string name="add_new_bookmark" msgid="8086367791400349049">"Aggiungi segnalibro…"</string>
<string name="add_bookmark_short" msgid="3783984330998103735">"Aggiungi"</string>
@@ -258,7 +286,8 @@
<string name="download_pending_network" msgid="6548714525679461053">"In attesa di connessione dati..."</string>
<string name="download_running_paused" msgid="6418029352085656495">"In attesa di connessione dati..."</string>
<string name="download_canceled" msgid="6057083743144492515">"Download annullato."</string>
- <string name="download_not_acceptable" msgid="313769696131563652">"Impossibile effettuare il download. I contenuti non sono supportati da questo telefono."</string>
+ <!-- no translation found for download_not_acceptable (313769696131563652) -->
+ <skip />
<string name="download_file_error" msgid="1206648050615176113">"Impossibile terminare il download. Spazio insufficiente."</string>
<string name="download_length_required" msgid="9038605488460437406">"Impossibile effettuare il download. Impossibile determinare le dimensioni dell\'elemento."</string>
<string name="download_precondition_failed" msgid="8327584102874295580">"Download interrotto. Impossibile ripristinarlo."</string>
@@ -270,14 +299,20 @@
<string name="webstorage_clear_data_summary" msgid="3523128713743907805">"Rimuovi tutti i database associati al sito web"</string>
<string name="webstorage_clear_data_dialog_title" msgid="345457466368974706">"Cancella dati archiviati"</string>
<string name="webstorage_clear_data_dialog_message" msgid="6678281256970470125">"Tutti i dati archiviati da questo sito web verranno eliminati"</string>
- <string name="webstorage_clear_data_dialog_ok_button" msgid="2516563534211898636">"Clear all"</string>
+ <!-- no translation found for webstorage_clear_data_dialog_ok_button (2516563534211898636) -->
+ <skip />
<string name="webstorage_clear_data_dialog_cancel_button" msgid="2028867751958942762">"Annulla"</string>
<string name="webstorage_origin_summary_mb_stored" msgid="1985885826292236210">"MB memorizzati sul telefono"</string>
- <string name="loading_video" msgid="4887871585216091096">"Caricamento video in corso"</string>
- <string name="geolocation_permissions_prompt_message" msgid="356796102004052471">"<xliff:g id="WEBSITE_ORIGIN">%s</xliff:g> vuole conoscere la tua posizione"</string>
- <string name="geolocation_permissions_prompt_share" msgid="9084486342048347976">"Condividi posizione"</string>
- <string name="geolocation_permissions_prompt_dont_share" msgid="6303025160237860300">"Rifiuta"</string>
- <string name="geolocation_permissions_prompt_remember" msgid="3118526300707348308">"Ricorda la preferenza"</string>
+ <!-- no translation found for loading_video (4887871585216091096) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_message (356796102004052471) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_share (9084486342048347976) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_dont_share (6303025160237860300) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_remember (3118526300707348308) -->
+ <skip />
<string name="geolocation_settings_page_title" msgid="1745477985097536528">"Cancella accesso a posizione"</string>
<string name="geolocation_settings_page_summary_allowed" msgid="9180251524290811398">"Al momento questo sito può accedere alla tua posizione"</string>
<string name="geolocation_settings_page_summary_not_allowed" msgid="4589649082203102544">"Al momento questo sito non può accedere alla tua posizione"</string>
@@ -285,10 +320,15 @@
<string name="geolocation_settings_page_dialog_message" msgid="7586671987576403993">"L\'accesso alla posizione per questo sito web verrà cancellato"</string>
<string name="geolocation_settings_page_dialog_ok_button" msgid="4789434178048077287">"Cancella accesso"</string>
<string name="geolocation_settings_page_dialog_cancel_button" msgid="7941036504673409747">"Annulla"</string>
- <string name="website_settings_clear_all" msgid="8739804325997655980">"Cancella tutto"</string>
- <string name="website_settings_clear_all_dialog_title" msgid="7791826325122461718">"Cancellare tutte le impostazioni dei siti web?"</string>
- <string name="website_settings_clear_all_dialog_message" msgid="6150502090601476333">"Tutti i dati dei siti web e le autorizzazioni relative alla posizione verranno eliminati."</string>
- <string name="website_settings_clear_all_dialog_ok_button" msgid="6401582240627669431">"Elimina tutti i dati"</string>
- <string name="website_settings_clear_all_dialog_cancel_button" msgid="1896757051856611674">"Annulla"</string>
+ <!-- no translation found for website_settings_clear_all (8739804325997655980) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_title (7791826325122461718) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_message (6150502090601476333) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_ok_button (6401582240627669431) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_cancel_button (1896757051856611674) -->
+ <skip />
<string name="zoom_overview_button_text" msgid="4146579940085488881">"Panoramica"</string>
</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 1bd16b3..a5678e1 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -16,8 +16,12 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"ブラウザ"</string>
- <string name="new_tab" msgid="4505722538297295141">"新しいウィンドウ"</string>
- <string name="active_tabs" msgid="3050623868203544623">"ウィンドウ"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
+ <!-- no translation found for new_tab (4505722538297295141) -->
+ <skip />
+ <!-- no translation found for active_tabs (3050623868203544623) -->
+ <skip />
<string name="tab_bookmarks" msgid="2305793036003473653">"ブックマーク"</string>
<string name="tab_most_visited" msgid="1077402532455000703">"よく使用"</string>
<string name="tab_history" msgid="1979267558744613746">"履歴"</string>
@@ -78,8 +82,10 @@
<string name="remove_history_item" msgid="5021424935726728618">"履歴から消去"</string>
<string name="set_as_homepage" msgid="4752937379414905560">"ホームページとして設定"</string>
<string name="bookmark_saved" msgid="2766434679871317557">"ブックマークを保存しました。"</string>
- <string name="bookmark_not_saved" msgid="700600955089376724">"ブックマークを保存できません。"</string>
- <string name="homepage_set" msgid="8768087280310966395">"ホームページを設定しました。"</string>
+ <!-- no translation found for bookmark_not_saved (700600955089376724) -->
+ <skip />
+ <!-- no translation found for homepage_set (8768087280310966395) -->
+ <skip />
<string name="bookmark_needs_title" msgid="6245900436119218187">"名前を指定してください。"</string>
<string name="bookmark_needs_url" msgid="7809876865972755158">"場所を指定してください。"</string>
<string name="empty_bookmark" msgid="7008697085928540511">"空のブックマークは作成できません。"</string>
@@ -107,7 +113,8 @@
<string name="shortcut_bookmark" msgid="3974876480401135895">"ブックマーク"</string>
<string name="history" msgid="2451240511251410032">"履歴"</string>
<string name="menu_view_download" msgid="2124570321712995120">"ダウンロード履歴"</string>
- <string name="copy_page_url" msgid="7635062169011319208">"ページのURLをコピー"</string>
+ <!-- no translation found for copy_page_url (7635062169011319208) -->
+ <skip />
<string name="share_page" msgid="593756995297268343">"ページを共有"</string>
<string name="contextmenu_openlink" msgid="7237961252214188935">"開く"</string>
<string name="contextmenu_openlink_newwindow" msgid="992765050093960353">"新しいウィンドウで開く"</string>
@@ -122,40 +129,54 @@
<string name="contextmenu_add_contact" msgid="3183511922223645716">"連絡先を追加"</string>
<string name="contextmenu_send_mail" msgid="1014513374828775660">"メールを送信"</string>
<string name="contextmenu_map" msgid="7471390435434034912">"地図"</string>
- <string name="choosertitle_sharevia" msgid="4600490613341909086">"共有ツール"</string>
+ <!-- no translation found for choosertitle_sharevia (4600490613341909086) -->
+ <skip />
<string name="clear" msgid="7070043081700011461">"消去"</string>
<string name="replace" msgid="4843033491070384047">"入れ替え"</string>
<string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"ブックマーク"</string>
<string name="menu_preferences" msgid="6709237687234102240">"設定"</string>
<string name="pref_content_title" msgid="722227111894838633">"ページコンテンツ設定"</string>
<string name="pref_content_load_images" msgid="2125616852957377561">"画像の読み込み"</string>
- <string name="pref_content_load_images_summary" msgid="5055874125248398584">"ウェブページに画像を表示"</string>
+ <!-- no translation found for pref_content_load_images_summary (5055874125248398584) -->
+ <skip />
<string name="pref_content_block_popups" msgid="7808433807197256726">"ポップアップウィンドウをブロック"</string>
<string name="pref_content_javascript" msgid="4570972030299516843">"JavaScriptを有効にする"</string>
<string name="pref_content_open_in_background" msgid="824123779725118663">"バックグラウンドで開く"</string>
- <string name="pref_content_plugins" msgid="7231944644794301582">"プラグインを有効にする"</string>
- <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"現在のウィンドウの後ろに新しいウィンドウを開く"</string>
+ <!-- no translation found for pref_content_plugins (7231944644794301582) -->
+ <skip />
+ <!-- no translation found for pref_content_open_in_background_summary (1737664075721181678) -->
+ <skip />
<string name="pref_content_homepage" msgid="6082437160778559806">"ホームページ設定"</string>
<string name="pref_content_autofit" msgid="8260474534053660809">"ページの自動調整"</string>
- <string name="pref_content_autofit_summary" msgid="4587831659894879986">"画面に合わせてウェブページをフォーマット"</string>
- <string name="pref_content_landscape_only" msgid="2022546812766219672">"常に横向きに表示"</string>
- <string name="pref_content_landscape_only_summary" msgid="1008238895535428855">"ページを常に横向きに表示"</string>
+ <!-- no translation found for pref_content_autofit_summary (4587831659894879986) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only (2022546812766219672) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only_summary (1008238895535428855) -->
+ <skip />
<string name="pref_privacy_title" msgid="1052470980370846151">"プライバシー設定"</string>
<string name="pref_privacy_clear_cache" msgid="3380316479925886998">"キャッシュを消去"</string>
<string name="pref_privacy_clear_cache_summary" msgid="2216463577207991454">"ローカルにキャッシュしたコンテンツとデータベースを消去"</string>
- <string name="pref_privacy_clear_cache_dlg" msgid="5541011591300753881">"ローカルにキャッシュしたコンテンツとデータベースを削除します。"</string>
+ <!-- no translation found for pref_privacy_clear_cache_dlg (5541011591300753881) -->
+ <skip />
<string name="pref_privacy_clear_cookies" msgid="3095583579133780331">"Cookieをすべて消去"</string>
- <string name="pref_privacy_clear_cookies_summary" msgid="6962742063990677520">"すべてのブラウザCookieを消去"</string>
- <string name="pref_privacy_clear_cookies_dlg" msgid="552855688091432682">"すべてのCookieを削除します。"</string>
+ <!-- no translation found for pref_privacy_clear_cookies_summary (6962742063990677520) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_cookies_dlg (552855688091432682) -->
+ <skip />
<string name="pref_privacy_clear_history" msgid="8723795508825198477">"履歴消去"</string>
<string name="pref_privacy_clear_history_summary" msgid="6868501330708940734">"ブラウザの閲覧履歴を消去します"</string>
- <string name="pref_privacy_clear_history_dlg" msgid="544903007914753853">"ブラウザの閲覧履歴を削除します。"</string>
+ <!-- no translation found for pref_privacy_clear_history_dlg (544903007914753853) -->
+ <skip />
<string name="pref_privacy_clear_form_data" msgid="4232668196344383987">"フォームデータを消去"</string>
<string name="pref_privacy_clear_form_data_summary" msgid="1790390894719517167">"保存されているフォームデータをすべて消去します"</string>
- <string name="pref_privacy_clear_form_data_dlg" msgid="4443621086781197928">"保存されているすべてのフォームデータが削除されます。"</string>
+ <!-- no translation found for pref_privacy_clear_form_data_dlg (4443621086781197928) -->
+ <skip />
<string name="pref_privacy_clear_passwords" msgid="4750234112289277480">"パスワードを消去"</string>
- <string name="pref_privacy_clear_passwords_summary" msgid="8856782718942903335">"保存されているすべてのパスワードを消去"</string>
- <string name="pref_privacy_clear_passwords_dlg" msgid="2083869328824248255">"保存されているすべてのパスワードを削除します。"</string>
+ <!-- no translation found for pref_privacy_clear_passwords_summary (8856782718942903335) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_passwords_dlg (2083869328824248255) -->
+ <skip />
<string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"位置情報を有効にする"</string>
<string name="pref_privacy_enable_geolocation_summary" msgid="8437020934664306205">"サイトに現在地情報へのアクセスを許可する"</string>
<string name="pref_privacy_clear_geolocation_access" msgid="6649680770030042980">"位置情報アクセスをクリア"</string>
@@ -163,7 +184,8 @@
<string name="pref_privacy_clear_geolocation_access_dlg" msgid="7327063124488827244">"すべてのウェブサイトの位置情報アクセスをクリア"</string>
<string name="pref_security_title" msgid="5763978646932160021">"セキュリティ設定"</string>
<string name="pref_security_remember_passwords" msgid="6492957683454529549">"パスワードを保存"</string>
- <string name="pref_security_remember_passwords_summary" msgid="256388703356349137">"ウェブサイトのユーザー名とパスワードを保存"</string>
+ <!-- no translation found for pref_security_remember_passwords_summary (256388703356349137) -->
+ <skip />
<string name="pref_security_save_form_data" msgid="1213669802810198893">"フォームデータを保存"</string>
<string name="pref_security_save_form_data_summary" msgid="4994074685153708026">"フォームに入力したデータを保存して後で呼び出せるようにする"</string>
<string name="pref_security_show_security_warning" msgid="8901135676266754559">"セキュリティ警告"</string>
@@ -186,14 +208,17 @@
<item msgid="3840999588443167001">"高い"</item>
</string-array>
<string name="pref_default_zoom_dialogtitle" msgid="6095974367125109021">"デフォルトの倍率"</string>
- <string name="pref_content_load_page" msgid="2219810141690955452">"ページを全体表示で開く"</string>
- <string name="pref_content_load_page_summary" msgid="8792093504054149369">"新しく開いたページを全体表示する"</string>
+ <!-- no translation found for pref_content_load_page (2219810141690955452) -->
+ <skip />
+ <!-- no translation found for pref_content_load_page_summary (8792093504054149369) -->
+ <skip />
<string name="pref_extras_title" msgid="3091250467679722382">"詳細設定"</string>
<string name="pref_extras_website_settings" msgid="67866640052455549">"ウェブサイト設定"</string>
<string name="pref_extras_website_settings_summary" msgid="3917568895776162240">"個々のウェブサイトの詳細設定を表示"</string>
<string name="pref_extras_reset_default" msgid="8904000515846202110">"初期設定にリセット"</string>
<string name="pref_extras_reset_default_summary" msgid="7984680562706914966">"ブラウザデータをすべて消去して出荷時の初期設定に戻す"</string>
- <string name="pref_extras_reset_default_dlg" msgid="6894807766578874830">"すべてのブラウザデータを削除して設定をデフォルト値に戻します。"</string>
+ <!-- no translation found for pref_extras_reset_default_dlg (6894807766578874830) -->
+ <skip />
<string name="pref_extras_reset_default_dlg_title" msgid="2250334970728938936">"初期設定にリセット"</string>
<string name="pref_development_title" msgid="3263854204533056480">"デバッグ"</string>
<string name="pref_default_text_encoding" msgid="5742965543955558478">"テキストエンコード"</string>
@@ -207,15 +232,18 @@
<string name="pref_default_text_encoding_dialogtitle" msgid="5508255018084978547">"テキストエンコード"</string>
<string name="pref_default_text_encoding_default" msgid="5272126711231936722">"SHIFT_JIS"</string>
<string name="browserFrameRedirect" msgid="7049675479777828343">"リダイレクト"</string>
- <string name="browserFrame307Post" msgid="1429094844669510768">"このウェブページはリダイレクトされます。入力したフォームデータをリダイレクト先に送信しますか?"</string>
+ <!-- no translation found for browserFrame307Post (1429094844669510768) -->
+ <skip />
<string name="browserFrameNetworkErrorLabel" msgid="126892350904924893">"データアクセスエラー"</string>
<string name="browserFrameFileErrorLabel" msgid="8063691502792670367">"ファイルに問題があります"</string>
<string name="browserFrameFormResubmitLabel" msgid="2685923472682180360">"確認"</string>
<string name="browserFrameFormResubmitMessage" msgid="2752182215695632138">"表示しようとしているページには、送信済みのデータ (「POSTDATA」) があります。データを再送すると、以前このページのフォームで実行した操作 (検索やオンライン購入など) が繰り返されます。"</string>
<string name="loadSuspendedTitle" msgid="675991625288706944">"ネットワークに接続していません"</string>
- <string name="loadSuspended" msgid="3133656588880851273">"インターネットに接続されていないためこのページをブラウザに読み込むことができません。"</string>
+ <!-- no translation found for loadSuspended (3133656588880851273) -->
+ <skip />
<string name="clear_history" msgid="5998307092715979619">"履歴消去"</string>
- <string name="browser_history" msgid="1038987118290272525">"最近閲覧したページ"</string>
+ <!-- no translation found for browser_history (1038987118290272525) -->
+ <skip />
<string name="empty_history" msgid="8738772352308207274">"ブラウザ履歴はありません。"</string>
<string name="add_new_bookmark" msgid="8086367791400349049">"現在のページをブックマーク"</string>
<string name="add_bookmark_short" msgid="3783984330998103735">"追加"</string>
@@ -258,7 +286,8 @@
<string name="download_pending_network" msgid="6548714525679461053">"ネットワークに接続しています..."</string>
<string name="download_running_paused" msgid="6418029352085656495">"ネットワークに接続しています..."</string>
<string name="download_canceled" msgid="6057083743144492515">"ダウンロードをキャンセルしました。"</string>
- <string name="download_not_acceptable" msgid="313769696131563652">"ダウンロードできません。この携帯ではこのコンテンツはサポートされていません。"</string>
+ <!-- no translation found for download_not_acceptable (313769696131563652) -->
+ <skip />
<string name="download_file_error" msgid="1206648050615176113">"空き容量が不足しているため、ダウンロードを完了できません。"</string>
<string name="download_length_required" msgid="9038605488460437406">"項目のサイズを特定できないため、ダウンロードできません。"</string>
<string name="download_precondition_failed" msgid="8327584102874295580">"ダウンロードが中断されました。再開できません。"</string>
@@ -270,14 +299,20 @@
<string name="webstorage_clear_data_summary" msgid="3523128713743907805">"このウェブサイトに関連付けたデータベースをすべて削除"</string>
<string name="webstorage_clear_data_dialog_title" msgid="345457466368974706">"保存したデータを消去"</string>
<string name="webstorage_clear_data_dialog_message" msgid="6678281256970470125">"このウェブサイトに保存されたデータをすべて削除します"</string>
- <string name="webstorage_clear_data_dialog_ok_button" msgid="2516563534211898636">"すべて消去"</string>
+ <!-- no translation found for webstorage_clear_data_dialog_ok_button (2516563534211898636) -->
+ <skip />
<string name="webstorage_clear_data_dialog_cancel_button" msgid="2028867751958942762">"キャンセル"</string>
<string name="webstorage_origin_summary_mb_stored" msgid="1985885826292236210">"携帯電話に保存している容量(MB)"</string>
- <string name="loading_video" msgid="4887871585216091096">"動画を読み込み中"</string>
- <string name="geolocation_permissions_prompt_message" msgid="356796102004052471">"<xliff:g id="WEBSITE_ORIGIN">%s</xliff:g>が現在地情報をリクエストしています"</string>
- <string name="geolocation_permissions_prompt_share" msgid="9084486342048347976">"位置情報を共有"</string>
- <string name="geolocation_permissions_prompt_dont_share" msgid="6303025160237860300">"拒否"</string>
- <string name="geolocation_permissions_prompt_remember" msgid="3118526300707348308">"設定を保存"</string>
+ <!-- no translation found for loading_video (4887871585216091096) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_message (356796102004052471) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_share (9084486342048347976) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_dont_share (6303025160237860300) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_remember (3118526300707348308) -->
+ <skip />
<string name="geolocation_settings_page_title" msgid="1745477985097536528">"位置情報アクセスをクリア"</string>
<string name="geolocation_settings_page_summary_allowed" msgid="9180251524290811398">"このサイトは現在地情報にアクセスできます"</string>
<string name="geolocation_settings_page_summary_not_allowed" msgid="4589649082203102544">"このサイトは現在地情報にアクセスできません"</string>
@@ -285,10 +320,15 @@
<string name="geolocation_settings_page_dialog_message" msgid="7586671987576403993">"このウェブサイトの位置情報アクセスをクリアします"</string>
<string name="geolocation_settings_page_dialog_ok_button" msgid="4789434178048077287">"アクセスをクリア"</string>
<string name="geolocation_settings_page_dialog_cancel_button" msgid="7941036504673409747">"キャンセル"</string>
- <string name="website_settings_clear_all" msgid="8739804325997655980">"すべて消去"</string>
- <string name="website_settings_clear_all_dialog_title" msgid="7791826325122461718">"すべてのウェブサイト設定を消去しますか?"</string>
- <string name="website_settings_clear_all_dialog_message" msgid="6150502090601476333">"すべてのウェブサイトデータと位置情報の許可が削除されます。"</string>
- <string name="website_settings_clear_all_dialog_ok_button" msgid="6401582240627669431">"すべてのデータを削除"</string>
- <string name="website_settings_clear_all_dialog_cancel_button" msgid="1896757051856611674">"キャンセル"</string>
+ <!-- no translation found for website_settings_clear_all (8739804325997655980) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_title (7791826325122461718) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_message (6150502090601476333) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_ok_button (6401582240627669431) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_cancel_button (1896757051856611674) -->
+ <skip />
<string name="zoom_overview_button_text" msgid="4146579940085488881">"全体表示"</string>
</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 5f3eedd..64d8f1a 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -16,8 +16,12 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"브라우저"</string>
- <string name="new_tab" msgid="4505722538297295141">"새 창"</string>
- <string name="active_tabs" msgid="3050623868203544623">"창"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
+ <!-- no translation found for new_tab (4505722538297295141) -->
+ <skip />
+ <!-- no translation found for active_tabs (3050623868203544623) -->
+ <skip />
<string name="tab_bookmarks" msgid="2305793036003473653">"북마크"</string>
<string name="tab_most_visited" msgid="1077402532455000703">"최다 방문 웹사이트"</string>
<string name="tab_history" msgid="1979267558744613746">"기록"</string>
@@ -78,8 +82,10 @@
<string name="remove_history_item" msgid="5021424935726728618">"기록에서 삭제"</string>
<string name="set_as_homepage" msgid="4752937379414905560">"홈페이지로 설정"</string>
<string name="bookmark_saved" msgid="2766434679871317557">"북마크에 저장되었습니다."</string>
- <string name="bookmark_not_saved" msgid="700600955089376724">"북마크를 저장할 수 없습니다."</string>
- <string name="homepage_set" msgid="8768087280310966395">"홈페이지가 설정되었습니다."</string>
+ <!-- no translation found for bookmark_not_saved (700600955089376724) -->
+ <skip />
+ <!-- no translation found for homepage_set (8768087280310966395) -->
+ <skip />
<string name="bookmark_needs_title" msgid="6245900436119218187">"북마크의 이름을 입력해야 합니다."</string>
<string name="bookmark_needs_url" msgid="7809876865972755158">"북마크의 위치를 입력해야 합니다."</string>
<string name="empty_bookmark" msgid="7008697085928540511">"빈 북마크를 만들 수 없습니다."</string>
@@ -107,7 +113,8 @@
<string name="shortcut_bookmark" msgid="3974876480401135895">"북마크"</string>
<string name="history" msgid="2451240511251410032">"기록"</string>
<string name="menu_view_download" msgid="2124570321712995120">"다운로드"</string>
- <string name="copy_page_url" msgid="7635062169011319208">"페이지 URL 복사"</string>
+ <!-- no translation found for copy_page_url (7635062169011319208) -->
+ <skip />
<string name="share_page" msgid="593756995297268343">"페이지 공유"</string>
<string name="contextmenu_openlink" msgid="7237961252214188935">"열기"</string>
<string name="contextmenu_openlink_newwindow" msgid="992765050093960353">"새 창에서 열기"</string>
@@ -122,40 +129,54 @@
<string name="contextmenu_add_contact" msgid="3183511922223645716">"연락처 추가"</string>
<string name="contextmenu_send_mail" msgid="1014513374828775660">"이메일 보내기"</string>
<string name="contextmenu_map" msgid="7471390435434034912">"지도"</string>
- <string name="choosertitle_sharevia" msgid="4600490613341909086">"공유에 사용할 응용프로그램:"</string>
+ <!-- no translation found for choosertitle_sharevia (4600490613341909086) -->
+ <skip />
<string name="clear" msgid="7070043081700011461">"지우기"</string>
<string name="replace" msgid="4843033491070384047">"교체"</string>
<string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"북마크"</string>
<string name="menu_preferences" msgid="6709237687234102240">"설정"</string>
<string name="pref_content_title" msgid="722227111894838633">"페이지 콘텐츠 설정"</string>
<string name="pref_content_load_images" msgid="2125616852957377561">"이미지 로드"</string>
- <string name="pref_content_load_images_summary" msgid="5055874125248398584">"웹페이지에 이미지 표시"</string>
+ <!-- no translation found for pref_content_load_images_summary (5055874125248398584) -->
+ <skip />
<string name="pref_content_block_popups" msgid="7808433807197256726">"팝업 창 차단"</string>
<string name="pref_content_javascript" msgid="4570972030299516843">"자바스크립트 사용"</string>
<string name="pref_content_open_in_background" msgid="824123779725118663">"백그라운드에서 열기"</string>
- <string name="pref_content_plugins" msgid="7231944644794301582">"플러그인 사용"</string>
- <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"현재 창 뒤에 새 창 열기"</string>
+ <!-- no translation found for pref_content_plugins (7231944644794301582) -->
+ <skip />
+ <!-- no translation found for pref_content_open_in_background_summary (1737664075721181678) -->
+ <skip />
<string name="pref_content_homepage" msgid="6082437160778559806">"홈페이지 설정"</string>
<string name="pref_content_autofit" msgid="8260474534053660809">"페이지 자동 맞춤"</string>
- <string name="pref_content_autofit_summary" msgid="4587831659894879986">"화면에 맞게 웹페이지 형식 지정"</string>
- <string name="pref_content_landscape_only" msgid="2022546812766219672">"가로 표시 전용"</string>
- <string name="pref_content_landscape_only_summary" msgid="1008238895535428855">"넓은 가로 방향 화면으로만 페이지 표시"</string>
+ <!-- no translation found for pref_content_autofit_summary (4587831659894879986) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only (2022546812766219672) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only_summary (1008238895535428855) -->
+ <skip />
<string name="pref_privacy_title" msgid="1052470980370846151">"개인정보 설정"</string>
<string name="pref_privacy_clear_cache" msgid="3380316479925886998">"캐시 지우기"</string>
<string name="pref_privacy_clear_cache_summary" msgid="2216463577207991454">"로컬로 캐시된 콘텐츠 및 데이터베이스 삭제"</string>
- <string name="pref_privacy_clear_cache_dlg" msgid="5541011591300753881">"로컬로 캐시된 콘텐츠 및 데이터베이스가 삭제됩니다."</string>
+ <!-- no translation found for pref_privacy_clear_cache_dlg (5541011591300753881) -->
+ <skip />
<string name="pref_privacy_clear_cookies" msgid="3095583579133780331">"모든 쿠키 데이터 지우기"</string>
- <string name="pref_privacy_clear_cookies_summary" msgid="6962742063990677520">"모든 브라우저 쿠키 지우기"</string>
- <string name="pref_privacy_clear_cookies_dlg" msgid="552855688091432682">"쿠키가 모두 삭제됩니다."</string>
+ <!-- no translation found for pref_privacy_clear_cookies_summary (6962742063990677520) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_cookies_dlg (552855688091432682) -->
+ <skip />
<string name="pref_privacy_clear_history" msgid="8723795508825198477">"기록 지우기"</string>
<string name="pref_privacy_clear_history_summary" msgid="6868501330708940734">"브라우저 탐색 기록 지우기"</string>
- <string name="pref_privacy_clear_history_dlg" msgid="544903007914753853">"브라우저 탐색 기록이 삭제됩니다."</string>
+ <!-- no translation found for pref_privacy_clear_history_dlg (544903007914753853) -->
+ <skip />
<string name="pref_privacy_clear_form_data" msgid="4232668196344383987">"양식 데이터 지우기"</string>
<string name="pref_privacy_clear_form_data_summary" msgid="1790390894719517167">"저장된 양식 데이터 모두 지우기"</string>
- <string name="pref_privacy_clear_form_data_dlg" msgid="4443621086781197928">"저장된 양식 데이터가 모두 삭제됩니다."</string>
+ <!-- no translation found for pref_privacy_clear_form_data_dlg (4443621086781197928) -->
+ <skip />
<string name="pref_privacy_clear_passwords" msgid="4750234112289277480">"비밀번호 지우기"</string>
- <string name="pref_privacy_clear_passwords_summary" msgid="8856782718942903335">"저장된 모든 비밀번호 지우기"</string>
- <string name="pref_privacy_clear_passwords_dlg" msgid="2083869328824248255">"저장된 비밀번호가 모두 삭제됩니다."</string>
+ <!-- no translation found for pref_privacy_clear_passwords_summary (8856782718942903335) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_passwords_dlg (2083869328824248255) -->
+ <skip />
<string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"위치 정보 사용"</string>
<string name="pref_privacy_enable_geolocation_summary" msgid="8437020934664306205">"사이트의 위치 정보 액세스 요청 허용"</string>
<string name="pref_privacy_clear_geolocation_access" msgid="6649680770030042980">"위치 정보 액세스 삭제"</string>
@@ -163,7 +184,8 @@
<string name="pref_privacy_clear_geolocation_access_dlg" msgid="7327063124488827244">"모든 웹사이트의 위치 정보 액세스 삭제"</string>
<string name="pref_security_title" msgid="5763978646932160021">"보안 설정"</string>
<string name="pref_security_remember_passwords" msgid="6492957683454529549">"비밀번호 기억"</string>
- <string name="pref_security_remember_passwords_summary" msgid="256388703356349137">"웹사이트에 대해 사용자 이름 및 비밀번호 저장"</string>
+ <!-- no translation found for pref_security_remember_passwords_summary (256388703356349137) -->
+ <skip />
<string name="pref_security_save_form_data" msgid="1213669802810198893">"양식 데이터 기억"</string>
<string name="pref_security_save_form_data_summary" msgid="4994074685153708026">"나중에 사용할 수 있도록 양식에 입력한 데이터 기억"</string>
<string name="pref_security_show_security_warning" msgid="8901135676266754559">"보안 경고 표시"</string>
@@ -186,14 +208,17 @@
<item msgid="3840999588443167001">"닫기"</item>
</string-array>
<string name="pref_default_zoom_dialogtitle" msgid="6095974367125109021">"기본 확대/축소"</string>
- <string name="pref_content_load_page" msgid="2219810141690955452">"개요에서 페이지 열기"</string>
- <string name="pref_content_load_page_summary" msgid="8792093504054149369">"새로 연 페이지의 개요 표시"</string>
+ <!-- no translation found for pref_content_load_page (2219810141690955452) -->
+ <skip />
+ <!-- no translation found for pref_content_load_page_summary (8792093504054149369) -->
+ <skip />
<string name="pref_extras_title" msgid="3091250467679722382">"고급 설정"</string>
<string name="pref_extras_website_settings" msgid="67866640052455549">"웹사이트 설정"</string>
<string name="pref_extras_website_settings_summary" msgid="3917568895776162240">"개별 웹사이트의 고급 설정 보기"</string>
<string name="pref_extras_reset_default" msgid="8904000515846202110">"기본값으로 재설정"</string>
<string name="pref_extras_reset_default_summary" msgid="7984680562706914966">"모든 브라우저 데이터를 지우고 모든 설정을 기본값으로 재설정"</string>
- <string name="pref_extras_reset_default_dlg" msgid="6894807766578874830">"모든 브라우저 데이터가 삭제되고 설정이 기본값으로 돌아갑니다."</string>
+ <!-- no translation found for pref_extras_reset_default_dlg (6894807766578874830) -->
+ <skip />
<string name="pref_extras_reset_default_dlg_title" msgid="2250334970728938936">"기본값으로 재설정"</string>
<string name="pref_development_title" msgid="3263854204533056480">"디버그"</string>
<string name="pref_default_text_encoding" msgid="5742965543955558478">"텍스트 인코딩"</string>
@@ -207,15 +232,18 @@
<string name="pref_default_text_encoding_dialogtitle" msgid="5508255018084978547">"텍스트 인코딩"</string>
<string name="pref_default_text_encoding_default" msgid="5272126711231936722">"라틴어-1"</string>
<string name="browserFrameRedirect" msgid="7049675479777828343">"리디렉션"</string>
- <string name="browserFrame307Post" msgid="1429094844669510768">"웹페이지가 리디렉션됩니다. 입력한 양식 데이터를 새 위치로 다시 보내시겠습니까?"</string>
+ <!-- no translation found for browserFrame307Post (1429094844669510768) -->
+ <skip />
<string name="browserFrameNetworkErrorLabel" msgid="126892350904924893">"데이터 연결에 문제 발생"</string>
<string name="browserFrameFileErrorLabel" msgid="8063691502792670367">"파일 문제 발생"</string>
<string name="browserFrameFormResubmitLabel" msgid="2685923472682180360">"확인"</string>
<string name="browserFrameFormResubmitMessage" msgid="2752182215695632138">"보려는 페이지에 이미 제출된 데이터(\'POSTDATA\')가 있습니다. 해당 데이터를 다시 보내면 페이지의 양식에서 수행한 작업(예: 검색 또는 온라인 구매)이 반복됩니다."</string>
<string name="loadSuspendedTitle" msgid="675991625288706944">"네트워크 연결 없음"</string>
- <string name="loadSuspended" msgid="3133656588880851273">"인터넷에 연결되어 있지 않기 때문에 브라우저에서 페이지를 로드할 수 없습니다."</string>
+ <!-- no translation found for loadSuspended (3133656588880851273) -->
+ <skip />
<string name="clear_history" msgid="5998307092715979619">"기록 지우기"</string>
- <string name="browser_history" msgid="1038987118290272525">"최근 방문한 페이지"</string>
+ <!-- no translation found for browser_history (1038987118290272525) -->
+ <skip />
<string name="empty_history" msgid="8738772352308207274">"브라우저 기록이 비어 있습니다."</string>
<string name="add_new_bookmark" msgid="8086367791400349049">"북마크에 추가..."</string>
<string name="add_bookmark_short" msgid="3783984330998103735">"추가"</string>
@@ -258,7 +286,8 @@
<string name="download_pending_network" msgid="6548714525679461053">"데이터 연결 대기 중..."</string>
<string name="download_running_paused" msgid="6418029352085656495">"데이터 연결을 기다리는 중..."</string>
<string name="download_canceled" msgid="6057083743144492515">"다운로드가 취소되었습니다."</string>
- <string name="download_not_acceptable" msgid="313769696131563652">"휴대전화에서 지원하지 않는 콘텐츠이므로 다운로드할 수 없습니다."</string>
+ <!-- no translation found for download_not_acceptable (313769696131563652) -->
+ <skip />
<string name="download_file_error" msgid="1206648050615176113">"저장 용량이 부족하여 다운로드를 완료할 수 없습니다."</string>
<string name="download_length_required" msgid="9038605488460437406">"항목의 크기를 확인할 수 없으므로 다운로드할 수 없습니다."</string>
<string name="download_precondition_failed" msgid="8327584102874295580">"다운로드가 중단되었으며 다시 시작할 수 없습니다."</string>
@@ -270,14 +299,20 @@
<string name="webstorage_clear_data_summary" msgid="3523128713743907805">"웹사이트에 연결된 모든 데이터베이스 삭제"</string>
<string name="webstorage_clear_data_dialog_title" msgid="345457466368974706">"저장된 데이터 삭제"</string>
<string name="webstorage_clear_data_dialog_message" msgid="6678281256970470125">"웹사이트에서 저장한 모든 데이터가 삭제됩니다."</string>
- <string name="webstorage_clear_data_dialog_ok_button" msgid="2516563534211898636">"모두 지우기"</string>
+ <!-- no translation found for webstorage_clear_data_dialog_ok_button (2516563534211898636) -->
+ <skip />
<string name="webstorage_clear_data_dialog_cancel_button" msgid="2028867751958942762">"취소"</string>
<string name="webstorage_origin_summary_mb_stored" msgid="1985885826292236210">"휴대전화에 저장된 용량(MB)"</string>
- <string name="loading_video" msgid="4887871585216091096">"동영상 로드 중"</string>
- <string name="geolocation_permissions_prompt_message" msgid="356796102004052471">"<xliff:g id="WEBSITE_ORIGIN">%s</xliff:g>에서 사용자의 위치를 확인하려고 합니다."</string>
- <string name="geolocation_permissions_prompt_share" msgid="9084486342048347976">"위치 공유"</string>
- <string name="geolocation_permissions_prompt_dont_share" msgid="6303025160237860300">"거부"</string>
- <string name="geolocation_permissions_prompt_remember" msgid="3118526300707348308">"환경설정 저장"</string>
+ <!-- no translation found for loading_video (4887871585216091096) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_message (356796102004052471) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_share (9084486342048347976) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_dont_share (6303025160237860300) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_remember (3118526300707348308) -->
+ <skip />
<string name="geolocation_settings_page_title" msgid="1745477985097536528">"위치 정보 액세스 삭제"</string>
<string name="geolocation_settings_page_summary_allowed" msgid="9180251524290811398">"사이트에서 사용자의 위치에 현재 액세스할 수 있음"</string>
<string name="geolocation_settings_page_summary_not_allowed" msgid="4589649082203102544">"사이트에서 사용자의 위치에 현재 액세스할 수 없음"</string>
@@ -285,10 +320,15 @@
<string name="geolocation_settings_page_dialog_message" msgid="7586671987576403993">"웹사이트의 위치 정보 액세스가 삭제됩니다."</string>
<string name="geolocation_settings_page_dialog_ok_button" msgid="4789434178048077287">"액세스 삭제"</string>
<string name="geolocation_settings_page_dialog_cancel_button" msgid="7941036504673409747">"취소"</string>
- <string name="website_settings_clear_all" msgid="8739804325997655980">"모두 지우기"</string>
- <string name="website_settings_clear_all_dialog_title" msgid="7791826325122461718">"웹사이트 설정을 모두 지우시겠습니까?"</string>
- <string name="website_settings_clear_all_dialog_message" msgid="6150502090601476333">"모든 웹사이트 데이터와 위치 권한이 삭제됩니다."</string>
- <string name="website_settings_clear_all_dialog_ok_button" msgid="6401582240627669431">"모든 데이터 삭제"</string>
- <string name="website_settings_clear_all_dialog_cancel_button" msgid="1896757051856611674">"취소"</string>
+ <!-- no translation found for website_settings_clear_all (8739804325997655980) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_title (7791826325122461718) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_message (6150502090601476333) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_ok_button (6401582240627669431) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_cancel_button (1896757051856611674) -->
+ <skip />
<string name="zoom_overview_button_text" msgid="4146579940085488881">"전체보기"</string>
</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 971100a..d18bb7d 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -16,8 +16,12 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"Nettleser"</string>
- <string name="new_tab" msgid="4505722538297295141">"Nytt vindu"</string>
- <string name="active_tabs" msgid="3050623868203544623">"Windows"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
+ <!-- no translation found for new_tab (4505722538297295141) -->
+ <skip />
+ <!-- no translation found for active_tabs (3050623868203544623) -->
+ <skip />
<string name="tab_bookmarks" msgid="2305793036003473653">"Bokmerker"</string>
<string name="tab_most_visited" msgid="1077402532455000703">"Mest besøkt"</string>
<string name="tab_history" msgid="1979267558744613746">"Logg"</string>
@@ -78,8 +82,10 @@
<string name="remove_history_item" msgid="5021424935726728618">"Fjern fra loggen"</string>
<string name="set_as_homepage" msgid="4752937379414905560">"Bruk som startside"</string>
<string name="bookmark_saved" msgid="2766434679871317557">"Bokmerke lagret."</string>
- <string name="bookmark_not_saved" msgid="700600955089376724">"Kan ikke lagre bokmerke."</string>
- <string name="homepage_set" msgid="8768087280310966395">"Startside angitt."</string>
+ <!-- no translation found for bookmark_not_saved (700600955089376724) -->
+ <skip />
+ <!-- no translation found for homepage_set (8768087280310966395) -->
+ <skip />
<string name="bookmark_needs_title" msgid="6245900436119218187">"Bokmerket må ha et navn."</string>
<string name="bookmark_needs_url" msgid="7809876865972755158">"Bokmerket må ha en adresse."</string>
<string name="empty_bookmark" msgid="7008697085928540511">"Kan ikke opprette tomt bokmerke."</string>
@@ -107,7 +113,8 @@
<string name="shortcut_bookmark" msgid="3974876480401135895">"Bokmerk"</string>
<string name="history" msgid="2451240511251410032">"Logg"</string>
<string name="menu_view_download" msgid="2124570321712995120">"Nedlastinger"</string>
- <string name="copy_page_url" msgid="7635062169011319208">"Kopier nettadresse"</string>
+ <!-- no translation found for copy_page_url (7635062169011319208) -->
+ <skip />
<string name="share_page" msgid="593756995297268343">"Del side"</string>
<string name="contextmenu_openlink" msgid="7237961252214188935">"Åpne"</string>
<string name="contextmenu_openlink_newwindow" msgid="992765050093960353">"Åpne i nytt vindu"</string>
@@ -122,40 +129,54 @@
<string name="contextmenu_add_contact" msgid="3183511922223645716">"Legg til kontakt"</string>
<string name="contextmenu_send_mail" msgid="1014513374828775660">"Send e-post"</string>
<string name="contextmenu_map" msgid="7471390435434034912">"Kart"</string>
- <string name="choosertitle_sharevia" msgid="4600490613341909086">"Del via"</string>
+ <!-- no translation found for choosertitle_sharevia (4600490613341909086) -->
+ <skip />
<string name="clear" msgid="7070043081700011461">"Tøm"</string>
<string name="replace" msgid="4843033491070384047">"Erstatt"</string>
<string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"Bokmerker"</string>
<string name="menu_preferences" msgid="6709237687234102240">"Innstillinger"</string>
<string name="pref_content_title" msgid="722227111894838633">"Sideinnhold"</string>
<string name="pref_content_load_images" msgid="2125616852957377561">"Last bilder"</string>
- <string name="pref_content_load_images_summary" msgid="5055874125248398584">"Vis bilder på nettsider"</string>
+ <!-- no translation found for pref_content_load_images_summary (5055874125248398584) -->
+ <skip />
<string name="pref_content_block_popups" msgid="7808433807197256726">"Blokker forgrunnsvinduer"</string>
<string name="pref_content_javascript" msgid="4570972030299516843">"Aktiver JavaScript"</string>
<string name="pref_content_open_in_background" msgid="824123779725118663">"Åpne i bakgrunnen"</string>
- <string name="pref_content_plugins" msgid="7231944644794301582">"Aktiver programtillegg"</string>
- <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Åpne nye vinduer bak det sist åpnede vinduet"</string>
+ <!-- no translation found for pref_content_plugins (7231944644794301582) -->
+ <skip />
+ <!-- no translation found for pref_content_open_in_background_summary (1737664075721181678) -->
+ <skip />
<string name="pref_content_homepage" msgid="6082437160778559806">"Angi startside"</string>
<string name="pref_content_autofit" msgid="8260474534053660809">"Tilpass sider automatisk"</string>
- <string name="pref_content_autofit_summary" msgid="4587831659894879986">"Tilpass nettsider til skjermen"</string>
- <string name="pref_content_landscape_only" msgid="2022546812766219672">"Kun liggende visningsformat"</string>
- <string name="pref_content_landscape_only_summary" msgid="1008238895535428855">"Vis kun sider i liggende visningsformat"</string>
+ <!-- no translation found for pref_content_autofit_summary (4587831659894879986) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only (2022546812766219672) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only_summary (1008238895535428855) -->
+ <skip />
<string name="pref_privacy_title" msgid="1052470980370846151">"Personvern"</string>
<string name="pref_privacy_clear_cache" msgid="3380316479925886998">"Fjern buffer"</string>
<string name="pref_privacy_clear_cache_summary" msgid="2216463577207991454">"Fjern lokalt bufret innhold og databaser"</string>
- <string name="pref_privacy_clear_cache_dlg" msgid="5541011591300753881">"Lokalt bufret innhold og databaser vil bli fjernet."</string>
+ <!-- no translation found for pref_privacy_clear_cache_dlg (5541011591300753881) -->
+ <skip />
<string name="pref_privacy_clear_cookies" msgid="3095583579133780331">"Fjern alle info.kapsler"</string>
- <string name="pref_privacy_clear_cookies_summary" msgid="6962742063990677520">"Fjern alle informasjonskapsler"</string>
- <string name="pref_privacy_clear_cookies_dlg" msgid="552855688091432682">"Alle informasjonskapsler vil bli slettet."</string>
+ <!-- no translation found for pref_privacy_clear_cookies_summary (6962742063990677520) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_cookies_dlg (552855688091432682) -->
+ <skip />
<string name="pref_privacy_clear_history" msgid="8723795508825198477">"Slett loggen"</string>
<string name="pref_privacy_clear_history_summary" msgid="6868501330708940734">"Slett navigeringsloggen"</string>
- <string name="pref_privacy_clear_history_dlg" msgid="544903007914753853">"Nettlesingsloggen vil bli slettet."</string>
+ <!-- no translation found for pref_privacy_clear_history_dlg (544903007914753853) -->
+ <skip />
<string name="pref_privacy_clear_form_data" msgid="4232668196344383987">"Fjern skjemadata"</string>
<string name="pref_privacy_clear_form_data_summary" msgid="1790390894719517167">"Slett alle lagrede skjemadata"</string>
- <string name="pref_privacy_clear_form_data_dlg" msgid="4443621086781197928">"Alle lagrede skjemadata vil bli slettet."</string>
+ <!-- no translation found for pref_privacy_clear_form_data_dlg (4443621086781197928) -->
+ <skip />
<string name="pref_privacy_clear_passwords" msgid="4750234112289277480">"Fjern passord"</string>
- <string name="pref_privacy_clear_passwords_summary" msgid="8856782718942903335">"Fjern alle lagrede passord"</string>
- <string name="pref_privacy_clear_passwords_dlg" msgid="2083869328824248255">"Alle lagrede passord vil bli slettet."</string>
+ <!-- no translation found for pref_privacy_clear_passwords_summary (8856782718942903335) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_passwords_dlg (2083869328824248255) -->
+ <skip />
<string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"Aktiver posisjon"</string>
<string name="pref_privacy_enable_geolocation_summary" msgid="8437020934664306205">"La nettsteder be om tilgang til posisjonen din"</string>
<string name="pref_privacy_clear_geolocation_access" msgid="6649680770030042980">"Deaktiver posisjonstilgang"</string>
@@ -163,7 +184,8 @@
<string name="pref_privacy_clear_geolocation_access_dlg" msgid="7327063124488827244">"Deaktiver posisjonstilgang for alle nettsteder"</string>
<string name="pref_security_title" msgid="5763978646932160021">"Sikkerhetsinnstillinger"</string>
<string name="pref_security_remember_passwords" msgid="6492957683454529549">"Husk passord"</string>
- <string name="pref_security_remember_passwords_summary" msgid="256388703356349137">"Lagre brukernavn og passord for nettsteder"</string>
+ <!-- no translation found for pref_security_remember_passwords_summary (256388703356349137) -->
+ <skip />
<string name="pref_security_save_form_data" msgid="1213669802810198893">"Husk skjemadata"</string>
<string name="pref_security_save_form_data_summary" msgid="4994074685153708026">"Husk data skrevet inn i skjemaer til senere"</string>
<string name="pref_security_show_security_warning" msgid="8901135676266754559">"Vis sikkerhetsadvarsler"</string>
@@ -186,14 +208,17 @@
<item msgid="3840999588443167001">"Nær"</item>
</string-array>
<string name="pref_default_zoom_dialogtitle" msgid="6095974367125109021">"Standardzoom"</string>
- <string name="pref_content_load_page" msgid="2219810141690955452">"Åpner sider i oversiktsvisning"</string>
- <string name="pref_content_load_page_summary" msgid="8792093504054149369">"Vis oversikt over nylig åpnede sider"</string>
+ <!-- no translation found for pref_content_load_page (2219810141690955452) -->
+ <skip />
+ <!-- no translation found for pref_content_load_page_summary (8792093504054149369) -->
+ <skip />
<string name="pref_extras_title" msgid="3091250467679722382">"Avanserte innstillinger"</string>
<string name="pref_extras_website_settings" msgid="67866640052455549">"Nettstedsinnstillinger"</string>
<string name="pref_extras_website_settings_summary" msgid="3917568895776162240">"Vis avanserte innstillinger for individuelle nettsteder"</string>
<string name="pref_extras_reset_default" msgid="8904000515846202110">"Tilbakestill til standard"</string>
<string name="pref_extras_reset_default_summary" msgid="7984680562706914966">"Fjern alle data fra nettleseren og tilbakestill alle innstillinger til standard"</string>
- <string name="pref_extras_reset_default_dlg" msgid="6894807766578874830">"Alle data vil bli fjernet og innstillinger vil bli tilbakestilt til standardverdier."</string>
+ <!-- no translation found for pref_extras_reset_default_dlg (6894807766578874830) -->
+ <skip />
<string name="pref_extras_reset_default_dlg_title" msgid="2250334970728938936">"Tilbakestill til standard"</string>
<string name="pref_development_title" msgid="3263854204533056480">"Avlusing"</string>
<string name="pref_default_text_encoding" msgid="5742965543955558478">"Tekstkoding"</string>
@@ -207,19 +232,22 @@
<string name="pref_default_text_encoding_dialogtitle" msgid="5508255018084978547">"Tekstkoding"</string>
<string name="pref_default_text_encoding_default" msgid="5272126711231936722">"Latin-1"</string>
<string name="browserFrameRedirect" msgid="7049675479777828343">"Videresending"</string>
- <string name="browserFrame307Post" msgid="1429094844669510768">"Denne nettsiden blir viderekoblet. Vil du sende skjemadataene på nytt til det nye nettstedet?"</string>
+ <!-- no translation found for browserFrame307Post (1429094844669510768) -->
+ <skip />
<string name="browserFrameNetworkErrorLabel" msgid="126892350904924893">"Datatilkoblingsproblem"</string>
<string name="browserFrameFileErrorLabel" msgid="8063691502792670367">"Problem med fil"</string>
<string name="browserFrameFormResubmitLabel" msgid="2685923472682180360">"Bekreft"</string>
<string name="browserFrameFormResubmitMessage" msgid="2752182215695632138">"Siden du prøver å se inneholder data som allerede er blitt sendt inn (\"POSTDATA\"). Hvis du sender dataene på nytt, kan handlingene som skjemaet på siden utførte bli gjentatt."</string>
<string name="loadSuspendedTitle" msgid="675991625288706944">"Ingen nettverkstilkobling"</string>
- <string name="loadSuspended" msgid="3133656588880851273">"Nettleseren kan ikke laste inn siden grunnet manglende Internett-tilkobling."</string>
+ <!-- no translation found for loadSuspended (3133656588880851273) -->
+ <skip />
<string name="clear_history" msgid="5998307092715979619">"Tøm logg"</string>
- <string name="browser_history" msgid="1038987118290272525">"Nylig besøkte sider"</string>
+ <!-- no translation found for browser_history (1038987118290272525) -->
+ <skip />
<string name="empty_history" msgid="8738772352308207274">"Nettleserloggen er tom."</string>
<string name="add_new_bookmark" msgid="8086367791400349049">"Legg til bokmerke"</string>
<string name="add_bookmark_short" msgid="3783984330998103735">"Legg til"</string>
- <string name="search_hint" msgid="4647356319916631820">"Søk etter eller skriv inn nettadresse"</string>
+ <string name="search_hint" msgid="4647356319916631820">"Søk etter eller skriv inn URL"</string>
<string name="search_button_text" msgid="5235226933877634410">"Gå"</string>
<string name="search_settings_description" msgid="1422401062529014107">"Bokmerker og historikk"</string>
<string name="attention" msgid="3473639060042811244">"Obs"</string>
@@ -258,7 +286,8 @@
<string name="download_pending_network" msgid="6548714525679461053">"Venter på datatilkobling…"</string>
<string name="download_running_paused" msgid="6418029352085656495">"Venter på datatilkobling…"</string>
<string name="download_canceled" msgid="6057083743144492515">"Nedlasting avbrutt."</string>
- <string name="download_not_acceptable" msgid="313769696131563652">"Kan ikke laste ned – innholdet håndteres ikke på denne telefonen."</string>
+ <!-- no translation found for download_not_acceptable (313769696131563652) -->
+ <skip />
<string name="download_file_error" msgid="1206648050615176113">"Kan ikke fullføre nedlastingen. Det er ikke nok plass."</string>
<string name="download_length_required" msgid="9038605488460437406">"Kan ikke laste ned. Kan ikke fastsette størrelsen på filen."</string>
<string name="download_precondition_failed" msgid="8327584102874295580">"Nedlasting avbrutt. Den kan ikke gjenopptas."</string>
@@ -270,14 +299,20 @@
<string name="webstorage_clear_data_summary" msgid="3523128713743907805">"Fjern alle databaser tilknyttet dette nettstedet"</string>
<string name="webstorage_clear_data_dialog_title" msgid="345457466368974706">"Fjern lagrede data"</string>
<string name="webstorage_clear_data_dialog_message" msgid="6678281256970470125">"Alle data som er lagret av dette nettstedet, vil bli slettet"</string>
- <string name="webstorage_clear_data_dialog_ok_button" msgid="2516563534211898636">"Fjern alle"</string>
+ <!-- no translation found for webstorage_clear_data_dialog_ok_button (2516563534211898636) -->
+ <skip />
<string name="webstorage_clear_data_dialog_cancel_button" msgid="2028867751958942762">"Avbryt"</string>
<string name="webstorage_origin_summary_mb_stored" msgid="1985885826292236210">"MB lagret på telefonen"</string>
- <string name="loading_video" msgid="4887871585216091096">"Laster inn video"</string>
- <string name="geolocation_permissions_prompt_message" msgid="356796102004052471">"<xliff:g id="WEBSITE_ORIGIN">%s</xliff:g> vil vite posisjonen din"</string>
- <string name="geolocation_permissions_prompt_share" msgid="9084486342048347976">"Del posisjon"</string>
- <string name="geolocation_permissions_prompt_dont_share" msgid="6303025160237860300">"Avslå"</string>
- <string name="geolocation_permissions_prompt_remember" msgid="3118526300707348308">"Husk innstillingene"</string>
+ <!-- no translation found for loading_video (4887871585216091096) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_message (356796102004052471) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_share (9084486342048347976) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_dont_share (6303025160237860300) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_remember (3118526300707348308) -->
+ <skip />
<string name="geolocation_settings_page_title" msgid="1745477985097536528">"Deaktiver posisjonstilgang"</string>
<string name="geolocation_settings_page_summary_allowed" msgid="9180251524290811398">"Dette nettstedet har for tiden tilgang til posisjonen din"</string>
<string name="geolocation_settings_page_summary_not_allowed" msgid="4589649082203102544">"Dette nettstedet har for tiden ikke tilgang til posisjonen din"</string>
@@ -285,10 +320,15 @@
<string name="geolocation_settings_page_dialog_message" msgid="7586671987576403993">"Posisjonstilgang for dette nettstedet vil bli deaktivert"</string>
<string name="geolocation_settings_page_dialog_ok_button" msgid="4789434178048077287">"Deaktiver tilgang"</string>
<string name="geolocation_settings_page_dialog_cancel_button" msgid="7941036504673409747">"Avbryt"</string>
- <string name="website_settings_clear_all" msgid="8739804325997655980">"Fjern alle"</string>
- <string name="website_settings_clear_all_dialog_title" msgid="7791826325122461718">"Vil du fjerne alle innstillingene for nettstedet?"</string>
- <string name="website_settings_clear_all_dialog_message" msgid="6150502090601476333">"Alle nettstedsdata og posisjonstillatelser vil bli slettet."</string>
- <string name="website_settings_clear_all_dialog_ok_button" msgid="6401582240627669431">"Slett alle data"</string>
- <string name="website_settings_clear_all_dialog_cancel_button" msgid="1896757051856611674">"Avbryt"</string>
+ <!-- no translation found for website_settings_clear_all (8739804325997655980) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_title (7791826325122461718) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_message (6150502090601476333) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_ok_button (6401582240627669431) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_cancel_button (1896757051856611674) -->
+ <skip />
<string name="zoom_overview_button_text" msgid="4146579940085488881">"Oversikt"</string>
</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 7c34c29..719d6dc 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -16,8 +16,12 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"Browser"</string>
- <string name="new_tab" msgid="4505722538297295141">"Nieuw venster"</string>
- <string name="active_tabs" msgid="3050623868203544623">"Vensters"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
+ <!-- no translation found for new_tab (4505722538297295141) -->
+ <skip />
+ <!-- no translation found for active_tabs (3050623868203544623) -->
+ <skip />
<string name="tab_bookmarks" msgid="2305793036003473653">"Bladwijzers"</string>
<string name="tab_most_visited" msgid="1077402532455000703">"Meest bezocht"</string>
<string name="tab_history" msgid="1979267558744613746">"Geschiedenis"</string>
@@ -80,7 +84,8 @@
<string name="bookmark_saved" msgid="2766434679871317557">"Opgeslagen in bladwijzers."</string>
<!-- no translation found for bookmark_not_saved (700600955089376724) -->
<skip />
- <string name="homepage_set" msgid="8768087280310966395">"De startpagina is ingesteld."</string>
+ <!-- no translation found for homepage_set (8768087280310966395) -->
+ <skip />
<string name="bookmark_needs_title" msgid="6245900436119218187">"Bladwijzer moet een naam hebben."</string>
<string name="bookmark_needs_url" msgid="7809876865972755158">"Bladwijzers moeten een locatie hebben."</string>
<string name="empty_bookmark" msgid="7008697085928540511">"Kan geen lege bladwijzer maken."</string>
@@ -108,7 +113,8 @@
<string name="shortcut_bookmark" msgid="3974876480401135895">"Bladwijzer"</string>
<string name="history" msgid="2451240511251410032">"Geschiedenis"</string>
<string name="menu_view_download" msgid="2124570321712995120">"Downloads"</string>
- <string name="copy_page_url" msgid="7635062169011319208">"Pagina-URL kopiëren"</string>
+ <!-- no translation found for copy_page_url (7635062169011319208) -->
+ <skip />
<string name="share_page" msgid="593756995297268343">"Pagina delen"</string>
<string name="contextmenu_openlink" msgid="7237961252214188935">"Openen"</string>
<string name="contextmenu_openlink_newwindow" msgid="992765050093960353">"Openen in een nieuw venster"</string>
@@ -123,40 +129,54 @@
<string name="contextmenu_add_contact" msgid="3183511922223645716">"Contact toevoegen"</string>
<string name="contextmenu_send_mail" msgid="1014513374828775660">"E-mail verzenden"</string>
<string name="contextmenu_map" msgid="7471390435434034912">"Kaart"</string>
- <string name="choosertitle_sharevia" msgid="4600490613341909086">"Delen via"</string>
+ <!-- no translation found for choosertitle_sharevia (4600490613341909086) -->
+ <skip />
<string name="clear" msgid="7070043081700011461">"Wissen"</string>
<string name="replace" msgid="4843033491070384047">"Vervangen"</string>
<string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"Bladwijzers"</string>
<string name="menu_preferences" msgid="6709237687234102240">"Instellingen"</string>
<string name="pref_content_title" msgid="722227111894838633">"Instellingen voor pagina-inhoud"</string>
<string name="pref_content_load_images" msgid="2125616852957377561">"Afbeeldingen laden"</string>
- <string name="pref_content_load_images_summary" msgid="5055874125248398584">"Afbeeldingen op webpagina\'s weergeven"</string>
+ <!-- no translation found for pref_content_load_images_summary (5055874125248398584) -->
+ <skip />
<string name="pref_content_block_popups" msgid="7808433807197256726">"Pop-upvensters blokkeren"</string>
<string name="pref_content_javascript" msgid="4570972030299516843">"JavaScript inschakelen"</string>
<string name="pref_content_open_in_background" msgid="824123779725118663">"Openen op de achtergrond"</string>
- <string name="pref_content_plugins" msgid="7231944644794301582">"Invoegtoepassingen inschakelen"</string>
- <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Nieuw vensters openen achter het huidige venster"</string>
+ <!-- no translation found for pref_content_plugins (7231944644794301582) -->
+ <skip />
+ <!-- no translation found for pref_content_open_in_background_summary (1737664075721181678) -->
+ <skip />
<string name="pref_content_homepage" msgid="6082437160778559806">"Startpagina instellen"</string>
<string name="pref_content_autofit" msgid="8260474534053660809">"Pagina\'s automatisch laten passen"</string>
- <string name="pref_content_autofit_summary" msgid="4587831659894879986">"Webpagina\'s zo indelen dat deze op het scherm passen"</string>
- <string name="pref_content_landscape_only" msgid="2022546812766219672">"Alleen liggende weergave"</string>
- <string name="pref_content_landscape_only_summary" msgid="1008238895535428855">"Pagina\'s alleen liggend weergeven"</string>
+ <!-- no translation found for pref_content_autofit_summary (4587831659894879986) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only (2022546812766219672) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only_summary (1008238895535428855) -->
+ <skip />
<string name="pref_privacy_title" msgid="1052470980370846151">"Privacyinstellingen"</string>
<string name="pref_privacy_clear_cache" msgid="3380316479925886998">"Cache wissen"</string>
<string name="pref_privacy_clear_cache_summary" msgid="2216463577207991454">"Lokaal opgeslagen inhoud en databases wissen"</string>
- <string name="pref_privacy_clear_cache_dlg" msgid="5541011591300753881">"Lokaal opgeslagen inhoud en databases worden gewist."</string>
+ <!-- no translation found for pref_privacy_clear_cache_dlg (5541011591300753881) -->
+ <skip />
<string name="pref_privacy_clear_cookies" msgid="3095583579133780331">"Alle cookiegegevens wissen"</string>
- <string name="pref_privacy_clear_cookies_summary" msgid="6962742063990677520">"Alle browsercookies wissen"</string>
- <string name="pref_privacy_clear_cookies_dlg" msgid="552855688091432682">"Alle cookies worden gewist."</string>
+ <!-- no translation found for pref_privacy_clear_cookies_summary (6962742063990677520) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_cookies_dlg (552855688091432682) -->
+ <skip />
<string name="pref_privacy_clear_history" msgid="8723795508825198477">"Geschiedenis wissen"</string>
<string name="pref_privacy_clear_history_summary" msgid="6868501330708940734">"Navigatiegeschiedenis van de browser wissen"</string>
- <string name="pref_privacy_clear_history_dlg" msgid="544903007914753853">"De navigatiegeschiedenis van de browser wordt gewist."</string>
+ <!-- no translation found for pref_privacy_clear_history_dlg (544903007914753853) -->
+ <skip />
<string name="pref_privacy_clear_form_data" msgid="4232668196344383987">"Formuliergegevens wissen"</string>
<string name="pref_privacy_clear_form_data_summary" msgid="1790390894719517167">"Alle opgeslagen formuliergegevens wissen"</string>
- <string name="pref_privacy_clear_form_data_dlg" msgid="4443621086781197928">"Alle opgeslagen formuliergegevens worden gewist."</string>
+ <!-- no translation found for pref_privacy_clear_form_data_dlg (4443621086781197928) -->
+ <skip />
<string name="pref_privacy_clear_passwords" msgid="4750234112289277480">"Wachtwoorden wissen"</string>
- <string name="pref_privacy_clear_passwords_summary" msgid="8856782718942903335">"Alle opgeslagen wachtwoorden wissen"</string>
- <string name="pref_privacy_clear_passwords_dlg" msgid="2083869328824248255">"Alle opgeslagen wachtwoorden worden gewist."</string>
+ <!-- no translation found for pref_privacy_clear_passwords_summary (8856782718942903335) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_passwords_dlg (2083869328824248255) -->
+ <skip />
<string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"Locatie inschakelen"</string>
<string name="pref_privacy_enable_geolocation_summary" msgid="8437020934664306205">"Sites toestaan om toegang te vragen tot uw locatie"</string>
<string name="pref_privacy_clear_geolocation_access" msgid="6649680770030042980">"Locatietoegang ongedaan maken"</string>
@@ -164,7 +184,8 @@
<string name="pref_privacy_clear_geolocation_access_dlg" msgid="7327063124488827244">"Locatietoegang voor alle websites ongedaan maken"</string>
<string name="pref_security_title" msgid="5763978646932160021">"Beveiligingsinstellingen"</string>
<string name="pref_security_remember_passwords" msgid="6492957683454529549">"Wachtwoorden onthouden"</string>
- <string name="pref_security_remember_passwords_summary" msgid="256388703356349137">"Gebruikersnamen en wachtwoorden voor websites opslaan"</string>
+ <!-- no translation found for pref_security_remember_passwords_summary (256388703356349137) -->
+ <skip />
<string name="pref_security_save_form_data" msgid="1213669802810198893">"Gegevens op formulier onthouden"</string>
<string name="pref_security_save_form_data_summary" msgid="4994074685153708026">"Gegevens die ik typ in formulieren, onthouden voor later gebruik"</string>
<string name="pref_security_show_security_warning" msgid="8901135676266754559">"Beveiligingswaarschuwingen weergeven"</string>
@@ -187,14 +208,17 @@
<item msgid="3840999588443167001">"Dichtbij"</item>
</string-array>
<string name="pref_default_zoom_dialogtitle" msgid="6095974367125109021">"Standaardzoom"</string>
- <string name="pref_content_load_page" msgid="2219810141690955452">"Pagina\'s openen in overzicht"</string>
- <string name="pref_content_load_page_summary" msgid="8792093504054149369">"Overzicht weergeven van pas geopende pagina\'s"</string>
+ <!-- no translation found for pref_content_load_page (2219810141690955452) -->
+ <skip />
+ <!-- no translation found for pref_content_load_page_summary (8792093504054149369) -->
+ <skip />
<string name="pref_extras_title" msgid="3091250467679722382">"Geavanceerde instellingen"</string>
<string name="pref_extras_website_settings" msgid="67866640052455549">"Website-instellingen"</string>
<string name="pref_extras_website_settings_summary" msgid="3917568895776162240">"Geavanceerde instellingen weergeven voor afzonderlijke websites"</string>
<string name="pref_extras_reset_default" msgid="8904000515846202110">"Standaardinstellingen herstellen"</string>
<string name="pref_extras_reset_default_summary" msgid="7984680562706914966">"Alle browsergegevens wissen en alle standaardinstellingen herstellen"</string>
- <string name="pref_extras_reset_default_dlg" msgid="6894807766578874830">"Alle browsergegevens worden gewist en de standaardinstellingen worden hersteld."</string>
+ <!-- no translation found for pref_extras_reset_default_dlg (6894807766578874830) -->
+ <skip />
<string name="pref_extras_reset_default_dlg_title" msgid="2250334970728938936">"Standaardinstellingen herstellen"</string>
<string name="pref_development_title" msgid="3263854204533056480">"Foutopsporing"</string>
<string name="pref_default_text_encoding" msgid="5742965543955558478">"Tekstcodering"</string>
@@ -208,15 +232,18 @@
<string name="pref_default_text_encoding_dialogtitle" msgid="5508255018084978547">"Tekstcodering"</string>
<string name="pref_default_text_encoding_default" msgid="5272126711231936722">"Latijns-1"</string>
<string name="browserFrameRedirect" msgid="7049675479777828343">"Omleiden"</string>
- <string name="browserFrame307Post" msgid="1429094844669510768">"Deze webpagina wordt omgeleid. Wilt u uw ingevulde formuliergegevens doorsturen naar de nieuwe locatie?"</string>
+ <!-- no translation found for browserFrame307Post (1429094844669510768) -->
+ <skip />
<string name="browserFrameNetworkErrorLabel" msgid="126892350904924893">"Probleem met gegevensverbinding"</string>
<string name="browserFrameFileErrorLabel" msgid="8063691502792670367">"Probleem met bestand"</string>
<string name="browserFrameFormResubmitLabel" msgid="2685923472682180360">"Bevestigen"</string>
<string name="browserFrameFormResubmitMessage" msgid="2752182215695632138">"De pagina die u probeert te openen, bevat gegevens die al verzonden zijn (\'POSTDATA\'). Als u de gegevens opnieuw verzendt, wordt elke actie herhaald die het formulier op de pagina heeft uitgevoerd (zoals een zoekopdracht of online aanschaf)."</string>
<string name="loadSuspendedTitle" msgid="675991625288706944">"Geen netwerkverbinding"</string>
- <string name="loadSuspended" msgid="3133656588880851273">"Browser kan pagina niet laden omdat er geen verbinding met internet is."</string>
+ <!-- no translation found for loadSuspended (3133656588880851273) -->
+ <skip />
<string name="clear_history" msgid="5998307092715979619">"Geschiedenis wissen"</string>
- <string name="browser_history" msgid="1038987118290272525">"Onlangs bezochte pagina\'s"</string>
+ <!-- no translation found for browser_history (1038987118290272525) -->
+ <skip />
<string name="empty_history" msgid="8738772352308207274">"Browsergeschiedenis is leeg."</string>
<string name="add_new_bookmark" msgid="8086367791400349049">"Bladwijzer toevoegen…"</string>
<string name="add_bookmark_short" msgid="3783984330998103735">"Toevoegen"</string>
@@ -259,7 +286,8 @@
<string name="download_pending_network" msgid="6548714525679461053">"Wachten op gegevensverbinding..."</string>
<string name="download_running_paused" msgid="6418029352085656495">"Wachten op dataverbinding"</string>
<string name="download_canceled" msgid="6057083743144492515">"Download is geannuleerd."</string>
- <string name="download_not_acceptable" msgid="313769696131563652">"Kan niet downloaden. De inhoud wordt niet ondersteund door de telefoon."</string>
+ <!-- no translation found for download_not_acceptable (313769696131563652) -->
+ <skip />
<string name="download_file_error" msgid="1206648050615176113">"Kan download niet voltooien. Er is niet genoeg ruimte."</string>
<string name="download_length_required" msgid="9038605488460437406">"Kan niet downloaden. De grootte van het item kan niet worden vastgesteld."</string>
<string name="download_precondition_failed" msgid="8327584102874295580">"Download is onderbroken. Deze kan niet worden voortgezet."</string>
@@ -271,14 +299,20 @@
<string name="webstorage_clear_data_summary" msgid="3523128713743907805">"Alle databases verwijderen die aan deze website zijn gekoppeld"</string>
<string name="webstorage_clear_data_dialog_title" msgid="345457466368974706">"Opgeslagen gegevens wissen"</string>
<string name="webstorage_clear_data_dialog_message" msgid="6678281256970470125">"Alle gegevens die door deze website worden opgeslagen, worden verwijderd"</string>
- <string name="webstorage_clear_data_dialog_ok_button" msgid="2516563534211898636">"Alles wissen"</string>
+ <!-- no translation found for webstorage_clear_data_dialog_ok_button (2516563534211898636) -->
+ <skip />
<string name="webstorage_clear_data_dialog_cancel_button" msgid="2028867751958942762">"Annuleren"</string>
<string name="webstorage_origin_summary_mb_stored" msgid="1985885826292236210">"MB opgeslagen op uw telefoon"</string>
- <string name="loading_video" msgid="4887871585216091096">"Video laden"</string>
- <string name="geolocation_permissions_prompt_message" msgid="356796102004052471">"<xliff:g id="WEBSITE_ORIGIN">%s</xliff:g> wil weten wat uw locatie is"</string>
- <string name="geolocation_permissions_prompt_share" msgid="9084486342048347976">"Locatie delen"</string>
- <string name="geolocation_permissions_prompt_dont_share" msgid="6303025160237860300">"Weigeren"</string>
- <string name="geolocation_permissions_prompt_remember" msgid="3118526300707348308">"Voorkeur onthouden"</string>
+ <!-- no translation found for loading_video (4887871585216091096) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_message (356796102004052471) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_share (9084486342048347976) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_dont_share (6303025160237860300) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_remember (3118526300707348308) -->
+ <skip />
<string name="geolocation_settings_page_title" msgid="1745477985097536528">"Locatietoegang ongedaan maken"</string>
<string name="geolocation_settings_page_summary_allowed" msgid="9180251524290811398">"Deze site heeft momenteel toegang tot uw locatie"</string>
<string name="geolocation_settings_page_summary_not_allowed" msgid="4589649082203102544">"Deze site heeft momenteel geen toegang tot uw locatie"</string>
@@ -286,10 +320,15 @@
<string name="geolocation_settings_page_dialog_message" msgid="7586671987576403993">"De locatietoegang voor deze website wordt ongedaan gemaakt"</string>
<string name="geolocation_settings_page_dialog_ok_button" msgid="4789434178048077287">"Toegang ongedaan maken"</string>
<string name="geolocation_settings_page_dialog_cancel_button" msgid="7941036504673409747">"Annuleren"</string>
- <string name="website_settings_clear_all" msgid="8739804325997655980">"Alles wissen"</string>
- <string name="website_settings_clear_all_dialog_title" msgid="7791826325122461718">"Alle instellingen voor de website wissen?"</string>
- <string name="website_settings_clear_all_dialog_message" msgid="6150502090601476333">"Alle websitegegevens en locatiemachtigingen worden gewist."</string>
- <string name="website_settings_clear_all_dialog_ok_button" msgid="6401582240627669431">"Alle gegevens wissen"</string>
- <string name="website_settings_clear_all_dialog_cancel_button" msgid="1896757051856611674">"Annuleren"</string>
+ <!-- no translation found for website_settings_clear_all (8739804325997655980) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_title (7791826325122461718) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_message (6150502090601476333) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_ok_button (6401582240627669431) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_cancel_button (1896757051856611674) -->
+ <skip />
<string name="zoom_overview_button_text" msgid="4146579940085488881">"Overzicht"</string>
</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 8268221..4f051a9 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -16,8 +16,12 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"Internet"</string>
- <string name="new_tab" msgid="4505722538297295141">"Nowe okno"</string>
- <string name="active_tabs" msgid="3050623868203544623">"Okna"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
+ <!-- no translation found for new_tab (4505722538297295141) -->
+ <skip />
+ <!-- no translation found for active_tabs (3050623868203544623) -->
+ <skip />
<string name="tab_bookmarks" msgid="2305793036003473653">"Zakładki"</string>
<string name="tab_most_visited" msgid="1077402532455000703">"Popularne"</string>
<string name="tab_history" msgid="1979267558744613746">"Historia"</string>
@@ -78,8 +82,10 @@
<string name="remove_history_item" msgid="5021424935726728618">"Usuń z historii"</string>
<string name="set_as_homepage" msgid="4752937379414905560">"Ustaw jako stronę główną"</string>
<string name="bookmark_saved" msgid="2766434679871317557">"Zapisano na liście zakładek."</string>
- <string name="bookmark_not_saved" msgid="700600955089376724">"Nie można zapisać zakładki."</string>
- <string name="homepage_set" msgid="8768087280310966395">"Strona główna została ustawiona."</string>
+ <!-- no translation found for bookmark_not_saved (700600955089376724) -->
+ <skip />
+ <!-- no translation found for homepage_set (8768087280310966395) -->
+ <skip />
<string name="bookmark_needs_title" msgid="6245900436119218187">"Zakładka musi mieć nazwę."</string>
<string name="bookmark_needs_url" msgid="7809876865972755158">"Zakładka musi zawierać adres."</string>
<string name="empty_bookmark" msgid="7008697085928540511">"Nie można utworzyć pustej zakładki."</string>
@@ -107,7 +113,8 @@
<string name="shortcut_bookmark" msgid="3974876480401135895">"Utwórz zakładkę"</string>
<string name="history" msgid="2451240511251410032">"Historia"</string>
<string name="menu_view_download" msgid="2124570321712995120">"Pobrane pliki"</string>
- <string name="copy_page_url" msgid="7635062169011319208">"Kopiuj adres URL strony"</string>
+ <!-- no translation found for copy_page_url (7635062169011319208) -->
+ <skip />
<string name="share_page" msgid="593756995297268343">"Udostępnij stronę"</string>
<string name="contextmenu_openlink" msgid="7237961252214188935">"Otwórz"</string>
<string name="contextmenu_openlink_newwindow" msgid="992765050093960353">"Otwórz w nowym oknie"</string>
@@ -122,40 +129,54 @@
<string name="contextmenu_add_contact" msgid="3183511922223645716">"Dodaj kontakt"</string>
<string name="contextmenu_send_mail" msgid="1014513374828775660">"Wyślij e-mail"</string>
<string name="contextmenu_map" msgid="7471390435434034912">"Mapa"</string>
- <string name="choosertitle_sharevia" msgid="4600490613341909086">"Udostępnij za pośrednictwem"</string>
+ <!-- no translation found for choosertitle_sharevia (4600490613341909086) -->
+ <skip />
<string name="clear" msgid="7070043081700011461">"Wyczyść"</string>
<string name="replace" msgid="4843033491070384047">"Zastąp adres"</string>
<string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"Zakładki"</string>
<string name="menu_preferences" msgid="6709237687234102240">"Ustawienia"</string>
<string name="pref_content_title" msgid="722227111894838633">"Ustawienia zawartości stron"</string>
<string name="pref_content_load_images" msgid="2125616852957377561">"Wczytuj obrazy"</string>
- <string name="pref_content_load_images_summary" msgid="5055874125248398584">"Wyświetlaj grafiki na stronach internetowych"</string>
+ <!-- no translation found for pref_content_load_images_summary (5055874125248398584) -->
+ <skip />
<string name="pref_content_block_popups" msgid="7808433807197256726">"Blokuj wyskakujące okna"</string>
<string name="pref_content_javascript" msgid="4570972030299516843">"Włącz skrypty JavaScript"</string>
<string name="pref_content_open_in_background" msgid="824123779725118663">"Otwórz w tle"</string>
- <string name="pref_content_plugins" msgid="7231944644794301582">"Włącz wtyczki"</string>
- <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Otwieraj nowe okna za bieżącym"</string>
+ <!-- no translation found for pref_content_plugins (7231944644794301582) -->
+ <skip />
+ <!-- no translation found for pref_content_open_in_background_summary (1737664075721181678) -->
+ <skip />
<string name="pref_content_homepage" msgid="6082437160778559806">"Ustaw stronę główną"</string>
<string name="pref_content_autofit" msgid="8260474534053660809">"Autodopasowanie stron"</string>
- <string name="pref_content_autofit_summary" msgid="4587831659894879986">"Formatuj strony internetowe w celu dopasowania do ekranu"</string>
- <string name="pref_content_landscape_only" msgid="2022546812766219672">"Wyświetlanie tylko w orientacji poziomej"</string>
- <string name="pref_content_landscape_only_summary" msgid="1008238895535428855">"Wyświetlaj strony tylko w szerszej, poziomej orientacji ekranu"</string>
+ <!-- no translation found for pref_content_autofit_summary (4587831659894879986) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only (2022546812766219672) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only_summary (1008238895535428855) -->
+ <skip />
<string name="pref_privacy_title" msgid="1052470980370846151">"Ustawienia prywatności"</string>
<string name="pref_privacy_clear_cache" msgid="3380316479925886998">"Wyczyść pamięć podręczną"</string>
<string name="pref_privacy_clear_cache_summary" msgid="2216463577207991454">"Wyczyść zawartość lokalnej pamięci podręcznej i baz danych"</string>
- <string name="pref_privacy_clear_cache_dlg" msgid="5541011591300753881">"Zawartość lokalnej pamięci podręcznej i baz danych zostanie usunięta."</string>
+ <!-- no translation found for pref_privacy_clear_cache_dlg (5541011591300753881) -->
+ <skip />
<string name="pref_privacy_clear_cookies" msgid="3095583579133780331">"Wyczyść wszystkie pliki cookie"</string>
- <string name="pref_privacy_clear_cookies_summary" msgid="6962742063990677520">"Wyczyść wszystkie pliki cookie przeglądarki"</string>
- <string name="pref_privacy_clear_cookies_dlg" msgid="552855688091432682">"Wszystkie pliki cookie zostaną usunięte."</string>
+ <!-- no translation found for pref_privacy_clear_cookies_summary (6962742063990677520) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_cookies_dlg (552855688091432682) -->
+ <skip />
<string name="pref_privacy_clear_history" msgid="8723795508825198477">"Wyczyść historię"</string>
<string name="pref_privacy_clear_history_summary" msgid="6868501330708940734">"Wyczyść historię przeglądania"</string>
- <string name="pref_privacy_clear_history_dlg" msgid="544903007914753853">"Historia nawigacji w przeglądarce zostanie usunięta."</string>
+ <!-- no translation found for pref_privacy_clear_history_dlg (544903007914753853) -->
+ <skip />
<string name="pref_privacy_clear_form_data" msgid="4232668196344383987">"Wyczyść dane formularzy"</string>
<string name="pref_privacy_clear_form_data_summary" msgid="1790390894719517167">"Usuń wszystkie zapisane dane formularzy"</string>
- <string name="pref_privacy_clear_form_data_dlg" msgid="4443621086781197928">"Wszystkie zapisane dane formularzy zostaną usunięte."</string>
+ <!-- no translation found for pref_privacy_clear_form_data_dlg (4443621086781197928) -->
+ <skip />
<string name="pref_privacy_clear_passwords" msgid="4750234112289277480">"Wyczyść hasła"</string>
- <string name="pref_privacy_clear_passwords_summary" msgid="8856782718942903335">"Wyczyść wszystkie zapisane hasła"</string>
- <string name="pref_privacy_clear_passwords_dlg" msgid="2083869328824248255">"Wszystkie zapisane hasła zostaną usunięte."</string>
+ <!-- no translation found for pref_privacy_clear_passwords_summary (8856782718942903335) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_passwords_dlg (2083869328824248255) -->
+ <skip />
<string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"Włącz obsługę lokalizacji"</string>
<string name="pref_privacy_enable_geolocation_summary" msgid="8437020934664306205">"Zezwalaj witrynom na żądanie dostępu do informacji o lokalizacji"</string>
<string name="pref_privacy_clear_geolocation_access" msgid="6649680770030042980">"Udziel dostępu do informacji o lokalizacji"</string>
@@ -163,7 +184,8 @@
<string name="pref_privacy_clear_geolocation_access_dlg" msgid="7327063124488827244">"Usuń dostęp wszystkich witryn do informacji o lokalizacji"</string>
<string name="pref_security_title" msgid="5763978646932160021">"Ustawienia zabezpieczeń"</string>
<string name="pref_security_remember_passwords" msgid="6492957683454529549">"Pamiętaj hasła"</string>
- <string name="pref_security_remember_passwords_summary" msgid="256388703356349137">"Zapisz nazwy użytkowników i hasła używane w witrynach"</string>
+ <!-- no translation found for pref_security_remember_passwords_summary (256388703356349137) -->
+ <skip />
<string name="pref_security_save_form_data" msgid="1213669802810198893">"Pamiętaj wpisane dane"</string>
<string name="pref_security_save_form_data_summary" msgid="4994074685153708026">"Zapamiętuj do późniejszego użycia dane, które wpisuję w formularzach"</string>
<string name="pref_security_show_security_warning" msgid="8901135676266754559">"Wyświetlaj ostrzeżenia"</string>
@@ -186,14 +208,17 @@
<item msgid="3840999588443167001">"Duże"</item>
</string-array>
<string name="pref_default_zoom_dialogtitle" msgid="6095974367125109021">"Powiększenie domyślne"</string>
- <string name="pref_content_load_page" msgid="2219810141690955452">"Otwieraj strony w widoku ogólnym"</string>
- <string name="pref_content_load_page_summary" msgid="8792093504054149369">"Pokaż przegląd nowo otwartych stron"</string>
+ <!-- no translation found for pref_content_load_page (2219810141690955452) -->
+ <skip />
+ <!-- no translation found for pref_content_load_page_summary (8792093504054149369) -->
+ <skip />
<string name="pref_extras_title" msgid="3091250467679722382">"Ustawienia zaawansowane"</string>
<string name="pref_extras_website_settings" msgid="67866640052455549">"Ustawienia witryny"</string>
<string name="pref_extras_website_settings_summary" msgid="3917568895776162240">"Wyświetl ustawienia zaawansowane dla poszczególnych witryn"</string>
<string name="pref_extras_reset_default" msgid="8904000515846202110">"Przywróć wartości domyślne"</string>
<string name="pref_extras_reset_default_summary" msgid="7984680562706914966">"Wyczyść wszystkie dane przeglądarki i przywróć wszystkie ustawienia domyślne"</string>
- <string name="pref_extras_reset_default_dlg" msgid="6894807766578874830">"Wszystkie dane przeglądarki zostaną usunięte i zostaną przywrócone wartości domyślne ustawień."</string>
+ <!-- no translation found for pref_extras_reset_default_dlg (6894807766578874830) -->
+ <skip />
<string name="pref_extras_reset_default_dlg_title" msgid="2250334970728938936">"Przywróć wartości domyślne"</string>
<string name="pref_development_title" msgid="3263854204533056480">"Debugowanie"</string>
<string name="pref_default_text_encoding" msgid="5742965543955558478">"Kodowanie tekstu"</string>
@@ -207,15 +232,18 @@
<string name="pref_default_text_encoding_dialogtitle" msgid="5508255018084978547">"Kodowanie tekstu"</string>
<string name="pref_default_text_encoding_default" msgid="5272126711231936722">"Latin-1"</string>
<string name="browserFrameRedirect" msgid="7049675479777828343">"Przekieruj"</string>
- <string name="browserFrame307Post" msgid="1429094844669510768">"Trwa przekierowywanie tej strony internetowej. Czy ponownie wysłać wpisane dane formularza do nowej lokalizacji?"</string>
+ <!-- no translation found for browserFrame307Post (1429094844669510768) -->
+ <skip />
<string name="browserFrameNetworkErrorLabel" msgid="126892350904924893">"Problem z łącznością danych"</string>
<string name="browserFrameFileErrorLabel" msgid="8063691502792670367">"Problem z plikiem"</string>
<string name="browserFrameFormResubmitLabel" msgid="2685923472682180360">"Potwierdzenie"</string>
<string name="browserFrameFormResubmitMessage" msgid="2752182215695632138">"Strona, którą próbujesz wyświetlić, zawiera dane, które już przesłano („POSTDATA”). Jeśli wyślesz te dane ponownie, wszelkie operacje wykonane przez formularz na tej stronie (np. wyszukiwanie lub zakup online) zostaną powtórzone."</string>
<string name="loadSuspendedTitle" msgid="675991625288706944">"Brak połączenia z siecią"</string>
- <string name="loadSuspended" msgid="3133656588880851273">"Przeglądarka nie może wczytać tej strony, ponieważ brak połączenia internetowego."</string>
+ <!-- no translation found for loadSuspended (3133656588880851273) -->
+ <skip />
<string name="clear_history" msgid="5998307092715979619">"Wyczyść historię"</string>
- <string name="browser_history" msgid="1038987118290272525">"Ostatnio odwiedzone strony"</string>
+ <!-- no translation found for browser_history (1038987118290272525) -->
+ <skip />
<string name="empty_history" msgid="8738772352308207274">"Historia przeglądarki jest pusta."</string>
<string name="add_new_bookmark" msgid="8086367791400349049">"Dodaj do zakładek..."</string>
<string name="add_bookmark_short" msgid="3783984330998103735">"Dodaj"</string>
@@ -258,7 +286,8 @@
<string name="download_pending_network" msgid="6548714525679461053">"Oczekiwanie na połączenie danych…"</string>
<string name="download_running_paused" msgid="6418029352085656495">"Oczekiwanie na połączenie danych..."</string>
<string name="download_canceled" msgid="6057083743144492515">"Pobieranie anulowane."</string>
- <string name="download_not_acceptable" msgid="313769696131563652">"Pobranie jest niemożliwe. Zawartość nie jest obsługiwana w tym telefonie."</string>
+ <!-- no translation found for download_not_acceptable (313769696131563652) -->
+ <skip />
<string name="download_file_error" msgid="1206648050615176113">"Nie można ukończyć pobierania. Za mało miejsca."</string>
<string name="download_length_required" msgid="9038605488460437406">"Pobieranie niemożliwe. Nie można ustalić rozmiaru elementu."</string>
<string name="download_precondition_failed" msgid="8327584102874295580">"Pobieranie zostało przerwane. Nie można go wznowić."</string>
@@ -270,14 +299,20 @@
<string name="webstorage_clear_data_summary" msgid="3523128713743907805">"Usuń wszystkie bazy danych powiązane z tą witryną"</string>
<string name="webstorage_clear_data_dialog_title" msgid="345457466368974706">"Wyczyść zapisane dane"</string>
<string name="webstorage_clear_data_dialog_message" msgid="6678281256970470125">"Wszystkie dane zapisane przez tę witrynę zostaną usunięte"</string>
- <string name="webstorage_clear_data_dialog_ok_button" msgid="2516563534211898636">"Wyczyść wszystko"</string>
+ <!-- no translation found for webstorage_clear_data_dialog_ok_button (2516563534211898636) -->
+ <skip />
<string name="webstorage_clear_data_dialog_cancel_button" msgid="2028867751958942762">"Anuluj"</string>
<string name="webstorage_origin_summary_mb_stored" msgid="1985885826292236210">"Liczba MB danych zapisanych w telefonie"</string>
- <string name="loading_video" msgid="4887871585216091096">"Wczytywanie filmu wideo"</string>
- <string name="geolocation_permissions_prompt_message" msgid="356796102004052471">"Witryna <xliff:g id="WEBSITE_ORIGIN">%s</xliff:g> chce uzyskać informacje o Twojej lokalizacji"</string>
- <string name="geolocation_permissions_prompt_share" msgid="9084486342048347976">"Udostępnij informacje o lokalizacji"</string>
- <string name="geolocation_permissions_prompt_dont_share" msgid="6303025160237860300">"Odrzuć"</string>
- <string name="geolocation_permissions_prompt_remember" msgid="3118526300707348308">"Zapamiętaj ustawienie"</string>
+ <!-- no translation found for loading_video (4887871585216091096) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_message (356796102004052471) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_share (9084486342048347976) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_dont_share (6303025160237860300) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_remember (3118526300707348308) -->
+ <skip />
<string name="geolocation_settings_page_title" msgid="1745477985097536528">"Udziel dostępu do informacji o lokalizacji"</string>
<string name="geolocation_settings_page_summary_allowed" msgid="9180251524290811398">"Ta witryna ma obecnie dostęp do informacji o Twojej lokalizacji"</string>
<string name="geolocation_settings_page_summary_not_allowed" msgid="4589649082203102544">"Ta witryna nie ma obecnie dostępu do informacji o Twojej lokalizacji"</string>
@@ -285,10 +320,15 @@
<string name="geolocation_settings_page_dialog_message" msgid="7586671987576403993">"Dostęp tej witryny do informacji o lokalizacji zostanie usunięty"</string>
<string name="geolocation_settings_page_dialog_ok_button" msgid="4789434178048077287">"Usuń dostęp"</string>
<string name="geolocation_settings_page_dialog_cancel_button" msgid="7941036504673409747">"Anuluj"</string>
- <string name="website_settings_clear_all" msgid="8739804325997655980">"Wyczyść wszystko"</string>
- <string name="website_settings_clear_all_dialog_title" msgid="7791826325122461718">"Czy wyczyścić wszystkie ustawienia witryn?"</string>
- <string name="website_settings_clear_all_dialog_message" msgid="6150502090601476333">"Wszystkie dane witryn i uprawnienia do lokalizacji zostaną usunięte."</string>
- <string name="website_settings_clear_all_dialog_ok_button" msgid="6401582240627669431">"Usuń wszystkie dane"</string>
- <string name="website_settings_clear_all_dialog_cancel_button" msgid="1896757051856611674">"Anuluj"</string>
+ <!-- no translation found for website_settings_clear_all (8739804325997655980) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_title (7791826325122461718) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_message (6150502090601476333) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_ok_button (6401582240627669431) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_cancel_button (1896757051856611674) -->
+ <skip />
<string name="zoom_overview_button_text" msgid="4146579940085488881">"Widok ogólny"</string>
</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index ea27534..a5c48fd 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -16,8 +16,12 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"Browser"</string>
- <string name="new_tab" msgid="4505722538297295141">"Nova janela"</string>
- <string name="active_tabs" msgid="3050623868203544623">"Janelas"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
+ <!-- no translation found for new_tab (4505722538297295141) -->
+ <skip />
+ <!-- no translation found for active_tabs (3050623868203544623) -->
+ <skip />
<string name="tab_bookmarks" msgid="2305793036003473653">"Marcadores"</string>
<string name="tab_most_visited" msgid="1077402532455000703">"Os mais visitados"</string>
<string name="tab_history" msgid="1979267558744613746">"Histórico"</string>
@@ -78,8 +82,10 @@
<string name="remove_history_item" msgid="5021424935726728618">"Remover do histórico"</string>
<string name="set_as_homepage" msgid="4752937379414905560">"Definir como página inicial"</string>
<string name="bookmark_saved" msgid="2766434679871317557">"Guardado nos marcadores"</string>
- <string name="bookmark_not_saved" msgid="700600955089376724">"Não foi possível guardar o marcador."</string>
- <string name="homepage_set" msgid="8768087280310966395">"Página inicial definida."</string>
+ <!-- no translation found for bookmark_not_saved (700600955089376724) -->
+ <skip />
+ <!-- no translation found for homepage_set (8768087280310966395) -->
+ <skip />
<string name="bookmark_needs_title" msgid="6245900436119218187">"Os marcadores têm de ter um nome."</string>
<string name="bookmark_needs_url" msgid="7809876865972755158">"O marcador tem de ter uma localização."</string>
<string name="empty_bookmark" msgid="7008697085928540511">"Não é possível criar um marcador vazio."</string>
@@ -107,7 +113,8 @@
<string name="shortcut_bookmark" msgid="3974876480401135895">"Marcador"</string>
<string name="history" msgid="2451240511251410032">"Histórico"</string>
<string name="menu_view_download" msgid="2124570321712995120">"Transferências"</string>
- <string name="copy_page_url" msgid="7635062169011319208">"Copiar URL da página"</string>
+ <!-- no translation found for copy_page_url (7635062169011319208) -->
+ <skip />
<string name="share_page" msgid="593756995297268343">"Partilhar página"</string>
<string name="contextmenu_openlink" msgid="7237961252214188935">"Abrir"</string>
<string name="contextmenu_openlink_newwindow" msgid="992765050093960353">"Abrir numa janela nova"</string>
@@ -122,40 +129,54 @@
<string name="contextmenu_add_contact" msgid="3183511922223645716">"Adicionar contacto"</string>
<string name="contextmenu_send_mail" msgid="1014513374828775660">"Enviar e-mail"</string>
<string name="contextmenu_map" msgid="7471390435434034912">"Mapa"</string>
- <string name="choosertitle_sharevia" msgid="4600490613341909086">"Partilhar através de"</string>
+ <!-- no translation found for choosertitle_sharevia (4600490613341909086) -->
+ <skip />
<string name="clear" msgid="7070043081700011461">"Limpar"</string>
<string name="replace" msgid="4843033491070384047">"Substituir"</string>
<string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"Marcadores"</string>
<string name="menu_preferences" msgid="6709237687234102240">"Definições"</string>
<string name="pref_content_title" msgid="722227111894838633">"Definições de conteúdo da página"</string>
<string name="pref_content_load_images" msgid="2125616852957377561">"Carregar imagens"</string>
- <string name="pref_content_load_images_summary" msgid="5055874125248398584">"Apresentar imagens em páginas Web"</string>
+ <!-- no translation found for pref_content_load_images_summary (5055874125248398584) -->
+ <skip />
<string name="pref_content_block_popups" msgid="7808433807197256726">"Bloquear janelas pop-up"</string>
<string name="pref_content_javascript" msgid="4570972030299516843">"Activar JavaScript"</string>
<string name="pref_content_open_in_background" msgid="824123779725118663">"Abrir em segundo plano"</string>
- <string name="pref_content_plugins" msgid="7231944644794301582">"Activar plug-ins"</string>
- <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Abrir novas janelas atrás da actual"</string>
+ <!-- no translation found for pref_content_plugins (7231944644794301582) -->
+ <skip />
+ <!-- no translation found for pref_content_open_in_background_summary (1737664075721181678) -->
+ <skip />
<string name="pref_content_homepage" msgid="6082437160778559806">"Definir página inicial"</string>
<string name="pref_content_autofit" msgid="8260474534053660809">"Ajuste auto de páginas"</string>
- <string name="pref_content_autofit_summary" msgid="4587831659894879986">"Formatar páginas Web para se ajustarem ao ecrã"</string>
- <string name="pref_content_landscape_only" msgid="2022546812766219672">"Apresentação apenas na horizontal"</string>
- <string name="pref_content_landscape_only_summary" msgid="1008238895535428855">"Apresentar páginas apenas na orientação horizontal do ecrã (mais larga)"</string>
+ <!-- no translation found for pref_content_autofit_summary (4587831659894879986) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only (2022546812766219672) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only_summary (1008238895535428855) -->
+ <skip />
<string name="pref_privacy_title" msgid="1052470980370846151">"Definições de privacidade"</string>
<string name="pref_privacy_clear_cache" msgid="3380316479925886998">"Limpar cache"</string>
<string name="pref_privacy_clear_cache_summary" msgid="2216463577207991454">"Limpar bases de dados e conteúdos colocados em cache localmente"</string>
- <string name="pref_privacy_clear_cache_dlg" msgid="5541011591300753881">"As bases de dados e os conteúdos colocados em cache localmente serão eliminados."</string>
+ <!-- no translation found for pref_privacy_clear_cache_dlg (5541011591300753881) -->
+ <skip />
<string name="pref_privacy_clear_cookies" msgid="3095583579133780331">"Limpar os dados de cookies"</string>
- <string name="pref_privacy_clear_cookies_summary" msgid="6962742063990677520">"Limpar todos os cookies do browser"</string>
- <string name="pref_privacy_clear_cookies_dlg" msgid="552855688091432682">"Todos os cookies serão eliminados."</string>
+ <!-- no translation found for pref_privacy_clear_cookies_summary (6962742063990677520) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_cookies_dlg (552855688091432682) -->
+ <skip />
<string name="pref_privacy_clear_history" msgid="8723795508825198477">"Limpar histórico"</string>
<string name="pref_privacy_clear_history_summary" msgid="6868501330708940734">"Limpar o histórico de navegação do browser"</string>
- <string name="pref_privacy_clear_history_dlg" msgid="544903007914753853">"O histórico de navegação do browser será eliminado."</string>
+ <!-- no translation found for pref_privacy_clear_history_dlg (544903007914753853) -->
+ <skip />
<string name="pref_privacy_clear_form_data" msgid="4232668196344383987">"Limpar dados de formulário"</string>
<string name="pref_privacy_clear_form_data_summary" msgid="1790390894719517167">"Limpar todos os dados de formulário guardados"</string>
- <string name="pref_privacy_clear_form_data_dlg" msgid="4443621086781197928">"Todos os dados de formulário guardados serão eliminados."</string>
+ <!-- no translation found for pref_privacy_clear_form_data_dlg (4443621086781197928) -->
+ <skip />
<string name="pref_privacy_clear_passwords" msgid="4750234112289277480">"Limpar palavras-passe"</string>
- <string name="pref_privacy_clear_passwords_summary" msgid="8856782718942903335">"Limpar todas as palavras-passe guardadas"</string>
- <string name="pref_privacy_clear_passwords_dlg" msgid="2083869328824248255">"Todas as palavras-passe guardadas serão eliminadas."</string>
+ <!-- no translation found for pref_privacy_clear_passwords_summary (8856782718942903335) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_passwords_dlg (2083869328824248255) -->
+ <skip />
<string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"Activar localização"</string>
<string name="pref_privacy_enable_geolocation_summary" msgid="8437020934664306205">"Permitir que os sites solicitem acesso à sua localização"</string>
<string name="pref_privacy_clear_geolocation_access" msgid="6649680770030042980">"Limpar acesso à localização"</string>
@@ -163,7 +184,8 @@
<string name="pref_privacy_clear_geolocation_access_dlg" msgid="7327063124488827244">"Limpar o acesso à localização para todos os Web sites"</string>
<string name="pref_security_title" msgid="5763978646932160021">"Definições de segurança"</string>
<string name="pref_security_remember_passwords" msgid="6492957683454529549">"Lembrar palavras-passe"</string>
- <string name="pref_security_remember_passwords_summary" msgid="256388703356349137">"Guardar nomes de utilizador e palavras-passe de Web sites"</string>
+ <!-- no translation found for pref_security_remember_passwords_summary (256388703356349137) -->
+ <skip />
<string name="pref_security_save_form_data" msgid="1213669802810198893">"Lembrar dados formulário"</string>
<string name="pref_security_save_form_data_summary" msgid="4994074685153708026">"Lembrar dados introduzidos em formulários para utilização posterior"</string>
<string name="pref_security_show_security_warning" msgid="8901135676266754559">"Mostrar avisos segurança"</string>
@@ -186,14 +208,17 @@
<item msgid="3840999588443167001">"Fechar"</item>
</string-array>
<string name="pref_default_zoom_dialogtitle" msgid="6095974367125109021">"Zoom predefinido"</string>
- <string name="pref_content_load_page" msgid="2219810141690955452">"Abrir páginas na vista geral"</string>
- <string name="pref_content_load_page_summary" msgid="8792093504054149369">"Mostrar descrição geral de páginas abertas recentemente"</string>
+ <!-- no translation found for pref_content_load_page (2219810141690955452) -->
+ <skip />
+ <!-- no translation found for pref_content_load_page_summary (8792093504054149369) -->
+ <skip />
<string name="pref_extras_title" msgid="3091250467679722382">"Definições avançadas"</string>
<string name="pref_extras_website_settings" msgid="67866640052455549">"Definições de Web site"</string>
<string name="pref_extras_website_settings_summary" msgid="3917568895776162240">"Ver definições avançadas para Web sites individuais"</string>
<string name="pref_extras_reset_default" msgid="8904000515846202110">"Repor as predefinições"</string>
<string name="pref_extras_reset_default_summary" msgid="7984680562706914966">"Limpar todos os dados do browser e repor todas as predefinições"</string>
- <string name="pref_extras_reset_default_dlg" msgid="6894807766578874830">"Todos os dados do browser serão eliminados e as definições assumirão os valores predefinidos."</string>
+ <!-- no translation found for pref_extras_reset_default_dlg (6894807766578874830) -->
+ <skip />
<string name="pref_extras_reset_default_dlg_title" msgid="2250334970728938936">"Repor as predefinições"</string>
<string name="pref_development_title" msgid="3263854204533056480">"Depuração"</string>
<string name="pref_default_text_encoding" msgid="5742965543955558478">"Codificação do texto"</string>
@@ -207,15 +232,18 @@
<string name="pref_default_text_encoding_dialogtitle" msgid="5508255018084978547">"Codificação do texto"</string>
<string name="pref_default_text_encoding_default" msgid="5272126711231936722">"Latim-1"</string>
<string name="browserFrameRedirect" msgid="7049675479777828343">"Redireccionar"</string>
- <string name="browserFrame307Post" msgid="1429094844669510768">"Esta página Web está a ser redireccionada. Pretende reenviar os dados de formulário introduzidos para a nova localização?"</string>
+ <!-- no translation found for browserFrame307Post (1429094844669510768) -->
+ <skip />
<string name="browserFrameNetworkErrorLabel" msgid="126892350904924893">"Problema de conectividade de dados"</string>
<string name="browserFrameFileErrorLabel" msgid="8063691502792670367">"Problemas com o ficheiro"</string>
<string name="browserFrameFormResubmitLabel" msgid="2685923472682180360">"Confirmar"</string>
<string name="browserFrameFormResubmitMessage" msgid="2752182215695632138">"A página que está a tentar visualizar contém dados enviados anteriormente (\"REGISTDADOS\"). Se reenviar os dados, qualquer acção já tomada pelo formulário da página (como uma pesquisa ou compra on-line) será repetida."</string>
<string name="loadSuspendedTitle" msgid="675991625288706944">"Sem ligação de rede"</string>
- <string name="loadSuspended" msgid="3133656588880851273">"O browser não consegue carregar esta página porque não existe ligação à Internet."</string>
+ <!-- no translation found for loadSuspended (3133656588880851273) -->
+ <skip />
<string name="clear_history" msgid="5998307092715979619">"Limpar histórico"</string>
- <string name="browser_history" msgid="1038987118290272525">"Páginas visitadas recentemente"</string>
+ <!-- no translation found for browser_history (1038987118290272525) -->
+ <skip />
<string name="empty_history" msgid="8738772352308207274">"O histórico do browser está vazio."</string>
<string name="add_new_bookmark" msgid="8086367791400349049">"Adicionar marcador..."</string>
<string name="add_bookmark_short" msgid="3783984330998103735">"Adicionar"</string>
@@ -258,7 +286,8 @@
<string name="download_pending_network" msgid="6548714525679461053">"A aguardar ligação de dados…"</string>
<string name="download_running_paused" msgid="6418029352085656495">"A aguardar ligação de dados…"</string>
<string name="download_canceled" msgid="6057083743144492515">"Transferência cancelada."</string>
- <string name="download_not_acceptable" msgid="313769696131563652">"Não é possível transferir. O conteúdo não é suportado por este telefone."</string>
+ <!-- no translation found for download_not_acceptable (313769696131563652) -->
+ <skip />
<string name="download_file_error" msgid="1206648050615176113">"Não é possível concluir a transferência. Não existe espaço suficiente."</string>
<string name="download_length_required" msgid="9038605488460437406">"Não é possível transferir porque o tamanho do item é indeterminado."</string>
<string name="download_precondition_failed" msgid="8327584102874295580">"A transferência foi interrompida e não pode ser retomada."</string>
@@ -270,14 +299,20 @@
<string name="webstorage_clear_data_summary" msgid="3523128713743907805">"Remover todas as bases de dados associadas a este Web site"</string>
<string name="webstorage_clear_data_dialog_title" msgid="345457466368974706">"Limpar dados armazenados"</string>
<string name="webstorage_clear_data_dialog_message" msgid="6678281256970470125">"Todos os dados armazenados por este Web site serão limpos"</string>
- <string name="webstorage_clear_data_dialog_ok_button" msgid="2516563534211898636">"Limpar tudo"</string>
+ <!-- no translation found for webstorage_clear_data_dialog_ok_button (2516563534211898636) -->
+ <skip />
<string name="webstorage_clear_data_dialog_cancel_button" msgid="2028867751958942762">"Cancelar"</string>
<string name="webstorage_origin_summary_mb_stored" msgid="1985885826292236210">"MB armazenados no telefone"</string>
- <string name="loading_video" msgid="4887871585216091096">"A carregar vídeo"</string>
- <string name="geolocation_permissions_prompt_message" msgid="356796102004052471">"<xliff:g id="WEBSITE_ORIGIN">%s</xliff:g> pretende conhecer a sua localização"</string>
- <string name="geolocation_permissions_prompt_share" msgid="9084486342048347976">"Partilhar localização"</string>
- <string name="geolocation_permissions_prompt_dont_share" msgid="6303025160237860300">"Recusar"</string>
- <string name="geolocation_permissions_prompt_remember" msgid="3118526300707348308">"Memorizar preferência"</string>
+ <!-- no translation found for loading_video (4887871585216091096) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_message (356796102004052471) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_share (9084486342048347976) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_dont_share (6303025160237860300) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_remember (3118526300707348308) -->
+ <skip />
<string name="geolocation_settings_page_title" msgid="1745477985097536528">"Limpar acesso à localização"</string>
<string name="geolocation_settings_page_summary_allowed" msgid="9180251524290811398">"Actualmente este site pode aceder à sua localização"</string>
<string name="geolocation_settings_page_summary_not_allowed" msgid="4589649082203102544">"Actualmente este site não pode aceder à sua localização"</string>
@@ -285,10 +320,15 @@
<string name="geolocation_settings_page_dialog_message" msgid="7586671987576403993">"O acesso à localização para este Web site será limpo"</string>
<string name="geolocation_settings_page_dialog_ok_button" msgid="4789434178048077287">"Limpar acesso"</string>
<string name="geolocation_settings_page_dialog_cancel_button" msgid="7941036504673409747">"Cancelar"</string>
- <string name="website_settings_clear_all" msgid="8739804325997655980">"Limpar tudo"</string>
- <string name="website_settings_clear_all_dialog_title" msgid="7791826325122461718">"Limpar todas as definições do Web site?"</string>
- <string name="website_settings_clear_all_dialog_message" msgid="6150502090601476333">"Todos os dados do Web site e permissões de localização serão eliminados."</string>
- <string name="website_settings_clear_all_dialog_ok_button" msgid="6401582240627669431">"Eliminar todos os dados"</string>
- <string name="website_settings_clear_all_dialog_cancel_button" msgid="1896757051856611674">"Cancelar"</string>
+ <!-- no translation found for website_settings_clear_all (8739804325997655980) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_title (7791826325122461718) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_message (6150502090601476333) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_ok_button (6401582240627669431) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_cancel_button (1896757051856611674) -->
+ <skip />
<string name="zoom_overview_button_text" msgid="4146579940085488881">"Visão geral"</string>
</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 1ff05fa..f0b457c 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -16,8 +16,12 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"Navegador"</string>
- <string name="new_tab" msgid="4505722538297295141">"Nova janela"</string>
- <string name="active_tabs" msgid="3050623868203544623">"Janelas"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
+ <!-- no translation found for new_tab (4505722538297295141) -->
+ <skip />
+ <!-- no translation found for active_tabs (3050623868203544623) -->
+ <skip />
<string name="tab_bookmarks" msgid="2305793036003473653">"Favoritos"</string>
<string name="tab_most_visited" msgid="1077402532455000703">"Mais visitados"</string>
<string name="tab_history" msgid="1979267558744613746">"Histórico"</string>
@@ -78,8 +82,10 @@
<string name="remove_history_item" msgid="5021424935726728618">"Remover do histórico"</string>
<string name="set_as_homepage" msgid="4752937379414905560">"Definir como página inicial"</string>
<string name="bookmark_saved" msgid="2766434679871317557">"Salvo nos favoritos."</string>
- <string name="bookmark_not_saved" msgid="700600955089376724">"Não foi possível salvar o favorito."</string>
- <string name="homepage_set" msgid="8768087280310966395">"Página inicial definida."</string>
+ <!-- no translation found for bookmark_not_saved (700600955089376724) -->
+ <skip />
+ <!-- no translation found for homepage_set (8768087280310966395) -->
+ <skip />
<string name="bookmark_needs_title" msgid="6245900436119218187">"O favorito precisa ter um nome."</string>
<string name="bookmark_needs_url" msgid="7809876865972755158">"O favorito precisa ter um local."</string>
<string name="empty_bookmark" msgid="7008697085928540511">"Não é possível criar um favorito vazio."</string>
@@ -107,7 +113,8 @@
<string name="shortcut_bookmark" msgid="3974876480401135895">"Favorito"</string>
<string name="history" msgid="2451240511251410032">"Histórico"</string>
<string name="menu_view_download" msgid="2124570321712995120">"Downloads"</string>
- <string name="copy_page_url" msgid="7635062169011319208">"Copiar URL da página"</string>
+ <!-- no translation found for copy_page_url (7635062169011319208) -->
+ <skip />
<string name="share_page" msgid="593756995297268343">"Compartilhar página"</string>
<string name="contextmenu_openlink" msgid="7237961252214188935">"Abrir"</string>
<string name="contextmenu_openlink_newwindow" msgid="992765050093960353">"Abrir em uma nova janela"</string>
@@ -122,40 +129,54 @@
<string name="contextmenu_add_contact" msgid="3183511922223645716">"Adicionar contato"</string>
<string name="contextmenu_send_mail" msgid="1014513374828775660">"Enviar e-mail"</string>
<string name="contextmenu_map" msgid="7471390435434034912">"Mapa"</string>
- <string name="choosertitle_sharevia" msgid="4600490613341909086">"Compartilhar via"</string>
+ <!-- no translation found for choosertitle_sharevia (4600490613341909086) -->
+ <skip />
<string name="clear" msgid="7070043081700011461">"Limpar"</string>
<string name="replace" msgid="4843033491070384047">"Substituir"</string>
<string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"Favoritos"</string>
<string name="menu_preferences" msgid="6709237687234102240">"Configurações"</string>
<string name="pref_content_title" msgid="722227111894838633">"Configurações do conteúdo da página"</string>
<string name="pref_content_load_images" msgid="2125616852957377561">"Carregar imagens"</string>
- <string name="pref_content_load_images_summary" msgid="5055874125248398584">"Exibir imagens nas páginas da web"</string>
+ <!-- no translation found for pref_content_load_images_summary (5055874125248398584) -->
+ <skip />
<string name="pref_content_block_popups" msgid="7808433807197256726">"Bloquear janelas pop-up"</string>
<string name="pref_content_javascript" msgid="4570972030299516843">"Ativar JavaScript"</string>
<string name="pref_content_open_in_background" msgid="824123779725118663">"Abrir em segundo plano"</string>
- <string name="pref_content_plugins" msgid="7231944644794301582">"Ativar plug-ins"</string>
- <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Abrir novas janelas atrás da janela atual"</string>
+ <!-- no translation found for pref_content_plugins (7231944644794301582) -->
+ <skip />
+ <!-- no translation found for pref_content_open_in_background_summary (1737664075721181678) -->
+ <skip />
<string name="pref_content_homepage" msgid="6082437160778559806">"Definir a página inicial"</string>
<string name="pref_content_autofit" msgid="8260474534053660809">"Ajustar automaticamente"</string>
- <string name="pref_content_autofit_summary" msgid="4587831659894879986">"Formatar páginas da web para se ajustarem à tela"</string>
- <string name="pref_content_landscape_only" msgid="2022546812766219672">"Exibição apenas em modo paisagem"</string>
- <string name="pref_content_landscape_only_summary" msgid="1008238895535428855">"Exibir páginas apenas na orientação mais larga, com a tela no modo paisagem"</string>
+ <!-- no translation found for pref_content_autofit_summary (4587831659894879986) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only (2022546812766219672) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only_summary (1008238895535428855) -->
+ <skip />
<string name="pref_privacy_title" msgid="1052470980370846151">"Configurações de privacidade"</string>
<string name="pref_privacy_clear_cache" msgid="3380316479925886998">"Limpar cache"</string>
<string name="pref_privacy_clear_cache_summary" msgid="2216463577207991454">"Limpar conteúdo e bancos de dados armazenados localmente em cache"</string>
- <string name="pref_privacy_clear_cache_dlg" msgid="5541011591300753881">"O conteúdo e os bancos de dados armazenados localmente em cache serão excluídos."</string>
+ <!-- no translation found for pref_privacy_clear_cache_dlg (5541011591300753881) -->
+ <skip />
<string name="pref_privacy_clear_cookies" msgid="3095583579133780331">"Limpar dados de cookie"</string>
- <string name="pref_privacy_clear_cookies_summary" msgid="6962742063990677520">"Limpar todos os cookies do navegador"</string>
- <string name="pref_privacy_clear_cookies_dlg" msgid="552855688091432682">"Todos os cookies serão excluídos."</string>
+ <!-- no translation found for pref_privacy_clear_cookies_summary (6962742063990677520) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_cookies_dlg (552855688091432682) -->
+ <skip />
<string name="pref_privacy_clear_history" msgid="8723795508825198477">"Limpar histórico"</string>
<string name="pref_privacy_clear_history_summary" msgid="6868501330708940734">"Limpar o histórico de navegação do navegador"</string>
- <string name="pref_privacy_clear_history_dlg" msgid="544903007914753853">"O histórico de navegação do navegador será excluído."</string>
+ <!-- no translation found for pref_privacy_clear_history_dlg (544903007914753853) -->
+ <skip />
<string name="pref_privacy_clear_form_data" msgid="4232668196344383987">"Limpar dados formulário"</string>
<string name="pref_privacy_clear_form_data_summary" msgid="1790390894719517167">"Limpar todos os dados de formulário salvos"</string>
- <string name="pref_privacy_clear_form_data_dlg" msgid="4443621086781197928">"Todos os dados de formulário salvos serão excluídos."</string>
+ <!-- no translation found for pref_privacy_clear_form_data_dlg (4443621086781197928) -->
+ <skip />
<string name="pref_privacy_clear_passwords" msgid="4750234112289277480">"Limpar senhas"</string>
- <string name="pref_privacy_clear_passwords_summary" msgid="8856782718942903335">"Limpar todas as senhas salvas"</string>
- <string name="pref_privacy_clear_passwords_dlg" msgid="2083869328824248255">"Todas as senhas salvas serão excluídas."</string>
+ <!-- no translation found for pref_privacy_clear_passwords_summary (8856782718942903335) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_passwords_dlg (2083869328824248255) -->
+ <skip />
<string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"Ativar localização"</string>
<string name="pref_privacy_enable_geolocation_summary" msgid="8437020934664306205">"Permitir que os sites solicitem acesso à sua localização"</string>
<string name="pref_privacy_clear_geolocation_access" msgid="6649680770030042980">"Limpar acesso à localização"</string>
@@ -163,7 +184,8 @@
<string name="pref_privacy_clear_geolocation_access_dlg" msgid="7327063124488827244">"Limpar acesso à localização para todos os sites"</string>
<string name="pref_security_title" msgid="5763978646932160021">"Configurações de segurança"</string>
<string name="pref_security_remember_passwords" msgid="6492957683454529549">"Lembrar senhas"</string>
- <string name="pref_security_remember_passwords_summary" msgid="256388703356349137">"Salvar nomes de usuário e senhas para sites"</string>
+ <!-- no translation found for pref_security_remember_passwords_summary (256388703356349137) -->
+ <skip />
<string name="pref_security_save_form_data" msgid="1213669802810198893">"Lembrar dados formulário"</string>
<string name="pref_security_save_form_data_summary" msgid="4994074685153708026">"Lembrar os dados que digitei nos formulários para uso posterior."</string>
<string name="pref_security_show_security_warning" msgid="8901135676266754559">"Avisos de segurança"</string>
@@ -186,14 +208,17 @@
<item msgid="3840999588443167001">"Perto"</item>
</string-array>
<string name="pref_default_zoom_dialogtitle" msgid="6095974367125109021">"Zoom padrão"</string>
- <string name="pref_content_load_page" msgid="2219810141690955452">"Abrir páginas na visão geral"</string>
- <string name="pref_content_load_page_summary" msgid="8792093504054149369">"Exibir visão geral das páginas abertas recentemente"</string>
+ <!-- no translation found for pref_content_load_page (2219810141690955452) -->
+ <skip />
+ <!-- no translation found for pref_content_load_page_summary (8792093504054149369) -->
+ <skip />
<string name="pref_extras_title" msgid="3091250467679722382">"Configurações avançadas"</string>
<string name="pref_extras_website_settings" msgid="67866640052455549">"Configurações do site"</string>
<string name="pref_extras_website_settings_summary" msgid="3917568895776162240">"Visualizar configurações avançadas para sites individuais"</string>
<string name="pref_extras_reset_default" msgid="8904000515846202110">"Redefinir para o padrão"</string>
<string name="pref_extras_reset_default_summary" msgid="7984680562706914966">"Limpar dados do navegador e redefinir as configurações para o padrão"</string>
- <string name="pref_extras_reset_default_dlg" msgid="6894807766578874830">"Todos os dados do navegador serão excluídos e as configurações voltarão para os valores padrão."</string>
+ <!-- no translation found for pref_extras_reset_default_dlg (6894807766578874830) -->
+ <skip />
<string name="pref_extras_reset_default_dlg_title" msgid="2250334970728938936">"Redefinir para o padrão"</string>
<string name="pref_development_title" msgid="3263854204533056480">"Depurar"</string>
<string name="pref_default_text_encoding" msgid="5742965543955558478">"Codificação de texto"</string>
@@ -207,15 +232,18 @@
<string name="pref_default_text_encoding_dialogtitle" msgid="5508255018084978547">"Codificação de texto"</string>
<string name="pref_default_text_encoding_default" msgid="5272126711231936722">"Latin-1"</string>
<string name="browserFrameRedirect" msgid="7049675479777828343">"Redirecionar"</string>
- <string name="browserFrame307Post" msgid="1429094844669510768">"Esta página da web está sendo redirecionada. Reenviar os seus dados de formulário digitados para o novo local?"</string>
+ <!-- no translation found for browserFrame307Post (1429094844669510768) -->
+ <skip />
<string name="browserFrameNetworkErrorLabel" msgid="126892350904924893">"Problema de conectividade de dados"</string>
<string name="browserFrameFileErrorLabel" msgid="8063691502792670367">"Problema com o arquivo"</string>
<string name="browserFrameFormResubmitLabel" msgid="2685923472682180360">"Confirmar"</string>
<string name="browserFrameFormResubmitMessage" msgid="2752182215695632138">"A página que você está tentando visualizar contém dados já enviados (\"POSTDATA\"). Se você reenviar os dados, qualquer ação executada pelo formulário na página (como uma pesquisa ou uma compra on-line) será repetida."</string>
<string name="loadSuspendedTitle" msgid="675991625288706944">"Nenhuma conexão de rede"</string>
- <string name="loadSuspended" msgid="3133656588880851273">"O navegador não pode carregar esta página porque não há conexão com a internet."</string>
+ <!-- no translation found for loadSuspended (3133656588880851273) -->
+ <skip />
<string name="clear_history" msgid="5998307092715979619">"Limpar histórico"</string>
- <string name="browser_history" msgid="1038987118290272525">"Páginas visitadas recentemente"</string>
+ <!-- no translation found for browser_history (1038987118290272525) -->
+ <skip />
<string name="empty_history" msgid="8738772352308207274">"O histórico do navegador está vazio."</string>
<string name="add_new_bookmark" msgid="8086367791400349049">"Adicionar favorito…"</string>
<string name="add_bookmark_short" msgid="3783984330998103735">"Adicionar"</string>
@@ -258,7 +286,8 @@
<string name="download_pending_network" msgid="6548714525679461053">"Aguardando conexão dos dados…"</string>
<string name="download_running_paused" msgid="6418029352085656495">"Aguardando conexão dos dados…"</string>
<string name="download_canceled" msgid="6057083743144492515">"Download cancelado."</string>
- <string name="download_not_acceptable" msgid="313769696131563652">"Não foi possível fazer o download. O conteúdo não é suportado neste telefone."</string>
+ <!-- no translation found for download_not_acceptable (313769696131563652) -->
+ <skip />
<string name="download_file_error" msgid="1206648050615176113">"Não é possível concluir o download. Não há espaço suficiente."</string>
<string name="download_length_required" msgid="9038605488460437406">"Não é possível fazer o download. O tamanho do item não pode ser determinado."</string>
<string name="download_precondition_failed" msgid="8327584102874295580">"Download interrompido. Não é possível retomar."</string>
@@ -270,14 +299,20 @@
<string name="webstorage_clear_data_summary" msgid="3523128713743907805">"Remover todos os bancos de dados associados a esse site"</string>
<string name="webstorage_clear_data_dialog_title" msgid="345457466368974706">"Limpar dados armazenados"</string>
<string name="webstorage_clear_data_dialog_message" msgid="6678281256970470125">"Todos os dados armazenados por este site serão excluídos"</string>
- <string name="webstorage_clear_data_dialog_ok_button" msgid="2516563534211898636">"Limpar tudo"</string>
+ <!-- no translation found for webstorage_clear_data_dialog_ok_button (2516563534211898636) -->
+ <skip />
<string name="webstorage_clear_data_dialog_cancel_button" msgid="2028867751958942762">"Cancelar"</string>
<string name="webstorage_origin_summary_mb_stored" msgid="1985885826292236210">"MB armazenados no seu telefone"</string>
- <string name="loading_video" msgid="4887871585216091096">"Carregando vídeo"</string>
- <string name="geolocation_permissions_prompt_message" msgid="356796102004052471">"<xliff:g id="WEBSITE_ORIGIN">%s</xliff:g> quer saber a sua localização"</string>
- <string name="geolocation_permissions_prompt_share" msgid="9084486342048347976">"Compartilhar local"</string>
- <string name="geolocation_permissions_prompt_dont_share" msgid="6303025160237860300">"Recusar"</string>
- <string name="geolocation_permissions_prompt_remember" msgid="3118526300707348308">"Lembrar preferências"</string>
+ <!-- no translation found for loading_video (4887871585216091096) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_message (356796102004052471) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_share (9084486342048347976) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_dont_share (6303025160237860300) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_remember (3118526300707348308) -->
+ <skip />
<string name="geolocation_settings_page_title" msgid="1745477985097536528">"Limpar acesso à localização"</string>
<string name="geolocation_settings_page_summary_allowed" msgid="9180251524290811398">"Este site pode acessar a sua localização no momento"</string>
<string name="geolocation_settings_page_summary_not_allowed" msgid="4589649082203102544">"Este site não pode acessar a sua localização no momento"</string>
@@ -285,10 +320,15 @@
<string name="geolocation_settings_page_dialog_message" msgid="7586671987576403993">"O acesso à localização será limpo para este site"</string>
<string name="geolocation_settings_page_dialog_ok_button" msgid="4789434178048077287">"Limpar acesso"</string>
<string name="geolocation_settings_page_dialog_cancel_button" msgid="7941036504673409747">"Cancelar"</string>
- <string name="website_settings_clear_all" msgid="8739804325997655980">"Limpar tudo"</string>
- <string name="website_settings_clear_all_dialog_title" msgid="7791826325122461718">"Limpar todas as configurações do site?"</string>
- <string name="website_settings_clear_all_dialog_message" msgid="6150502090601476333">"Todos os dados do site e permissões de local serão excluídos."</string>
- <string name="website_settings_clear_all_dialog_ok_button" msgid="6401582240627669431">"Excluir todos os dados"</string>
- <string name="website_settings_clear_all_dialog_cancel_button" msgid="1896757051856611674">"Cancelar"</string>
+ <!-- no translation found for website_settings_clear_all (8739804325997655980) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_title (7791826325122461718) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_message (6150502090601476333) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_ok_button (6401582240627669431) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_cancel_button (1896757051856611674) -->
+ <skip />
<string name="zoom_overview_button_text" msgid="4146579940085488881">"Visão geral"</string>
</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index ec2f257..e87f393 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -16,8 +16,12 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"Браузер"</string>
- <string name="new_tab" msgid="4505722538297295141">"Новое окно"</string>
- <string name="active_tabs" msgid="3050623868203544623">"Окна"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
+ <!-- no translation found for new_tab (4505722538297295141) -->
+ <skip />
+ <!-- no translation found for active_tabs (3050623868203544623) -->
+ <skip />
<string name="tab_bookmarks" msgid="2305793036003473653">"Закладки"</string>
<string name="tab_most_visited" msgid="1077402532455000703">"Часто посещаемые"</string>
<string name="tab_history" msgid="1979267558744613746">"История"</string>
@@ -78,8 +82,10 @@
<string name="remove_history_item" msgid="5021424935726728618">"Удалить из истории"</string>
<string name="set_as_homepage" msgid="4752937379414905560">"Сделать главной страницей"</string>
<string name="bookmark_saved" msgid="2766434679871317557">"Сохранено в закладках."</string>
- <string name="bookmark_not_saved" msgid="700600955089376724">"Не удалось сохранить закладку."</string>
- <string name="homepage_set" msgid="8768087280310966395">"Главная страница установлена."</string>
+ <!-- no translation found for bookmark_not_saved (700600955089376724) -->
+ <skip />
+ <!-- no translation found for homepage_set (8768087280310966395) -->
+ <skip />
<string name="bookmark_needs_title" msgid="6245900436119218187">"Необходимо указать имя закладки."</string>
<string name="bookmark_needs_url" msgid="7809876865972755158">"Необходимо указать место закладки."</string>
<string name="empty_bookmark" msgid="7008697085928540511">"Невозможно создать пустую закладку."</string>
@@ -107,7 +113,8 @@
<string name="shortcut_bookmark" msgid="3974876480401135895">"Добавить в закладки"</string>
<string name="history" msgid="2451240511251410032">"История"</string>
<string name="menu_view_download" msgid="2124570321712995120">"Загрузки"</string>
- <string name="copy_page_url" msgid="7635062169011319208">"Копировать URL страницы"</string>
+ <!-- no translation found for copy_page_url (7635062169011319208) -->
+ <skip />
<string name="share_page" msgid="593756995297268343">"Отправить страницу"</string>
<string name="contextmenu_openlink" msgid="7237961252214188935">"Открыть"</string>
<string name="contextmenu_openlink_newwindow" msgid="992765050093960353">"Открыть в новом окне"</string>
@@ -122,40 +129,54 @@
<string name="contextmenu_add_contact" msgid="3183511922223645716">"Добавить контакт"</string>
<string name="contextmenu_send_mail" msgid="1014513374828775660">"Отправить сообщение по электронной почте"</string>
<string name="contextmenu_map" msgid="7471390435434034912">"Карта"</string>
- <string name="choosertitle_sharevia" msgid="4600490613341909086">"Способ отправки"</string>
+ <!-- no translation found for choosertitle_sharevia (4600490613341909086) -->
+ <skip />
<string name="clear" msgid="7070043081700011461">"Очистить"</string>
<string name="replace" msgid="4843033491070384047">"Заменить"</string>
<string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"Закладки"</string>
<string name="menu_preferences" msgid="6709237687234102240">"Настройки"</string>
<string name="pref_content_title" msgid="722227111894838633">"Настройки содержания страницы"</string>
<string name="pref_content_load_images" msgid="2125616852957377561">"Загружать картинки"</string>
- <string name="pref_content_load_images_summary" msgid="5055874125248398584">"Показывать картинки на веб-страницах"</string>
+ <!-- no translation found for pref_content_load_images_summary (5055874125248398584) -->
+ <skip />
<string name="pref_content_block_popups" msgid="7808433807197256726">"Блокировать всплывающие окна"</string>
<string name="pref_content_javascript" msgid="4570972030299516843">"Включить JavaScript"</string>
<string name="pref_content_open_in_background" msgid="824123779725118663">"Открывать в фоновом режиме"</string>
- <string name="pref_content_plugins" msgid="7231944644794301582">"Включить плагины"</string>
- <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Открывать новые окна позади текущего окна"</string>
+ <!-- no translation found for pref_content_plugins (7231944644794301582) -->
+ <skip />
+ <!-- no translation found for pref_content_open_in_background_summary (1737664075721181678) -->
+ <skip />
<string name="pref_content_homepage" msgid="6082437160778559806">"Выбрать главную страницу"</string>
<string name="pref_content_autofit" msgid="8260474534053660809">"Подгонять страницы"</string>
- <string name="pref_content_autofit_summary" msgid="4587831659894879986">"Подгонять веб-страницы под размер экрана"</string>
- <string name="pref_content_landscape_only" msgid="2022546812766219672">"Только альбомный вид"</string>
- <string name="pref_content_landscape_only_summary" msgid="1008238895535428855">"Показывать страницы только в альбомной ориентации"</string>
+ <!-- no translation found for pref_content_autofit_summary (4587831659894879986) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only (2022546812766219672) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only_summary (1008238895535428855) -->
+ <skip />
<string name="pref_privacy_title" msgid="1052470980370846151">"Настройки конфиденциальности"</string>
<string name="pref_privacy_clear_cache" msgid="3380316479925886998">"Очистить кэш"</string>
<string name="pref_privacy_clear_cache_summary" msgid="2216463577207991454">"Очистить содержание и базы данных, сохраненные локально"</string>
- <string name="pref_privacy_clear_cache_dlg" msgid="5541011591300753881">"Содержание и базы данных, сохраненные локально, будут удалены."</string>
+ <!-- no translation found for pref_privacy_clear_cache_dlg (5541011591300753881) -->
+ <skip />
<string name="pref_privacy_clear_cookies" msgid="3095583579133780331">"Очистить все данные cookie"</string>
- <string name="pref_privacy_clear_cookies_summary" msgid="6962742063990677520">"Удалить все файлы cookie браузера"</string>
- <string name="pref_privacy_clear_cookies_dlg" msgid="552855688091432682">"Все файлы cookie будут удалены."</string>
+ <!-- no translation found for pref_privacy_clear_cookies_summary (6962742063990677520) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_cookies_dlg (552855688091432682) -->
+ <skip />
<string name="pref_privacy_clear_history" msgid="8723795508825198477">"Очистить историю"</string>
<string name="pref_privacy_clear_history_summary" msgid="6868501330708940734">"Очистить историю браузера"</string>
- <string name="pref_privacy_clear_history_dlg" msgid="544903007914753853">"История браузера будет очищена."</string>
+ <!-- no translation found for pref_privacy_clear_history_dlg (544903007914753853) -->
+ <skip />
<string name="pref_privacy_clear_form_data" msgid="4232668196344383987">"Очистить данные формы"</string>
<string name="pref_privacy_clear_form_data_summary" msgid="1790390894719517167">"Очистить все данные сохраненных форм"</string>
- <string name="pref_privacy_clear_form_data_dlg" msgid="4443621086781197928">"Все данные сохраненных форм будут удалены."</string>
+ <!-- no translation found for pref_privacy_clear_form_data_dlg (4443621086781197928) -->
+ <skip />
<string name="pref_privacy_clear_passwords" msgid="4750234112289277480">"Очистить пароли"</string>
- <string name="pref_privacy_clear_passwords_summary" msgid="8856782718942903335">"Удалить все сохраненные пароли"</string>
- <string name="pref_privacy_clear_passwords_dlg" msgid="2083869328824248255">"Все сохраненные пароли будут удалены."</string>
+ <!-- no translation found for pref_privacy_clear_passwords_summary (8856782718942903335) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_passwords_dlg (2083869328824248255) -->
+ <skip />
<string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"Включить местоположение"</string>
<string name="pref_privacy_enable_geolocation_summary" msgid="8437020934664306205">"Разрешить сайтам запрашивать данные доступа к местоположению"</string>
<string name="pref_privacy_clear_geolocation_access" msgid="6649680770030042980">"Удалить данные доступа к местоположению"</string>
@@ -163,7 +184,8 @@
<string name="pref_privacy_clear_geolocation_access_dlg" msgid="7327063124488827244">"Удалить данные доступа к местоположению для всех сайтов"</string>
<string name="pref_security_title" msgid="5763978646932160021">"Настройки безопасности"</string>
<string name="pref_security_remember_passwords" msgid="6492957683454529549">"Сохранять пароли"</string>
- <string name="pref_security_remember_passwords_summary" msgid="256388703356349137">"Сохранять имена пользователей и пароли веб-сайтов"</string>
+ <!-- no translation found for pref_security_remember_passwords_summary (256388703356349137) -->
+ <skip />
<string name="pref_security_save_form_data" msgid="1213669802810198893">"Сохранять данные форм"</string>
<string name="pref_security_save_form_data_summary" msgid="4994074685153708026">"Запоминать введенные данные для дальнейшего использования"</string>
<string name="pref_security_show_security_warning" msgid="8901135676266754559">"Показывать предупреждения безопасности"</string>
@@ -186,14 +208,17 @@
<item msgid="3840999588443167001">"Крупно"</item>
</string-array>
<string name="pref_default_zoom_dialogtitle" msgid="6095974367125109021">"Масштаб по умолчанию"</string>
- <string name="pref_content_load_page" msgid="2219810141690955452">"Открывать страницы в обзоре окон"</string>
- <string name="pref_content_load_page_summary" msgid="8792093504054149369">"Показывать обзор новых открытых страниц"</string>
+ <!-- no translation found for pref_content_load_page (2219810141690955452) -->
+ <skip />
+ <!-- no translation found for pref_content_load_page_summary (8792093504054149369) -->
+ <skip />
<string name="pref_extras_title" msgid="3091250467679722382">"Расширенные настройки"</string>
<string name="pref_extras_website_settings" msgid="67866640052455549">"Настройки веб-сайта"</string>
<string name="pref_extras_website_settings_summary" msgid="3917568895776162240">"Просмотреть дополнительные настройки для отдельных сайтов"</string>
<string name="pref_extras_reset_default" msgid="8904000515846202110">"Восстановить настройки по умолчанию"</string>
<string name="pref_extras_reset_default_summary" msgid="7984680562706914966">"Очистить все данные браузера и восстановить все настройки по умолчанию"</string>
- <string name="pref_extras_reset_default_dlg" msgid="6894807766578874830">"Все данные браузера будут удалены, настройки по умолчанию будут восстановлены."</string>
+ <!-- no translation found for pref_extras_reset_default_dlg (6894807766578874830) -->
+ <skip />
<string name="pref_extras_reset_default_dlg_title" msgid="2250334970728938936">"Восстановить настройки по умолчанию"</string>
<string name="pref_development_title" msgid="3263854204533056480">"Отладка"</string>
<string name="pref_default_text_encoding" msgid="5742965543955558478">"Кодировка текста"</string>
@@ -207,15 +232,18 @@
<string name="pref_default_text_encoding_dialogtitle" msgid="5508255018084978547">"Кодировка текста"</string>
<string name="pref_default_text_encoding_default" msgid="5272126711231936722">"Latin-1"</string>
<string name="browserFrameRedirect" msgid="7049675479777828343">"Перенаправление"</string>
- <string name="browserFrame307Post" msgid="1429094844669510768">"Вы перенаправлены с этой страницы. Отправить ваши данные формы в новое место?"</string>
+ <!-- no translation found for browserFrame307Post (1429094844669510768) -->
+ <skip />
<string name="browserFrameNetworkErrorLabel" msgid="126892350904924893">"Проблема с подключением"</string>
<string name="browserFrameFileErrorLabel" msgid="8063691502792670367">"Проблема с файлом"</string>
<string name="browserFrameFormResubmitLabel" msgid="2685923472682180360">"Подтверждение"</string>
<string name="browserFrameFormResubmitMessage" msgid="2752182215695632138">"Страница, которую вы пытаетесь просмотреть, содержит уже отправленные данные (POSTDATA). Если отправить их еще раз, произойдет повтор всех действий, которые форма выполнила на странице (например поиск или покупка через Интернет)."</string>
<string name="loadSuspendedTitle" msgid="675991625288706944">"Сетевое подключение отсутствует"</string>
- <string name="loadSuspended" msgid="3133656588880851273">"Браузер не может загрузить эту страницу, так как отсутствует подключение к Интернету."</string>
+ <!-- no translation found for loadSuspended (3133656588880851273) -->
+ <skip />
<string name="clear_history" msgid="5998307092715979619">"Очистить историю"</string>
- <string name="browser_history" msgid="1038987118290272525">"Недавно посещенные"</string>
+ <!-- no translation found for browser_history (1038987118290272525) -->
+ <skip />
<string name="empty_history" msgid="8738772352308207274">"История браузера пуста."</string>
<string name="add_new_bookmark" msgid="8086367791400349049">"Добавить закладку…"</string>
<string name="add_bookmark_short" msgid="3783984330998103735">"Добавить"</string>
@@ -258,7 +286,8 @@
<string name="download_pending_network" msgid="6548714525679461053">"Ожидание подключения для передачи данных…"</string>
<string name="download_running_paused" msgid="6418029352085656495">"Ожидание подключения для передачи данных…"</string>
<string name="download_canceled" msgid="6057083743144492515">"Загрузка отменена."</string>
- <string name="download_not_acceptable" msgid="313769696131563652">"Загрузка невозможна. Содержание не поддерживается телефоном."</string>
+ <!-- no translation found for download_not_acceptable (313769696131563652) -->
+ <skip />
<string name="download_file_error" msgid="1206648050615176113">"Невозможно завершить загрузку. Недостаточно места."</string>
<string name="download_length_required" msgid="9038605488460437406">"Загрузка невозможна. Размер файла не определен."</string>
<string name="download_precondition_failed" msgid="8327584102874295580">"Загрузка прервана и не может быть возобновлена."</string>
@@ -270,14 +299,20 @@
<string name="webstorage_clear_data_summary" msgid="3523128713743907805">"Удалить все базы данных, связанные с этим сайтом"</string>
<string name="webstorage_clear_data_dialog_title" msgid="345457466368974706">"Удалить сохраненные данные"</string>
<string name="webstorage_clear_data_dialog_message" msgid="6678281256970470125">"Все данные, сохраненные этим веб-сайтом, будут удалены"</string>
- <string name="webstorage_clear_data_dialog_ok_button" msgid="2516563534211898636">"Удалить все"</string>
+ <!-- no translation found for webstorage_clear_data_dialog_ok_button (2516563534211898636) -->
+ <skip />
<string name="webstorage_clear_data_dialog_cancel_button" msgid="2028867751958942762">"Отмена"</string>
<string name="webstorage_origin_summary_mb_stored" msgid="1985885826292236210">"Объем занятой памяти телефона (МБ)"</string>
- <string name="loading_video" msgid="4887871585216091096">"Загрузка видео"</string>
- <string name="geolocation_permissions_prompt_message" msgid="356796102004052471">"<xliff:g id="WEBSITE_ORIGIN">%s</xliff:g> запрашивает данные о вашем местоположении"</string>
- <string name="geolocation_permissions_prompt_share" msgid="9084486342048347976">"Сообщить местоположение"</string>
- <string name="geolocation_permissions_prompt_dont_share" msgid="6303025160237860300">"Отклонить"</string>
- <string name="geolocation_permissions_prompt_remember" msgid="3118526300707348308">"Запомнить настройки"</string>
+ <!-- no translation found for loading_video (4887871585216091096) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_message (356796102004052471) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_share (9084486342048347976) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_dont_share (6303025160237860300) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_remember (3118526300707348308) -->
+ <skip />
<string name="geolocation_settings_page_title" msgid="1745477985097536528">"Удалить данные доступа к местоположению"</string>
<string name="geolocation_settings_page_summary_allowed" msgid="9180251524290811398">"Этот сайт сейчас имеет доступ к вашему местоположению"</string>
<string name="geolocation_settings_page_summary_not_allowed" msgid="4589649082203102544">"Этот сайт в настоящее время не имеет доступа к вашему местоположению"</string>
@@ -285,10 +320,15 @@
<string name="geolocation_settings_page_dialog_message" msgid="7586671987576403993">"Данные доступа к местоположению для этого сайта будут удалены"</string>
<string name="geolocation_settings_page_dialog_ok_button" msgid="4789434178048077287">"Удалить данные о доступе"</string>
<string name="geolocation_settings_page_dialog_cancel_button" msgid="7941036504673409747">"Отмена"</string>
- <string name="website_settings_clear_all" msgid="8739804325997655980">"Удалить все"</string>
- <string name="website_settings_clear_all_dialog_title" msgid="7791826325122461718">"Удалить все настройки веб-сайтов?"</string>
- <string name="website_settings_clear_all_dialog_message" msgid="6150502090601476333">"Все данные сайтов и разрешения относительно местоположения будут удалены."</string>
- <string name="website_settings_clear_all_dialog_ok_button" msgid="6401582240627669431">"Удалить все данные"</string>
- <string name="website_settings_clear_all_dialog_cancel_button" msgid="1896757051856611674">"Отмена"</string>
+ <!-- no translation found for website_settings_clear_all (8739804325997655980) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_title (7791826325122461718) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_message (6150502090601476333) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_ok_button (6401582240627669431) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_cancel_button (1896757051856611674) -->
+ <skip />
<string name="zoom_overview_button_text" msgid="4146579940085488881">"Обзор"</string>
</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 5266c33..3757229 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -16,8 +16,12 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"Webbläsare"</string>
- <string name="new_tab" msgid="4505722538297295141">"Nytt fönster"</string>
- <string name="active_tabs" msgid="3050623868203544623">"Fönster"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
+ <!-- no translation found for new_tab (4505722538297295141) -->
+ <skip />
+ <!-- no translation found for active_tabs (3050623868203544623) -->
+ <skip />
<string name="tab_bookmarks" msgid="2305793036003473653">"Bokmärken"</string>
<string name="tab_most_visited" msgid="1077402532455000703">"Mest besökta"</string>
<string name="tab_history" msgid="1979267558744613746">"Historik"</string>
@@ -78,8 +82,10 @@
<string name="remove_history_item" msgid="5021424935726728618">"Ta bort från historiken"</string>
<string name="set_as_homepage" msgid="4752937379414905560">"Använd som startsida"</string>
<string name="bookmark_saved" msgid="2766434679871317557">"Bokmärke sparat."</string>
- <string name="bookmark_not_saved" msgid="700600955089376724">"Det gick inte att spara bokmärket."</string>
- <string name="homepage_set" msgid="8768087280310966395">"Startsida har angetts."</string>
+ <!-- no translation found for bookmark_not_saved (700600955089376724) -->
+ <skip />
+ <!-- no translation found for homepage_set (8768087280310966395) -->
+ <skip />
<string name="bookmark_needs_title" msgid="6245900436119218187">"Du måste ange ett namn på bokmärket."</string>
<string name="bookmark_needs_url" msgid="7809876865972755158">"Du måste ange en plats för bokmärket."</string>
<string name="empty_bookmark" msgid="7008697085928540511">"Det går inte att skapa tomma bokmärken."</string>
@@ -107,7 +113,8 @@
<string name="shortcut_bookmark" msgid="3974876480401135895">"Bokmärke"</string>
<string name="history" msgid="2451240511251410032">"Historik"</string>
<string name="menu_view_download" msgid="2124570321712995120">"Hämtningar"</string>
- <string name="copy_page_url" msgid="7635062169011319208">"Kopiera sidans webbadress"</string>
+ <!-- no translation found for copy_page_url (7635062169011319208) -->
+ <skip />
<string name="share_page" msgid="593756995297268343">"Dela sida"</string>
<string name="contextmenu_openlink" msgid="7237961252214188935">"Öppna"</string>
<string name="contextmenu_openlink_newwindow" msgid="992765050093960353">"Öppna i nytt fönster"</string>
@@ -122,40 +129,54 @@
<string name="contextmenu_add_contact" msgid="3183511922223645716">"Lägg till kontakt"</string>
<string name="contextmenu_send_mail" msgid="1014513374828775660">"Skicka e-post"</string>
<string name="contextmenu_map" msgid="7471390435434034912">"Karta"</string>
- <string name="choosertitle_sharevia" msgid="4600490613341909086">"Dela via"</string>
+ <!-- no translation found for choosertitle_sharevia (4600490613341909086) -->
+ <skip />
<string name="clear" msgid="7070043081700011461">"Rensa"</string>
<string name="replace" msgid="4843033491070384047">"Ersätt"</string>
<string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"Bokmärken"</string>
<string name="menu_preferences" msgid="6709237687234102240">"Inställningar"</string>
<string name="pref_content_title" msgid="722227111894838633">"Inställningar för sidinnehåll"</string>
<string name="pref_content_load_images" msgid="2125616852957377561">"Överför bilder"</string>
- <string name="pref_content_load_images_summary" msgid="5055874125248398584">"Visa bilder på webbsidor"</string>
+ <!-- no translation found for pref_content_load_images_summary (5055874125248398584) -->
+ <skip />
<string name="pref_content_block_popups" msgid="7808433807197256726">"Blockera popup-fönster"</string>
<string name="pref_content_javascript" msgid="4570972030299516843">"Aktivera JavaScript"</string>
<string name="pref_content_open_in_background" msgid="824123779725118663">"Öppen i bakgrunden"</string>
- <string name="pref_content_plugins" msgid="7231944644794301582">"Aktivera plugin-program"</string>
- <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Öppna nya fönster bakom det aktiva"</string>
+ <!-- no translation found for pref_content_plugins (7231944644794301582) -->
+ <skip />
+ <!-- no translation found for pref_content_open_in_background_summary (1737664075721181678) -->
+ <skip />
<string name="pref_content_homepage" msgid="6082437160778559806">"Ange startsida"</string>
<string name="pref_content_autofit" msgid="8260474534053660809">"Autoanpassa sidor"</string>
- <string name="pref_content_autofit_summary" msgid="4587831659894879986">"Anpassa webbsidor efter skärmen"</string>
- <string name="pref_content_landscape_only" msgid="2022546812766219672">"Endast liggande"</string>
- <string name="pref_content_landscape_only_summary" msgid="1008238895535428855">"Visa bara sidor i det bredare, liggande formatet"</string>
+ <!-- no translation found for pref_content_autofit_summary (4587831659894879986) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only (2022546812766219672) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only_summary (1008238895535428855) -->
+ <skip />
<string name="pref_privacy_title" msgid="1052470980370846151">"Sekretessinställningar"</string>
<string name="pref_privacy_clear_cache" msgid="3380316479925886998">"Rensa cacheminne"</string>
<string name="pref_privacy_clear_cache_summary" msgid="2216463577207991454">"Ta bort innehåll och databaser som cachelagrats lokalt"</string>
- <string name="pref_privacy_clear_cache_dlg" msgid="5541011591300753881">"Innehåll och databaser som cachelagrats lokalt tas bort."</string>
+ <!-- no translation found for pref_privacy_clear_cache_dlg (5541011591300753881) -->
+ <skip />
<string name="pref_privacy_clear_cookies" msgid="3095583579133780331">"Ta bort alla cookie-data"</string>
- <string name="pref_privacy_clear_cookies_summary" msgid="6962742063990677520">"Ta bort alla webbläsarens cookies"</string>
- <string name="pref_privacy_clear_cookies_dlg" msgid="552855688091432682">"Alla cookies tas bort."</string>
+ <!-- no translation found for pref_privacy_clear_cookies_summary (6962742063990677520) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_cookies_dlg (552855688091432682) -->
+ <skip />
<string name="pref_privacy_clear_history" msgid="8723795508825198477">"Rensa historik"</string>
<string name="pref_privacy_clear_history_summary" msgid="6868501330708940734">"Rensa webbläsarhistoriken"</string>
- <string name="pref_privacy_clear_history_dlg" msgid="544903007914753853">"Webbläsarhistoriken kommer att tas bort."</string>
+ <!-- no translation found for pref_privacy_clear_history_dlg (544903007914753853) -->
+ <skip />
<string name="pref_privacy_clear_form_data" msgid="4232668196344383987">"Rensa data i formulär"</string>
<string name="pref_privacy_clear_form_data_summary" msgid="1790390894719517167">"Rensa data från alla sparade formulär"</string>
- <string name="pref_privacy_clear_form_data_dlg" msgid="4443621086781197928">"Alla sparade formulärdata kommer att tas bort."</string>
+ <!-- no translation found for pref_privacy_clear_form_data_dlg (4443621086781197928) -->
+ <skip />
<string name="pref_privacy_clear_passwords" msgid="4750234112289277480">"Ta bort lösenord"</string>
- <string name="pref_privacy_clear_passwords_summary" msgid="8856782718942903335">"Ta bort alla sparade lösenord"</string>
- <string name="pref_privacy_clear_passwords_dlg" msgid="2083869328824248255">"Alla sparade lösenord tas bort."</string>
+ <!-- no translation found for pref_privacy_clear_passwords_summary (8856782718942903335) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_passwords_dlg (2083869328824248255) -->
+ <skip />
<string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"Aktivera plats"</string>
<string name="pref_privacy_enable_geolocation_summary" msgid="8437020934664306205">"Tillåt att webbplatser begär åtkomst till din plats"</string>
<string name="pref_privacy_clear_geolocation_access" msgid="6649680770030042980">"Ta bort platsåtkomst"</string>
@@ -163,7 +184,8 @@
<string name="pref_privacy_clear_geolocation_access_dlg" msgid="7327063124488827244">"Ta bort platsåtkomst för alla webbplatser"</string>
<string name="pref_security_title" msgid="5763978646932160021">"Säkerhetsinställningar"</string>
<string name="pref_security_remember_passwords" msgid="6492957683454529549">"Kom ihåg lösenord"</string>
- <string name="pref_security_remember_passwords_summary" msgid="256388703356349137">"Spara användarnamn och lösenord för webbplatser"</string>
+ <!-- no translation found for pref_security_remember_passwords_summary (256388703356349137) -->
+ <skip />
<string name="pref_security_save_form_data" msgid="1213669802810198893">"Spara formulärdata"</string>
<string name="pref_security_save_form_data_summary" msgid="4994074685153708026">"Kom ihåg data som jag anger i formulär för senare bruk"</string>
<string name="pref_security_show_security_warning" msgid="8901135676266754559">"Visa säkerhetsvarningar"</string>
@@ -186,14 +208,17 @@
<item msgid="3840999588443167001">"Nära"</item>
</string-array>
<string name="pref_default_zoom_dialogtitle" msgid="6095974367125109021">"Standardinställning för zoom"</string>
- <string name="pref_content_load_page" msgid="2219810141690955452">"Öppna sidan i översikt"</string>
- <string name="pref_content_load_page_summary" msgid="8792093504054149369">"Visa översikt över nyligen öppnade sidor"</string>
+ <!-- no translation found for pref_content_load_page (2219810141690955452) -->
+ <skip />
+ <!-- no translation found for pref_content_load_page_summary (8792093504054149369) -->
+ <skip />
<string name="pref_extras_title" msgid="3091250467679722382">"Avancerade inställningar"</string>
<string name="pref_extras_website_settings" msgid="67866640052455549">"Webbplatsinställningar"</string>
<string name="pref_extras_website_settings_summary" msgid="3917568895776162240">"Visa avancerade inställningar för enskilda webbplatser"</string>
<string name="pref_extras_reset_default" msgid="8904000515846202110">"Återställ standardinställn."</string>
<string name="pref_extras_reset_default_summary" msgid="7984680562706914966">"Ta bort alla data i webbläsaren och återställ standardinställningarna"</string>
- <string name="pref_extras_reset_default_dlg" msgid="6894807766578874830">"Alla data i webbläsaren tas bort och standardinställningarna återställs."</string>
+ <!-- no translation found for pref_extras_reset_default_dlg (6894807766578874830) -->
+ <skip />
<string name="pref_extras_reset_default_dlg_title" msgid="2250334970728938936">"Återställ standardinställn."</string>
<string name="pref_development_title" msgid="3263854204533056480">"Felsökning"</string>
<string name="pref_default_text_encoding" msgid="5742965543955558478">"Textkodning"</string>
@@ -207,15 +232,18 @@
<string name="pref_default_text_encoding_dialogtitle" msgid="5508255018084978547">"Textkodning"</string>
<string name="pref_default_text_encoding_default" msgid="5272126711231936722">"Latin-1"</string>
<string name="browserFrameRedirect" msgid="7049675479777828343">"Omdirigera"</string>
- <string name="browserFrame307Post" msgid="1429094844669510768">"Den här webbsidan omdirigeras. Vill du skicka uppgifterna i formuläret till den nya platsen?"</string>
+ <!-- no translation found for browserFrame307Post (1429094844669510768) -->
+ <skip />
<string name="browserFrameNetworkErrorLabel" msgid="126892350904924893">"Problem med dataanslutning"</string>
<string name="browserFrameFileErrorLabel" msgid="8063691502792670367">"Problem med filen"</string>
<string name="browserFrameFormResubmitLabel" msgid="2685923472682180360">"Bekräfta"</string>
<string name="browserFrameFormResubmitMessage" msgid="2752182215695632138">"Sidan du försöker öppna innehåller data som redan har skickats (POSTDATA). Om du skickar uppgifterna igen kommer alla åtgärder i formuläret på sidan (till exempel sökningar eller onlineköp) att utföras en gång till."</string>
<string name="loadSuspendedTitle" msgid="675991625288706944">"Ingen nätverksanslutning"</string>
- <string name="loadSuspended" msgid="3133656588880851273">"Webbläsaren kan inte läsa in sidan eftersom det inte finns någon anslutning till Internet."</string>
+ <!-- no translation found for loadSuspended (3133656588880851273) -->
+ <skip />
<string name="clear_history" msgid="5998307092715979619">"Rensa historik"</string>
- <string name="browser_history" msgid="1038987118290272525">"Senast besökta sidor"</string>
+ <!-- no translation found for browser_history (1038987118290272525) -->
+ <skip />
<string name="empty_history" msgid="8738772352308207274">"Det finns ingen webbläsarhistorik."</string>
<string name="add_new_bookmark" msgid="8086367791400349049">"Lägg till bokmärke…"</string>
<string name="add_bookmark_short" msgid="3783984330998103735">"Lägg till"</string>
@@ -258,7 +286,8 @@
<string name="download_pending_network" msgid="6548714525679461053">"Väntar på dataanslutning…"</string>
<string name="download_running_paused" msgid="6418029352085656495">"Väntar på dataanslutning…"</string>
<string name="download_canceled" msgid="6057083743144492515">"Hämtningen avbröts."</string>
- <string name="download_not_acceptable" msgid="313769696131563652">"Det gick inte att hämta. Innehållet stöds inte på telefonen."</string>
+ <!-- no translation found for download_not_acceptable (313769696131563652) -->
+ <skip />
<string name="download_file_error" msgid="1206648050615176113">"Det går inte att hämta. Det finns inte tillräckligt med utrymme."</string>
<string name="download_length_required" msgid="9038605488460437406">"Det går inte att hämta eftersom objektets storlek inte kan avläsas."</string>
<string name="download_precondition_failed" msgid="8327584102874295580">"Hämtningen avbröts. Den kan inte återupptas."</string>
@@ -270,14 +299,20 @@
<string name="webstorage_clear_data_summary" msgid="3523128713743907805">"Ta bort alla databaser som är kopplade till den här webbplatsen"</string>
<string name="webstorage_clear_data_dialog_title" msgid="345457466368974706">"Ta bort sparade data"</string>
<string name="webstorage_clear_data_dialog_message" msgid="6678281256970470125">"Alla data som sparats på webbplatsen tas bort"</string>
- <string name="webstorage_clear_data_dialog_ok_button" msgid="2516563534211898636">"Ta bort alla"</string>
+ <!-- no translation found for webstorage_clear_data_dialog_ok_button (2516563534211898636) -->
+ <skip />
<string name="webstorage_clear_data_dialog_cancel_button" msgid="2028867751958942762">"Avbryt"</string>
<string name="webstorage_origin_summary_mb_stored" msgid="1985885826292236210">"MB har sparats på telefonen"</string>
- <string name="loading_video" msgid="4887871585216091096">"Läser in videoklipp"</string>
- <string name="geolocation_permissions_prompt_message" msgid="356796102004052471">"<xliff:g id="WEBSITE_ORIGIN">%s</xliff:g> vill känna till din plats"</string>
- <string name="geolocation_permissions_prompt_share" msgid="9084486342048347976">"Dela plats"</string>
- <string name="geolocation_permissions_prompt_dont_share" msgid="6303025160237860300">"Avvisa"</string>
- <string name="geolocation_permissions_prompt_remember" msgid="3118526300707348308">"Kom ihåg mina inställningar"</string>
+ <!-- no translation found for loading_video (4887871585216091096) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_message (356796102004052471) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_share (9084486342048347976) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_dont_share (6303025160237860300) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_remember (3118526300707348308) -->
+ <skip />
<string name="geolocation_settings_page_title" msgid="1745477985097536528">"Ta bort platsåtkomst"</string>
<string name="geolocation_settings_page_summary_allowed" msgid="9180251524290811398">"Den här webbplatsen har för närvarande åtkomst till din plats"</string>
<string name="geolocation_settings_page_summary_not_allowed" msgid="4589649082203102544">"Den här webbplatsen har för närvarande inte åtkomst till din plats"</string>
@@ -285,10 +320,15 @@
<string name="geolocation_settings_page_dialog_message" msgid="7586671987576403993">"Platsåtkomst tas bort för den här webbplatsen"</string>
<string name="geolocation_settings_page_dialog_ok_button" msgid="4789434178048077287">"Ta bort åtkomst"</string>
<string name="geolocation_settings_page_dialog_cancel_button" msgid="7941036504673409747">"Avbryt"</string>
- <string name="website_settings_clear_all" msgid="8739804325997655980">"Ta bort alla"</string>
- <string name="website_settings_clear_all_dialog_title" msgid="7791826325122461718">"Vill du ta bort alla webbplatsinställningar?"</string>
- <string name="website_settings_clear_all_dialog_message" msgid="6150502090601476333">"Alla webbplatsdata och alla platsbehörigheter kommer att tas bort."</string>
- <string name="website_settings_clear_all_dialog_ok_button" msgid="6401582240627669431">"Ta bort alla data"</string>
- <string name="website_settings_clear_all_dialog_cancel_button" msgid="1896757051856611674">"Avbryt"</string>
+ <!-- no translation found for website_settings_clear_all (8739804325997655980) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_title (7791826325122461718) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_message (6150502090601476333) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_ok_button (6401582240627669431) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_cancel_button (1896757051856611674) -->
+ <skip />
<string name="zoom_overview_button_text" msgid="4146579940085488881">"Översikt"</string>
</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 51e6588..e58b315 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -16,8 +16,12 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"Tarayıcı"</string>
- <string name="new_tab" msgid="4505722538297295141">"Yeni pencere"</string>
- <string name="active_tabs" msgid="3050623868203544623">"Pencereler"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
+ <!-- no translation found for new_tab (4505722538297295141) -->
+ <skip />
+ <!-- no translation found for active_tabs (3050623868203544623) -->
+ <skip />
<string name="tab_bookmarks" msgid="2305793036003473653">"Favoriler"</string>
<string name="tab_most_visited" msgid="1077402532455000703">"En çok ziyaret edilenler"</string>
<string name="tab_history" msgid="1979267558744613746">"Geçmiş"</string>
@@ -78,8 +82,10 @@
<string name="remove_history_item" msgid="5021424935726728618">"Geçmişten kaldır"</string>
<string name="set_as_homepage" msgid="4752937379414905560">"Ana sayfa olarak ayarla"</string>
<string name="bookmark_saved" msgid="2766434679871317557">"Favorilere kaydedildi."</string>
- <string name="bookmark_not_saved" msgid="700600955089376724">"Yer imi kaydedilemedi."</string>
- <string name="homepage_set" msgid="8768087280310966395">"Ana sayfa ayarlandı."</string>
+ <!-- no translation found for bookmark_not_saved (700600955089376724) -->
+ <skip />
+ <!-- no translation found for homepage_set (8768087280310966395) -->
+ <skip />
<string name="bookmark_needs_title" msgid="6245900436119218187">"Favorinin bir adı olmalıdır."</string>
<string name="bookmark_needs_url" msgid="7809876865972755158">"Favorinin bir konumu olmalıdır."</string>
<string name="empty_bookmark" msgid="7008697085928540511">"Boş favori oluşturulamaz."</string>
@@ -107,7 +113,8 @@
<string name="shortcut_bookmark" msgid="3974876480401135895">"Favori"</string>
<string name="history" msgid="2451240511251410032">"Geçmiş"</string>
<string name="menu_view_download" msgid="2124570321712995120">"İndirme işlemleri"</string>
- <string name="copy_page_url" msgid="7635062169011319208">"Sayfa url\'sini kopyala"</string>
+ <!-- no translation found for copy_page_url (7635062169011319208) -->
+ <skip />
<string name="share_page" msgid="593756995297268343">"Sayfayı paylaş"</string>
<string name="contextmenu_openlink" msgid="7237961252214188935">"Aç"</string>
<string name="contextmenu_openlink_newwindow" msgid="992765050093960353">"Yeni pencerede aç"</string>
@@ -122,40 +129,54 @@
<string name="contextmenu_add_contact" msgid="3183511922223645716">"Kişi ekle"</string>
<string name="contextmenu_send_mail" msgid="1014513374828775660">"E-posta gönder"</string>
<string name="contextmenu_map" msgid="7471390435434034912">"Harita"</string>
- <string name="choosertitle_sharevia" msgid="4600490613341909086">"Şunu kullanarak paylaş:"</string>
+ <!-- no translation found for choosertitle_sharevia (4600490613341909086) -->
+ <skip />
<string name="clear" msgid="7070043081700011461">"Temizle"</string>
<string name="replace" msgid="4843033491070384047">"Değiştir"</string>
<string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"Favoriler"</string>
<string name="menu_preferences" msgid="6709237687234102240">"Ayarlar"</string>
<string name="pref_content_title" msgid="722227111894838633">"Sayfa içeriği ayarları"</string>
<string name="pref_content_load_images" msgid="2125616852957377561">"Görselleri yükle"</string>
- <string name="pref_content_load_images_summary" msgid="5055874125248398584">"Web sayfalarındaki görselleri görüntüle"</string>
+ <!-- no translation found for pref_content_load_images_summary (5055874125248398584) -->
+ <skip />
<string name="pref_content_block_popups" msgid="7808433807197256726">"Pop-up\'ları engelle"</string>
<string name="pref_content_javascript" msgid="4570972030299516843">"JavaScript\'i etkinleştir"</string>
<string name="pref_content_open_in_background" msgid="824123779725118663">"Arka planda aç"</string>
- <string name="pref_content_plugins" msgid="7231944644794301582">"Eklentileri etkinleştir"</string>
- <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Geçerli pencerenin arkasında yeni pencereler aç"</string>
+ <!-- no translation found for pref_content_plugins (7231944644794301582) -->
+ <skip />
+ <!-- no translation found for pref_content_open_in_background_summary (1737664075721181678) -->
+ <skip />
<string name="pref_content_homepage" msgid="6082437160778559806">"Ana sayfayı ayarla"</string>
<string name="pref_content_autofit" msgid="8260474534053660809">"Sayfaları otomatik sığdır"</string>
- <string name="pref_content_autofit_summary" msgid="4587831659894879986">"Web sayfalarını ekrana sığacak şekilde biçimlendir"</string>
- <string name="pref_content_landscape_only" msgid="2022546812766219672">"Yalnızca yatay görüntü"</string>
- <string name="pref_content_landscape_only_summary" msgid="1008238895535428855">"Sayfaları yalnızca daha geniş, yatay ekran yönünde görüntüle"</string>
+ <!-- no translation found for pref_content_autofit_summary (4587831659894879986) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only (2022546812766219672) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only_summary (1008238895535428855) -->
+ <skip />
<string name="pref_privacy_title" msgid="1052470980370846151">"Gizlilik ayarları"</string>
<string name="pref_privacy_clear_cache" msgid="3380316479925886998">"Önbelleği temizle"</string>
<string name="pref_privacy_clear_cache_summary" msgid="2216463577207991454">"Yerel olarak önbelleğe alınmış içeriği ve veritabanlarını temizle"</string>
- <string name="pref_privacy_clear_cache_dlg" msgid="5541011591300753881">"Yerel olarak önbelleğe alınmış içerik ve veritabanları silinecek."</string>
+ <!-- no translation found for pref_privacy_clear_cache_dlg (5541011591300753881) -->
+ <skip />
<string name="pref_privacy_clear_cookies" msgid="3095583579133780331">"Tüm çerez verilerini temizle"</string>
- <string name="pref_privacy_clear_cookies_summary" msgid="6962742063990677520">"Tüm tarayıcı çerezlerini temizle"</string>
- <string name="pref_privacy_clear_cookies_dlg" msgid="552855688091432682">"Tüm çerezler silinecek."</string>
+ <!-- no translation found for pref_privacy_clear_cookies_summary (6962742063990677520) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_cookies_dlg (552855688091432682) -->
+ <skip />
<string name="pref_privacy_clear_history" msgid="8723795508825198477">"Geçmişi temizle"</string>
<string name="pref_privacy_clear_history_summary" msgid="6868501330708940734">"Tarayıcı gezinme geçmişini temizle"</string>
- <string name="pref_privacy_clear_history_dlg" msgid="544903007914753853">"Tarayıcının gezinme geçmişi silinecek."</string>
+ <!-- no translation found for pref_privacy_clear_history_dlg (544903007914753853) -->
+ <skip />
<string name="pref_privacy_clear_form_data" msgid="4232668196344383987">"Form verilerini temizle"</string>
<string name="pref_privacy_clear_form_data_summary" msgid="1790390894719517167">"Tüm kayıtlı form verilerini temizle"</string>
- <string name="pref_privacy_clear_form_data_dlg" msgid="4443621086781197928">"Tüm kayıtlı form verileri silinecek."</string>
+ <!-- no translation found for pref_privacy_clear_form_data_dlg (4443621086781197928) -->
+ <skip />
<string name="pref_privacy_clear_passwords" msgid="4750234112289277480">"Şifreleri temizle"</string>
- <string name="pref_privacy_clear_passwords_summary" msgid="8856782718942903335">"Kayıtlı tüm şifreleri temizle"</string>
- <string name="pref_privacy_clear_passwords_dlg" msgid="2083869328824248255">"Kayıtlı tüm şifreler silinecek."</string>
+ <!-- no translation found for pref_privacy_clear_passwords_summary (8856782718942903335) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_passwords_dlg (2083869328824248255) -->
+ <skip />
<string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"Konumu etkinleştir"</string>
<string name="pref_privacy_enable_geolocation_summary" msgid="8437020934664306205">"Sitelerin konumunuza erişmek istemesine izin verin"</string>
<string name="pref_privacy_clear_geolocation_access" msgid="6649680770030042980">"Konum erişimini temizle"</string>
@@ -163,7 +184,8 @@
<string name="pref_privacy_clear_geolocation_access_dlg" msgid="7327063124488827244">"Tüm web siteleri için konum erişimini temizle"</string>
<string name="pref_security_title" msgid="5763978646932160021">"Güvenlik ayarları"</string>
<string name="pref_security_remember_passwords" msgid="6492957683454529549">"Şifreleri hatırla"</string>
- <string name="pref_security_remember_passwords_summary" msgid="256388703356349137">"Web siteleri için kullanıcı adlarını ve şifreleri kaydet"</string>
+ <!-- no translation found for pref_security_remember_passwords_summary (256388703356349137) -->
+ <skip />
<string name="pref_security_save_form_data" msgid="1213669802810198893">"Form verilerini hatırla"</string>
<string name="pref_security_save_form_data_summary" msgid="4994074685153708026">"Daha sonra kullanmak üzere formlara yazdığım verileri hatırla"</string>
<string name="pref_security_show_security_warning" msgid="8901135676266754559">"Güvenlik uyarıl. göster"</string>
@@ -186,14 +208,17 @@
<item msgid="3840999588443167001">"Kapat"</item>
</string-array>
<string name="pref_default_zoom_dialogtitle" msgid="6095974367125109021">"Varsayılan zum"</string>
- <string name="pref_content_load_page" msgid="2219810141690955452">"Sayfaları genel görünümde aç"</string>
- <string name="pref_content_load_page_summary" msgid="8792093504054149369">"Yeni açılan sayfaların genel görünümünü göster"</string>
+ <!-- no translation found for pref_content_load_page (2219810141690955452) -->
+ <skip />
+ <!-- no translation found for pref_content_load_page_summary (8792093504054149369) -->
+ <skip />
<string name="pref_extras_title" msgid="3091250467679722382">"Gelişmiş ayarlar"</string>
<string name="pref_extras_website_settings" msgid="67866640052455549">"Web sitesi ayarları"</string>
<string name="pref_extras_website_settings_summary" msgid="3917568895776162240">"Her web sitesi için gelişmiş ayarları görüntüle"</string>
<string name="pref_extras_reset_default" msgid="8904000515846202110">"Varsayılana sıfırla"</string>
<string name="pref_extras_reset_default_summary" msgid="7984680562706914966">"Tüm tarayıcı verilerini temizle ve tüm ayarları varsayılana sıfırla"</string>
- <string name="pref_extras_reset_default_dlg" msgid="6894807766578874830">"Tüm tarayıcı verileri silinecek ve ayarlar varsayılan değerlere geri döndürülecek."</string>
+ <!-- no translation found for pref_extras_reset_default_dlg (6894807766578874830) -->
+ <skip />
<string name="pref_extras_reset_default_dlg_title" msgid="2250334970728938936">"Varsayılana sıfırla"</string>
<string name="pref_development_title" msgid="3263854204533056480">"Hata Ayıklama"</string>
<string name="pref_default_text_encoding" msgid="5742965543955558478">"Metin kodlama"</string>
@@ -207,15 +232,18 @@
<string name="pref_default_text_encoding_dialogtitle" msgid="5508255018084978547">"Metin kodlama"</string>
<string name="pref_default_text_encoding_default" msgid="5272126711231936722">"Latin-1"</string>
<string name="browserFrameRedirect" msgid="7049675479777828343">"Yeniden yönlendir"</string>
- <string name="browserFrame307Post" msgid="1429094844669510768">"Bu web sayfası yeniden yönlendiriliyor. Yazılı form verileriniz yeni konuma tekrar gönderilsin mi?"</string>
+ <!-- no translation found for browserFrame307Post (1429094844669510768) -->
+ <skip />
<string name="browserFrameNetworkErrorLabel" msgid="126892350904924893">"Veri bağlantısı sorunu"</string>
<string name="browserFrameFileErrorLabel" msgid="8063691502792670367">"Sorunlu dosya"</string>
<string name="browserFrameFormResubmitLabel" msgid="2685923472682180360">"Doğrula"</string>
<string name="browserFrameFormResubmitMessage" msgid="2752182215695632138">"Görüntülemeye çalıştığınız sayfa zaten gönderilmiş veriler (\"POSTDATA\") içeriyor. Verileri tekrar gönderirseniz sayfa üzerinde yapılmış tüm işlemler (arama veya çevrimiçi satın alma gibi) tekrarlanacaktır."</string>
<string name="loadSuspendedTitle" msgid="675991625288706944">"Ağ bağlantısı yok"</string>
- <string name="loadSuspended" msgid="3133656588880851273">"Tarayıcı, internet bağlantısı olmadığı için bu sayfayı yükleyemiyor."</string>
+ <!-- no translation found for loadSuspended (3133656588880851273) -->
+ <skip />
<string name="clear_history" msgid="5998307092715979619">"Geçmişi temizle"</string>
- <string name="browser_history" msgid="1038987118290272525">"Son ziyaret edilen sayfalar"</string>
+ <!-- no translation found for browser_history (1038987118290272525) -->
+ <skip />
<string name="empty_history" msgid="8738772352308207274">"Tarayıcı geçmişi boş."</string>
<string name="add_new_bookmark" msgid="8086367791400349049">"Favori ekle..."</string>
<string name="add_bookmark_short" msgid="3783984330998103735">"Ekle"</string>
@@ -258,7 +286,8 @@
<string name="download_pending_network" msgid="6548714525679461053">"Veri bağlantısı bekleniyor..."</string>
<string name="download_running_paused" msgid="6418029352085656495">"Veri bağlantısı bekleniyor..."</string>
<string name="download_canceled" msgid="6057083743144492515">"İndirme işlemi iptal edildi."</string>
- <string name="download_not_acceptable" msgid="313769696131563652">"İndirilemiyor. Söz konusu içerik bu telefonda desteklenmiyor."</string>
+ <!-- no translation found for download_not_acceptable (313769696131563652) -->
+ <skip />
<string name="download_file_error" msgid="1206648050615176113">"İndirme işlemi tamamlanamıyor. Yeterli alan yok."</string>
<string name="download_length_required" msgid="9038605488460437406">"İndirilemiyor. Öğenin boyutu belirlenemiyor."</string>
<string name="download_precondition_failed" msgid="8327584102874295580">"İndirme işlemi kesintiye uğradı. Sürdürülemez."</string>
@@ -270,14 +299,20 @@
<string name="webstorage_clear_data_summary" msgid="3523128713743907805">"Bu web sitesi ile ilişkilendirilmiş tüm veritabanlarını kaldır"</string>
<string name="webstorage_clear_data_dialog_title" msgid="345457466368974706">"Depolanmış verileri temizle"</string>
<string name="webstorage_clear_data_dialog_message" msgid="6678281256970470125">"Bu web sitesi tarafından depolanmış tüm veriler silinecek"</string>
- <string name="webstorage_clear_data_dialog_ok_button" msgid="2516563534211898636">"Tümünü temizle"</string>
+ <!-- no translation found for webstorage_clear_data_dialog_ok_button (2516563534211898636) -->
+ <skip />
<string name="webstorage_clear_data_dialog_cancel_button" msgid="2028867751958942762">"İptal"</string>
<string name="webstorage_origin_summary_mb_stored" msgid="1985885826292236210">"Telefonunuzda depolanan MB"</string>
- <string name="loading_video" msgid="4887871585216091096">"Video yükleniyor"</string>
- <string name="geolocation_permissions_prompt_message" msgid="356796102004052471">"<xliff:g id="WEBSITE_ORIGIN">%s</xliff:g> konumunuzu bilmek istiyor"</string>
- <string name="geolocation_permissions_prompt_share" msgid="9084486342048347976">"Konumu paylaş"</string>
- <string name="geolocation_permissions_prompt_dont_share" msgid="6303025160237860300">"Reddet"</string>
- <string name="geolocation_permissions_prompt_remember" msgid="3118526300707348308">"Tercihi anımsa"</string>
+ <!-- no translation found for loading_video (4887871585216091096) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_message (356796102004052471) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_share (9084486342048347976) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_dont_share (6303025160237860300) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_remember (3118526300707348308) -->
+ <skip />
<string name="geolocation_settings_page_title" msgid="1745477985097536528">"Konum erişimini temizle"</string>
<string name="geolocation_settings_page_summary_allowed" msgid="9180251524290811398">"Bu site şu anda konumunuza erişebilir"</string>
<string name="geolocation_settings_page_summary_not_allowed" msgid="4589649082203102544">"Bu site şu anda konumunuza erişemiyor"</string>
@@ -285,10 +320,15 @@
<string name="geolocation_settings_page_dialog_message" msgid="7586671987576403993">"Bu web sitesi için konum erişimi temizlenecek"</string>
<string name="geolocation_settings_page_dialog_ok_button" msgid="4789434178048077287">"Erişimi temizle"</string>
<string name="geolocation_settings_page_dialog_cancel_button" msgid="7941036504673409747">"İptal"</string>
- <string name="website_settings_clear_all" msgid="8739804325997655980">"Tümünü temizle"</string>
- <string name="website_settings_clear_all_dialog_title" msgid="7791826325122461718">"Tüm web sitesi ayarları temizlensin mi?"</string>
- <string name="website_settings_clear_all_dialog_message" msgid="6150502090601476333">"Web sitesi verilerinin ve konum izinlerinin tümü silinecek."</string>
- <string name="website_settings_clear_all_dialog_ok_button" msgid="6401582240627669431">"Tüm verileri sil"</string>
- <string name="website_settings_clear_all_dialog_cancel_button" msgid="1896757051856611674">"İptal"</string>
+ <!-- no translation found for website_settings_clear_all (8739804325997655980) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_title (7791826325122461718) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_message (6150502090601476333) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_ok_button (6401582240627669431) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_cancel_button (1896757051856611674) -->
+ <skip />
<string name="zoom_overview_button_text" msgid="4146579940085488881">"Genel Bakış"</string>
</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 2dc0fc5..353a9fb 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -16,8 +16,12 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"浏览器"</string>
- <string name="new_tab" msgid="4505722538297295141">"新窗口"</string>
- <string name="active_tabs" msgid="3050623868203544623">"窗口"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
+ <!-- no translation found for new_tab (4505722538297295141) -->
+ <skip />
+ <!-- no translation found for active_tabs (3050623868203544623) -->
+ <skip />
<string name="tab_bookmarks" msgid="2305793036003473653">"书签"</string>
<string name="tab_most_visited" msgid="1077402532455000703">"访问最多"</string>
<string name="tab_history" msgid="1979267558744613746">"历史记录"</string>
@@ -78,8 +82,10 @@
<string name="remove_history_item" msgid="5021424935726728618">"从历史记录中删除"</string>
<string name="set_as_homepage" msgid="4752937379414905560">"设置为主页"</string>
<string name="bookmark_saved" msgid="2766434679871317557">"已保存至书签。"</string>
- <string name="bookmark_not_saved" msgid="700600955089376724">"无法保存书签。"</string>
- <string name="homepage_set" msgid="8768087280310966395">"主页已设置。"</string>
+ <!-- no translation found for bookmark_not_saved (700600955089376724) -->
+ <skip />
+ <!-- no translation found for homepage_set (8768087280310966395) -->
+ <skip />
<string name="bookmark_needs_title" msgid="6245900436119218187">"书签必须具有名称。"</string>
<string name="bookmark_needs_url" msgid="7809876865972755158">"书签必须具有位置。"</string>
<string name="empty_bookmark" msgid="7008697085928540511">"无法创建空书签。"</string>
@@ -107,7 +113,8 @@
<string name="shortcut_bookmark" msgid="3974876480401135895">"书签"</string>
<string name="history" msgid="2451240511251410032">"历史记录"</string>
<string name="menu_view_download" msgid="2124570321712995120">"下载"</string>
- <string name="copy_page_url" msgid="7635062169011319208">"复制网页网址"</string>
+ <!-- no translation found for copy_page_url (7635062169011319208) -->
+ <skip />
<string name="share_page" msgid="593756995297268343">"分享网页"</string>
<string name="contextmenu_openlink" msgid="7237961252214188935">"打开"</string>
<string name="contextmenu_openlink_newwindow" msgid="992765050093960353">"在新窗口中打开"</string>
@@ -122,40 +129,54 @@
<string name="contextmenu_add_contact" msgid="3183511922223645716">"添加联系人"</string>
<string name="contextmenu_send_mail" msgid="1014513374828775660">"发送电子邮件"</string>
<string name="contextmenu_map" msgid="7471390435434034912">"地图"</string>
- <string name="choosertitle_sharevia" msgid="4600490613341909086">"分享方式"</string>
+ <!-- no translation found for choosertitle_sharevia (4600490613341909086) -->
+ <skip />
<string name="clear" msgid="7070043081700011461">"清除"</string>
<string name="replace" msgid="4843033491070384047">"替换"</string>
<string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"书签"</string>
<string name="menu_preferences" msgid="6709237687234102240">"设置"</string>
<string name="pref_content_title" msgid="722227111894838633">"网页内容设置"</string>
<string name="pref_content_load_images" msgid="2125616852957377561">"载入图片"</string>
- <string name="pref_content_load_images_summary" msgid="5055874125248398584">"在网页上显示图片"</string>
+ <!-- no translation found for pref_content_load_images_summary (5055874125248398584) -->
+ <skip />
<string name="pref_content_block_popups" msgid="7808433807197256726">"阻止弹出式窗口"</string>
<string name="pref_content_javascript" msgid="4570972030299516843">"启用 JavaScript"</string>
<string name="pref_content_open_in_background" msgid="824123779725118663">"在后方打开"</string>
- <string name="pref_content_plugins" msgid="7231944644794301582">"启用插件"</string>
- <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"在当前窗口后方打开新窗口"</string>
+ <!-- no translation found for pref_content_plugins (7231944644794301582) -->
+ <skip />
+ <!-- no translation found for pref_content_open_in_background_summary (1737664075721181678) -->
+ <skip />
<string name="pref_content_homepage" msgid="6082437160778559806">"设置主页"</string>
<string name="pref_content_autofit" msgid="8260474534053660809">"自动调整页面"</string>
- <string name="pref_content_autofit_summary" msgid="4587831659894879986">"调整网页格式以适合屏幕大小"</string>
- <string name="pref_content_landscape_only" msgid="2022546812766219672">"仅以横向模式显示"</string>
- <string name="pref_content_landscape_only_summary" msgid="1008238895535428855">"仅限以横向宽屏模式显示网页"</string>
+ <!-- no translation found for pref_content_autofit_summary (4587831659894879986) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only (2022546812766219672) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only_summary (1008238895535428855) -->
+ <skip />
<string name="pref_privacy_title" msgid="1052470980370846151">"隐私权设置"</string>
<string name="pref_privacy_clear_cache" msgid="3380316479925886998">"清除缓存"</string>
<string name="pref_privacy_clear_cache_summary" msgid="2216463577207991454">"清除存储在本地缓存中的内容和数据库"</string>
- <string name="pref_privacy_clear_cache_dlg" msgid="5541011591300753881">"此操作将会刪除存储在本地缓存中的内容和数据库。"</string>
+ <!-- no translation found for pref_privacy_clear_cache_dlg (5541011591300753881) -->
+ <skip />
<string name="pref_privacy_clear_cookies" msgid="3095583579133780331">"清除所有 Cookie 数据"</string>
- <string name="pref_privacy_clear_cookies_summary" msgid="6962742063990677520">"清除所有浏览器 Cookie"</string>
- <string name="pref_privacy_clear_cookies_dlg" msgid="552855688091432682">"此操作将会删除所有 Cookie。"</string>
+ <!-- no translation found for pref_privacy_clear_cookies_summary (6962742063990677520) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_cookies_dlg (552855688091432682) -->
+ <skip />
<string name="pref_privacy_clear_history" msgid="8723795508825198477">"清除历史记录"</string>
<string name="pref_privacy_clear_history_summary" msgid="6868501330708940734">"清除浏览器导航历史记录"</string>
- <string name="pref_privacy_clear_history_dlg" msgid="544903007914753853">"此操作将会删除浏览器导航历史记录。"</string>
+ <!-- no translation found for pref_privacy_clear_history_dlg (544903007914753853) -->
+ <skip />
<string name="pref_privacy_clear_form_data" msgid="4232668196344383987">"清除表单数据"</string>
<string name="pref_privacy_clear_form_data_summary" msgid="1790390894719517167">"清除所有已保存的表单数据"</string>
- <string name="pref_privacy_clear_form_data_dlg" msgid="4443621086781197928">"此操作将会删除所有已保存的表单数据。"</string>
+ <!-- no translation found for pref_privacy_clear_form_data_dlg (4443621086781197928) -->
+ <skip />
<string name="pref_privacy_clear_passwords" msgid="4750234112289277480">"清除密码"</string>
- <string name="pref_privacy_clear_passwords_summary" msgid="8856782718942903335">"清除所有保存的密码"</string>
- <string name="pref_privacy_clear_passwords_dlg" msgid="2083869328824248255">"此操作将会刪除所有已保存的密码。"</string>
+ <!-- no translation found for pref_privacy_clear_passwords_summary (8856782718942903335) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_passwords_dlg (2083869328824248255) -->
+ <skip />
<string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"启用位置信息功能"</string>
<string name="pref_privacy_enable_geolocation_summary" msgid="8437020934664306205">"允许网站访问您的位置信息"</string>
<string name="pref_privacy_clear_geolocation_access" msgid="6649680770030042980">"取消位置信息访问权限"</string>
@@ -163,7 +184,8 @@
<string name="pref_privacy_clear_geolocation_access_dlg" msgid="7327063124488827244">"取消所有网站的位置信息访问权限"</string>
<string name="pref_security_title" msgid="5763978646932160021">"安全设置"</string>
<string name="pref_security_remember_passwords" msgid="6492957683454529549">"记住密码"</string>
- <string name="pref_security_remember_passwords_summary" msgid="256388703356349137">"保存网站的用户名和密码"</string>
+ <!-- no translation found for pref_security_remember_passwords_summary (256388703356349137) -->
+ <skip />
<string name="pref_security_save_form_data" msgid="1213669802810198893">"记住表单数据"</string>
<string name="pref_security_save_form_data_summary" msgid="4994074685153708026">"记住我在表单中输入的数据以便于以后使用"</string>
<string name="pref_security_show_security_warning" msgid="8901135676266754559">"显示安全警告"</string>
@@ -186,14 +208,17 @@
<item msgid="3840999588443167001">"近"</item>
</string-array>
<string name="pref_default_zoom_dialogtitle" msgid="6095974367125109021">"默认缩放设置"</string>
- <string name="pref_content_load_page" msgid="2219810141690955452">"打开概览中的网页"</string>
- <string name="pref_content_load_page_summary" msgid="8792093504054149369">"显示新打开网页的概览"</string>
+ <!-- no translation found for pref_content_load_page (2219810141690955452) -->
+ <skip />
+ <!-- no translation found for pref_content_load_page_summary (8792093504054149369) -->
+ <skip />
<string name="pref_extras_title" msgid="3091250467679722382">"高级设置"</string>
<string name="pref_extras_website_settings" msgid="67866640052455549">"网站设置"</string>
<string name="pref_extras_website_settings_summary" msgid="3917568895776162240">"查看各网站的高级设置"</string>
<string name="pref_extras_reset_default" msgid="8904000515846202110">"重置为默认设置"</string>
<string name="pref_extras_reset_default_summary" msgid="7984680562706914966">"清除所有浏览器数据并恢复所有默认设置"</string>
- <string name="pref_extras_reset_default_dlg" msgid="6894807766578874830">"此操作将会刪除所有浏览器数据并将设置恢复为默认值。"</string>
+ <!-- no translation found for pref_extras_reset_default_dlg (6894807766578874830) -->
+ <skip />
<string name="pref_extras_reset_default_dlg_title" msgid="2250334970728938936">"重置为默认设置"</string>
<string name="pref_development_title" msgid="3263854204533056480">"调试"</string>
<string name="pref_default_text_encoding" msgid="5742965543955558478">"文字编码"</string>
@@ -207,15 +232,18 @@
<string name="pref_default_text_encoding_dialogtitle" msgid="5508255018084978547">"文字编码"</string>
<string name="pref_default_text_encoding_default" msgid="5272126711231936722">"Latin-1"</string>
<string name="browserFrameRedirect" msgid="7049675479777828343">"重定向"</string>
- <string name="browserFrame307Post" msgid="1429094844669510768">"该网页正在进行重定向。是否要将您键入的表单数据重新发送到新位置?"</string>
+ <!-- no translation found for browserFrame307Post (1429094844669510768) -->
+ <skip />
<string name="browserFrameNetworkErrorLabel" msgid="126892350904924893">"数据连接性问题"</string>
<string name="browserFrameFileErrorLabel" msgid="8063691502792670367">"文件有问题"</string>
<string name="browserFrameFormResubmitLabel" msgid="2685923472682180360">"确认"</string>
<string name="browserFrameFormResubmitMessage" msgid="2752182215695632138">"您尝试查看的网页中包含已经提交的数据(“POSTDATA”)。如果您重新发送这些数据,系统会重复该网页上的表单所执行过的一切操作(如搜索或在线购买)。"</string>
<string name="loadSuspendedTitle" msgid="675991625288706944">"没有网络连接"</string>
- <string name="loadSuspended" msgid="3133656588880851273">"未连接到互联网,因此浏览器无法载入该网页。"</string>
+ <!-- no translation found for loadSuspended (3133656588880851273) -->
+ <skip />
<string name="clear_history" msgid="5998307092715979619">"清除历史记录"</string>
- <string name="browser_history" msgid="1038987118290272525">"最近访问过的网页"</string>
+ <!-- no translation found for browser_history (1038987118290272525) -->
+ <skip />
<string name="empty_history" msgid="8738772352308207274">"浏览器历史记录为空。"</string>
<string name="add_new_bookmark" msgid="8086367791400349049">"添加书签..."</string>
<string name="add_bookmark_short" msgid="3783984330998103735">"添加"</string>
@@ -258,7 +286,8 @@
<string name="download_pending_network" msgid="6548714525679461053">"正在等待数据连接..."</string>
<string name="download_running_paused" msgid="6418029352085656495">"正在等待数据连接..."</string>
<string name="download_canceled" msgid="6057083743144492515">"下载已取消。"</string>
- <string name="download_not_acceptable" msgid="313769696131563652">"无法下载,此手机不支持此内容。"</string>
+ <!-- no translation found for download_not_acceptable (313769696131563652) -->
+ <skip />
<string name="download_file_error" msgid="1206648050615176113">"无法完成下载,存储空间不足。"</string>
<string name="download_length_required" msgid="9038605488460437406">"无法下载,因为无法确定该下载项的大小。"</string>
<string name="download_precondition_failed" msgid="8327584102874295580">"下载中断,无法重新开始。"</string>
@@ -270,14 +299,20 @@
<string name="webstorage_clear_data_summary" msgid="3523128713743907805">"删除所有与此网站相关联的数据库"</string>
<string name="webstorage_clear_data_dialog_title" msgid="345457466368974706">"清除存储的数据"</string>
<string name="webstorage_clear_data_dialog_message" msgid="6678281256970470125">"此时将删除由此网站存储的所有数据"</string>
- <string name="webstorage_clear_data_dialog_ok_button" msgid="2516563534211898636">"全部清除"</string>
+ <!-- no translation found for webstorage_clear_data_dialog_ok_button (2516563534211898636) -->
+ <skip />
<string name="webstorage_clear_data_dialog_cancel_button" msgid="2028867751958942762">"取消"</string>
<string name="webstorage_origin_summary_mb_stored" msgid="1985885826292236210">"您手机的存储空间 (MB)"</string>
- <string name="loading_video" msgid="4887871585216091096">"正在载入视频"</string>
- <string name="geolocation_permissions_prompt_message" msgid="356796102004052471">"<xliff:g id="WEBSITE_ORIGIN">%s</xliff:g>需要了解您的位置信息"</string>
- <string name="geolocation_permissions_prompt_share" msgid="9084486342048347976">"共享位置信息"</string>
- <string name="geolocation_permissions_prompt_dont_share" msgid="6303025160237860300">"拒绝"</string>
- <string name="geolocation_permissions_prompt_remember" msgid="3118526300707348308">"记住偏好设置"</string>
+ <!-- no translation found for loading_video (4887871585216091096) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_message (356796102004052471) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_share (9084486342048347976) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_dont_share (6303025160237860300) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_remember (3118526300707348308) -->
+ <skip />
<string name="geolocation_settings_page_title" msgid="1745477985097536528">"取消位置信息访问权限"</string>
<string name="geolocation_settings_page_summary_allowed" msgid="9180251524290811398">"此网站目前可访问您的位置信息"</string>
<string name="geolocation_settings_page_summary_not_allowed" msgid="4589649082203102544">"此网站目前不能访问您的位置信息"</string>
@@ -285,10 +320,15 @@
<string name="geolocation_settings_page_dialog_message" msgid="7586671987576403993">"此时将取消此网站的位置信息访问权限"</string>
<string name="geolocation_settings_page_dialog_ok_button" msgid="4789434178048077287">"取消访问权限"</string>
<string name="geolocation_settings_page_dialog_cancel_button" msgid="7941036504673409747">"取消"</string>
- <string name="website_settings_clear_all" msgid="8739804325997655980">"全部清除"</string>
- <string name="website_settings_clear_all_dialog_title" msgid="7791826325122461718">"是否清除所有网站设置?"</string>
- <string name="website_settings_clear_all_dialog_message" msgid="6150502090601476333">"此操作将会删除所有网站数据和位置权限。"</string>
- <string name="website_settings_clear_all_dialog_ok_button" msgid="6401582240627669431">"删除所有数据"</string>
- <string name="website_settings_clear_all_dialog_cancel_button" msgid="1896757051856611674">"取消"</string>
+ <!-- no translation found for website_settings_clear_all (8739804325997655980) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_title (7791826325122461718) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_message (6150502090601476333) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_ok_button (6401582240627669431) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_cancel_button (1896757051856611674) -->
+ <skip />
<string name="zoom_overview_button_text" msgid="4146579940085488881">"概览"</string>
</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index f2b5826..fc7f503 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -16,8 +16,12 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="application_name" msgid="1935869255545976415">"瀏覽器"</string>
- <string name="new_tab" msgid="4505722538297295141">"新視窗"</string>
- <string name="active_tabs" msgid="3050623868203544623">"Windows"</string>
+ <!-- no translation found for choose_upload (3649366287575002063) -->
+ <skip />
+ <!-- no translation found for new_tab (4505722538297295141) -->
+ <skip />
+ <!-- no translation found for active_tabs (3050623868203544623) -->
+ <skip />
<string name="tab_bookmarks" msgid="2305793036003473653">"書籤"</string>
<string name="tab_most_visited" msgid="1077402532455000703">"常用網頁"</string>
<string name="tab_history" msgid="1979267558744613746">"記錄"</string>
@@ -78,8 +82,10 @@
<string name="remove_history_item" msgid="5021424935726728618">"從記錄中移除"</string>
<string name="set_as_homepage" msgid="4752937379414905560">"設為首頁"</string>
<string name="bookmark_saved" msgid="2766434679871317557">"已儲存至書籤。"</string>
- <string name="bookmark_not_saved" msgid="700600955089376724">"無法儲存書籤。"</string>
- <string name="homepage_set" msgid="8768087280310966395">"已設定首頁。"</string>
+ <!-- no translation found for bookmark_not_saved (700600955089376724) -->
+ <skip />
+ <!-- no translation found for homepage_set (8768087280310966395) -->
+ <skip />
<string name="bookmark_needs_title" msgid="6245900436119218187">"請輸入書籤名稱。"</string>
<string name="bookmark_needs_url" msgid="7809876865972755158">"請選取書籤位置。"</string>
<string name="empty_bookmark" msgid="7008697085928540511">"無法建立空白書籤。"</string>
@@ -107,7 +113,8 @@
<string name="shortcut_bookmark" msgid="3974876480401135895">"書籤"</string>
<string name="history" msgid="2451240511251410032">"記錄"</string>
<string name="menu_view_download" msgid="2124570321712995120">"下載"</string>
- <string name="copy_page_url" msgid="7635062169011319208">"複製網頁網址"</string>
+ <!-- no translation found for copy_page_url (7635062169011319208) -->
+ <skip />
<string name="share_page" msgid="593756995297268343">"分享網頁"</string>
<string name="contextmenu_openlink" msgid="7237961252214188935">"開啟"</string>
<string name="contextmenu_openlink_newwindow" msgid="992765050093960353">"在新視窗開啟"</string>
@@ -122,40 +129,54 @@
<string name="contextmenu_add_contact" msgid="3183511922223645716">"新增聯絡人"</string>
<string name="contextmenu_send_mail" msgid="1014513374828775660">"傳送電子郵件"</string>
<string name="contextmenu_map" msgid="7471390435434034912">"地圖"</string>
- <string name="choosertitle_sharevia" msgid="4600490613341909086">"透過下列應用程式分享:"</string>
+ <!-- no translation found for choosertitle_sharevia (4600490613341909086) -->
+ <skip />
<string name="clear" msgid="7070043081700011461">"清除"</string>
<string name="replace" msgid="4843033491070384047">"取代"</string>
<string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"書籤"</string>
<string name="menu_preferences" msgid="6709237687234102240">"設定"</string>
<string name="pref_content_title" msgid="722227111894838633">"頁面內容設定"</string>
<string name="pref_content_load_images" msgid="2125616852957377561">"載入圖片"</string>
- <string name="pref_content_load_images_summary" msgid="5055874125248398584">"顯示網頁上的圖片"</string>
+ <!-- no translation found for pref_content_load_images_summary (5055874125248398584) -->
+ <skip />
<string name="pref_content_block_popups" msgid="7808433807197256726">"封鎖快顯視窗"</string>
<string name="pref_content_javascript" msgid="4570972030299516843">"啟用 JavaScript"</string>
<string name="pref_content_open_in_background" msgid="824123779725118663">"在背景中開啟"</string>
- <string name="pref_content_plugins" msgid="7231944644794301582">"啟用外掛程式"</string>
- <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"在目前視窗的背景開啟新視窗"</string>
+ <!-- no translation found for pref_content_plugins (7231944644794301582) -->
+ <skip />
+ <!-- no translation found for pref_content_open_in_background_summary (1737664075721181678) -->
+ <skip />
<string name="pref_content_homepage" msgid="6082437160778559806">"設定首頁"</string>
<string name="pref_content_autofit" msgid="8260474534053660809">"自動調整頁面"</string>
- <string name="pref_content_autofit_summary" msgid="4587831659894879986">"配合螢幕大小調整網頁版面"</string>
- <string name="pref_content_landscape_only" msgid="2022546812766219672">"僅以水平模式顯示"</string>
- <string name="pref_content_landscape_only_summary" msgid="1008238895535428855">"僅以橫向寬螢幕瀏覽模式顯示網頁"</string>
+ <!-- no translation found for pref_content_autofit_summary (4587831659894879986) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only (2022546812766219672) -->
+ <skip />
+ <!-- no translation found for pref_content_landscape_only_summary (1008238895535428855) -->
+ <skip />
<string name="pref_privacy_title" msgid="1052470980370846151">"隱私設定"</string>
<string name="pref_privacy_clear_cache" msgid="3380316479925886998">"清除快取"</string>
<string name="pref_privacy_clear_cache_summary" msgid="2216463577207991454">"清除本機快取內容與資料庫"</string>
- <string name="pref_privacy_clear_cache_dlg" msgid="5541011591300753881">"即將刪除本機快取內容與資料庫。"</string>
+ <!-- no translation found for pref_privacy_clear_cache_dlg (5541011591300753881) -->
+ <skip />
<string name="pref_privacy_clear_cookies" msgid="3095583579133780331">"清除所有 cookie"</string>
- <string name="pref_privacy_clear_cookies_summary" msgid="6962742063990677520">"要清除所有瀏覽器 Cookies 嗎?"</string>
- <string name="pref_privacy_clear_cookies_dlg" msgid="552855688091432682">"即將刪除所有 Cookie。"</string>
+ <!-- no translation found for pref_privacy_clear_cookies_summary (6962742063990677520) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_cookies_dlg (552855688091432682) -->
+ <skip />
<string name="pref_privacy_clear_history" msgid="8723795508825198477">"清除記錄"</string>
<string name="pref_privacy_clear_history_summary" msgid="6868501330708940734">"清除瀏覽記錄"</string>
- <string name="pref_privacy_clear_history_dlg" msgid="544903007914753853">"即將刪除瀏覽器的瀏覽記錄。"</string>
+ <!-- no translation found for pref_privacy_clear_history_dlg (544903007914753853) -->
+ <skip />
<string name="pref_privacy_clear_form_data" msgid="4232668196344383987">"清除表單資料"</string>
<string name="pref_privacy_clear_form_data_summary" msgid="1790390894719517167">"清除所有表單"</string>
- <string name="pref_privacy_clear_form_data_dlg" msgid="4443621086781197928">"即將刪除所有已儲存表單資料。"</string>
+ <!-- no translation found for pref_privacy_clear_form_data_dlg (4443621086781197928) -->
+ <skip />
<string name="pref_privacy_clear_passwords" msgid="4750234112289277480">"清除密碼"</string>
- <string name="pref_privacy_clear_passwords_summary" msgid="8856782718942903335">"清除所有已儲存密碼"</string>
- <string name="pref_privacy_clear_passwords_dlg" msgid="2083869328824248255">"即將刪除所有儲存的密碼"</string>
+ <!-- no translation found for pref_privacy_clear_passwords_summary (8856782718942903335) -->
+ <skip />
+ <!-- no translation found for pref_privacy_clear_passwords_dlg (2083869328824248255) -->
+ <skip />
<string name="pref_privacy_enable_geolocation" msgid="1395040170290765686">"啟用定位功能"</string>
<string name="pref_privacy_enable_geolocation_summary" msgid="8437020934664306205">"允許網站向您要求位置資訊存取權"</string>
<string name="pref_privacy_clear_geolocation_access" msgid="6649680770030042980">"清除位置資訊存取權"</string>
@@ -163,7 +184,8 @@
<string name="pref_privacy_clear_geolocation_access_dlg" msgid="7327063124488827244">"清除所有網站的位置資訊存取權"</string>
<string name="pref_security_title" msgid="5763978646932160021">"安全性設定"</string>
<string name="pref_security_remember_passwords" msgid="6492957683454529549">"記住密碼"</string>
- <string name="pref_security_remember_passwords_summary" msgid="256388703356349137">"儲存網站的使用者名稱和密碼"</string>
+ <!-- no translation found for pref_security_remember_passwords_summary (256388703356349137) -->
+ <skip />
<string name="pref_security_save_form_data" msgid="1213669802810198893">"儲存表單資料"</string>
<string name="pref_security_save_form_data_summary" msgid="4994074685153708026">"儲存輸入的表單資料"</string>
<string name="pref_security_show_security_warning" msgid="8901135676266754559">"顯示安全性警告"</string>
@@ -186,14 +208,17 @@
<item msgid="3840999588443167001">"近"</item>
</string-array>
<string name="pref_default_zoom_dialogtitle" msgid="6095974367125109021">"預設縮放"</string>
- <string name="pref_content_load_page" msgid="2219810141690955452">"以總覽模式開啟網頁"</string>
- <string name="pref_content_load_page_summary" msgid="8792093504054149369">"顯示新開啟網頁的綜覽畫面"</string>
+ <!-- no translation found for pref_content_load_page (2219810141690955452) -->
+ <skip />
+ <!-- no translation found for pref_content_load_page_summary (8792093504054149369) -->
+ <skip />
<string name="pref_extras_title" msgid="3091250467679722382">"進階設定"</string>
<string name="pref_extras_website_settings" msgid="67866640052455549">"網站設定"</string>
<string name="pref_extras_website_settings_summary" msgid="3917568895776162240">"查看個別網站的進階設定"</string>
<string name="pref_extras_reset_default" msgid="8904000515846202110">"還原至初始設定"</string>
<string name="pref_extras_reset_default_summary" msgid="7984680562706914966">"清除瀏覽器所有資料,並還原至初始設定"</string>
- <string name="pref_extras_reset_default_dlg" msgid="6894807766578874830">"即將刪除所有瀏覽器資料,並將設定還原為預設值。"</string>
+ <!-- no translation found for pref_extras_reset_default_dlg (6894807766578874830) -->
+ <skip />
<string name="pref_extras_reset_default_dlg_title" msgid="2250334970728938936">"還原至初始設定"</string>
<string name="pref_development_title" msgid="3263854204533056480">"偵錯"</string>
<string name="pref_default_text_encoding" msgid="5742965543955558478">"文字編碼"</string>
@@ -207,15 +232,18 @@
<string name="pref_default_text_encoding_dialogtitle" msgid="5508255018084978547">"文字編碼"</string>
<string name="pref_default_text_encoding_default" msgid="5272126711231936722">"Latin-1"</string>
<string name="browserFrameRedirect" msgid="7049675479777828343">"轉址"</string>
- <string name="browserFrame307Post" msgid="1429094844669510768">"系統正將您重新導向至新的網頁,要將已輸入的表單資料重新傳送至新的網頁嗎?"</string>
+ <!-- no translation found for browserFrame307Post (1429094844669510768) -->
+ <skip />
<string name="browserFrameNetworkErrorLabel" msgid="126892350904924893">"資料連線問題"</string>
<string name="browserFrameFileErrorLabel" msgid="8063691502792670367">"檔案有問題"</string>
<string name="browserFrameFormResubmitLabel" msgid="2685923472682180360">"確認"</string>
<string name="browserFrameFormResubmitMessage" msgid="2752182215695632138">"您想瀏覽的頁面包含已傳送的 (「POSTDATA」),如重新送出資料,此頁表單上執行的操作將會重複 (包括搜尋或線上購物等)。"</string>
<string name="loadSuspendedTitle" msgid="675991625288706944">"沒有網路連線"</string>
- <string name="loadSuspended" msgid="3133656588880851273">"沒有連上網際網路,瀏覽器無法載入網頁。"</string>
+ <!-- no translation found for loadSuspended (3133656588880851273) -->
+ <skip />
<string name="clear_history" msgid="5998307092715979619">"清除記錄"</string>
- <string name="browser_history" msgid="1038987118290272525">"最近瀏覽的網頁"</string>
+ <!-- no translation found for browser_history (1038987118290272525) -->
+ <skip />
<string name="empty_history" msgid="8738772352308207274">"瀏覽記錄是空的。"</string>
<string name="add_new_bookmark" msgid="8086367791400349049">"加入書籤…"</string>
<string name="add_bookmark_short" msgid="3783984330998103735">"新增"</string>
@@ -258,26 +286,33 @@
<string name="download_pending_network" msgid="6548714525679461053">"等待資料連線中…"</string>
<string name="download_running_paused" msgid="6418029352085656495">"等待資料連線中…"</string>
<string name="download_canceled" msgid="6057083743144492515">"下載已取消。"</string>
- <string name="download_not_acceptable" msgid="313769696131563652">"無法下載,您的手機不支援這種內容。"</string>
+ <!-- no translation found for download_not_acceptable (313769696131563652) -->
+ <skip />
<string name="download_file_error" msgid="1206648050615176113">"無法完成下載。儲存空間不足。"</string>
<string name="download_length_required" msgid="9038605488460437406">"無法下載。物件大小無法估計。"</string>
<string name="download_precondition_failed" msgid="8327584102874295580">"下載中斷。無法續傳。"</string>
<string name="activity_instrumentation_test_runner" msgid="8215091309334005029">"Browser Test Runner"</string>
<string name="search_the_web" msgid="6046130189241962337">"搜尋網頁"</string>
<string name="webstorage_outofspace_notification_title" msgid="1160474608059771788">"瀏覽器儲存空間已滿"</string>
- <string name="webstorage_outofspace_notification_text" msgid="7341075135051829692">"按一下可釋出儲存空間。"</string>
+ <string name="webstorage_outofspace_notification_text" msgid="7341075135051829692">"按一下可釋出空間。"</string>
<string name="webstorage_clear_data_title" msgid="689484577124333977">"清除儲存的資料"</string>
<string name="webstorage_clear_data_summary" msgid="3523128713743907805">"移除所有與此網站關聯的資料庫"</string>
<string name="webstorage_clear_data_dialog_title" msgid="345457466368974706">"清除儲存的資料"</string>
<string name="webstorage_clear_data_dialog_message" msgid="6678281256970470125">"即將刪除此網站儲存的所有資料"</string>
- <string name="webstorage_clear_data_dialog_ok_button" msgid="2516563534211898636">"全部清除"</string>
+ <!-- no translation found for webstorage_clear_data_dialog_ok_button (2516563534211898636) -->
+ <skip />
<string name="webstorage_clear_data_dialog_cancel_button" msgid="2028867751958942762">"取消"</string>
<string name="webstorage_origin_summary_mb_stored" msgid="1985885826292236210">"您手機的儲存空間使用量 (MB)"</string>
- <string name="loading_video" msgid="4887871585216091096">"正在載入影片"</string>
- <string name="geolocation_permissions_prompt_message" msgid="356796102004052471">"<xliff:g id="WEBSITE_ORIGIN">%s</xliff:g> 想取得您的位置資訊"</string>
- <string name="geolocation_permissions_prompt_share" msgid="9084486342048347976">"分享位置資訊"</string>
- <string name="geolocation_permissions_prompt_dont_share" msgid="6303025160237860300">"拒絕"</string>
- <string name="geolocation_permissions_prompt_remember" msgid="3118526300707348308">"記住偏好設定"</string>
+ <!-- no translation found for loading_video (4887871585216091096) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_message (356796102004052471) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_share (9084486342048347976) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_dont_share (6303025160237860300) -->
+ <skip />
+ <!-- no translation found for geolocation_permissions_prompt_remember (3118526300707348308) -->
+ <skip />
<string name="geolocation_settings_page_title" msgid="1745477985097536528">"清除位置資訊存取權"</string>
<string name="geolocation_settings_page_summary_allowed" msgid="9180251524290811398">"此網站目前可以存取您的位置資訊"</string>
<string name="geolocation_settings_page_summary_not_allowed" msgid="4589649082203102544">"此網站目前無法存取您的位置資訊"</string>
@@ -285,10 +320,15 @@
<string name="geolocation_settings_page_dialog_message" msgid="7586671987576403993">"即將清除此網站的位置資訊存取權"</string>
<string name="geolocation_settings_page_dialog_ok_button" msgid="4789434178048077287">"清除存取權"</string>
<string name="geolocation_settings_page_dialog_cancel_button" msgid="7941036504673409747">"取消"</string>
- <string name="website_settings_clear_all" msgid="8739804325997655980">"全部清除"</string>
- <string name="website_settings_clear_all_dialog_title" msgid="7791826325122461718">"要清除所有網站設定嗎?"</string>
- <string name="website_settings_clear_all_dialog_message" msgid="6150502090601476333">"即將刪除所有網站資料和位置存取權限。"</string>
- <string name="website_settings_clear_all_dialog_ok_button" msgid="6401582240627669431">"刪除所有資料"</string>
- <string name="website_settings_clear_all_dialog_cancel_button" msgid="1896757051856611674">"取消"</string>
+ <!-- no translation found for website_settings_clear_all (8739804325997655980) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_title (7791826325122461718) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_message (6150502090601476333) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_ok_button (6401582240627669431) -->
+ <skip />
+ <!-- no translation found for website_settings_clear_all_dialog_cancel_button (1896757051856611674) -->
+ <skip />
<string name="zoom_overview_button_text" msgid="4146579940085488881">"總覽"</string>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 3bb6ffd..a4b5b9f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -17,7 +17,8 @@
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- The name of the application. -->
<string name="application_name">Browser</string>
-
+ <!-- Displayed with a file picker to choose a file to upload -->
+ <string name="choose_upload">Choose file for upload</string>
<!-- Name of menu item of a new tab. Also used in the title bar when displaying a new tab -->
<string name="new_tab">New window</string>
<!-- Name of menu item which brings up a list of the currently active tabs -->
@@ -170,6 +171,8 @@
<string name="empty_bookmark">"Cannot create empty bookmark."</string>
<!-- Error that appears in the title of Bookmark dialog when user selects OK with invalid URL -->
<string name="bookmark_url_not_valid">URL is not valid.</string>
+ <!-- Error that appears in the Bookmark dialog when user selects OK with a URL of a type we cannot bookmark -->
+ <string name="bookmark_cannot_save_url">This URL cannot be bookmarked.</string>
<!-- Title of a confirmation dialog when the user deletes a bookmark-->
<string name="delete_bookmark">Delete</string>
<!-- Menu item in the page that displays all bookmarks. It brings up a
@@ -673,7 +676,7 @@
<item>eBay</item>
<item>http://www.ebay.com/</item>
<item>CNN</item>
- <item>http://www.cnn.com/index.html</item>
+ <item>http://www.cnn.com/</item>
<item>NY Times</item>
<item>http://www.nytimes.com/</item>
<item>ESPN</item>
@@ -740,6 +743,9 @@
<string name="geolocation_permissions_prompt_share">Share location</string>
<string name="geolocation_permissions_prompt_dont_share">Decline</string>
<string name="geolocation_permissions_prompt_remember">Remember preference</string>
+ <!-- Permissions prompt toast -->
+ <string name="geolocation_permissions_prompt_toast_allowed">This site can access your location. Change this in Settings -> Website settings</string>
+ <string name="geolocation_permissions_prompt_toast_disallowed">This site cannot access your location. Change this in Settings -> Website settings</string>
<!-- Settings page, Advanced Settings -> Website settings -> <origin> -->
<string name="geolocation_settings_page_title">Clear location access</string>
<string name="geolocation_settings_page_summary_allowed">This site can currently access your location</string>
diff --git a/src/com/android/browser/ActiveTabsPage.java b/src/com/android/browser/ActiveTabsPage.java
index 90c417a..72f291c 100644
--- a/src/com/android/browser/ActiveTabsPage.java
+++ b/src/com/android/browser/ActiveTabsPage.java
@@ -49,7 +49,7 @@
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
- if (mControl.getTabCount() < TabControl.MAX_TABS) {
+ if (mControl.canCreateNewTab()) {
position--;
}
boolean needToAttach = false;
@@ -92,7 +92,7 @@
private class TabsListAdapter extends BaseAdapter {
public int getCount() {
int count = mControl.getTabCount();
- if (count < TabControl.MAX_TABS) {
+ if (mControl.canCreateNewTab()) {
count++;
}
return count;
@@ -107,7 +107,7 @@
return 2;
}
public int getItemViewType(int position) {
- if (mControl.getTabCount() < TabControl.MAX_TABS) {
+ if (mControl.canCreateNewTab()) {
position--;
}
// Do not recycle the "add new tab" item.
@@ -115,7 +115,7 @@
}
public View getView(int position, View convertView, ViewGroup parent) {
final int tabCount = mControl.getTabCount();
- if (tabCount < TabControl.MAX_TABS) {
+ if (mControl.canCreateNewTab()) {
position--;
}
@@ -131,8 +131,8 @@
ImageView favicon =
(ImageView) convertView.findViewById(R.id.favicon);
View close = convertView.findViewById(R.id.close);
- TabControl.Tab tab = mControl.getTab(position);
- mControl.populatePickerData(tab);
+ Tab tab = mControl.getTab(position);
+ tab.populatePickerData();
title.setText(tab.getTitle());
url.setText(tab.getUrl());
Bitmap icon = tab.getFavicon();
diff --git a/src/com/android/browser/AddBookmarkPage.java b/src/com/android/browser/AddBookmarkPage.java
index 81123ba..9ab8473 100644
--- a/src/com/android/browser/AddBookmarkPage.java
+++ b/src/com/android/browser/AddBookmarkPage.java
@@ -182,9 +182,14 @@
try {
URI uriObj = new URI(url);
String scheme = uriObj.getScheme();
- if (!("about".equals(scheme) || "data".equals(scheme)
- || "javascript".equals(scheme)
- || "file".equals(scheme) || "content".equals(scheme))) {
+ if (!Bookmarks.urlHasAcceptableScheme(url)) {
+ // If the scheme was non-null, let the user know that we
+ // can't save their bookmark. If it was null, we'll assume
+ // they meant http when we parse it in the WebAddress class.
+ if (scheme != null) {
+ mAddress.setError(r.getText(R.string.bookmark_cannot_save_url));
+ return false;
+ }
WebAddress address;
try {
address = new WebAddress(unfilteredUrl);
diff --git a/src/com/android/browser/Bookmarks.java b/src/com/android/browser/Bookmarks.java
index c8aaee7..8d98f89 100644
--- a/src/com/android/browser/Bookmarks.java
+++ b/src/com/android/browser/Bookmarks.java
@@ -41,6 +41,18 @@
private static String[] SELECTION_ARGS;
+ // We only want the user to be able to bookmark content that
+ // the browser can handle directly.
+ private static final String acceptableBookmarkSchemes[] = {
+ "http:",
+ "https:",
+ "about:",
+ "data:",
+ "javascript:",
+ "file:",
+ "content:"
+ };
+
/**
* Add a bookmark to the database.
* @param context Context of the calling Activity. This is used to make
@@ -214,4 +226,17 @@
bm.compress(Bitmap.CompressFormat.PNG, 100, os);
return os.toByteArray();
}
+
+ /* package */ static boolean urlHasAcceptableScheme(String url) {
+ if (url == null) {
+ return false;
+ }
+
+ for (int i = 0; i < acceptableBookmarkSchemes.length; i++) {
+ if (url.startsWith(acceptableBookmarkSchemes[i])) {
+ return true;
+ }
+ }
+ return false;
+ }
}
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index 5937881..438b386 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -34,33 +34,23 @@
import android.content.Intent;
import android.content.IntentFilter;
import android.content.ServiceConnection;
-import android.content.DialogInterface.OnCancelListener;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
-import android.content.res.AssetManager;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.database.Cursor;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteException;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
-import android.graphics.DrawFilter;
-import android.graphics.Paint;
-import android.graphics.PaintFlagsDrawFilter;
import android.graphics.Picture;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
-import android.hardware.SensorListener;
-import android.hardware.SensorManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.net.WebAddress;
-import android.net.http.EventHandler;
import android.net.http.SslCertificate;
import android.net.http.SslError;
import android.os.AsyncTask;
@@ -99,41 +89,26 @@
import android.view.WindowManager;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuItem.OnMenuItemClickListener;
-import android.view.animation.AlphaAnimation;
-import android.view.animation.Animation;
-import android.view.animation.AnimationSet;
-import android.view.animation.DecelerateInterpolator;
-import android.view.animation.ScaleAnimation;
-import android.view.animation.TranslateAnimation;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.DownloadListener;
-import android.webkit.GeolocationPermissions;
import android.webkit.HttpAuthHandler;
import android.webkit.PluginManager;
import android.webkit.SslErrorHandler;
import android.webkit.URLUtil;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
-import android.webkit.WebChromeClient.CustomViewCallback;
import android.webkit.WebHistoryItem;
import android.webkit.WebIconDatabase;
-import android.webkit.WebStorage;
import android.webkit.WebView;
-import android.webkit.WebViewClient;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
-import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -141,14 +116,9 @@
import java.net.URLEncoder;
import java.text.ParseException;
import java.util.Date;
-import java.util.Enumeration;
import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.Vector;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
public class BrowserActivity extends Activity
implements View.OnCreateContextMenuListener,
@@ -164,8 +134,6 @@
private IGoogleLoginService mGls = null;
private ServiceConnection mGlsConnection = null;
- private SensorManager mSensorManager = null;
-
// These are single-character shortcuts for searching popular sources.
private static final int SHORTCUT_INVALID = 0;
private static final int SHORTCUT_GOOGLE_SEARCH = 1;
@@ -173,23 +141,6 @@
private static final int SHORTCUT_DICTIONARY_SEARCH = 3;
private static final int SHORTCUT_GOOGLE_MOBILE_LOCAL_SEARCH = 4;
- /* Whitelisted webpages
- private static HashSet<String> sWhiteList;
-
- static {
- sWhiteList = new HashSet<String>();
- sWhiteList.add("cnn.com/");
- sWhiteList.add("espn.go.com/");
- sWhiteList.add("nytimes.com/");
- sWhiteList.add("engadget.com/");
- sWhiteList.add("yahoo.com/");
- sWhiteList.add("msn.com/");
- sWhiteList.add("amazon.com/");
- sWhiteList.add("consumerist.com/");
- sWhiteList.add("google.com/m/news");
- }
- */
-
private void setupHomePage() {
final Runnable getAccount = new Runnable() {
public void run() {
@@ -295,7 +246,8 @@
*/
private FrameLayout mBrowserFrameLayout;
- @Override public void onCreate(Bundle icicle) {
+ @Override
+ public void onCreate(Bundle icicle) {
if (LOGV_ENABLED) {
Log.v(LOGTAG, this + " onStart");
}
@@ -314,16 +266,6 @@
return;
}
- //
- // start MASF proxy service
- //
- //Intent proxyServiceIntent = new Intent();
- //proxyServiceIntent.setComponent
- // (new ComponentName(
- // "com.android.masfproxyservice",
- // "com.android.masfproxyservice.MasfProxyService"));
- //startService(proxyServiceIntent, null);
-
mSecLockIcon = Resources.getSystem().getDrawable(
android.R.drawable.ic_secure);
mMixLockIcon = Resources.getSystem().getDrawable(
@@ -341,6 +283,7 @@
.findViewById(R.id.fullscreen_custom_content);
frameLayout.addView(mBrowserFrameLayout, COVER_SCREEN_PARAMS);
mTitleBar = new TitleBar(this);
+ mFakeTitleBar = new TitleBar(this);
// Create the tab control and our initial tab
mTabControl = new TabControl(this);
@@ -435,7 +378,7 @@
// the tab will be close when exit.
UrlData urlData = getUrlDataFromIntent(intent);
- final TabControl.Tab t = mTabControl.createNewTab(
+ final Tab t = mTabControl.createNewTab(
Intent.ACTION_VIEW.equals(intent.getAction()) &&
intent.getData() != null,
intent.getStringExtra(Browser.EXTRA_APPLICATION_ID), urlData.mUrl);
@@ -485,7 +428,7 @@
@Override
protected void onNewIntent(Intent intent) {
- TabControl.Tab current = mTabControl.getCurrentTab();
+ Tab current = mTabControl.getCurrentTab();
// When a tab is closed on exit, the current tab index is set to -1.
// Reset before proceed as Browser requires the current tab to be set.
if (current == null) {
@@ -528,7 +471,7 @@
if (Intent.ACTION_VIEW.equals(action)
&& !getPackageName().equals(appId)
&& (flags & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
- TabControl.Tab appTab = mTabControl.getTabFromId(appId);
+ Tab appTab = mTabControl.getTabFromId(appId);
if (appTab != null) {
Log.i(LOGTAG, "Reusing tab for " + appId);
// Dismiss the subwindow if applicable.
@@ -744,100 +687,8 @@
return inUrl;
}
- /**
- * Looking for the pattern like this
- *
- * *
- * * *
- * *** * *******
- * * *
- * * *
- * *
- */
- private final SensorListener mSensorListener = new SensorListener() {
- private long mLastGestureTime;
- private float[] mPrev = new float[3];
- private float[] mPrevDiff = new float[3];
- private float[] mDiff = new float[3];
- private float[] mRevertDiff = new float[3];
-
- public void onSensorChanged(int sensor, float[] values) {
- boolean show = false;
- float[] diff = new float[3];
-
- for (int i = 0; i < 3; i++) {
- diff[i] = values[i] - mPrev[i];
- if (Math.abs(diff[i]) > 1) {
- show = true;
- }
- if ((diff[i] > 1.0 && mDiff[i] < 0.2)
- || (diff[i] < -1.0 && mDiff[i] > -0.2)) {
- // start track when there is a big move, or revert
- mRevertDiff[i] = mDiff[i];
- mDiff[i] = 0;
- } else if (diff[i] > -0.2 && diff[i] < 0.2) {
- // reset when it is flat
- mDiff[i] = mRevertDiff[i] = 0;
- }
- mDiff[i] += diff[i];
- mPrevDiff[i] = diff[i];
- mPrev[i] = values[i];
- }
-
- if (false) {
- // only shows if we think the delta is big enough, in an attempt
- // to detect "serious" moves left/right or up/down
- Log.d("BrowserSensorHack", "sensorChanged " + sensor + " ("
- + values[0] + ", " + values[1] + ", " + values[2] + ")"
- + " diff(" + diff[0] + " " + diff[1] + " " + diff[2]
- + ")");
- Log.d("BrowserSensorHack", " mDiff(" + mDiff[0] + " "
- + mDiff[1] + " " + mDiff[2] + ")" + " mRevertDiff("
- + mRevertDiff[0] + " " + mRevertDiff[1] + " "
- + mRevertDiff[2] + ")");
- }
-
- long now = android.os.SystemClock.uptimeMillis();
- if (now - mLastGestureTime > 1000) {
- mLastGestureTime = 0;
-
- float y = mDiff[1];
- float z = mDiff[2];
- float ay = Math.abs(y);
- float az = Math.abs(z);
- float ry = mRevertDiff[1];
- float rz = mRevertDiff[2];
- float ary = Math.abs(ry);
- float arz = Math.abs(rz);
- boolean gestY = ay > 2.5f && ary > 1.0f && ay > ary;
- boolean gestZ = az > 3.5f && arz > 1.0f && az > arz;
-
- if ((gestY || gestZ) && !(gestY && gestZ)) {
- WebView view = mTabControl.getCurrentWebView();
-
- if (view != null) {
- if (gestZ) {
- if (z < 0) {
- view.zoomOut();
- } else {
- view.zoomIn();
- }
- } else {
- view.flingScroll(0, Math.round(y * 100));
- }
- }
- mLastGestureTime = now;
- }
- }
- }
-
- public void onAccuracyChanged(int sensor, int accuracy) {
- // TODO Auto-generated method stub
-
- }
- };
-
- @Override protected void onResume() {
+ @Override
+ protected void onResume() {
super.onResume();
if (LOGV_ENABLED) {
Log.v(LOGTAG, "BrowserActivity.onResume: this=" + this);
@@ -867,24 +718,12 @@
registerReceiver(mNetworkStateIntentReceiver,
mNetworkStateChangedFilter);
WebView.enablePlatformNotifications();
-
- if (mSettings.doFlick()) {
- if (mSensorManager == null) {
- mSensorManager = (SensorManager) getSystemService(
- Context.SENSOR_SERVICE);
- }
- mSensorManager.registerListener(mSensorListener,
- SensorManager.SENSOR_ACCELEROMETER,
- SensorManager.SENSOR_DELAY_FASTEST);
- } else {
- mSensorManager = null;
- }
}
/**
* Since the actual title bar is embedded in the WebView, and removing it
- * would change its appearance, create a temporary title bar to go at
- * the top of the screen while the menu is open.
+ * would change its appearance, use a different TitleBar to show overlayed
+ * at the top of the screen, when the menu is open or the page is loading.
*/
private TitleBar mFakeTitleBar;
@@ -987,7 +826,7 @@
private void showFakeTitleBar() {
final View decor = getWindow().peekDecorView();
- if (mFakeTitleBar == null && mActiveTabsPage == null
+ if (mFakeTitleBar.getParent() == null && mActiveTabsPage == null
&& !mActivityInPause && decor != null
&& decor.getWindowToken() != null) {
Rect visRect = new Rect();
@@ -997,12 +836,6 @@
}
return;
}
- final WebView webView = getTopWindow();
- mFakeTitleBar = new TitleBar(this);
- mFakeTitleBar.setTitleAndUrl(null, webView.getUrl());
- mFakeTitleBar.setProgress(webView.getProgress());
- mFakeTitleBar.setFavicon(webView.getFavicon());
- updateLockIconToLatest();
WindowManager manager
= (WindowManager) getSystemService(Context.WINDOW_SERVICE);
@@ -1050,8 +883,9 @@
showFakeTitleBar();
}
}
+
private void hideFakeTitleBar() {
- if (mFakeTitleBar == null) return;
+ if (mFakeTitleBar.getParent() == null) return;
WindowManager.LayoutParams params = (WindowManager.LayoutParams)
mFakeTitleBarHolder.getLayoutParams();
WebView mainView = mTabControl.getCurrentWebView();
@@ -1066,7 +900,6 @@
manager.updateViewLayout(mFakeTitleBarHolder, params);
mFakeTitleBarHolder.removeView(mFakeTitleBar);
manager.removeView(mFakeTitleBarHolder);
- mFakeTitleBar = null;
}
/**
@@ -1081,12 +914,21 @@
openContextMenu(mTitleBar);
}
+ @Override
+ public void onContextMenuClosed(Menu menu) {
+ super.onContextMenuClosed(menu);
+ if (mInLoad) {
+ showFakeTitleBar();
+ }
+ }
+
/**
* onSaveInstanceState(Bundle map)
* onSaveInstanceState is called right before onStop(). The map contains
* the saved state.
*/
- @Override protected void onSaveInstanceState(Bundle outState) {
+ @Override
+ protected void onSaveInstanceState(Bundle outState) {
if (LOGV_ENABLED) {
Log.v(LOGTAG, "BrowserActivity.onSaveInstanceState: this=" + this);
}
@@ -1100,7 +942,8 @@
mTabControl.saveState(outState);
}
- @Override protected void onPause() {
+ @Override
+ protected void onPause() {
super.onPause();
if (mActivityInPause) {
@@ -1135,22 +978,27 @@
// unregister network state listener
unregisterReceiver(mNetworkStateIntentReceiver);
WebView.disablePlatformNotifications();
-
- if (mSensorManager != null) {
- mSensorManager.unregisterListener(mSensorListener);
- }
}
- @Override protected void onDestroy() {
+ @Override
+ protected void onDestroy() {
if (LOGV_ENABLED) {
Log.v(LOGTAG, "BrowserActivity.onDestroy: this=" + this);
}
super.onDestroy();
+ if (mUploadMessage != null) {
+ mUploadMessage.onReceiveValue(null);
+ mUploadMessage = null;
+ }
+
if (mTabControl == null) return;
+ // Remove the fake title bar if it is there
+ hideFakeTitleBar();
+
// Remove the current tab and sub window
- TabControl.Tab t = mTabControl.getCurrentTab();
+ Tab t = mTabControl.getCurrentTab();
if (t != null) {
dismissSubWindow(t);
removeTabFromContentView(t);
@@ -1163,16 +1011,6 @@
mGlsConnection = null;
}
- //
- // stop MASF proxy service
- //
- //Intent proxyServiceIntent = new Intent();
- //proxyServiceIntent.setComponent
- // (new ComponentName(
- // "com.android.masfproxyservice",
- // "com.android.masfproxyservice.MasfProxyService"));
- //stopService(proxyServiceIntent);
-
unregisterReceiver(mPackageInstallationReceiver);
}
@@ -1218,16 +1056,18 @@
}
}
- @Override public void onLowMemory() {
+ @Override
+ public void onLowMemory() {
super.onLowMemory();
mTabControl.freeMemory();
}
private boolean resumeWebViewTimers() {
- if ((!mActivityInPause && !mPageStarted) ||
- (mActivityInPause && mPageStarted)) {
+ Tab tab = mTabControl.getCurrentTab();
+ boolean inLoad = tab.inLoad();
+ if ((!mActivityInPause && !inLoad) || (mActivityInPause && inLoad)) {
CookieSyncManager.getInstance().startSync();
- WebView w = mTabControl.getCurrentWebView();
+ WebView w = tab.getWebView();
if (w != null) {
w.resumeTimers();
}
@@ -1238,7 +1078,9 @@
}
private boolean pauseWebViewTimers() {
- if (mActivityInPause && !mPageStarted) {
+ Tab tab = mTabControl.getCurrentTab();
+ boolean inLoad = tab.inLoad();
+ if (mActivityInPause && !inLoad) {
CookieSyncManager.getInstance().stopSync();
WebView w = mTabControl.getCurrentWebView();
if (w != null) {
@@ -1327,6 +1169,10 @@
return mTabControl.getCurrentTopWebView();
}
+ TabControl getTabControl() {
+ return mTabControl;
+ }
+
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
@@ -1438,8 +1284,8 @@
* the current one, return false.
*/
/* package */ boolean switchToTab(int index) {
- TabControl.Tab tab = mTabControl.getTab(index);
- TabControl.Tab currentTab = mTabControl.getCurrentTab();
+ Tab tab = mTabControl.getTab(index);
+ Tab currentTab = mTabControl.getCurrentTab();
if (tab == null || tab == currentTab) {
return false;
}
@@ -1455,20 +1301,20 @@
return true;
}
- /* package */ TabControl.Tab openTabToHomePage() {
+ /* package */ Tab openTabToHomePage() {
return openTabAndShow(mSettings.getHomePage(), false, null);
}
/* package */ void closeCurrentWindow() {
- final TabControl.Tab current = mTabControl.getCurrentTab();
+ final Tab current = mTabControl.getCurrentTab();
if (mTabControl.getTabCount() == 1) {
// This is the last tab. Open a new one, with the home
// page and close the current one.
- TabControl.Tab newTab = openTabToHomePage();
+ openTabToHomePage();
closeTab(current);
return;
}
- final TabControl.Tab parent = current.getParentTab();
+ final Tab parent = current.getParentTab();
int indexToShow = -1;
if (parent != null) {
indexToShow = mTabControl.getTabIndex(parent);
@@ -1581,7 +1427,7 @@
break;
case R.id.homepage_menu_id:
- TabControl.Tab current = mTabControl.getCurrentTab();
+ Tab current = mTabControl.getCurrentTab();
if (current != null) {
dismissSubWindow(current);
current.getWebView().loadUrl(mSettings.getHomePage());
@@ -1647,7 +1493,7 @@
int menuid = item.getItemId();
for (int id = 0; id < WINDOW_SHORTCUT_ID_ARRAY.length; id++) {
if (WINDOW_SHORTCUT_ID_ARRAY[id] == menuid) {
- TabControl.Tab desiredTab = mTabControl.getTab(id);
+ Tab desiredTab = mTabControl.getTab(id);
if (desiredTab != null &&
desiredTab != mTabControl.getCurrentTab()) {
switchToTab(id);
@@ -1672,8 +1518,8 @@
mMenuState = R.id.MAIN_MENU;
}
- @Override public boolean onPrepareOptionsMenu(Menu menu)
- {
+ @Override
+ public boolean onPrepareOptionsMenu(Menu menu) {
// This happens when the user begins to hold down the menu key, so
// allow them to chord to get a shortcut.
mCanChord = true;
@@ -1714,7 +1560,7 @@
.setEnabled(canGoForward);
menu.findItem(R.id.new_tab_menu_id).setEnabled(
- mTabControl.getTabCount() < TabControl.MAX_TABS);
+ mTabControl.canCreateNewTab());
// decide whether to show the share link option
PackageManager pm = getPackageManager();
@@ -1818,7 +1664,9 @@
menu.setHeaderView(titleView);
// decide whether to show the open link in new tab option
menu.findItem(R.id.open_newtab_context_menu_id).setVisible(
- mTabControl.getTabCount() < TabControl.MAX_TABS);
+ mTabControl.canCreateNewTab());
+ menu.findItem(R.id.bookmark_context_menu_id).setVisible(
+ Bookmarks.urlHasAcceptableScheme(extra));
PackageManager pm = getPackageManager();
Intent send = new Intent(Intent.ACTION_SEND);
send.setType("text/plain");
@@ -1842,17 +1690,18 @@
Log.w(LOGTAG, "We should not get here.");
break;
}
+ hideFakeTitleBar();
}
// Attach the given tab to the content view.
// this should only be called for the current tab.
- private void attachTabToContentView(TabControl.Tab t) {
+ private void attachTabToContentView(Tab t) {
// Attach the container that contains the main WebView and any other UI
// associated with the tab.
t.attachTabToContentView(mContentView);
if (mShouldShowErrorConsole) {
- ErrorConsoleView errorConsole = mTabControl.getCurrentErrorConsole(true);
+ ErrorConsoleView errorConsole = t.getErrorConsole(true);
if (errorConsole.numberOfErrors() == 0) {
errorConsole.showConsole(ErrorConsoleView.SHOW_NONE);
} else {
@@ -1864,14 +1713,6 @@
ViewGroup.LayoutParams.WRAP_CONTENT));
}
- setLockIconType(t.getLockIconType());
- setPrevLockType(t.getPrevLockIconType());
-
- // this is to match the code in removeTabFromContentView()
- if (!mPageStarted && t.getTopWindow().getProgress() < 100) {
- mPageStarted = true;
- }
-
WebView view = t.getWebView();
view.setEmbeddedTitleBar(mTitleBar);
// Request focus on the top window.
@@ -1879,70 +1720,51 @@
}
// Attach a sub window to the main WebView of the given tab.
- private void attachSubWindow(TabControl.Tab t) {
+ void attachSubWindow(Tab t) {
t.attachSubWindow(mContentView);
getTopWindow().requestFocus();
}
// Remove the given tab from the content view.
- private void removeTabFromContentView(TabControl.Tab t) {
+ private void removeTabFromContentView(Tab t) {
// Remove the container that contains the main WebView.
t.removeTabFromContentView(mContentView);
- if (mTabControl.getCurrentErrorConsole(false) != null) {
- mErrorConsoleContainer.removeView(mTabControl.getCurrentErrorConsole(false));
+ ErrorConsoleView errorConsole = t.getErrorConsole(false);
+ if (errorConsole != null) {
+ mErrorConsoleContainer.removeView(errorConsole);
}
WebView view = t.getWebView();
if (view != null) {
view.setEmbeddedTitleBar(null);
}
-
- // unlike attachTabToContentView(), removeTabFromContentView() can be
- // called for the non-current tab. Need to add the check.
- if (t == mTabControl.getCurrentTab()) {
- t.setLockIconType(getLockIconType());
- t.setPrevLockIconType(getPrevLockType());
-
- // this is not a perfect solution. But currently there is one
- // WebViewClient for all the WebView. if user switches from an
- // in-load window to an already loaded window, mPageStarted will not
- // be set to false. If user leaves the Browser, pauseWebViewTimers()
- // won't do anything and leaves the timer running even Browser is in
- // the background.
- if (mPageStarted) {
- mPageStarted = false;
- }
- }
}
// Remove the sub window if it exists. Also called by TabControl when the
// user clicks the 'X' to dismiss a sub window.
- /* package */ void dismissSubWindow(TabControl.Tab t) {
+ /* package */ void dismissSubWindow(Tab t) {
t.removeSubWindow(mContentView);
- // Tell the TabControl to dismiss the subwindow. This will destroy
- // the WebView.
- mTabControl.dismissSubWindow(t);
+ // dismiss the subwindow. This will destroy the WebView.
+ t.dismissSubWindow();
getTopWindow().requestFocus();
}
// A wrapper function of {@link #openTabAndShow(UrlData, boolean, String)}
// that accepts url as string.
- private TabControl.Tab openTabAndShow(String url, boolean closeOnExit,
- String appId) {
+ private Tab openTabAndShow(String url, boolean closeOnExit, String appId) {
return openTabAndShow(new UrlData(url), closeOnExit, appId);
}
// This method does a ton of stuff. It will attempt to create a new tab
// if we haven't reached MAX_TABS. Otherwise it uses the current tab. If
// url isn't null, it will load the given url.
- /* package */ TabControl.Tab openTabAndShow(UrlData urlData,
- boolean closeOnExit, String appId) {
- final boolean newTab = mTabControl.getTabCount() != TabControl.MAX_TABS;
- final TabControl.Tab currentTab = mTabControl.getCurrentTab();
- if (newTab) {
- final TabControl.Tab tab = mTabControl.createNewTab(
- closeOnExit, appId, urlData.mUrl);
+ /* package */Tab openTabAndShow(UrlData urlData, boolean closeOnExit,
+ String appId) {
+ final Tab currentTab = mTabControl.getCurrentTab();
+ if (mTabControl.canCreateNewTab()) {
+ final Tab tab = mTabControl.createNewTab(closeOnExit, appId,
+ urlData.mUrl);
WebView webview = tab.getWebView();
// If the last tab was removed from the active tabs page, currentTab
// will be null.
@@ -1968,9 +1790,9 @@
return currentTab;
}
- private TabControl.Tab openTab(String url) {
+ private Tab openTab(String url) {
if (mSettings.openInBackground()) {
- TabControl.Tab t = mTabControl.createNewTab();
+ Tab t = mTabControl.createNewTab();
if (t != null) {
WebView view = t.getWebView();
view.loadUrl(url);
@@ -2027,7 +1849,8 @@
* call resetTitleAndRevertLockIcon.
*/
/* package */ void resetTitleAndRevertLockIcon() {
- revertLockIcon();
+ mTabControl.getCurrentTab().revertLockIcon();
+ updateLockIconToLatest();
resetTitleIconAndProgress();
}
@@ -2041,7 +1864,7 @@
}
resetTitleAndIcon(current);
int progress = current.getProgress();
- mWebChromeClient.onProgressChanged(current, progress);
+ current.getWebChromeClient().onProgressChanged(current, progress);
}
// Reset the title and the icon based on the given item.
@@ -2061,14 +1884,12 @@
* @param url The URL of the site being loaded.
* @param title The title of the site being loaded.
*/
- private void setUrlTitle(String url, String title) {
+ void setUrlTitle(String url, String title) {
mUrl = url;
mTitle = title;
mTitleBar.setTitleAndUrl(title, url);
- if (mFakeTitleBar != null) {
- mFakeTitleBar.setTitleAndUrl(title, url);
- }
+ mFakeTitleBar.setTitleAndUrl(title, url);
}
/**
@@ -2109,43 +1930,16 @@
}
// Set the favicon in the title bar.
- private void setFavicon(Bitmap icon) {
+ void setFavicon(Bitmap icon) {
mTitleBar.setFavicon(icon);
- if (mFakeTitleBar != null) {
- mFakeTitleBar.setFavicon(icon);
- }
- }
-
- /**
- * Saves the current lock-icon state before resetting
- * the lock icon. If we have an error, we may need to
- * roll back to the previous state.
- */
- private void saveLockIcon() {
- mPrevLockType = mLockIconType;
- }
-
- /**
- * Reverts the lock-icon state to the last saved state,
- * for example, if we had an error, and need to cancel
- * the load.
- */
- private void revertLockIcon() {
- mLockIconType = mPrevLockType;
-
- if (LOGV_ENABLED) {
- Log.v(LOGTAG, "BrowserActivity.revertLockIcon:" +
- " revert lock icon to " + mLockIconType);
- }
-
- updateLockIconToLatest();
+ mFakeTitleBar.setFavicon(icon);
}
/**
* Close the tab, remove its associated title bar, and adjust mTabControl's
* current tab to a valid value.
*/
- /* package */ void closeTab(TabControl.Tab t) {
+ /* package */ void closeTab(Tab t) {
int currentIndex = mTabControl.getCurrentIndex();
int removeIndex = mTabControl.getTabIndex(t);
mTabControl.removeTab(t);
@@ -2157,7 +1951,7 @@
}
private void goBackOnePageOrQuit() {
- TabControl.Tab current = mTabControl.getCurrentTab();
+ Tab current = mTabControl.getCurrentTab();
if (current == null) {
/*
* Instead of finishing the activity, simply push this to the back
@@ -2175,17 +1969,17 @@
} else {
// Check to see if we are closing a window that was created by
// another window. If so, we switch back to that window.
- TabControl.Tab parent = current.getParentTab();
+ Tab parent = current.getParentTab();
if (parent != null) {
switchToTab(mTabControl.getTabIndex(parent));
// Now we close the other tab
closeTab(current);
} else {
if (current.closeOnExit()) {
- // force mPageStarted to be false as we are going to either
- // finish the activity or remove the tab. This will ensure
- // pauseWebView() taking action.
- mPageStarted = false;
+ // force the tab's inLoad() to be false as we are going to
+ // either finish the activity or remove the tab. This will
+ // ensure pauseWebViewTimers() taking action.
+ mTabControl.getCurrentTab().clearInLoad();
if (mTabControl.getTabCount() == 1) {
finish();
return;
@@ -2218,6 +2012,10 @@
}
}
+ boolean isMenuDown() {
+ return mMenuIsDown;
+ }
+
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// The default key mode is DEFAULT_KEYS_SEARCH_LOCAL. As the MENU is
@@ -2263,7 +2061,8 @@
if (event.isTracking() && !event.isCanceled()) {
if (mCustomView != null) {
// if a custom view is showing, hide it
- mWebChromeClient.onHideCustomView();
+ mTabControl.getCurrentWebView().getWebChromeClient()
+ .onHideCustomView();
} else if (mActiveTabsPage != null) {
// if tab page is showing, hide it
removeActiveTabPage(true);
@@ -2291,7 +2090,12 @@
resetTitleAndRevertLockIcon();
WebView w = getTopWindow();
w.stopLoading();
- mWebViewClient.onPageFinished(w, w.getUrl());
+ // FIXME: before refactor, it is using mWebViewClient. So I keep the
+ // same logic here. But for subwindow case, should we call into the main
+ // WebView's onPageFinished as we never call its onPageStarted and if
+ // the page finishes itself, we don't call onPageFinished.
+ mTabControl.getCurrentWebView().getWebViewClient().onPageFinished(w,
+ w.getUrl());
cancelStopToast();
mStopToast = Toast
@@ -2299,6 +2103,10 @@
mStopToast.show();
}
+ boolean didUserStopLoading() {
+ return mDidStopLoad;
+ }
+
private void cancelStopToast() {
if (mStopToast != null) {
mStopToast.cancel();
@@ -2306,9 +2114,16 @@
}
}
- // called by a non-UI thread to post the message
- public void postMessage(int what, int arg1, int arg2, Object obj) {
- mHandler.sendMessage(mHandler.obtainMessage(what, arg1, arg2, obj));
+ // called by a UI or non-UI thread to post the message
+ public void postMessage(int what, int arg1, int arg2, Object obj,
+ long delayMillis) {
+ mHandler.sendMessageDelayed(mHandler.obtainMessage(what, arg1, arg2,
+ obj), delayMillis);
+ }
+
+ // called by a UI or non-UI thread to remove the message
+ void removeMessages(int what, Object object) {
+ mHandler.removeMessages(what, object);
}
// public message ids
@@ -2320,7 +2135,7 @@
private static final int CANCEL_CREDS_REQUEST = 103;
private static final int RELEASE_WAKELOCK = 107;
- private static final int UPDATE_BOOKMARK_THUMBNAIL = 108;
+ static final int UPDATE_BOOKMARK_THUMBNAIL = 108;
// Private handler for handling javascript and saving passwords
private Handler mHandler = new Handler() {
@@ -2345,9 +2160,8 @@
loadURL(getTopWindow(), url);
break;
case R.id.open_newtab_context_menu_id:
- final TabControl.Tab parent = mTabControl
- .getCurrentTab();
- final TabControl.Tab newTab = openTab(url);
+ final Tab parent = mTabControl.getCurrentTab();
+ final Tab newTab = openTab(url);
if (newTab != parent) {
parent.addChildTab(newTab);
}
@@ -2388,6 +2202,10 @@
case RELEASE_WAKELOCK:
if (mWakeLock.isHeld()) {
mWakeLock.release();
+ // if we reach here, Browser should be still in the
+ // background loading after WAKELOCK_TIMEOUT (5-min).
+ // To avoid burning the battery, stop loading.
+ mTabControl.stopAllLoading();
}
break;
@@ -2492,7 +2310,7 @@
}
// -------------------------------------------------------------------------
- // WebViewClient implementation.
+ // Helper function for WebViewClient.
//-------------------------------------------------------------------------
// Use in overrideUrlLoading
@@ -2501,1020 +2319,307 @@
/* package */ final static String SCHEME_WTAI_SD = "wtai://wp/sd;";
/* package */ final static String SCHEME_WTAI_AP = "wtai://wp/ap;";
- /* package */ WebViewClient getWebViewClient() {
- return mWebViewClient;
- }
+ void onPageStarted(WebView view, String url, Bitmap favicon) {
+ // when BrowserActivity just starts, onPageStarted may be called before
+ // onResume as it is triggered from onCreate. Call resumeWebViewTimers
+ // to start the timer. As we won't switch tabs while an activity is in
+ // pause state, we can ensure calling resume and pause in pair.
+ if (mActivityInPause) resumeWebViewTimers();
- private void updateIcon(WebView view, Bitmap icon) {
- if (icon != null) {
- BrowserBookmarksAdapter.updateBookmarkFavicon(mResolver,
- view.getOriginalUrl(), view.getUrl(), icon);
- }
- setFavicon(icon);
- }
+ resetLockIcon(url);
+ setUrlTitle(url, null);
+ setFavicon(favicon);
+ mInLoad = true;
+ mDidStopLoad = false;
+ showFakeTitleBar();
+ updateInLoadMenuItems();
+ if (!mIsNetworkUp) createAndShowNetworkDialog();
- private void updateIcon(String url, Bitmap icon) {
- if (icon != null) {
- BrowserBookmarksAdapter.updateBookmarkFavicon(mResolver,
- null, url, icon);
- }
- setFavicon(icon);
- }
-
- private final WebViewClient mWebViewClient = new WebViewClient() {
- @Override
- public void onPageStarted(WebView view, String url, Bitmap favicon) {
- resetLockIcon(url);
- setUrlTitle(url, null);
-
- // We've started to load a new page. If there was a pending message
- // to save a screenshot then we will now take the new page and
- // save an incorrect screenshot. Therefore, remove any pending
- // thumbnail messages from the queue.
- mHandler.removeMessages(UPDATE_BOOKMARK_THUMBNAIL);
-
- // If we start a touch icon load and then load a new page, we don't
- // want to cancel the current touch icon loader. But, we do want to
- // create a new one when the touch icon url is known.
- if (mTouchIconLoader != null) {
- mTouchIconLoader.mActivity = null;
- mTouchIconLoader = null;
- }
-
- ErrorConsoleView errorConsole = mTabControl.getCurrentErrorConsole(false);
- if (errorConsole != null) {
- errorConsole.clearErrorMessages();
- if (mShouldShowErrorConsole) {
- errorConsole.showConsole(ErrorConsoleView.SHOW_NONE);
- }
- }
-
- // Call updateIcon instead of setFavicon so the bookmark
- // database can be updated.
- updateIcon(url, favicon);
-
- if (mSettings.isTracing()) {
- String host;
- try {
- WebAddress uri = new WebAddress(url);
- host = uri.mHost;
- } catch (android.net.ParseException ex) {
- host = "browser";
- }
- host = host.replace('.', '_');
- host += ".trace";
- mInTrace = true;
- Debug.startMethodTracing(host, 20 * 1024 * 1024);
- }
-
- // Performance probe
- if (false) {
- mStart = SystemClock.uptimeMillis();
- mProcessStart = Process.getElapsedCpuTime();
- long[] sysCpu = new long[7];
- if (Process.readProcFile("/proc/stat", SYSTEM_CPU_FORMAT, null,
- sysCpu, null)) {
- mUserStart = sysCpu[0] + sysCpu[1];
- mSystemStart = sysCpu[2];
- mIdleStart = sysCpu[3];
- mIrqStart = sysCpu[4] + sysCpu[5] + sysCpu[6];
- }
- mUiStart = SystemClock.currentThreadTimeMillis();
- }
-
- if (!mPageStarted) {
- mPageStarted = true;
- // if onResume() has been called, resumeWebViewTimers() does
- // nothing.
- resumeWebViewTimers();
- }
-
- // reset sync timer to avoid sync starts during loading a page
- CookieSyncManager.getInstance().resetSync();
-
- mInLoad = true;
- mDidStopLoad = false;
- showFakeTitleBar();
- updateInLoadMenuItems();
- if (!mIsNetworkUp) {
- createAndShowNetworkDialog();
- if (view != null) {
- view.setNetworkAvailable(false);
- }
- }
- }
-
- @Override
- public void onPageFinished(WebView view, String url) {
- // Reset the title and icon in case we stopped a provisional
- // load.
- resetTitleAndIcon(view);
-
- if (!mDidStopLoad) {
- // Only update the bookmark screenshot if the user did not
- // cancel the load early.
- Message updateScreenshot = Message.obtain(mHandler, UPDATE_BOOKMARK_THUMBNAIL, view);
- mHandler.sendMessageDelayed(updateScreenshot, 500);
- }
-
- // Update the lock icon image only once we are done loading
- updateLockIconToLatest();
-
- // Performance probe
- if (false) {
- long[] sysCpu = new long[7];
- if (Process.readProcFile("/proc/stat", SYSTEM_CPU_FORMAT, null,
- sysCpu, null)) {
- String uiInfo = "UI thread used "
- + (SystemClock.currentThreadTimeMillis() - mUiStart)
- + " ms";
- if (LOGD_ENABLED) {
- Log.d(LOGTAG, uiInfo);
- }
- //The string that gets written to the log
- String performanceString = "It took total "
- + (SystemClock.uptimeMillis() - mStart)
- + " ms clock time to load the page."
- + "\nbrowser process used "
- + (Process.getElapsedCpuTime() - mProcessStart)
- + " ms, user processes used "
- + (sysCpu[0] + sysCpu[1] - mUserStart) * 10
- + " ms, kernel used "
- + (sysCpu[2] - mSystemStart) * 10
- + " ms, idle took " + (sysCpu[3] - mIdleStart) * 10
- + " ms and irq took "
- + (sysCpu[4] + sysCpu[5] + sysCpu[6] - mIrqStart)
- * 10 + " ms, " + uiInfo;
- if (LOGD_ENABLED) {
- Log.d(LOGTAG, performanceString + "\nWebpage: " + url);
- }
- if (url != null) {
- // strip the url to maintain consistency
- String newUrl = new String(url);
- if (newUrl.startsWith("http://www.")) {
- newUrl = newUrl.substring(11);
- } else if (newUrl.startsWith("http://")) {
- newUrl = newUrl.substring(7);
- } else if (newUrl.startsWith("https://www.")) {
- newUrl = newUrl.substring(12);
- } else if (newUrl.startsWith("https://")) {
- newUrl = newUrl.substring(8);
- }
- if (LOGD_ENABLED) {
- Log.d(LOGTAG, newUrl + " loaded");
- }
- /*
- if (sWhiteList.contains(newUrl)) {
- // The string that gets pushed to the statistcs
- // service
- performanceString = performanceString
- + "\nWebpage: "
- + newUrl
- + "\nCarrier: "
- + android.os.SystemProperties
- .get("gsm.sim.operator.alpha");
- if (mWebView != null
- && mWebView.getContext() != null
- && mWebView.getContext().getSystemService(
- Context.CONNECTIVITY_SERVICE) != null) {
- ConnectivityManager cManager =
- (ConnectivityManager) mWebView
- .getContext().getSystemService(
- Context.CONNECTIVITY_SERVICE);
- NetworkInfo nInfo = cManager
- .getActiveNetworkInfo();
- if (nInfo != null) {
- performanceString = performanceString
- + "\nNetwork Type: "
- + nInfo.getType().toString();
- }
- }
- Checkin.logEvent(mResolver,
- Checkin.Events.Tag.WEBPAGE_LOAD,
- performanceString);
- Log.w(LOGTAG, "pushed to the statistics service");
- }
- */
- }
- }
- }
-
- if (mInTrace) {
- mInTrace = false;
- Debug.stopMethodTracing();
- }
-
- if (mPageStarted) {
- mPageStarted = false;
- // pauseWebViewTimers() will do nothing and return false if
- // onPause() is not called yet.
- if (pauseWebViewTimers()) {
- if (mWakeLock.isHeld()) {
- mHandler.removeMessages(RELEASE_WAKELOCK);
- mWakeLock.release();
- }
- }
- }
- }
-
- // return true if want to hijack the url to let another app to handle it
- @Override
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
- if (url.startsWith(SCHEME_WTAI)) {
- // wtai://wp/mc;number
- // number=string(phone-number)
- if (url.startsWith(SCHEME_WTAI_MC)) {
- Intent intent = new Intent(Intent.ACTION_VIEW,
- Uri.parse(WebView.SCHEME_TEL +
- url.substring(SCHEME_WTAI_MC.length())));
- startActivity(intent);
- return true;
- }
- // wtai://wp/sd;dtmf
- // dtmf=string(dialstring)
- if (url.startsWith(SCHEME_WTAI_SD)) {
- // TODO
- // only send when there is active voice connection
- return false;
- }
- // wtai://wp/ap;number;name
- // number=string(phone-number)
- // name=string
- if (url.startsWith(SCHEME_WTAI_AP)) {
- // TODO
- return false;
- }
- }
-
- // The "about:" schemes are internal to the browser; don't
- // want these to be dispatched to other apps.
- if (url.startsWith("about:")) {
- return false;
- }
-
- Intent intent;
-
- // perform generic parsing of the URI to turn it into an Intent.
+ if (mSettings.isTracing()) {
+ String host;
try {
- intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
- } catch (URISyntaxException ex) {
- Log.w("Browser", "Bad URI " + url + ": " + ex.getMessage());
- return false;
+ WebAddress uri = new WebAddress(url);
+ host = uri.mHost;
+ } catch (android.net.ParseException ex) {
+ host = "browser";
}
+ host = host.replace('.', '_');
+ host += ".trace";
+ mInTrace = true;
+ Debug.startMethodTracing(host, 20 * 1024 * 1024);
+ }
- // check whether the intent can be resolved. If not, we will see
- // whether we can download it from the Market.
- if (getPackageManager().resolveActivity(intent, 0) == null) {
- String packagename = intent.getPackage();
- if (packagename != null) {
- intent = new Intent(Intent.ACTION_VIEW, Uri
- .parse("market://search?q=pname:" + packagename));
- intent.addCategory(Intent.CATEGORY_BROWSABLE);
- startActivity(intent);
- return true;
- } else {
- return false;
+ // Performance probe
+ if (false) {
+ mStart = SystemClock.uptimeMillis();
+ mProcessStart = Process.getElapsedCpuTime();
+ long[] sysCpu = new long[7];
+ if (Process.readProcFile("/proc/stat", SYSTEM_CPU_FORMAT, null,
+ sysCpu, null)) {
+ mUserStart = sysCpu[0] + sysCpu[1];
+ mSystemStart = sysCpu[2];
+ mIdleStart = sysCpu[3];
+ mIrqStart = sysCpu[4] + sysCpu[5] + sysCpu[6];
+ }
+ mUiStart = SystemClock.currentThreadTimeMillis();
+ }
+ }
+
+ void onPageFinished(WebView view, String url) {
+ // Reset the title and icon in case we stopped a provisional load.
+ resetTitleAndIcon(view);
+ // Update the lock icon image only once we are done loading
+ updateLockIconToLatest();
+ // pause the WebView timer and release the wake lock if it is finished
+ // while BrowserActivity is in pause state.
+ if (mActivityInPause && pauseWebViewTimers()) {
+ if (mWakeLock.isHeld()) {
+ mHandler.removeMessages(RELEASE_WAKELOCK);
+ mWakeLock.release();
+ }
+ }
+
+ // Performance probe
+ if (false) {
+ long[] sysCpu = new long[7];
+ if (Process.readProcFile("/proc/stat", SYSTEM_CPU_FORMAT, null,
+ sysCpu, null)) {
+ String uiInfo = "UI thread used "
+ + (SystemClock.currentThreadTimeMillis() - mUiStart)
+ + " ms";
+ if (LOGD_ENABLED) {
+ Log.d(LOGTAG, uiInfo);
+ }
+ //The string that gets written to the log
+ String performanceString = "It took total "
+ + (SystemClock.uptimeMillis() - mStart)
+ + " ms clock time to load the page."
+ + "\nbrowser process used "
+ + (Process.getElapsedCpuTime() - mProcessStart)
+ + " ms, user processes used "
+ + (sysCpu[0] + sysCpu[1] - mUserStart) * 10
+ + " ms, kernel used "
+ + (sysCpu[2] - mSystemStart) * 10
+ + " ms, idle took " + (sysCpu[3] - mIdleStart) * 10
+ + " ms and irq took "
+ + (sysCpu[4] + sysCpu[5] + sysCpu[6] - mIrqStart)
+ * 10 + " ms, " + uiInfo;
+ if (LOGD_ENABLED) {
+ Log.d(LOGTAG, performanceString + "\nWebpage: " + url);
+ }
+ if (url != null) {
+ // strip the url to maintain consistency
+ String newUrl = new String(url);
+ if (newUrl.startsWith("http://www.")) {
+ newUrl = newUrl.substring(11);
+ } else if (newUrl.startsWith("http://")) {
+ newUrl = newUrl.substring(7);
+ } else if (newUrl.startsWith("https://www.")) {
+ newUrl = newUrl.substring(12);
+ } else if (newUrl.startsWith("https://")) {
+ newUrl = newUrl.substring(8);
+ }
+ if (LOGD_ENABLED) {
+ Log.d(LOGTAG, newUrl + " loaded");
+ }
}
}
+ }
- // sanitize the Intent, ensuring web pages can not bypass browser
- // security (only access to BROWSABLE activities).
- intent.addCategory(Intent.CATEGORY_BROWSABLE);
- intent.setComponent(null);
- try {
- if (startActivityIfNeeded(intent, -1)) {
- return true;
- }
- } catch (ActivityNotFoundException ex) {
- // ignore the error. If no application can handle the URL,
- // eg about:blank, assume the browser can handle it.
- }
+ if (mInTrace) {
+ mInTrace = false;
+ Debug.stopMethodTracing();
+ }
+ }
- if (mMenuIsDown) {
- openTab(url);
- closeOptionsMenu();
+ boolean shouldOverrideUrlLoading(WebView view, String url) {
+ if (url.startsWith(SCHEME_WTAI)) {
+ // wtai://wp/mc;number
+ // number=string(phone-number)
+ if (url.startsWith(SCHEME_WTAI_MC)) {
+ Intent intent = new Intent(Intent.ACTION_VIEW,
+ Uri.parse(WebView.SCHEME_TEL +
+ url.substring(SCHEME_WTAI_MC.length())));
+ startActivity(intent);
return true;
}
+ // wtai://wp/sd;dtmf
+ // dtmf=string(dialstring)
+ if (url.startsWith(SCHEME_WTAI_SD)) {
+ // TODO: only send when there is active voice connection
+ return false;
+ }
+ // wtai://wp/ap;number;name
+ // number=string(phone-number)
+ // name=string
+ if (url.startsWith(SCHEME_WTAI_AP)) {
+ // TODO
+ return false;
+ }
+ }
+ // The "about:" schemes are internal to the browser; don't want these to
+ // be dispatched to other apps.
+ if (url.startsWith("about:")) {
return false;
}
- /**
- * Updates the lock icon. This method is called when we discover another
- * resource to be loaded for this page (for example, javascript). While
- * we update the icon type, we do not update the lock icon itself until
- * we are done loading, it is slightly more secure this way.
- */
- @Override
- public void onLoadResource(WebView view, String url) {
- if (url != null && url.length() > 0) {
- // It is only if the page claims to be secure
- // that we may have to update the lock:
- if (mLockIconType == LOCK_ICON_SECURE) {
- // If NOT a 'safe' url, change the lock to mixed content!
- if (!(URLUtil.isHttpsUrl(url) || URLUtil.isDataUrl(url) || URLUtil.isAboutUrl(url))) {
- mLockIconType = LOCK_ICON_MIXED;
- if (LOGV_ENABLED) {
- Log.v(LOGTAG, "BrowserActivity.updateLockIcon:" +
- " updated lock icon to " + mLockIconType + " due to " + url);
- }
- }
- }
- }
+ Intent intent;
+ // perform generic parsing of the URI to turn it into an Intent.
+ try {
+ intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
+ } catch (URISyntaxException ex) {
+ Log.w("Browser", "Bad URI " + url + ": " + ex.getMessage());
+ return false;
}
- /**
- * Show the dialog, asking the user if they would like to continue after
- * an excessive number of HTTP redirects.
- */
- @Override
- public void onTooManyRedirects(WebView view, final Message cancelMsg,
- final Message continueMsg) {
- new AlertDialog.Builder(BrowserActivity.this)
- .setTitle(R.string.browserFrameRedirect)
- .setMessage(R.string.browserFrame307Post)
- .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- continueMsg.sendToTarget();
- }})
- .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- cancelMsg.sendToTarget();
- }})
- .setOnCancelListener(new OnCancelListener() {
- public void onCancel(DialogInterface dialog) {
- cancelMsg.sendToTarget();
- }})
- .show();
- }
-
- // Container class for the next error dialog that needs to be
- // displayed.
- class ErrorDialog {
- public final int mTitle;
- public final String mDescription;
- public final int mError;
- ErrorDialog(int title, String desc, int error) {
- mTitle = title;
- mDescription = desc;
- mError = error;
- }
- };
-
- private void processNextError() {
- if (mQueuedErrors == null) {
- return;
- }
- // The first one is currently displayed so just remove it.
- mQueuedErrors.removeFirst();
- if (mQueuedErrors.size() == 0) {
- mQueuedErrors = null;
- return;
- }
- showError(mQueuedErrors.getFirst());
- }
-
- private DialogInterface.OnDismissListener mDialogListener =
- new DialogInterface.OnDismissListener() {
- public void onDismiss(DialogInterface d) {
- processNextError();
- }
- };
- private LinkedList<ErrorDialog> mQueuedErrors;
-
- private void queueError(int err, String desc) {
- if (mQueuedErrors == null) {
- mQueuedErrors = new LinkedList<ErrorDialog>();
- }
- for (ErrorDialog d : mQueuedErrors) {
- if (d.mError == err) {
- // Already saw a similar error, ignore the new one.
- return;
- }
- }
- ErrorDialog errDialog = new ErrorDialog(
- err == WebViewClient.ERROR_FILE_NOT_FOUND ?
- R.string.browserFrameFileErrorLabel :
- R.string.browserFrameNetworkErrorLabel,
- desc, err);
- mQueuedErrors.addLast(errDialog);
-
- // Show the dialog now if the queue was empty.
- if (mQueuedErrors.size() == 1) {
- showError(errDialog);
- }
- }
-
- private void showError(ErrorDialog errDialog) {
- AlertDialog d = new AlertDialog.Builder(BrowserActivity.this)
- .setTitle(errDialog.mTitle)
- .setMessage(errDialog.mDescription)
- .setPositiveButton(R.string.ok, null)
- .create();
- d.setOnDismissListener(mDialogListener);
- d.show();
- }
-
- /**
- * Show a dialog informing the user of the network error reported by
- * WebCore.
- */
- @Override
- public void onReceivedError(WebView view, int errorCode,
- String description, String failingUrl) {
- if (errorCode != WebViewClient.ERROR_HOST_LOOKUP &&
- errorCode != WebViewClient.ERROR_CONNECT &&
- errorCode != WebViewClient.ERROR_BAD_URL &&
- errorCode != WebViewClient.ERROR_UNSUPPORTED_SCHEME &&
- errorCode != WebViewClient.ERROR_FILE) {
- queueError(errorCode, description);
- }
- Log.e(LOGTAG, "onReceivedError " + errorCode + " " + failingUrl
- + " " + description);
-
- // We need to reset the title after an error.
- resetTitleAndRevertLockIcon();
- }
-
- /**
- * Check with the user if it is ok to resend POST data as the page they
- * are trying to navigate to is the result of a POST.
- */
- @Override
- public void onFormResubmission(WebView view, final Message dontResend,
- final Message resend) {
- new AlertDialog.Builder(BrowserActivity.this)
- .setTitle(R.string.browserFrameFormResubmitLabel)
- .setMessage(R.string.browserFrameFormResubmitMessage)
- .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- resend.sendToTarget();
- }})
- .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- dontResend.sendToTarget();
- }})
- .setOnCancelListener(new OnCancelListener() {
- public void onCancel(DialogInterface dialog) {
- dontResend.sendToTarget();
- }})
- .show();
- }
-
- /**
- * Insert the url into the visited history database.
- * @param url The url to be inserted.
- * @param isReload True if this url is being reloaded.
- * FIXME: Not sure what to do when reloading the page.
- */
- @Override
- public void doUpdateVisitedHistory(WebView view, String url,
- boolean isReload) {
- if (url.regionMatches(true, 0, "about:", 0, 6)) {
- return;
- }
- // remove "client" before updating it to the history so that it wont
- // show up in the auto-complete list.
- int index = url.indexOf("client=ms-");
- if (index > 0 && url.contains(".google.")) {
- int end = url.indexOf('&', index);
- if (end > 0) {
- url = url.substring(0, index)
- .concat(url.substring(end + 1));
- } else {
- // the url.charAt(index-1) should be either '?' or '&'
- url = url.substring(0, index-1);
- }
- }
- Browser.updateVisitedHistory(mResolver, url, true);
- WebIconDatabase.getInstance().retainIconForPageUrl(url);
- }
-
- /**
- * Displays SSL error(s) dialog to the user.
- */
- @Override
- public void onReceivedSslError(
- final WebView view, final SslErrorHandler handler, final SslError error) {
-
- if (mSettings.showSecurityWarnings()) {
- final LayoutInflater factory =
- LayoutInflater.from(BrowserActivity.this);
- final View warningsView =
- factory.inflate(R.layout.ssl_warnings, null);
- final LinearLayout placeholder =
- (LinearLayout)warningsView.findViewById(R.id.placeholder);
-
- if (error.hasError(SslError.SSL_UNTRUSTED)) {
- LinearLayout ll = (LinearLayout)factory
- .inflate(R.layout.ssl_warning, null);
- ((TextView)ll.findViewById(R.id.warning))
- .setText(R.string.ssl_untrusted);
- placeholder.addView(ll);
- }
-
- if (error.hasError(SslError.SSL_IDMISMATCH)) {
- LinearLayout ll = (LinearLayout)factory
- .inflate(R.layout.ssl_warning, null);
- ((TextView)ll.findViewById(R.id.warning))
- .setText(R.string.ssl_mismatch);
- placeholder.addView(ll);
- }
-
- if (error.hasError(SslError.SSL_EXPIRED)) {
- LinearLayout ll = (LinearLayout)factory
- .inflate(R.layout.ssl_warning, null);
- ((TextView)ll.findViewById(R.id.warning))
- .setText(R.string.ssl_expired);
- placeholder.addView(ll);
- }
-
- if (error.hasError(SslError.SSL_NOTYETVALID)) {
- LinearLayout ll = (LinearLayout)factory
- .inflate(R.layout.ssl_warning, null);
- ((TextView)ll.findViewById(R.id.warning))
- .setText(R.string.ssl_not_yet_valid);
- placeholder.addView(ll);
- }
-
- new AlertDialog.Builder(BrowserActivity.this)
- .setTitle(R.string.security_warning)
- .setIcon(android.R.drawable.ic_dialog_alert)
- .setView(warningsView)
- .setPositiveButton(R.string.ssl_continue,
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int whichButton) {
- handler.proceed();
- }
- })
- .setNeutralButton(R.string.view_certificate,
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int whichButton) {
- showSSLCertificateOnError(view, handler, error);
- }
- })
- .setNegativeButton(R.string.cancel,
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int whichButton) {
- handler.cancel();
- BrowserActivity.this.resetTitleAndRevertLockIcon();
- }
- })
- .setOnCancelListener(
- new DialogInterface.OnCancelListener() {
- public void onCancel(DialogInterface dialog) {
- handler.cancel();
- BrowserActivity.this.resetTitleAndRevertLockIcon();
- }
- })
- .show();
- } else {
- handler.proceed();
- }
- }
-
- /**
- * Handles an HTTP authentication request.
- *
- * @param handler The authentication handler
- * @param host The host
- * @param realm The realm
- */
- @Override
- public void onReceivedHttpAuthRequest(WebView view,
- final HttpAuthHandler handler, final String host, final String realm) {
- String username = null;
- String password = null;
-
- boolean reuseHttpAuthUsernamePassword =
- handler.useHttpAuthUsernamePassword();
-
- if (reuseHttpAuthUsernamePassword &&
- (mTabControl.getCurrentWebView() != null)) {
- String[] credentials =
- mTabControl.getCurrentWebView()
- .getHttpAuthUsernamePassword(host, realm);
- if (credentials != null && credentials.length == 2) {
- username = credentials[0];
- password = credentials[1];
- }
- }
-
- if (username != null && password != null) {
- handler.proceed(username, password);
- } else {
- showHttpAuthentication(handler, host, realm, null, null, null, 0);
- }
- }
-
- @Override
- public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) {
- if (mMenuIsDown) {
- // only check shortcut key when MENU is held
- return getWindow().isShortcutKey(event.getKeyCode(), event);
+ // check whether the intent can be resolved. If not, we will see
+ // whether we can download it from the Market.
+ if (getPackageManager().resolveActivity(intent, 0) == null) {
+ String packagename = intent.getPackage();
+ if (packagename != null) {
+ intent = new Intent(Intent.ACTION_VIEW, Uri
+ .parse("market://search?q=pname:" + packagename));
+ intent.addCategory(Intent.CATEGORY_BROWSABLE);
+ startActivity(intent);
+ return true;
} else {
return false;
}
}
- @Override
- public void onUnhandledKeyEvent(WebView view, KeyEvent event) {
- if (view != mTabControl.getCurrentTopWebView()) {
- return;
- }
- if (event.isDown()) {
- BrowserActivity.this.onKeyDown(event.getKeyCode(), event);
- } else {
- BrowserActivity.this.onKeyUp(event.getKeyCode(), event);
- }
- }
- };
-
- //--------------------------------------------------------------------------
- // WebChromeClient implementation
- //--------------------------------------------------------------------------
-
- /* package */ WebChromeClient getWebChromeClient() {
- return mWebChromeClient;
- }
-
- private final WebChromeClient mWebChromeClient = new WebChromeClient() {
- // Helper method to create a new tab or sub window.
- private void createWindow(final boolean dialog, final Message msg) {
- if (dialog) {
- mTabControl.createSubWindow();
- final TabControl.Tab t = mTabControl.getCurrentTab();
- attachSubWindow(t);
- WebView.WebViewTransport transport =
- (WebView.WebViewTransport) msg.obj;
- transport.setWebView(t.getSubWebView());
- msg.sendToTarget();
- } else {
- final TabControl.Tab parent = mTabControl.getCurrentTab();
- final TabControl.Tab newTab
- = openTabAndShow(EMPTY_URL_DATA, false, null);
- if (newTab != parent) {
- parent.addChildTab(newTab);
- }
- WebView.WebViewTransport transport =
- (WebView.WebViewTransport) msg.obj;
- transport.setWebView(mTabControl.getCurrentWebView());
- msg.sendToTarget();
- }
- }
-
- @Override
- public boolean onCreateWindow(WebView view, final boolean dialog,
- final boolean userGesture, final Message resultMsg) {
- // Short-circuit if we can't create any more tabs or sub windows.
- if (dialog && mTabControl.getCurrentSubWindow() != null) {
- new AlertDialog.Builder(BrowserActivity.this)
- .setTitle(R.string.too_many_subwindows_dialog_title)
- .setIcon(android.R.drawable.ic_dialog_alert)
- .setMessage(R.string.too_many_subwindows_dialog_message)
- .setPositiveButton(R.string.ok, null)
- .show();
- return false;
- } else if (mTabControl.getTabCount() >= TabControl.MAX_TABS) {
- new AlertDialog.Builder(BrowserActivity.this)
- .setTitle(R.string.too_many_windows_dialog_title)
- .setIcon(android.R.drawable.ic_dialog_alert)
- .setMessage(R.string.too_many_windows_dialog_message)
- .setPositiveButton(R.string.ok, null)
- .show();
- return false;
- }
-
- // Short-circuit if this was a user gesture.
- if (userGesture) {
- createWindow(dialog, resultMsg);
+ // sanitize the Intent, ensuring web pages can not bypass browser
+ // security (only access to BROWSABLE activities).
+ intent.addCategory(Intent.CATEGORY_BROWSABLE);
+ intent.setComponent(null);
+ try {
+ if (startActivityIfNeeded(intent, -1)) {
return true;
}
+ } catch (ActivityNotFoundException ex) {
+ // ignore the error. If no application can handle the URL,
+ // eg about:blank, assume the browser can handle it.
+ }
- // Allow the popup and create the appropriate window.
- final AlertDialog.OnClickListener allowListener =
- new AlertDialog.OnClickListener() {
- public void onClick(DialogInterface d,
- int which) {
- createWindow(dialog, resultMsg);
- }
- };
-
- // Block the popup by returning a null WebView.
- final AlertDialog.OnClickListener blockListener =
- new AlertDialog.OnClickListener() {
- public void onClick(DialogInterface d, int which) {
- resultMsg.sendToTarget();
- }
- };
-
- // Build a confirmation dialog to display to the user.
- final AlertDialog d =
- new AlertDialog.Builder(BrowserActivity.this)
- .setTitle(R.string.attention)
- .setIcon(android.R.drawable.ic_dialog_alert)
- .setMessage(R.string.popup_window_attempt)
- .setPositiveButton(R.string.allow, allowListener)
- .setNegativeButton(R.string.block, blockListener)
- .setCancelable(false)
- .create();
-
- // Show the confirmation dialog.
- d.show();
+ if (mMenuIsDown) {
+ openTab(url);
+ closeOptionsMenu();
return true;
}
+ return false;
+ }
- @Override
- public void onCloseWindow(WebView window) {
- final TabControl.Tab current = mTabControl.getCurrentTab();
- final TabControl.Tab parent = current.getParentTab();
- if (parent != null) {
- // JavaScript can only close popup window.
- switchToTab(mTabControl.getTabIndex(parent));
- // Now we need to close the window
- closeTab(current);
- }
- }
+ // -------------------------------------------------------------------------
+ // Helper function for WebChromeClient
+ // -------------------------------------------------------------------------
- @Override
- public void onProgressChanged(WebView view, int newProgress) {
- mTitleBar.setProgress(newProgress);
- if (mFakeTitleBar != null) {
- mFakeTitleBar.setProgress(newProgress);
- }
+ void onProgressChanged(WebView view, int newProgress) {
+ mTitleBar.setProgress(newProgress);
+ mFakeTitleBar.setProgress(newProgress);
- if (newProgress == 100) {
- // onProgressChanged() may continue to be called after the main
- // frame has finished loading, as any remaining sub frames
- // continue to load. We'll only get called once though with
- // newProgress as 100 when everything is loaded.
- // (onPageFinished is called once when the main frame completes
- // loading regardless of the state of any sub frames so calls
- // to onProgressChanges may continue after onPageFinished has
- // executed)
-
- // sync cookies and cache promptly here.
- CookieSyncManager.getInstance().sync();
- if (mInLoad) {
- mInLoad = false;
- updateInLoadMenuItems();
- // If the options menu is open, leave the title bar
- if (!mOptionsMenuOpen || !mIconView) {
- hideFakeTitleBar();
- }
- }
- } else if (!mInLoad) {
- // onPageFinished may have already been called but a subframe
- // is still loading and updating the progress. Reset mInLoad
- // and update the menu items.
- mInLoad = true;
+ if (newProgress == 100) {
+ // onProgressChanged() may continue to be called after the main
+ // frame has finished loading, as any remaining sub frames continue
+ // to load. We'll only get called once though with newProgress as
+ // 100 when everything is loaded. (onPageFinished is called once
+ // when the main frame completes loading regardless of the state of
+ // any sub frames so calls to onProgressChanges may continue after
+ // onPageFinished has executed)
+ if (mInLoad) {
+ mInLoad = false;
updateInLoadMenuItems();
- if (!mOptionsMenuOpen || mIconView) {
- // This page has begun to load, so show the title bar
- showFakeTitleBar();
+ // If the options menu is open, leave the title bar
+ if (!mOptionsMenuOpen || !mIconView) {
+ hideFakeTitleBar();
}
}
- }
-
- @Override
- public void onReceivedTitle(WebView view, String title) {
- String url = view.getUrl();
-
- // here, if url is null, we want to reset the title
- setUrlTitle(url, title);
-
- if (url == null ||
- url.length() >= SQLiteDatabase.SQLITE_MAX_LIKE_PATTERN_LENGTH) {
- return;
- }
- // See if we can find the current url in our history database and
- // add the new title to it.
- if (url.startsWith("http://www.")) {
- url = url.substring(11);
- } else if (url.startsWith("http://")) {
- url = url.substring(4);
- }
- try {
- url = "%" + url;
- String [] selArgs = new String[] { url };
-
- String where = Browser.BookmarkColumns.URL + " LIKE ? AND "
- + Browser.BookmarkColumns.BOOKMARK + " = 0";
- Cursor c = mResolver.query(Browser.BOOKMARKS_URI,
- Browser.HISTORY_PROJECTION, where, selArgs, null);
- if (c.moveToFirst()) {
- // Current implementation of database only has one entry per
- // url.
- ContentValues map = new ContentValues();
- map.put(Browser.BookmarkColumns.TITLE, title);
- mResolver.update(Browser.BOOKMARKS_URI, map,
- "_id = " + c.getInt(0), null);
- }
- c.close();
- } catch (IllegalStateException e) {
- Log.e(LOGTAG, "BrowserActivity onReceived title", e);
- } catch (SQLiteException ex) {
- Log.e(LOGTAG, "onReceivedTitle() caught SQLiteException: ", ex);
+ } else if (!mInLoad) {
+ // onPageFinished may have already been called but a subframe is
+ // still loading and updating the progress. Reset mInLoad and update
+ // the menu items.
+ mInLoad = true;
+ updateInLoadMenuItems();
+ if (!mOptionsMenuOpen || mIconView) {
+ // This page has begun to load, so show the title bar
+ showFakeTitleBar();
}
}
+ }
- @Override
- public void onReceivedIcon(WebView view, Bitmap icon) {
- updateIcon(view, icon);
+ void onShowCustomView(View view, WebChromeClient.CustomViewCallback callback) {
+ if (mCustomView != null)
+ return;
+
+ // Add the custom view to its container.
+ mCustomViewContainer.addView(view, COVER_SCREEN_GRAVITY_CENTER);
+ mCustomView = view;
+ mCustomViewCallback = callback;
+ // Save the menu state and set it to empty while the custom
+ // view is showing.
+ mOldMenuState = mMenuState;
+ mMenuState = EMPTY_MENU;
+ // Hide the content view.
+ mContentView.setVisibility(View.GONE);
+ // Finally show the custom view container.
+ setStatusBarVisibility(false);
+ mCustomViewContainer.setVisibility(View.VISIBLE);
+ mCustomViewContainer.bringToFront();
+ }
+
+ void onHideCustomView() {
+ if (mCustomView == null)
+ return;
+
+ // Hide the custom view.
+ mCustomView.setVisibility(View.GONE);
+ // Remove the custom view from its container.
+ mCustomViewContainer.removeView(mCustomView);
+ mCustomView = null;
+ // Reset the old menu state.
+ mMenuState = mOldMenuState;
+ mOldMenuState = EMPTY_MENU;
+ mCustomViewContainer.setVisibility(View.GONE);
+ mCustomViewCallback.onCustomViewHidden();
+ // Show the content view.
+ setStatusBarVisibility(true);
+ mContentView.setVisibility(View.VISIBLE);
+ }
+
+ Bitmap getDefaultVideoPoster() {
+ if (mDefaultVideoPoster == null) {
+ mDefaultVideoPoster = BitmapFactory.decodeResource(
+ getResources(), R.drawable.default_video_poster);
}
+ return mDefaultVideoPoster;
+ }
- @Override
- public void onReceivedTouchIconUrl(WebView view, String url,
- boolean precomposed) {
- final ContentResolver cr = getContentResolver();
- final Cursor c =
- BrowserBookmarksAdapter.queryBookmarksForUrl(cr,
- view.getOriginalUrl(), view.getUrl(), true);
- if (c != null) {
- if (c.getCount() > 0) {
- // Let precomposed icons take precedence over non-composed
- // icons.
- if (precomposed && mTouchIconLoader != null) {
- mTouchIconLoader.cancel(false);
- mTouchIconLoader = null;
- }
- // Have only one async task at a time.
- if (mTouchIconLoader == null) {
- mTouchIconLoader = new DownloadTouchIcon(
- BrowserActivity.this, cr, c, view);
- mTouchIconLoader.execute(url);
- }
- } else {
- c.close();
- }
- }
+ View getVideoLoadingProgressView() {
+ if (mVideoProgressView == null) {
+ LayoutInflater inflater = LayoutInflater.from(BrowserActivity.this);
+ mVideoProgressView = inflater.inflate(
+ R.layout.video_loading_progress, null);
}
+ return mVideoProgressView;
+ }
- @Override
- public void onShowCustomView(View view, WebChromeClient.CustomViewCallback callback) {
- if (mCustomView != null)
- return;
+ /*
+ * The Object used to inform the WebView of the file to upload.
+ */
+ private ValueCallback<Uri> mUploadMessage;
- // Add the custom view to its container.
- mCustomViewContainer.addView(view, COVER_SCREEN_GRAVITY_CENTER);
- mCustomView = view;
- mCustomViewCallback = callback;
- // Save the menu state and set it to empty while the custom
- // view is showing.
- mOldMenuState = mMenuState;
- mMenuState = EMPTY_MENU;
- // Hide the content view.
- mContentView.setVisibility(View.GONE);
- // Finally show the custom view container.
- mCustomViewContainer.setVisibility(View.VISIBLE);
- mCustomViewContainer.bringToFront();
- }
+ void openFileChooser(ValueCallback<Uri> uploadMsg) {
+ if (mUploadMessage != null) return;
+ mUploadMessage = uploadMsg;
+ Intent i = new Intent(Intent.ACTION_GET_CONTENT);
+ i.addCategory(Intent.CATEGORY_OPENABLE);
+ i.setType("*/*");
+ BrowserActivity.this.startActivityForResult(Intent.createChooser(i,
+ getString(R.string.choose_upload)), FILE_SELECTED);
+ }
- @Override
- public void onHideCustomView() {
- if (mCustomView == null)
- return;
-
- // Hide the custom view.
- mCustomView.setVisibility(View.GONE);
- // Remove the custom view from its container.
- mCustomViewContainer.removeView(mCustomView);
- mCustomView = null;
- // Reset the old menu state.
- mMenuState = mOldMenuState;
- mOldMenuState = EMPTY_MENU;
- mCustomViewContainer.setVisibility(View.GONE);
- mCustomViewCallback.onCustomViewHidden();
- // Show the content view.
- mContentView.setVisibility(View.VISIBLE);
- }
-
- /**
- * The origin has exceeded its database quota.
- * @param url the URL that exceeded the quota
- * @param databaseIdentifier the identifier of the database on
- * which the transaction that caused the quota overflow was run
- * @param currentQuota the current quota for the origin.
- * @param estimatedSize the estimated size of the database.
- * @param totalUsedQuota is the sum of all origins' quota.
- * @param quotaUpdater The callback to run when a decision to allow or
- * deny quota has been made. Don't forget to call this!
- */
- @Override
- public void onExceededDatabaseQuota(String url,
- String databaseIdentifier, long currentQuota, long estimatedSize,
- long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) {
- mSettings.getWebStorageSizeManager().onExceededDatabaseQuota(
- url, databaseIdentifier, currentQuota, estimatedSize,
- totalUsedQuota, quotaUpdater);
- }
-
- /**
- * The Application Cache has exceeded its max size.
- * @param spaceNeeded is the amount of disk space that would be needed
- * in order for the last appcache operation to succeed.
- * @param totalUsedQuota is the sum of all origins' quota.
- * @param quotaUpdater A callback to inform the WebCore thread that a new
- * app cache size is available. This callback must always be executed at
- * some point to ensure that the sleeping WebCore thread is woken up.
- */
- @Override
- public void onReachedMaxAppCacheSize(long spaceNeeded,
- long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) {
- mSettings.getWebStorageSizeManager().onReachedMaxAppCacheSize(
- spaceNeeded, totalUsedQuota, quotaUpdater);
- }
-
- /**
- * Instructs the browser to show a prompt to ask the user to set the
- * Geolocation permission state for the specified origin.
- * @param origin The origin for which Geolocation permissions are
- * requested.
- * @param callback The callback to call once the user has set the
- * Geolocation permission state.
- */
- @Override
- public void onGeolocationPermissionsShowPrompt(String origin,
- GeolocationPermissions.Callback callback) {
- mTabControl.getCurrentTab().getGeolocationPermissionsPrompt().show(
- origin, callback);
- }
-
- /**
- * Instructs the browser to hide the Geolocation permissions prompt.
- */
- @Override
- public void onGeolocationPermissionsHidePrompt() {
- mTabControl.getCurrentTab().getGeolocationPermissionsPrompt().hide();
- }
-
- /* Adds a JavaScript error message to the system log.
- * @param message The error message to report.
- * @param lineNumber The line number of the error.
- * @param sourceID The name of the source file that caused the error.
- */
- @Override
- public void addMessageToConsole(String message, int lineNumber, String sourceID) {
- ErrorConsoleView errorConsole = mTabControl.getCurrentErrorConsole(true);
- errorConsole.addErrorMessage(message, sourceID, lineNumber);
- if (mShouldShowErrorConsole &&
- errorConsole.getShowState() != ErrorConsoleView.SHOW_MAXIMIZED) {
- errorConsole.showConsole(ErrorConsoleView.SHOW_MINIMIZED);
- }
- Log.w(LOGTAG, "Console: " + message + " " + sourceID + ":" + lineNumber);
- }
-
- /**
- * Ask the browser for an icon to represent a <video> element.
- * This icon will be used if the Web page did not specify a poster attribute.
- *
- * @return Bitmap The icon or null if no such icon is available.
- * @hide pending API Council approval
- */
- @Override
- public Bitmap getDefaultVideoPoster() {
- if (mDefaultVideoPoster == null) {
- mDefaultVideoPoster = BitmapFactory.decodeResource(
- getResources(), R.drawable.default_video_poster);
- }
- return mDefaultVideoPoster;
- }
-
- /**
- * Ask the host application for a custom progress view to show while
- * a <video> is loading.
- *
- * @return View The progress view.
- * @hide pending API Council approval
- */
- @Override
- public View getVideoLoadingProgressView() {
- if (mVideoProgressView == null) {
- LayoutInflater inflater = LayoutInflater.from(BrowserActivity.this);
- mVideoProgressView = inflater.inflate(R.layout.video_loading_progress, null);
- }
- return mVideoProgressView;
- }
-
- /**
- * Deliver a list of already-visited URLs
- * @hide pending API Council approval
- */
- @Override
- public void getVisitedHistory(final ValueCallback<String[]> callback) {
- AsyncTask<Void, Void, String[]> task = new AsyncTask<Void, Void, String[]>() {
- public String[] doInBackground(Void... unused) {
- return Browser.getVisitedHistory(getContentResolver());
- }
-
- public void onPostExecute(String[] result) {
- callback.onReceiveValue(result);
-
- };
- };
- task.execute();
- };
- };
+ // -------------------------------------------------------------------------
+ // Implement functions for DownloadListener
+ // -------------------------------------------------------------------------
/**
* Notify the host application a download should be done, or that
@@ -3668,47 +2773,23 @@
}
+ // -------------------------------------------------------------------------
+
/**
* Resets the lock icon. This method is called when we start a new load and
* know the url to be loaded.
*/
private void resetLockIcon(String url) {
// Save the lock-icon state (we revert to it if the load gets cancelled)
- saveLockIcon();
-
- mLockIconType = LOCK_ICON_UNSECURE;
- if (URLUtil.isHttpsUrl(url)) {
- mLockIconType = LOCK_ICON_SECURE;
- if (LOGV_ENABLED) {
- Log.v(LOGTAG, "BrowserActivity.resetLockIcon:" +
- " reset lock icon to " + mLockIconType);
- }
- }
-
+ mTabControl.getCurrentTab().resetLockIcon(url);
updateLockIconImage(LOCK_ICON_UNSECURE);
}
- /* package */ void setLockIconType(int type) {
- mLockIconType = type;
- }
-
- /* package */ int getLockIconType() {
- return mLockIconType;
- }
-
- /* package */ void setPrevLockType(int type) {
- mPrevLockType = type;
- }
-
- /* package */ int getPrevLockType() {
- return mPrevLockType;
- }
-
/**
* Update the lock icon to correspond to our latest state.
*/
- /* package */ void updateLockIconToLatest() {
- updateLockIconImage(mLockIconType);
+ private void updateLockIconToLatest() {
+ updateLockIconImage(mTabControl.getCurrentTab().getLockIconType());
}
/**
@@ -3722,9 +2803,7 @@
d = mMixLockIcon;
}
mTitleBar.setLock(d);
- if (mFakeTitleBar != null) {
- mFakeTitleBar.setLock(d);
- }
+ mFakeTitleBar.setLock(d);
}
/**
@@ -3735,7 +2814,7 @@
* not. This is important, since we need to know whether to return to
* the parent dialog or simply dismiss.
*/
- private void showPageInfo(final TabControl.Tab tab,
+ private void showPageInfo(final Tab tab,
final boolean fromShowSSLCertificateOnError) {
final LayoutInflater factory = LayoutInflater
.from(this);
@@ -3853,7 +2932,7 @@
* (accessible from the Page-Info dialog).
* @param tab The tab to show certificate for.
*/
- private void showSSLCertificate(final TabControl.Tab tab) {
+ private void showSSLCertificate(final Tab tab) {
final View certificateView =
inflateCertificateView(tab.getWebView().getCertificate());
if (certificateView == null) {
@@ -3905,7 +2984,7 @@
* connection that resulted in an SSL error or proceeding per user request.
* @param error The SSL error object.
*/
- private void showSSLCertificateOnError(
+ void showSSLCertificateOnError(
final WebView view, final SslErrorHandler handler, final SslError error) {
final View certificateView =
@@ -3964,8 +3043,8 @@
mSSLCertificateOnErrorHandler = null;
mSSLCertificateOnErrorError = null;
- mWebViewClient.onReceivedSslError(
- view, handler, error);
+ view.getWebViewClient().onReceivedSslError(
+ view, handler, error);
}
})
.setNeutralButton(R.string.page_info_view,
@@ -3990,8 +3069,8 @@
mSSLCertificateOnErrorHandler = null;
mSSLCertificateOnErrorError = null;
- mWebViewClient.onReceivedSslError(
- view, handler, error);
+ view.getWebViewClient().onReceivedSslError(
+ view, handler, error);
}
})
.show();
@@ -4082,7 +3161,7 @@
/**
* Displays an http-authentication dialog.
*/
- private void showHttpAuthentication(final HttpAuthHandler handler,
+ void showHttpAuthentication(final HttpAuthHandler handler,
final String host, final String realm, final String title,
final String name, final String password, int focusId) {
LayoutInflater factory = LayoutInflater.from(this);
@@ -4203,6 +3282,10 @@
}
}
+ boolean isNetworkUp() {
+ return mIsNetworkUp;
+ }
+
// This method shows the network dialog alerting the user that the net is
// down. It will only show the dialog if mAlertDialog is null.
private void createAndShowNetworkDialog() {
@@ -4226,7 +3309,7 @@
if (extras != null && extras.getBoolean("new_window", false)) {
openTab(data);
} else {
- final TabControl.Tab currentTab =
+ final Tab currentTab =
mTabControl.getCurrentTab();
dismissSubWindow(currentTab);
if (data != null && data.length() != 0) {
@@ -4235,6 +3318,14 @@
}
}
break;
+ // Choose a file from the file picker.
+ case FILE_SELECTED:
+ if (null == mUploadMessage) break;
+ Uri result = intent == null || resultCode != RESULT_OK ? null
+ : intent.getData();
+ mUploadMessage.onReceiveValue(result);
+ mUploadMessage = null;
+ break;
default:
break;
}
@@ -4250,7 +3341,7 @@
Intent intent = new Intent(this,
BrowserDownloadPage.class);
intent.setData(downloadRecord);
- startActivityForResult(intent, this.DOWNLOAD_PAGE);
+ startActivityForResult(intent, BrowserActivity.DOWNLOAD_PAGE);
}
@@ -4287,8 +3378,7 @@
intent.putExtra("url", url);
intent.putExtra("thumbnail", thumbnail);
// Disable opening in a new window if we have maxed out the windows
- intent.putExtra("disable_new_window", mTabControl.getTabCount()
- >= TabControl.MAX_TABS);
+ intent.putExtra("disable_new_window", !mTabControl.canCreateNewTab());
intent.putExtra("touch_icon_url", current.getTouchIconUrl());
if (startWithHistory) {
intent.putExtra(CombinedBookmarkHistoryActivity.STARTING_TAB,
@@ -4302,7 +3392,7 @@
// In case the user enters nothing.
if (url != null && url.length() != 0 && view != null) {
url = smartUrlFilter(url);
- if (!mWebViewClient.shouldOverrideUrlLoading(view, url)) {
+ if (!view.getWebViewClient().shouldOverrideUrlLoading(view, url)) {
view.loadUrl(url);
}
}
@@ -4315,16 +3405,6 @@
return null;
}
-
- // get window count
-
- int getWindowCount(){
- if(mTabControl != null){
- return mTabControl.getTabCount();
- }
- return 0;
- }
-
protected static final Pattern ACCEPTED_URI_SCHEMA = Pattern.compile(
"(?i)" + // switch on case insensitive matching
"(" + // begin group for schema
@@ -4398,7 +3478,8 @@
mShouldShowErrorConsole = flag;
- ErrorConsoleView errorConsole = mTabControl.getCurrentErrorConsole(true);
+ ErrorConsoleView errorConsole = mTabControl.getCurrentTab()
+ .getErrorConsole(true);
if (flag) {
// Setting the show state of the console will cause it's the layout to be inflated.
@@ -4418,13 +3499,19 @@
}
+ boolean shouldShowErrorConsole() {
+ return mShouldShowErrorConsole;
+ }
+
+ private void setStatusBarVisibility(boolean visible) {
+ int flag = visible ? 0 : WindowManager.LayoutParams.FLAG_FULLSCREEN;
+ getWindow().setFlags(flag, WindowManager.LayoutParams.FLAG_FULLSCREEN);
+ }
+
final static int LOCK_ICON_UNSECURE = 0;
final static int LOCK_ICON_SECURE = 1;
final static int LOCK_ICON_MIXED = 2;
- private int mLockIconType = LOCK_ICON_UNSECURE;
- private int mPrevLockType = LOCK_ICON_UNSECURE;
-
private BrowserSettings mSettings;
private TabControl mTabControl;
private ContentResolver mResolver;
@@ -4450,7 +3537,6 @@
private boolean mIsNetworkUp;
private boolean mDidStopLoad;
- private boolean mPageStarted;
private boolean mActivityInPause = true;
private boolean mMenuIsDown;
@@ -4496,7 +3582,7 @@
// As PageInfo has different style for landscape / portrait, we have
// to re-open it when configuration changed
private AlertDialog mPageInfoDialog;
- private TabControl.Tab mPageInfoView;
+ private Tab mPageInfoView;
// If the Page-Info dialog is launched from the SSL-certificate-on-error
// dialog, we should not just dismiss it, but should get back to the
// SSL-certificate-on-error dialog. This flag is used to store this state
@@ -4512,7 +3598,7 @@
// as SSLCertificate has different style for landscape / portrait, we
// have to re-open it when configuration changed
private AlertDialog mSSLCertificateDialog;
- private TabControl.Tab mSSLCertificateView;
+ private Tab mSSLCertificateView;
// as HttpAuthentication has different style for landscape / portrait, we
// have to re-open it when configuration changed
@@ -4577,13 +3663,11 @@
private BroadcastReceiver mPackageInstallationReceiver;
- // AsyncTask for downloading touch icons
- /* package */ DownloadTouchIcon mTouchIconLoader;
-
// activity requestCode
final static int COMBO_PAGE = 1;
final static int DOWNLOAD_PAGE = 2;
final static int PREFERENCES_PAGE = 3;
+ final static int FILE_SELECTED = 4;
// the default <video> poster
private Bitmap mDefaultVideoPoster;
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index 6ab011b..2773089 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -439,9 +439,10 @@
p.setStyle(Paint.Style.FILL_AND_STROKE);
p.setColor(Color.WHITE);
+ float density = getResources().getDisplayMetrics().density;
// Create a rectangle that is slightly wider than the favicon
- final float iconSize = 16; // 16x16 favicon
- final float padding = 2; // white padding around icon
+ final float iconSize = 16 * density; // 16x16 favicon
+ final float padding = 2; // white padding around icon
final float rectSize = iconSize + 2 * padding;
final float y = icon.getHeight() - rectSize;
RectF r = new RectF(0, y, rectSize, y + rectSize);
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index e36d54b..bb369ae 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -106,9 +106,6 @@
// The setting can be then toggled from the settings menu.
private boolean showConsole = true;
- // Browser only settings
- private boolean doFlick = false;
-
// Private preconfigured values
private static int minimumFontSize = 8;
private static int minimumLogicalFontSize = 8;
@@ -336,7 +333,6 @@
tracing = p.getBoolean("enable_tracing", tracing);
lightTouch = p.getBoolean("enable_light_touch", lightTouch);
navDump = p.getBoolean("enable_nav_dump", navDump);
- doFlick = p.getBoolean("enable_flick", doFlick);
userAgent = Integer.parseInt(p.getString("user_agent", "0"));
}
// JS flags is loaded from DB even if showDebugSettings is false,
@@ -422,10 +418,6 @@
return navDump;
}
- public boolean doFlick() {
- return doFlick;
- }
-
public boolean showDebugSettings() {
return showDebugSettings;
}
diff --git a/src/com/android/browser/DownloadTouchIcon.java b/src/com/android/browser/DownloadTouchIcon.java
index 07d2d3a..1761dd4 100644
--- a/src/com/android/browser/DownloadTouchIcon.java
+++ b/src/com/android/browser/DownloadTouchIcon.java
@@ -42,11 +42,10 @@
private final String mOriginalUrl;
private final String mUrl;
private final String mUserAgent;
- /* package */ BrowserActivity mActivity;
+ /* package */ Tab mTab;
- public DownloadTouchIcon(BrowserActivity activity, ContentResolver cr,
- Cursor c, WebView view) {
- mActivity = activity;
+ public DownloadTouchIcon(Tab tab, ContentResolver cr, Cursor c, WebView view) {
+ mTab = tab;
mContentResolver = cr;
mCursor = c;
// Store these in case they change.
@@ -56,7 +55,7 @@
}
public DownloadTouchIcon(ContentResolver cr, Cursor c, String url) {
- mActivity = null;
+ mTab = null;
mContentResolver = cr;
mCursor = c;
mOriginalUrl = null;
@@ -109,9 +108,9 @@
@Override
public void onPostExecute(Bitmap icon) {
// Do this first in case the download failed.
- if (mActivity != null) {
+ if (mTab != null) {
// Remove the touch icon loader from the BrowserActivity.
- mActivity.mTouchIconLoader = null;
+ mTab.mTouchIconLoader = null;
}
if (icon == null || mCursor == null || isCancelled()) {
diff --git a/src/com/android/browser/GeolocationPermissionsPrompt.java b/src/com/android/browser/GeolocationPermissionsPrompt.java
index a21bc3e..982aa89 100755
--- a/src/com/android/browser/GeolocationPermissionsPrompt.java
+++ b/src/com/android/browser/GeolocationPermissionsPrompt.java
@@ -20,6 +20,7 @@
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.util.AttributeSet;
+import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.webkit.WebView;
@@ -28,6 +29,7 @@
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.TextView;
+import android.widget.Toast;
public class GeolocationPermissionsPrompt extends LinearLayout {
private LinearLayout mInner;
@@ -97,8 +99,19 @@
* Handles a click on one the buttons by invoking the callback.
*/
private void handleButtonClick(boolean allow) {
- boolean remember = mRemember.isChecked();
showDialog(false);
+
+ boolean remember = mRemember.isChecked();
+ if (remember) {
+ Toast toast = Toast.makeText(
+ getContext(),
+ allow ? R.string.geolocation_permissions_prompt_toast_allowed :
+ R.string.geolocation_permissions_prompt_toast_disallowed,
+ Toast.LENGTH_LONG);
+ toast.setGravity(Gravity.BOTTOM, 0, 0);
+ toast.show();
+ }
+
mCallback.invoke(mOrigin, allow, remember);
}
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
new file mode 100644
index 0000000..3bb136c
--- /dev/null
+++ b/src/com/android/browser/Tab.java
@@ -0,0 +1,1568 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.browser;
+
+import java.io.File;
+import java.util.LinkedList;
+import java.util.Vector;
+
+import android.app.AlertDialog;
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnCancelListener;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteException;
+import android.graphics.Bitmap;
+import android.net.Uri;
+import android.net.http.SslError;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.os.Message;
+import android.provider.Browser;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.View.OnClickListener;
+import android.webkit.CookieSyncManager;
+import android.webkit.GeolocationPermissions;
+import android.webkit.HttpAuthHandler;
+import android.webkit.SslErrorHandler;
+import android.webkit.URLUtil;
+import android.webkit.ValueCallback;
+import android.webkit.WebBackForwardList;
+import android.webkit.WebChromeClient;
+import android.webkit.WebHistoryItem;
+import android.webkit.WebIconDatabase;
+import android.webkit.WebStorage;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
+import android.widget.FrameLayout;
+import android.widget.ImageButton;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+/**
+ * Class for maintaining Tabs with a main WebView and a subwindow.
+ */
+class Tab {
+ // Log Tag
+ private static final String LOGTAG = "Tab";
+ // The Geolocation permissions prompt
+ private GeolocationPermissionsPrompt mGeolocationPermissionsPrompt;
+ // Main WebView wrapper
+ private View mContainer;
+ // Main WebView
+ private WebView mMainView;
+ // Subwindow container
+ private View mSubViewContainer;
+ // Subwindow WebView
+ private WebView mSubView;
+ // Saved bundle for when we are running low on memory. It contains the
+ // information needed to restore the WebView if the user goes back to the
+ // tab.
+ private Bundle mSavedState;
+ // Data used when displaying the tab in the picker.
+ private PickerData mPickerData;
+ // Parent Tab. This is the Tab that created this Tab, or null if the Tab was
+ // created by the UI
+ private Tab mParentTab;
+ // Tab that constructed by this Tab. This is used when this Tab is
+ // destroyed, it clears all mParentTab values in the children.
+ private Vector<Tab> mChildTabs;
+ // If true, the tab will be removed when back out of the first page.
+ private boolean mCloseOnExit;
+ // If true, the tab is in the foreground of the current activity.
+ private boolean mInForeground;
+ // If true, the tab is in loading state.
+ private boolean mInLoad;
+ // Application identifier used to find tabs that another application wants
+ // to reuse.
+ private String mAppId;
+ // Keep the original url around to avoid killing the old WebView if the url
+ // has not changed.
+ private String mOriginalUrl;
+ // Error console for the tab
+ private ErrorConsoleView mErrorConsole;
+ // the lock icon type and previous lock icon type for the tab
+ private int mLockIconType;
+ private int mPrevLockIconType;
+ // Inflation service for making subwindows.
+ private final LayoutInflater mInflateService;
+ // The BrowserActivity which owners the Tab
+ private final BrowserActivity mActivity;
+
+ // AsyncTask for downloading touch icons
+ DownloadTouchIcon mTouchIconLoader;
+
+ // Extra saved information for displaying the tab in the picker.
+ private static class PickerData {
+ String mUrl;
+ String mTitle;
+ Bitmap mFavicon;
+ }
+
+ // Used for saving and restoring each Tab
+ static final String WEBVIEW = "webview";
+ static final String NUMTABS = "numTabs";
+ static final String CURRTAB = "currentTab";
+ static final String CURRURL = "currentUrl";
+ static final String CURRTITLE = "currentTitle";
+ static final String CURRPICTURE = "currentPicture";
+ static final String CLOSEONEXIT = "closeonexit";
+ static final String PARENTTAB = "parentTab";
+ static final String APPID = "appid";
+ static final String ORIGINALURL = "originalUrl";
+
+ // -------------------------------------------------------------------------
+
+ // Container class for the next error dialog that needs to be displayed
+ private class ErrorDialog {
+ public final int mTitle;
+ public final String mDescription;
+ public final int mError;
+ ErrorDialog(int title, String desc, int error) {
+ mTitle = title;
+ mDescription = desc;
+ mError = error;
+ }
+ };
+
+ private void processNextError() {
+ if (mQueuedErrors == null) {
+ return;
+ }
+ // The first one is currently displayed so just remove it.
+ mQueuedErrors.removeFirst();
+ if (mQueuedErrors.size() == 0) {
+ mQueuedErrors = null;
+ return;
+ }
+ showError(mQueuedErrors.getFirst());
+ }
+
+ private DialogInterface.OnDismissListener mDialogListener =
+ new DialogInterface.OnDismissListener() {
+ public void onDismiss(DialogInterface d) {
+ processNextError();
+ }
+ };
+ private LinkedList<ErrorDialog> mQueuedErrors;
+
+ private void queueError(int err, String desc) {
+ if (mQueuedErrors == null) {
+ mQueuedErrors = new LinkedList<ErrorDialog>();
+ }
+ for (ErrorDialog d : mQueuedErrors) {
+ if (d.mError == err) {
+ // Already saw a similar error, ignore the new one.
+ return;
+ }
+ }
+ ErrorDialog errDialog = new ErrorDialog(
+ err == WebViewClient.ERROR_FILE_NOT_FOUND ?
+ R.string.browserFrameFileErrorLabel :
+ R.string.browserFrameNetworkErrorLabel,
+ desc, err);
+ mQueuedErrors.addLast(errDialog);
+
+ // Show the dialog now if the queue was empty and it is in foreground
+ if (mQueuedErrors.size() == 1 && mInForeground) {
+ showError(errDialog);
+ }
+ }
+
+ private void showError(ErrorDialog errDialog) {
+ if (mInForeground) {
+ AlertDialog d = new AlertDialog.Builder(mActivity)
+ .setTitle(errDialog.mTitle)
+ .setMessage(errDialog.mDescription)
+ .setPositiveButton(R.string.ok, null)
+ .create();
+ d.setOnDismissListener(mDialogListener);
+ d.show();
+ }
+ }
+
+ // -------------------------------------------------------------------------
+ // WebViewClient implementation for the main WebView
+ // -------------------------------------------------------------------------
+
+ private final WebViewClient mWebViewClient = new WebViewClient() {
+ @Override
+ public void onPageStarted(WebView view, String url, Bitmap favicon) {
+ mInLoad = true;
+
+ // We've started to load a new page. If there was a pending message
+ // to save a screenshot then we will now take the new page and save
+ // an incorrect screenshot. Therefore, remove any pending thumbnail
+ // messages from the queue.
+ mActivity.removeMessages(BrowserActivity.UPDATE_BOOKMARK_THUMBNAIL,
+ view);
+
+ // If we start a touch icon load and then load a new page, we don't
+ // want to cancel the current touch icon loader. But, we do want to
+ // create a new one when the touch icon url is known.
+ if (mTouchIconLoader != null) {
+ mTouchIconLoader.mTab = null;
+ mTouchIconLoader = null;
+ }
+
+ // reset the error console
+ if (mErrorConsole != null) {
+ mErrorConsole.clearErrorMessages();
+ if (mActivity.shouldShowErrorConsole()) {
+ mErrorConsole.showConsole(ErrorConsoleView.SHOW_NONE);
+ }
+ }
+
+ // update the bookmark database for favicon
+ if (favicon != null) {
+ BrowserBookmarksAdapter.updateBookmarkFavicon(mActivity
+ .getContentResolver(), view.getOriginalUrl(), view
+ .getUrl(), favicon);
+ }
+
+ // reset sync timer to avoid sync starts during loading a page
+ CookieSyncManager.getInstance().resetSync();
+
+ if (!mActivity.isNetworkUp()) {
+ view.setNetworkAvailable(false);
+ }
+
+ // finally update the UI in the activity if it is in the foreground
+ if (mInForeground) {
+ mActivity.onPageStarted(view, url, favicon);
+ }
+ }
+
+ @Override
+ public void onPageFinished(WebView view, String url) {
+ mInLoad = false;
+
+ if (mInForeground && !mActivity.didUserStopLoading()
+ || !mInForeground) {
+ // Only update the bookmark screenshot if the user did not
+ // cancel the load early.
+ mActivity.postMessage(
+ BrowserActivity.UPDATE_BOOKMARK_THUMBNAIL, 0, 0, view,
+ 500);
+ }
+
+ // finally update the UI in the activity if it is in the foreground
+ if (mInForeground) {
+ mActivity.onPageFinished(view, url);
+ }
+ }
+
+ // return true if want to hijack the url to let another app to handle it
+ @Override
+ public boolean shouldOverrideUrlLoading(WebView view, String url) {
+ if (mInForeground) {
+ return mActivity.shouldOverrideUrlLoading(view, url);
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Updates the lock icon. This method is called when we discover another
+ * resource to be loaded for this page (for example, javascript). While
+ * we update the icon type, we do not update the lock icon itself until
+ * we are done loading, it is slightly more secure this way.
+ */
+ @Override
+ public void onLoadResource(WebView view, String url) {
+ if (url != null && url.length() > 0) {
+ // It is only if the page claims to be secure that we may have
+ // to update the lock:
+ if (mLockIconType == BrowserActivity.LOCK_ICON_SECURE) {
+ // If NOT a 'safe' url, change the lock to mixed content!
+ if (!(URLUtil.isHttpsUrl(url) || URLUtil.isDataUrl(url)
+ || URLUtil.isAboutUrl(url))) {
+ mLockIconType = BrowserActivity.LOCK_ICON_MIXED;
+ }
+ }
+ }
+ }
+
+ /**
+ * Show the dialog if it is in the foreground, asking the user if they
+ * would like to continue after an excessive number of HTTP redirects.
+ * Cancel if it is in the background.
+ */
+ @Override
+ public void onTooManyRedirects(WebView view, final Message cancelMsg,
+ final Message continueMsg) {
+ if (!mInForeground) {
+ cancelMsg.sendToTarget();
+ return;
+ }
+ new AlertDialog.Builder(mActivity).setTitle(
+ R.string.browserFrameRedirect).setMessage(
+ R.string.browserFrame307Post).setPositiveButton(
+ R.string.ok, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ continueMsg.sendToTarget();
+ }
+ }).setNegativeButton(R.string.cancel,
+ new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ cancelMsg.sendToTarget();
+ }
+ }).setOnCancelListener(new OnCancelListener() {
+ public void onCancel(DialogInterface dialog) {
+ cancelMsg.sendToTarget();
+ }
+ }).show();
+ }
+
+ /**
+ * Show a dialog informing the user of the network error reported by
+ * WebCore if it is in the foreground.
+ */
+ @Override
+ public void onReceivedError(WebView view, int errorCode,
+ String description, String failingUrl) {
+ if (errorCode != WebViewClient.ERROR_HOST_LOOKUP &&
+ errorCode != WebViewClient.ERROR_CONNECT &&
+ errorCode != WebViewClient.ERROR_BAD_URL &&
+ errorCode != WebViewClient.ERROR_UNSUPPORTED_SCHEME &&
+ errorCode != WebViewClient.ERROR_FILE) {
+ queueError(errorCode, description);
+ }
+ Log.e(LOGTAG, "onReceivedError " + errorCode + " " + failingUrl
+ + " " + description);
+
+ // We need to reset the title after an error if it is in foreground.
+ if (mInForeground) {
+ mActivity.resetTitleAndRevertLockIcon();
+ }
+ }
+
+ /**
+ * Check with the user if it is ok to resend POST data as the page they
+ * are trying to navigate to is the result of a POST.
+ */
+ @Override
+ public void onFormResubmission(WebView view, final Message dontResend,
+ final Message resend) {
+ if (!mInForeground) {
+ dontResend.sendToTarget();
+ return;
+ }
+ new AlertDialog.Builder(mActivity).setTitle(
+ R.string.browserFrameFormResubmitLabel).setMessage(
+ R.string.browserFrameFormResubmitMessage)
+ .setPositiveButton(R.string.ok,
+ new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
+ resend.sendToTarget();
+ }
+ }).setNegativeButton(R.string.cancel,
+ new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
+ dontResend.sendToTarget();
+ }
+ }).setOnCancelListener(new OnCancelListener() {
+ public void onCancel(DialogInterface dialog) {
+ dontResend.sendToTarget();
+ }
+ }).show();
+ }
+
+ /**
+ * Insert the url into the visited history database.
+ * @param url The url to be inserted.
+ * @param isReload True if this url is being reloaded.
+ * FIXME: Not sure what to do when reloading the page.
+ */
+ @Override
+ public void doUpdateVisitedHistory(WebView view, String url,
+ boolean isReload) {
+ if (url.regionMatches(true, 0, "about:", 0, 6)) {
+ return;
+ }
+ // remove "client" before updating it to the history so that it wont
+ // show up in the auto-complete list.
+ int index = url.indexOf("client=ms-");
+ if (index > 0 && url.contains(".google.")) {
+ int end = url.indexOf('&', index);
+ if (end > 0) {
+ url = url.substring(0, index)
+ .concat(url.substring(end + 1));
+ } else {
+ // the url.charAt(index-1) should be either '?' or '&'
+ url = url.substring(0, index-1);
+ }
+ }
+ Browser.updateVisitedHistory(mActivity.getContentResolver(), url,
+ true);
+ WebIconDatabase.getInstance().retainIconForPageUrl(url);
+ }
+
+ /**
+ * Displays SSL error(s) dialog to the user.
+ */
+ @Override
+ public void onReceivedSslError(final WebView view,
+ final SslErrorHandler handler, final SslError error) {
+ if (!mInForeground) {
+ handler.cancel();
+ return;
+ }
+ if (BrowserSettings.getInstance().showSecurityWarnings()) {
+ final LayoutInflater factory =
+ LayoutInflater.from(mActivity);
+ final View warningsView =
+ factory.inflate(R.layout.ssl_warnings, null);
+ final LinearLayout placeholder =
+ (LinearLayout)warningsView.findViewById(R.id.placeholder);
+
+ if (error.hasError(SslError.SSL_UNTRUSTED)) {
+ LinearLayout ll = (LinearLayout)factory
+ .inflate(R.layout.ssl_warning, null);
+ ((TextView)ll.findViewById(R.id.warning))
+ .setText(R.string.ssl_untrusted);
+ placeholder.addView(ll);
+ }
+
+ if (error.hasError(SslError.SSL_IDMISMATCH)) {
+ LinearLayout ll = (LinearLayout)factory
+ .inflate(R.layout.ssl_warning, null);
+ ((TextView)ll.findViewById(R.id.warning))
+ .setText(R.string.ssl_mismatch);
+ placeholder.addView(ll);
+ }
+
+ if (error.hasError(SslError.SSL_EXPIRED)) {
+ LinearLayout ll = (LinearLayout)factory
+ .inflate(R.layout.ssl_warning, null);
+ ((TextView)ll.findViewById(R.id.warning))
+ .setText(R.string.ssl_expired);
+ placeholder.addView(ll);
+ }
+
+ if (error.hasError(SslError.SSL_NOTYETVALID)) {
+ LinearLayout ll = (LinearLayout)factory
+ .inflate(R.layout.ssl_warning, null);
+ ((TextView)ll.findViewById(R.id.warning))
+ .setText(R.string.ssl_not_yet_valid);
+ placeholder.addView(ll);
+ }
+
+ new AlertDialog.Builder(mActivity).setTitle(
+ R.string.security_warning).setIcon(
+ android.R.drawable.ic_dialog_alert).setView(
+ warningsView).setPositiveButton(R.string.ssl_continue,
+ new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int whichButton) {
+ handler.proceed();
+ }
+ }).setNeutralButton(R.string.view_certificate,
+ new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int whichButton) {
+ mActivity.showSSLCertificateOnError(view,
+ handler, error);
+ }
+ }).setNegativeButton(R.string.cancel,
+ new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int whichButton) {
+ handler.cancel();
+ mActivity.resetTitleAndRevertLockIcon();
+ }
+ }).setOnCancelListener(
+ new DialogInterface.OnCancelListener() {
+ public void onCancel(DialogInterface dialog) {
+ handler.cancel();
+ mActivity.resetTitleAndRevertLockIcon();
+ }
+ }).show();
+ } else {
+ handler.proceed();
+ }
+ }
+
+ /**
+ * Handles an HTTP authentication request.
+ *
+ * @param handler The authentication handler
+ * @param host The host
+ * @param realm The realm
+ */
+ @Override
+ public void onReceivedHttpAuthRequest(WebView view,
+ final HttpAuthHandler handler, final String host,
+ final String realm) {
+ String username = null;
+ String password = null;
+
+ boolean reuseHttpAuthUsernamePassword = handler
+ .useHttpAuthUsernamePassword();
+
+ if (reuseHttpAuthUsernamePassword && mMainView != null) {
+ String[] credentials = mMainView.getHttpAuthUsernamePassword(
+ host, realm);
+ if (credentials != null && credentials.length == 2) {
+ username = credentials[0];
+ password = credentials[1];
+ }
+ }
+
+ if (username != null && password != null) {
+ handler.proceed(username, password);
+ } else {
+ if (mInForeground) {
+ mActivity.showHttpAuthentication(handler, host, realm,
+ null, null, null, 0);
+ } else {
+ handler.cancel();
+ }
+ }
+ }
+
+ @Override
+ public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) {
+ if (!mInForeground) {
+ return false;
+ }
+ if (mActivity.isMenuDown()) {
+ // only check shortcut key when MENU is held
+ return mActivity.getWindow().isShortcutKey(event.getKeyCode(),
+ event);
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ public void onUnhandledKeyEvent(WebView view, KeyEvent event) {
+ if (!mInForeground) {
+ return;
+ }
+ if (event.isDown()) {
+ mActivity.onKeyDown(event.getKeyCode(), event);
+ } else {
+ mActivity.onKeyUp(event.getKeyCode(), event);
+ }
+ }
+ };
+
+ // -------------------------------------------------------------------------
+ // WebChromeClient implementation for the main WebView
+ // -------------------------------------------------------------------------
+
+ private final WebChromeClient mWebChromeClient = new WebChromeClient() {
+ // Helper method to create a new tab or sub window.
+ private void createWindow(final boolean dialog, final Message msg) {
+ WebView.WebViewTransport transport =
+ (WebView.WebViewTransport) msg.obj;
+ if (dialog) {
+ createSubWindow();
+ mActivity.attachSubWindow(Tab.this);
+ transport.setWebView(mSubView);
+ } else {
+ final Tab newTab = mActivity.openTabAndShow(
+ BrowserActivity.EMPTY_URL_DATA, false, null);
+ if (newTab != Tab.this) {
+ Tab.this.addChildTab(newTab);
+ }
+ transport.setWebView(newTab.getWebView());
+ }
+ msg.sendToTarget();
+ }
+
+ @Override
+ public boolean onCreateWindow(WebView view, final boolean dialog,
+ final boolean userGesture, final Message resultMsg) {
+ // only allow new window or sub window for the foreground case
+ if (!mInForeground) {
+ return false;
+ }
+ // Short-circuit if we can't create any more tabs or sub windows.
+ if (dialog && mSubView != null) {
+ new AlertDialog.Builder(mActivity)
+ .setTitle(R.string.too_many_subwindows_dialog_title)
+ .setIcon(android.R.drawable.ic_dialog_alert)
+ .setMessage(R.string.too_many_subwindows_dialog_message)
+ .setPositiveButton(R.string.ok, null)
+ .show();
+ return false;
+ } else if (!mActivity.getTabControl().canCreateNewTab()) {
+ new AlertDialog.Builder(mActivity)
+ .setTitle(R.string.too_many_windows_dialog_title)
+ .setIcon(android.R.drawable.ic_dialog_alert)
+ .setMessage(R.string.too_many_windows_dialog_message)
+ .setPositiveButton(R.string.ok, null)
+ .show();
+ return false;
+ }
+
+ // Short-circuit if this was a user gesture.
+ if (userGesture) {
+ createWindow(dialog, resultMsg);
+ return true;
+ }
+
+ // Allow the popup and create the appropriate window.
+ final AlertDialog.OnClickListener allowListener =
+ new AlertDialog.OnClickListener() {
+ public void onClick(DialogInterface d,
+ int which) {
+ createWindow(dialog, resultMsg);
+ }
+ };
+
+ // Block the popup by returning a null WebView.
+ final AlertDialog.OnClickListener blockListener =
+ new AlertDialog.OnClickListener() {
+ public void onClick(DialogInterface d, int which) {
+ resultMsg.sendToTarget();
+ }
+ };
+
+ // Build a confirmation dialog to display to the user.
+ final AlertDialog d =
+ new AlertDialog.Builder(mActivity)
+ .setTitle(R.string.attention)
+ .setIcon(android.R.drawable.ic_dialog_alert)
+ .setMessage(R.string.popup_window_attempt)
+ .setPositiveButton(R.string.allow, allowListener)
+ .setNegativeButton(R.string.block, blockListener)
+ .setCancelable(false)
+ .create();
+
+ // Show the confirmation dialog.
+ d.show();
+ return true;
+ }
+
+ @Override
+ public void onRequestFocus(WebView view) {
+ if (!mInForeground) {
+ mActivity.switchToTab(mActivity.getTabControl().getTabIndex(
+ Tab.this));
+ }
+ }
+
+ @Override
+ public void onCloseWindow(WebView window) {
+ if (mParentTab != null) {
+ // JavaScript can only close popup window.
+ if (mInForeground) {
+ mActivity.switchToTab(mActivity.getTabControl()
+ .getTabIndex(mParentTab));
+ }
+ mActivity.closeTab(Tab.this);
+ }
+ }
+
+ @Override
+ public void onProgressChanged(WebView view, int newProgress) {
+ if (newProgress == 100) {
+ // sync cookies and cache promptly here.
+ CookieSyncManager.getInstance().sync();
+ }
+ if (mInForeground) {
+ mActivity.onProgressChanged(view, newProgress);
+ }
+ }
+
+ @Override
+ public void onReceivedTitle(WebView view, String title) {
+ String url = view.getUrl();
+ if (mInForeground) {
+ // here, if url is null, we want to reset the title
+ mActivity.setUrlTitle(url, title);
+ }
+ if (url == null ||
+ url.length() >= SQLiteDatabase.SQLITE_MAX_LIKE_PATTERN_LENGTH) {
+ return;
+ }
+ // See if we can find the current url in our history database and
+ // add the new title to it.
+ if (url.startsWith("http://www.")) {
+ url = url.substring(11);
+ } else if (url.startsWith("http://")) {
+ url = url.substring(4);
+ }
+ try {
+ final ContentResolver cr = mActivity.getContentResolver();
+ url = "%" + url;
+ String [] selArgs = new String[] { url };
+ String where = Browser.BookmarkColumns.URL + " LIKE ? AND "
+ + Browser.BookmarkColumns.BOOKMARK + " = 0";
+ Cursor c = cr.query(Browser.BOOKMARKS_URI,
+ Browser.HISTORY_PROJECTION, where, selArgs, null);
+ if (c.moveToFirst()) {
+ // Current implementation of database only has one entry per
+ // url.
+ ContentValues map = new ContentValues();
+ map.put(Browser.BookmarkColumns.TITLE, title);
+ cr.update(Browser.BOOKMARKS_URI, map, "_id = "
+ + c.getInt(0), null);
+ }
+ c.close();
+ } catch (IllegalStateException e) {
+ Log.e(LOGTAG, "Tab onReceived title", e);
+ } catch (SQLiteException ex) {
+ Log.e(LOGTAG, "onReceivedTitle() caught SQLiteException: ", ex);
+ }
+ }
+
+ @Override
+ public void onReceivedIcon(WebView view, Bitmap icon) {
+ if (icon != null) {
+ BrowserBookmarksAdapter.updateBookmarkFavicon(mActivity
+ .getContentResolver(), view.getOriginalUrl(), view
+ .getUrl(), icon);
+ }
+ if (mInForeground) {
+ mActivity.setFavicon(icon);
+ }
+ }
+
+ @Override
+ public void onReceivedTouchIconUrl(WebView view, String url,
+ boolean precomposed) {
+ final ContentResolver cr = mActivity.getContentResolver();
+ final Cursor c = BrowserBookmarksAdapter.queryBookmarksForUrl(cr,
+ view.getOriginalUrl(), view.getUrl(), true);
+ if (c != null) {
+ if (c.getCount() > 0) {
+ // Let precomposed icons take precedence over non-composed
+ // icons.
+ if (precomposed && mTouchIconLoader != null) {
+ mTouchIconLoader.cancel(false);
+ mTouchIconLoader = null;
+ }
+ // Have only one async task at a time.
+ if (mTouchIconLoader == null) {
+ mTouchIconLoader = new DownloadTouchIcon(Tab.this, cr,
+ c, view);
+ mTouchIconLoader.execute(url);
+ }
+ } else {
+ c.close();
+ }
+ }
+ }
+
+ @Override
+ public void onShowCustomView(View view,
+ WebChromeClient.CustomViewCallback callback) {
+ if (mInForeground) mActivity.onShowCustomView(view, callback);
+ }
+
+ @Override
+ public void onHideCustomView() {
+ if (mInForeground) mActivity.onHideCustomView();
+ }
+
+ /**
+ * The origin has exceeded its database quota.
+ * @param url the URL that exceeded the quota
+ * @param databaseIdentifier the identifier of the database on which the
+ * transaction that caused the quota overflow was run
+ * @param currentQuota the current quota for the origin.
+ * @param estimatedSize the estimated size of the database.
+ * @param totalUsedQuota is the sum of all origins' quota.
+ * @param quotaUpdater The callback to run when a decision to allow or
+ * deny quota has been made. Don't forget to call this!
+ */
+ @Override
+ public void onExceededDatabaseQuota(String url,
+ String databaseIdentifier, long currentQuota, long estimatedSize,
+ long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) {
+ BrowserSettings.getInstance().getWebStorageSizeManager()
+ .onExceededDatabaseQuota(url, databaseIdentifier,
+ currentQuota, estimatedSize, totalUsedQuota,
+ quotaUpdater);
+ }
+
+ /**
+ * The Application Cache has exceeded its max size.
+ * @param spaceNeeded is the amount of disk space that would be needed
+ * in order for the last appcache operation to succeed.
+ * @param totalUsedQuota is the sum of all origins' quota.
+ * @param quotaUpdater A callback to inform the WebCore thread that a
+ * new app cache size is available. This callback must always
+ * be executed at some point to ensure that the sleeping
+ * WebCore thread is woken up.
+ */
+ @Override
+ public void onReachedMaxAppCacheSize(long spaceNeeded,
+ long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) {
+ BrowserSettings.getInstance().getWebStorageSizeManager()
+ .onReachedMaxAppCacheSize(spaceNeeded, totalUsedQuota,
+ quotaUpdater);
+ }
+
+ /**
+ * Instructs the browser to show a prompt to ask the user to set the
+ * Geolocation permission state for the specified origin.
+ * @param origin The origin for which Geolocation permissions are
+ * requested.
+ * @param callback The callback to call once the user has set the
+ * Geolocation permission state.
+ */
+ @Override
+ public void onGeolocationPermissionsShowPrompt(String origin,
+ GeolocationPermissions.Callback callback) {
+ if (mInForeground) {
+ mGeolocationPermissionsPrompt.show(origin, callback);
+ }
+ }
+
+ /**
+ * Instructs the browser to hide the Geolocation permissions prompt.
+ */
+ @Override
+ public void onGeolocationPermissionsHidePrompt() {
+ if (mInForeground) {
+ mGeolocationPermissionsPrompt.hide();
+ }
+ }
+
+ /* Adds a JavaScript error message to the system log.
+ * @param message The error message to report.
+ * @param lineNumber The line number of the error.
+ * @param sourceID The name of the source file that caused the error.
+ */
+ @Override
+ public void addMessageToConsole(String message, int lineNumber,
+ String sourceID) {
+ if (mInForeground) {
+ // call getErrorConsole(true) so it will create one if needed
+ ErrorConsoleView errorConsole = getErrorConsole(true);
+ errorConsole.addErrorMessage(message, sourceID, lineNumber);
+ if (mActivity.shouldShowErrorConsole()
+ && errorConsole.getShowState() != ErrorConsoleView.SHOW_MAXIMIZED) {
+ errorConsole.showConsole(ErrorConsoleView.SHOW_MINIMIZED);
+ }
+ }
+ Log.w(LOGTAG, "Console: " + message + " " + sourceID + ":"
+ + lineNumber);
+ }
+
+ /**
+ * Ask the browser for an icon to represent a <video> element.
+ * This icon will be used if the Web page did not specify a poster attribute.
+ * @return Bitmap The icon or null if no such icon is available.
+ */
+ @Override
+ public Bitmap getDefaultVideoPoster() {
+ if (mInForeground) {
+ return mActivity.getDefaultVideoPoster();
+ }
+ return null;
+ }
+
+ /**
+ * Ask the host application for a custom progress view to show while
+ * a <video> is loading.
+ * @return View The progress view.
+ */
+ @Override
+ public View getVideoLoadingProgressView() {
+ if (mInForeground) {
+ return mActivity.getVideoLoadingProgressView();
+ }
+ return null;
+ }
+
+ @Override
+ public void openFileChooser(ValueCallback<Uri> uploadMsg) {
+ if (mInForeground) {
+ mActivity.openFileChooser(uploadMsg);
+ } else {
+ uploadMsg.onReceiveValue(null);
+ }
+ }
+
+ /**
+ * Deliver a list of already-visited URLs
+ */
+ @Override
+ public void getVisitedHistory(final ValueCallback<String[]> callback) {
+ AsyncTask<Void, Void, String[]> task = new AsyncTask<Void, Void, String[]>() {
+ public String[] doInBackground(Void... unused) {
+ return Browser.getVisitedHistory(mActivity
+ .getContentResolver());
+ }
+ public void onPostExecute(String[] result) {
+ callback.onReceiveValue(result);
+ };
+ };
+ task.execute();
+ };
+ };
+
+ // -------------------------------------------------------------------------
+ // WebViewClient implementation for the sub window
+ // -------------------------------------------------------------------------
+
+ // Subclass of WebViewClient used in subwindows to notify the main
+ // WebViewClient of certain WebView activities.
+ private static class SubWindowClient extends WebViewClient {
+ // The main WebViewClient.
+ private final WebViewClient mClient;
+
+ SubWindowClient(WebViewClient client) {
+ mClient = client;
+ }
+ @Override
+ public void doUpdateVisitedHistory(WebView view, String url,
+ boolean isReload) {
+ mClient.doUpdateVisitedHistory(view, url, isReload);
+ }
+ @Override
+ public boolean shouldOverrideUrlLoading(WebView view, String url) {
+ return mClient.shouldOverrideUrlLoading(view, url);
+ }
+ @Override
+ public void onReceivedSslError(WebView view, SslErrorHandler handler,
+ SslError error) {
+ mClient.onReceivedSslError(view, handler, error);
+ }
+ @Override
+ public void onReceivedHttpAuthRequest(WebView view,
+ HttpAuthHandler handler, String host, String realm) {
+ mClient.onReceivedHttpAuthRequest(view, handler, host, realm);
+ }
+ @Override
+ public void onFormResubmission(WebView view, Message dontResend,
+ Message resend) {
+ mClient.onFormResubmission(view, dontResend, resend);
+ }
+ @Override
+ public void onReceivedError(WebView view, int errorCode,
+ String description, String failingUrl) {
+ mClient.onReceivedError(view, errorCode, description, failingUrl);
+ }
+ @Override
+ public boolean shouldOverrideKeyEvent(WebView view,
+ android.view.KeyEvent event) {
+ return mClient.shouldOverrideKeyEvent(view, event);
+ }
+ @Override
+ public void onUnhandledKeyEvent(WebView view,
+ android.view.KeyEvent event) {
+ mClient.onUnhandledKeyEvent(view, event);
+ }
+ }
+
+ // -------------------------------------------------------------------------
+ // WebChromeClient implementation for the sub window
+ // -------------------------------------------------------------------------
+
+ private class SubWindowChromeClient extends WebChromeClient {
+ // The main WebChromeClient.
+ private final WebChromeClient mClient;
+
+ SubWindowChromeClient(WebChromeClient client) {
+ mClient = client;
+ }
+ @Override
+ public void onProgressChanged(WebView view, int newProgress) {
+ mClient.onProgressChanged(view, newProgress);
+ }
+ @Override
+ public boolean onCreateWindow(WebView view, boolean dialog,
+ boolean userGesture, android.os.Message resultMsg) {
+ return mClient.onCreateWindow(view, dialog, userGesture, resultMsg);
+ }
+ @Override
+ public void onCloseWindow(WebView window) {
+ if (window != mSubView) {
+ Log.e(LOGTAG, "Can't close the window");
+ }
+ mActivity.dismissSubWindow(Tab.this);
+ }
+ }
+
+ // -------------------------------------------------------------------------
+
+ // Construct a new tab
+ Tab(BrowserActivity activity, WebView w, boolean closeOnExit, String appId,
+ String url) {
+ mActivity = activity;
+ mCloseOnExit = closeOnExit;
+ mAppId = appId;
+ mOriginalUrl = url;
+ mLockIconType = BrowserActivity.LOCK_ICON_UNSECURE;
+ mPrevLockIconType = BrowserActivity.LOCK_ICON_UNSECURE;
+ mInLoad = false;
+ mInForeground = false;
+
+ mInflateService = LayoutInflater.from(activity);
+
+ // The tab consists of a container view, which contains the main
+ // WebView, as well as any other UI elements associated with the tab.
+ mContainer = mInflateService.inflate(R.layout.tab, null);
+
+ mGeolocationPermissionsPrompt =
+ (GeolocationPermissionsPrompt) mContainer.findViewById(
+ R.id.geolocation_permissions_prompt);
+
+ setWebView(w);
+ }
+
+ /**
+ * Sets the WebView for this tab, correctly removing the old WebView from
+ * the container view.
+ */
+ void setWebView(WebView w) {
+ if (mMainView == w) {
+ return;
+ }
+ // If the WebView is changing, the page will be reloaded, so any ongoing
+ // Geolocation permission requests are void.
+ mGeolocationPermissionsPrompt.hide();
+
+ // Just remove the old one.
+ FrameLayout wrapper =
+ (FrameLayout) mContainer.findViewById(R.id.webview_wrapper);
+ wrapper.removeView(mMainView);
+
+ // set the new one
+ mMainView = w;
+ // attached the WebViewClient and WebChromeClient
+ if (mMainView != null) {
+ mMainView.setWebViewClient(mWebViewClient);
+ mMainView.setWebChromeClient(mWebChromeClient);
+ }
+ }
+
+ /**
+ * Destroy the tab's main WebView and subWindow if any
+ */
+ void destroy() {
+ if (mMainView != null) {
+ dismissSubWindow();
+ BrowserSettings.getInstance().deleteObserver(mMainView.getSettings());
+ // save the WebView to call destroy() after detach it from the tab
+ WebView webView = mMainView;
+ setWebView(null);
+ webView.destroy();
+ }
+ }
+
+ /**
+ * Remove the tab from the parent
+ */
+ void removeFromTree() {
+ // detach the children
+ if (mChildTabs != null) {
+ for(Tab t : mChildTabs) {
+ t.setParentTab(null);
+ }
+ }
+ // remove itself from the parent list
+ if (mParentTab != null) {
+ mParentTab.mChildTabs.remove(this);
+ }
+ }
+
+ /**
+ * Create a new subwindow unless a subwindow already exists.
+ * @return True if a new subwindow was created. False if one already exists.
+ */
+ boolean createSubWindow() {
+ if (mSubView == null) {
+ mSubViewContainer = mInflateService.inflate(
+ R.layout.browser_subwindow, null);
+ mSubView = (WebView) mSubViewContainer.findViewById(R.id.webview);
+ // use trackball directly
+ mSubView.setMapTrackballToArrowKeys(false);
+ mSubView.setWebViewClient(new SubWindowClient(mWebViewClient));
+ mSubView.setWebChromeClient(new SubWindowChromeClient(
+ mWebChromeClient));
+ mSubView.setDownloadListener(mActivity);
+ mSubView.setOnCreateContextMenuListener(mActivity);
+ final BrowserSettings s = BrowserSettings.getInstance();
+ s.addObserver(mSubView.getSettings()).update(s, null);
+ final ImageButton cancel = (ImageButton) mSubViewContainer
+ .findViewById(R.id.subwindow_close);
+ cancel.setOnClickListener(new OnClickListener() {
+ public void onClick(View v) {
+ mSubView.getWebChromeClient().onCloseWindow(mSubView);
+ }
+ });
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Dismiss the subWindow for the tab.
+ */
+ void dismissSubWindow() {
+ if (mSubView != null) {
+ BrowserSettings.getInstance().deleteObserver(
+ mSubView.getSettings());
+ mSubView.destroy();
+ mSubView = null;
+ mSubViewContainer = null;
+ }
+ }
+
+ /**
+ * Attach the sub window to the content view.
+ */
+ void attachSubWindow(ViewGroup content) {
+ if (mSubView != null) {
+ content.addView(mSubViewContainer,
+ BrowserActivity.COVER_SCREEN_PARAMS);
+ }
+ }
+
+ /**
+ * Remove the sub window from the content view.
+ */
+ void removeSubWindow(ViewGroup content) {
+ if (mSubView != null) {
+ content.removeView(mSubViewContainer);
+ }
+ }
+
+ /**
+ * This method attaches both the WebView and any sub window to the
+ * given content view.
+ */
+ void attachTabToContentView(ViewGroup content) {
+ if (mMainView == null) {
+ return;
+ }
+
+ // Attach the WebView to the container and then attach the
+ // container to the content view.
+ FrameLayout wrapper =
+ (FrameLayout) mContainer.findViewById(R.id.webview_wrapper);
+ wrapper.addView(mMainView);
+ content.addView(mContainer, BrowserActivity.COVER_SCREEN_PARAMS);
+ attachSubWindow(content);
+ }
+
+ /**
+ * Remove the WebView and any sub window from the given content view.
+ */
+ void removeTabFromContentView(ViewGroup content) {
+ if (mMainView == null) {
+ return;
+ }
+
+ // Remove the container from the content and then remove the
+ // WebView from the container. This will trigger a focus change
+ // needed by WebView.
+ FrameLayout wrapper =
+ (FrameLayout) mContainer.findViewById(R.id.webview_wrapper);
+ wrapper.removeView(mMainView);
+ content.removeView(mContainer);
+ removeSubWindow(content);
+ }
+
+ /**
+ * Set the parent tab of this tab.
+ */
+ void setParentTab(Tab parent) {
+ mParentTab = parent;
+ // This tab may have been freed due to low memory. If that is the case,
+ // the parent tab index is already saved. If we are changing that index
+ // (most likely due to removing the parent tab) we must update the
+ // parent tab index in the saved Bundle.
+ if (mSavedState != null) {
+ if (parent == null) {
+ mSavedState.remove(PARENTTAB);
+ } else {
+ mSavedState.putInt(PARENTTAB, mActivity.getTabControl()
+ .getTabIndex(parent));
+ }
+ }
+ }
+
+ /**
+ * When a Tab is created through the content of another Tab, then we
+ * associate the Tabs.
+ * @param child the Tab that was created from this Tab
+ */
+ void addChildTab(Tab child) {
+ if (mChildTabs == null) {
+ mChildTabs = new Vector<Tab>();
+ }
+ mChildTabs.add(child);
+ child.setParentTab(this);
+ }
+
+ Vector<Tab> getChildTabs() {
+ return mChildTabs;
+ }
+
+ void resume() {
+ if (mMainView != null) {
+ mMainView.onResume();
+ if (mSubView != null) {
+ mSubView.onResume();
+ }
+ }
+ }
+
+ void pause() {
+ if (mMainView != null) {
+ mMainView.onPause();
+ if (mSubView != null) {
+ mSubView.onPause();
+ }
+ }
+ }
+
+ void putInForeground() {
+ mInForeground = true;
+ resume();
+ mMainView.setOnCreateContextMenuListener(mActivity);
+ if (mSubView != null) {
+ mSubView.setOnCreateContextMenuListener(mActivity);
+ }
+ // Show the pending error dialog if the queue is not empty
+ if (mQueuedErrors != null && mQueuedErrors.size() > 0) {
+ showError(mQueuedErrors.getFirst());
+ }
+ }
+
+ void putInBackground() {
+ mInForeground = false;
+ pause();
+ mMainView.setOnCreateContextMenuListener(null);
+ if (mSubView != null) {
+ mSubView.setOnCreateContextMenuListener(null);
+ }
+ }
+
+ /**
+ * Return the top window of this tab; either the subwindow if it is not
+ * null or the main window.
+ * @return The top window of this tab.
+ */
+ WebView getTopWindow() {
+ if (mSubView != null) {
+ return mSubView;
+ }
+ return mMainView;
+ }
+
+ /**
+ * Return the main window of this tab. Note: if a tab is freed in the
+ * background, this can return null. It is only guaranteed to be
+ * non-null for the current tab.
+ * @return The main WebView of this tab.
+ */
+ WebView getWebView() {
+ return mMainView;
+ }
+
+ /**
+ * Return the subwindow of this tab or null if there is no subwindow.
+ * @return The subwindow of this tab or null.
+ */
+ WebView getSubWebView() {
+ return mSubView;
+ }
+
+ /**
+ * @return The geolocation permissions prompt for this tab.
+ */
+ GeolocationPermissionsPrompt getGeolocationPermissionsPrompt() {
+ return mGeolocationPermissionsPrompt;
+ }
+
+ /**
+ * @return The application id string
+ */
+ String getAppId() {
+ return mAppId;
+ }
+
+ /**
+ * Set the application id string
+ * @param id
+ */
+ void setAppId(String id) {
+ mAppId = id;
+ }
+
+ /**
+ * @return The original url associated with this Tab
+ */
+ String getOriginalUrl() {
+ return mOriginalUrl;
+ }
+
+ /**
+ * Set the original url associated with this tab
+ */
+ void setOriginalUrl(String url) {
+ mOriginalUrl = url;
+ }
+
+ /**
+ * Get the url of this tab. Valid after calling populatePickerData, but
+ * before calling wipePickerData, or if the webview has been destroyed.
+ * @return The WebView's url or null.
+ */
+ String getUrl() {
+ if (mPickerData != null) {
+ return mPickerData.mUrl;
+ }
+ return null;
+ }
+
+ /**
+ * Get the title of this tab. Valid after calling populatePickerData, but
+ * before calling wipePickerData, or if the webview has been destroyed. If
+ * the url has no title, use the url instead.
+ * @return The WebView's title (or url) or null.
+ */
+ String getTitle() {
+ if (mPickerData != null) {
+ return mPickerData.mTitle;
+ }
+ return null;
+ }
+
+ /**
+ * Get the favicon of this tab. Valid after calling populatePickerData, but
+ * before calling wipePickerData, or if the webview has been destroyed.
+ * @return The WebView's favicon or null.
+ */
+ Bitmap getFavicon() {
+ if (mPickerData != null) {
+ return mPickerData.mFavicon;
+ }
+ return null;
+ }
+
+ /**
+ * Return the tab's error console. Creates the console if createIfNEcessary
+ * is true and we haven't already created the console.
+ * @param createIfNecessary Flag to indicate if the console should be
+ * created if it has not been already.
+ * @return The tab's error console, or null if one has not been created and
+ * createIfNecessary is false.
+ */
+ ErrorConsoleView getErrorConsole(boolean createIfNecessary) {
+ if (createIfNecessary && mErrorConsole == null) {
+ mErrorConsole = new ErrorConsoleView(mActivity);
+ mErrorConsole.setWebView(mMainView);
+ }
+ return mErrorConsole;
+ }
+
+ /**
+ * If this Tab was created through another Tab, then this method returns
+ * that Tab.
+ * @return the Tab parent or null
+ */
+ public Tab getParentTab() {
+ return mParentTab;
+ }
+
+ /**
+ * Return whether this tab should be closed when it is backing out of the
+ * first page.
+ * @return TRUE if this tab should be closed when exit.
+ */
+ boolean closeOnExit() {
+ return mCloseOnExit;
+ }
+
+ /**
+ * Saves the current lock-icon state before resetting the lock icon. If we
+ * have an error, we may need to roll back to the previous state.
+ */
+ void resetLockIcon(String url) {
+ mPrevLockIconType = mLockIconType;
+ mLockIconType = BrowserActivity.LOCK_ICON_UNSECURE;
+ if (URLUtil.isHttpsUrl(url)) {
+ mLockIconType = BrowserActivity.LOCK_ICON_SECURE;
+ }
+ }
+
+ /**
+ * Reverts the lock-icon state to the last saved state, for example, if we
+ * had an error, and need to cancel the load.
+ */
+ void revertLockIcon() {
+ mLockIconType = mPrevLockIconType;
+ }
+
+ /**
+ * @return The tab's lock icon type.
+ */
+ int getLockIconType() {
+ return mLockIconType;
+ }
+
+ /**
+ * @return TRUE if onPageStarted is called while onPageFinished is not
+ * called yet.
+ */
+ boolean inLoad() {
+ return mInLoad;
+ }
+
+ // force mInLoad to be false. This should only be called before closing the
+ // tab to ensure BrowserActivity's pauseWebViewTimers() is called correctly.
+ void clearInLoad() {
+ mInLoad = false;
+ }
+
+ void populatePickerData() {
+ if (mMainView == null) {
+ populatePickerDataFromSavedState();
+ return;
+ }
+
+ // FIXME: The only place we cared about subwindow was for
+ // bookmarking (i.e. not when saving state). Was this deliberate?
+ final WebBackForwardList list = mMainView.copyBackForwardList();
+ final WebHistoryItem item = list != null ? list.getCurrentItem() : null;
+ populatePickerData(item);
+ }
+
+ // Populate the picker data using the given history item and the current top
+ // WebView.
+ private void populatePickerData(WebHistoryItem item) {
+ mPickerData = new PickerData();
+ if (item != null) {
+ mPickerData.mUrl = item.getUrl();
+ mPickerData.mTitle = item.getTitle();
+ mPickerData.mFavicon = item.getFavicon();
+ if (mPickerData.mTitle == null) {
+ mPickerData.mTitle = mPickerData.mUrl;
+ }
+ }
+ }
+
+ // Create the PickerData and populate it using the saved state of the tab.
+ void populatePickerDataFromSavedState() {
+ if (mSavedState == null) {
+ return;
+ }
+ mPickerData = new PickerData();
+ mPickerData.mUrl = mSavedState.getString(CURRURL);
+ mPickerData.mTitle = mSavedState.getString(CURRTITLE);
+ }
+
+ void clearPickerData() {
+ mPickerData = null;
+ }
+
+ /**
+ * Get the saved state bundle.
+ * @return
+ */
+ Bundle getSavedState() {
+ return mSavedState;
+ }
+
+ /**
+ * Set the saved state.
+ */
+ void setSavedState(Bundle state) {
+ mSavedState = state;
+ }
+
+ /**
+ * @return TRUE if succeed in saving the state.
+ */
+ boolean saveState() {
+ // If the WebView is null it means we ran low on memory and we already
+ // stored the saved state in mSavedState.
+ if (mMainView == null) {
+ return mSavedState != null;
+ }
+
+ mSavedState = new Bundle();
+ final WebBackForwardList list = mMainView.saveState(mSavedState);
+ if (list != null) {
+ final File f = new File(mActivity.getTabControl().getThumbnailDir(),
+ mMainView.hashCode() + "_pic.save");
+ if (mMainView.savePicture(mSavedState, f)) {
+ mSavedState.putString(CURRPICTURE, f.getPath());
+ }
+ }
+
+ // Store some extra info for displaying the tab in the picker.
+ final WebHistoryItem item = list != null ? list.getCurrentItem() : null;
+ populatePickerData(item);
+
+ if (mPickerData.mUrl != null) {
+ mSavedState.putString(CURRURL, mPickerData.mUrl);
+ }
+ if (mPickerData.mTitle != null) {
+ mSavedState.putString(CURRTITLE, mPickerData.mTitle);
+ }
+ mSavedState.putBoolean(CLOSEONEXIT, mCloseOnExit);
+ if (mAppId != null) {
+ mSavedState.putString(APPID, mAppId);
+ }
+ if (mOriginalUrl != null) {
+ mSavedState.putString(ORIGINALURL, mOriginalUrl);
+ }
+ // Remember the parent tab so the relationship can be restored.
+ if (mParentTab != null) {
+ mSavedState.putInt(PARENTTAB, mActivity.getTabControl().getTabIndex(
+ mParentTab));
+ }
+ return true;
+ }
+
+ /*
+ * Restore the state of the tab.
+ */
+ boolean restoreState(Bundle b) {
+ if (b == null) {
+ return false;
+ }
+ // Restore the internal state even if the WebView fails to restore.
+ // This will maintain the app id, original url and close-on-exit values.
+ mSavedState = null;
+ mPickerData = null;
+ mCloseOnExit = b.getBoolean(CLOSEONEXIT);
+ mAppId = b.getString(APPID);
+ mOriginalUrl = b.getString(ORIGINALURL);
+
+ final WebBackForwardList list = mMainView.restoreState(b);
+ if (list == null) {
+ return false;
+ }
+ if (b.containsKey(CURRPICTURE)) {
+ final File f = new File(b.getString(CURRPICTURE));
+ mMainView.restorePicture(b, f);
+ f.delete();
+ }
+ return true;
+ }
+}
diff --git a/src/com/android/browser/TabControl.java b/src/com/android/browser/TabControl.java
index 2f15a9c..8373182 100644
--- a/src/com/android/browser/TabControl.java
+++ b/src/com/android/browser/TabControl.java
@@ -16,33 +16,13 @@
package com.android.browser;
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.Picture;
-import android.net.http.SslError;
import android.os.Bundle;
-import android.os.Message;
import android.util.Log;
-import android.view.Gravity;
-import android.view.LayoutInflater;
import android.view.View;
-import android.view.ViewGroup;
-import android.view.View.OnClickListener;
-import android.webkit.HttpAuthHandler;
-import android.webkit.JsPromptResult;
-import android.webkit.JsResult;
-import android.webkit.SslErrorHandler;
import android.webkit.WebBackForwardList;
-import android.webkit.WebChromeClient;
-import android.webkit.WebHistoryItem;
import android.webkit.WebView;
-import android.webkit.WebViewClient;
-import android.widget.FrameLayout;
-import android.widget.ImageButton;
-import android.widget.LinearLayout;
import java.io.File;
-import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Vector;
@@ -50,13 +30,7 @@
// Log Tag
private static final String LOGTAG = "TabControl";
// Maximum number of tabs.
- static final int MAX_TABS = 8;
- // Static instance of an empty callback.
- private static final WebViewClient mEmptyClient =
- new WebViewClient();
- // Instance of BackgroundChromeClient for background tabs.
- private final BackgroundChromeClient mBackgroundChromeClient =
- new BackgroundChromeClient();
+ private static final int MAX_TABS = 8;
// Private array of WebViews that are used as tabs.
private ArrayList<Tab> mTabs = new ArrayList<Tab>(MAX_TABS);
// Queue of most recently viewed tabs.
@@ -66,393 +40,6 @@
// A private instance of BrowserActivity to interface with when adding and
// switching between tabs.
private final BrowserActivity mActivity;
- // Inflation service for making subwindows.
- private final LayoutInflater mInflateService;
- // Subclass of WebViewClient used in subwindows to notify the main
- // WebViewClient of certain WebView activities.
- private static class SubWindowClient extends WebViewClient {
- // The main WebViewClient.
- private final WebViewClient mClient;
-
- SubWindowClient(WebViewClient client) {
- mClient = client;
- }
- @Override
- public void doUpdateVisitedHistory(WebView view, String url,
- boolean isReload) {
- mClient.doUpdateVisitedHistory(view, url, isReload);
- }
- @Override
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
- return mClient.shouldOverrideUrlLoading(view, url);
- }
- @Override
- public void onReceivedSslError(WebView view, SslErrorHandler handler,
- SslError error) {
- mClient.onReceivedSslError(view, handler, error);
- }
- @Override
- public void onReceivedHttpAuthRequest(WebView view,
- HttpAuthHandler handler, String host, String realm) {
- mClient.onReceivedHttpAuthRequest(view, handler, host, realm);
- }
- @Override
- public void onFormResubmission(WebView view, Message dontResend,
- Message resend) {
- mClient.onFormResubmission(view, dontResend, resend);
- }
- @Override
- public void onReceivedError(WebView view, int errorCode,
- String description, String failingUrl) {
- mClient.onReceivedError(view, errorCode, description, failingUrl);
- }
- @Override
- public boolean shouldOverrideKeyEvent(WebView view,
- android.view.KeyEvent event) {
- return mClient.shouldOverrideKeyEvent(view, event);
- }
- @Override
- public void onUnhandledKeyEvent(WebView view,
- android.view.KeyEvent event) {
- mClient.onUnhandledKeyEvent(view, event);
- }
- }
- // Subclass of WebChromeClient to display javascript dialogs.
- private class SubWindowChromeClient extends WebChromeClient {
- // This subwindow's tab.
- private final Tab mTab;
- // The main WebChromeClient.
- private final WebChromeClient mClient;
-
- SubWindowChromeClient(Tab t, WebChromeClient client) {
- mTab = t;
- mClient = client;
- }
- @Override
- public void onProgressChanged(WebView view, int newProgress) {
- mClient.onProgressChanged(view, newProgress);
- }
- @Override
- public boolean onCreateWindow(WebView view, boolean dialog,
- boolean userGesture, android.os.Message resultMsg) {
- return mClient.onCreateWindow(view, dialog, userGesture, resultMsg);
- }
- @Override
- public void onCloseWindow(WebView window) {
- if (Browser.DEBUG && window != mTab.mSubView) {
- throw new AssertionError("Can't close the window");
- }
- mActivity.dismissSubWindow(mTab);
- }
- }
- // Background WebChromeClient for focusing tabs
- private class BackgroundChromeClient extends WebChromeClient {
- @Override
- public void onRequestFocus(WebView view) {
- Tab t = getTabFromView(view);
- if (t != getCurrentTab()) {
- mActivity.switchToTab(getTabIndex(t));
- }
- }
- }
-
- // Extra saved information for displaying the tab in the picker.
- public static class PickerData {
- String mUrl;
- String mTitle;
- Bitmap mFavicon;
- float mScale;
- int mScrollX;
- int mScrollY;
- }
-
- /**
- * Private class for maintaining Tabs with a main WebView and a subwindow.
- */
- public class Tab {
- // The Geolocation permissions prompt
- private GeolocationPermissionsPrompt mGeolocationPermissionsPrompt;
- private View mContainer;
- // Main WebView
- private WebView mMainView;
- // Subwindow WebView
- private WebView mSubView;
- // Subwindow container
- private View mSubViewContainer;
- // Subwindow callback
- private SubWindowClient mSubViewClient;
- // Subwindow chrome callback
- private SubWindowChromeClient mSubViewChromeClient;
- // Saved bundle for when we are running low on memory. It contains the
- // information needed to restore the WebView if the user goes back to
- // the tab.
- private Bundle mSavedState;
- // Data used when displaying the tab in the picker.
- private PickerData mPickerData;
-
- // Parent Tab. This is the Tab that created this Tab, or null
- // if the Tab was created by the UI
- private Tab mParentTab;
- // Tab that constructed by this Tab. This is used when this
- // Tab is destroyed, it clears all mParentTab values in the
- // children.
- private Vector<Tab> mChildTabs;
-
- private Boolean mCloseOnExit;
- // Application identifier used to find tabs that another application
- // wants to reuse.
- private String mAppId;
- // Keep the original url around to avoid killing the old WebView if the
- // url has not changed.
- private String mOriginalUrl;
-
- private ErrorConsoleView mErrorConsole;
- // the lock icon type and previous lock icon type for the tab
- private int mSavedLockIconType;
- private int mSavedPrevLockIconType;
-
- // Construct a new tab
- private Tab(WebView w, boolean closeOnExit, String appId, String url, Context context) {
- mCloseOnExit = closeOnExit;
- mAppId = appId;
- mOriginalUrl = url;
- mSavedLockIconType = BrowserActivity.LOCK_ICON_UNSECURE;
- mSavedPrevLockIconType = BrowserActivity.LOCK_ICON_UNSECURE;
-
- // The tab consists of a container view, which contains the main
- // WebView, as well as any other UI elements associated with the tab.
- LayoutInflater factory = LayoutInflater.from(context);
- mContainer = factory.inflate(R.layout.tab, null);
-
- mGeolocationPermissionsPrompt =
- (GeolocationPermissionsPrompt) mContainer.findViewById(
- R.id.geolocation_permissions_prompt);
-
- setWebView(w);
- }
-
- /**
- * Sets the WebView for this tab, correctly removing the old WebView
- * from the container view.
- */
- public void setWebView(WebView w) {
- if (mMainView == w) {
- return;
- }
- // If the WebView is changing, the page will be reloaded, so any ongoing Geolocation
- // permission requests are void.
- mGeolocationPermissionsPrompt.hide();
-
- // Just remove the old one.
- FrameLayout wrapper =
- (FrameLayout) mContainer.findViewById(R.id.webview_wrapper);
- wrapper.removeView(mMainView);
- mMainView = w;
- }
-
- /**
- * This method attaches both the WebView and any sub window to the
- * given content view.
- */
- public void attachTabToContentView(ViewGroup content) {
- if (mMainView == null) {
- return;
- }
-
- // Attach the WebView to the container and then attach the
- // container to the content view.
- FrameLayout wrapper =
- (FrameLayout) mContainer.findViewById(R.id.webview_wrapper);
- wrapper.addView(mMainView);
- content.addView(mContainer, BrowserActivity.COVER_SCREEN_PARAMS);
- attachSubWindow(content);
- }
-
- /**
- * Remove the WebView and any sub window from the given content view.
- */
- public void removeTabFromContentView(ViewGroup content) {
- if (mMainView == null) {
- return;
- }
-
- // Remove the container from the content and then remove the
- // WebView from the container. This will trigger a focus change
- // needed by WebView.
- FrameLayout wrapper =
- (FrameLayout) mContainer.findViewById(R.id.webview_wrapper);
- wrapper.removeView(mMainView);
- content.removeView(mContainer);
- removeSubWindow(content);
- }
-
- /**
- * Attach the sub window to the content view.
- */
- public void attachSubWindow(ViewGroup content) {
- if (mSubView != null) {
- content.addView(mSubViewContainer,
- BrowserActivity.COVER_SCREEN_PARAMS);
- }
- }
-
- /**
- * Remove the sub window from the content view.
- */
- public void removeSubWindow(ViewGroup content) {
- if (mSubView != null) {
- content.removeView(mSubViewContainer);
- }
- }
-
- /**
- * Return the top window of this tab; either the subwindow if it is not
- * null or the main window.
- * @return The top window of this tab.
- */
- public WebView getTopWindow() {
- if (mSubView != null) {
- return mSubView;
- }
- return mMainView;
- }
-
- /**
- * Return the main window of this tab. Note: if a tab is freed in the
- * background, this can return null. It is only guaranteed to be
- * non-null for the current tab.
- * @return The main WebView of this tab.
- */
- public WebView getWebView() {
- return mMainView;
- }
-
- /**
- * @return The geolocation permissions prompt for this tab.
- */
- public GeolocationPermissionsPrompt getGeolocationPermissionsPrompt() {
- return mGeolocationPermissionsPrompt;
- }
-
- /**
- * Return the subwindow of this tab or null if there is no subwindow.
- * @return The subwindow of this tab or null.
- */
- public WebView getSubWebView() {
- return mSubView;
- }
-
- /**
- * Get the url of this tab. Valid after calling populatePickerData, but
- * before calling wipePickerData, or if the webview has been destroyed.
- *
- * @return The WebView's url or null.
- */
- public String getUrl() {
- if (mPickerData != null) {
- return mPickerData.mUrl;
- }
- return null;
- }
-
- /**
- * Get the title of this tab. Valid after calling populatePickerData,
- * but before calling wipePickerData, or if the webview has been
- * destroyed. If the url has no title, use the url instead.
- *
- * @return The WebView's title (or url) or null.
- */
- public String getTitle() {
- if (mPickerData != null) {
- return mPickerData.mTitle;
- }
- return null;
- }
-
- public Bitmap getFavicon() {
- if (mPickerData != null) {
- return mPickerData.mFavicon;
- }
- return null;
- }
-
- private void setParentTab(Tab parent) {
- mParentTab = parent;
- // This tab may have been freed due to low memory. If that is the
- // case, the parent tab index is already saved. If we are changing
- // that index (most likely due to removing the parent tab) we must
- // update the parent tab index in the saved Bundle.
- if (mSavedState != null) {
- if (parent == null) {
- mSavedState.remove(PARENTTAB);
- } else {
- mSavedState.putInt(PARENTTAB, getTabIndex(parent));
- }
- }
- }
-
- /**
- * When a Tab is created through the content of another Tab, then
- * we associate the Tabs.
- * @param child the Tab that was created from this Tab
- */
- public void addChildTab(Tab child) {
- if (mChildTabs == null) {
- mChildTabs = new Vector<Tab>();
- }
- mChildTabs.add(child);
- child.setParentTab(this);
- }
-
- private void removeFromTree() {
- // detach the children
- if (mChildTabs != null) {
- for(Tab t : mChildTabs) {
- t.setParentTab(null);
- }
- }
-
- // Find myself in my parent list
- if (mParentTab != null) {
- mParentTab.mChildTabs.remove(this);
- }
- }
-
- /**
- * If this Tab was created through another Tab, then this method
- * returns that Tab.
- * @return the Tab parent or null
- */
- public Tab getParentTab() {
- return mParentTab;
- }
-
- /**
- * Return whether this tab should be closed when it is backing out of
- * the first page.
- * @return TRUE if this tab should be closed when exit.
- */
- public boolean closeOnExit() {
- return mCloseOnExit;
- }
-
- void setLockIconType(int type) {
- mSavedLockIconType = type;
- }
-
- int getLockIconType() {
- return mSavedLockIconType;
- }
-
- void setPrevLockIconType(int type) {
- mSavedPrevLockIconType = type;
- }
-
- int getPrevLockIconType() {
- return mSavedPrevLockIconType;
- }
- };
-
// Directory to store thumbnails for each WebView.
private final File mThumbnailDir;
@@ -464,9 +51,6 @@
*/
TabControl(BrowserActivity activity) {
mActivity = activity;
- mInflateService =
- ((LayoutInflater) activity.getSystemService(
- Context.LAYOUT_INFLATER_SERVICE));
mThumbnailDir = activity.getDir("thumbnails", 0);
}
@@ -488,29 +72,7 @@
if (t == null) {
return null;
}
- return t.mMainView;
- }
-
- /**
- * Return the current tab's error console. Creates the console if createIfNEcessary
- * is true and we haven't already created the console.
- * @param createIfNecessary Flag to indicate if the console should be created if it has
- * not been already.
- * @return The current tab's error console, or null if one has not been created and
- * createIfNecessary is false.
- */
- ErrorConsoleView getCurrentErrorConsole(boolean createIfNecessary) {
- Tab t = getTab(mCurrentTab);
- if (t == null) {
- return null;
- }
-
- if (createIfNecessary && t.mErrorConsole == null) {
- t.mErrorConsole = new ErrorConsoleView(mActivity);
- t.mErrorConsole.setWebView(t.mMainView);
- }
-
- return t.mErrorConsole;
+ return t.getWebView();
}
/**
@@ -523,7 +85,7 @@
if (t == null) {
return null;
}
- return t.mSubView != null ? t.mSubView : t.mMainView;
+ return t.getTopWindow();
}
/**
@@ -535,7 +97,7 @@
if (t == null) {
return null;
}
- return t.mSubView;
+ return t.getSubWebView();
}
/**
@@ -578,6 +140,10 @@
return mTabs.indexOf(tab);
}
+ boolean canCreateNewTab() {
+ return MAX_TABS != mTabs.size();
+ }
+
/**
* Create a new tab.
* @return The newly createTab or null if we have reached the maximum
@@ -592,10 +158,10 @@
final WebView w = createNewWebView();
// Create a new tab and add it to the tab list
- Tab t = new Tab(w, closeOnExit, appId, url, mActivity);
+ Tab t = new Tab(mActivity, w, closeOnExit, appId, url);
mTabs.add(t);
// Initially put the tab in the background.
- putTabInBackground(t);
+ t.putInBackground();
return t;
}
@@ -616,86 +182,51 @@
if (t == null) {
return false;
}
+
// Only remove the tab if it is the current one.
if (getCurrentTab() == t) {
- putTabInBackground(t);
+ t.putInBackground();
+ mCurrentTab = -1;
}
- // Only destroy the WebView if it still exists.
- if (t.mMainView != null) {
- // Take down the sub window.
- dismissSubWindow(t);
- // Remove the WebView's settings from the BrowserSettings list of
- // observers.
- BrowserSettings.getInstance().deleteObserver(
- t.mMainView.getSettings());
- WebView w = t.mMainView;
- t.setWebView(null);
- // Destroy the main view
- w.destroy();
- }
+ // destroy the tab
+ t.destroy();
// clear it's references to parent and children
t.removeFromTree();
-
// Remove it from our list of tabs.
mTabs.remove(t);
// The tab indices have shifted, update all the saved state so we point
// to the correct index.
for (Tab tab : mTabs) {
- if (tab.mChildTabs != null) {
- for (Tab child : tab.mChildTabs) {
+ Vector<Tab> children = tab.getChildTabs();
+ if (children != null) {
+ for (Tab child : children) {
child.setParentTab(tab);
}
}
}
-
// This tab may have been pushed in to the background and then closed.
// If the saved state contains a picture file, delete the file.
- if (t.mSavedState != null) {
- if (t.mSavedState.containsKey(CURRPICTURE)) {
- new File(t.mSavedState.getString(CURRPICTURE)).delete();
+ Bundle savedState = t.getSavedState();
+ if (savedState != null) {
+ if (savedState.containsKey(Tab.CURRPICTURE)) {
+ new File(savedState.getString(Tab.CURRPICTURE)).delete();
}
}
// Remove it from the queue of viewed tabs.
mTabQueue.remove(t);
- mCurrentTab = -1;
return true;
}
/**
- * Clear the back/forward list for all the current tabs.
- */
- void clearHistory() {
- int size = getTabCount();
- for (int i = 0; i < size; i++) {
- Tab t = mTabs.get(i);
- // TODO: if a tab is freed due to low memory, its history is not
- // cleared here.
- if (t.mMainView != null) {
- t.mMainView.clearHistory();
- }
- if (t.mSubView != null) {
- t.mSubView.clearHistory();
- }
- }
- }
-
- /**
* Destroy all the tabs and subwindows
*/
void destroy() {
- BrowserSettings s = BrowserSettings.getInstance();
for (Tab t : mTabs) {
- if (t.mMainView != null) {
- dismissSubWindow(t);
- s.deleteObserver(t.mMainView.getSettings());
- WebView w = t.mMainView;
- t.setWebView(null);
- w.destroy();
- }
+ t.destroy();
}
mTabs.clear();
mTabQueue.clear();
@@ -709,17 +240,6 @@
return mTabs.size();
}
- // Used for saving and restoring each Tab
- private static final String WEBVIEW = "webview";
- private static final String NUMTABS = "numTabs";
- private static final String CURRTAB = "currentTab";
- private static final String CURRURL = "currentUrl";
- private static final String CURRTITLE = "currentTitle";
- private static final String CURRPICTURE = "currentPicture";
- private static final String CLOSEONEXIT = "closeonexit";
- private static final String PARENTTAB = "parentTab";
- private static final String APPID = "appid";
- private static final String ORIGINALURL = "originalUrl";
/**
* Save the state of all the Tabs.
@@ -727,13 +247,13 @@
*/
void saveState(Bundle outState) {
final int numTabs = getTabCount();
- outState.putInt(NUMTABS, numTabs);
+ outState.putInt(Tab.NUMTABS, numTabs);
final int index = getCurrentIndex();
- outState.putInt(CURRTAB, (index >= 0 && index < numTabs) ? index : 0);
+ outState.putInt(Tab.CURRTAB, (index >= 0 && index < numTabs) ? index : 0);
for (int i = 0; i < numTabs; i++) {
final Tab t = getTab(i);
- if (saveState(t)) {
- outState.putBundle(WEBVIEW + i, t.mSavedState);
+ if (t.saveState()) {
+ outState.putBundle(Tab.WEBVIEW + i, t.getSavedState());
}
}
}
@@ -746,33 +266,34 @@
*/
boolean restoreState(Bundle inState) {
final int numTabs = (inState == null)
- ? -1 : inState.getInt(NUMTABS, -1);
+ ? -1 : inState.getInt(Tab.NUMTABS, -1);
if (numTabs == -1) {
return false;
} else {
- final int currentTab = inState.getInt(CURRTAB, -1);
+ final int currentTab = inState.getInt(Tab.CURRTAB, -1);
for (int i = 0; i < numTabs; i++) {
if (i == currentTab) {
Tab t = createNewTab();
// Me must set the current tab before restoring the state
// so that all the client classes are set.
setCurrentTab(t);
- if (!restoreState(inState.getBundle(WEBVIEW + i), t)) {
+ if (!t.restoreState(inState.getBundle(Tab.WEBVIEW + i))) {
Log.w(LOGTAG, "Fail in restoreState, load home page.");
- t.mMainView.loadUrl(BrowserSettings.getInstance()
+ t.getWebView().loadUrl(BrowserSettings.getInstance()
.getHomePage());
}
} else {
// Create a new tab and don't restore the state yet, add it
// to the tab list
- Tab t = new Tab(null, false, null, null, mActivity);
- t.mSavedState = inState.getBundle(WEBVIEW + i);
- if (t.mSavedState != null) {
- populatePickerDataFromSavedState(t);
+ Tab t = new Tab(mActivity, null, false, null, null);
+ Bundle state = inState.getBundle(Tab.WEBVIEW + i);
+ if (state != null) {
+ t.setSavedState(state);
+ t.populatePickerDataFromSavedState();
// Need to maintain the app id and original url so we
// can possibly reuse this tab.
- t.mAppId = t.mSavedState.getString(APPID);
- t.mOriginalUrl = t.mSavedState.getString(ORIGINALURL);
+ t.setAppId(state.getString(Tab.APPID));
+ t.setOriginalUrl(state.getString(Tab.ORIGINALURL));
}
mTabs.add(t);
mTabQueue.add(t);
@@ -781,10 +302,10 @@
// Rebuild the tree of tabs. Do this after all tabs have been
// created/restored so that the parent tab exists.
for (int i = 0; i < numTabs; i++) {
- final Bundle b = inState.getBundle(WEBVIEW + i);
+ final Bundle b = inState.getBundle(Tab.WEBVIEW + i);
final Tab t = getTab(i);
if (b != null && t != null) {
- final int parentIndex = b.getInt(PARENTTAB, -1);
+ final int parentIndex = b.getInt(Tab.PARENTTAB, -1);
if (parentIndex != -1) {
final Tab parent = getTab(parentIndex);
if (parent != null) {
@@ -808,9 +329,10 @@
Tab t = getLeastUsedTab(getCurrentTab());
if (t != null) {
Log.w(LOGTAG, "Free a tab in the browser");
- freeTab(t);
- // force a gc
- System.gc();
+ // store the WebView's state.
+ t.saveState();
+ // destroy the tab
+ t.destroy();
return;
}
@@ -820,8 +342,6 @@
if (view != null) {
view.freeMemory();
}
- // force a gc
- System.gc();
}
private Tab getLeastUsedTab(Tab current) {
@@ -831,7 +351,7 @@
return null;
}
- // Rip through the queue starting at the beginning and teardown the
+ // Rip through the queue starting at the beginning and tear down the
// next available tab.
Tab t = null;
int i = 0;
@@ -842,69 +362,18 @@
do {
t = mTabQueue.get(i++);
} while (i < queueSize
- && ((t != null && t.mMainView == null)
- || t == current.mParentTab));
+ && ((t != null && t.getWebView() == null)
+ || t == current.getParentTab()));
// Don't do anything if the last remaining tab is the current one or if
// the last tab has been freed already.
- if (t == current || t.mMainView == null) {
+ if (t == current || t.getWebView() == null) {
return null;
}
return t;
}
- private void freeTab(Tab t) {
- // Store the WebView's state.
- saveState(t);
-
- // Tear down the tab.
- dismissSubWindow(t);
- // Remove the WebView's settings from the BrowserSettings list of
- // observers.
- BrowserSettings.getInstance().deleteObserver(t.mMainView.getSettings());
- WebView w = t.mMainView;
- t.setWebView(null);
- w.destroy();
- }
-
- /**
- * Create a new subwindow unless a subwindow already exists.
- * @return True if a new subwindow was created. False if one already exists.
- */
- void createSubWindow() {
- Tab t = getTab(mCurrentTab);
- if (t != null && t.mSubView == null) {
- final View v = mInflateService.inflate(R.layout.browser_subwindow, null);
- final WebView w = (WebView) v.findViewById(R.id.webview);
- w.setMapTrackballToArrowKeys(false); // use trackball directly
- final SubWindowClient subClient =
- new SubWindowClient(mActivity.getWebViewClient());
- final SubWindowChromeClient subChromeClient =
- new SubWindowChromeClient(t,
- mActivity.getWebChromeClient());
- w.setWebViewClient(subClient);
- w.setWebChromeClient(subChromeClient);
- w.setDownloadListener(mActivity);
- w.setOnCreateContextMenuListener(mActivity);
- final BrowserSettings s = BrowserSettings.getInstance();
- s.addObserver(w.getSettings()).update(s, null);
- t.mSubView = w;
- t.mSubViewClient = subClient;
- t.mSubViewChromeClient = subChromeClient;
- // FIXME: I really hate having to know the name of the view
- // containing the webview.
- t.mSubViewContainer = v.findViewById(R.id.subwindow_container);
- final ImageButton cancel =
- (ImageButton) v.findViewById(R.id.subwindow_close);
- cancel.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- subChromeClient.onCloseWindow(w);
- }
- });
- }
- }
-
/**
* Show the tab that contains the given WebView.
* @param view The WebView used to find the tab.
@@ -913,7 +382,7 @@
final int size = getTabCount();
for (int i = 0; i < size; i++) {
final Tab t = getTab(i);
- if (t.mSubView == view || t.mMainView == view) {
+ if (t.getSubWebView() == view || t.getWebView() == view) {
return t;
}
}
@@ -931,22 +400,42 @@
final int size = getTabCount();
for (int i = 0; i < size; i++) {
final Tab t = getTab(i);
- if (id.equals(t.mAppId)) {
+ if (id.equals(t.getAppId())) {
return t;
}
}
return null;
}
+ /**
+ * Stop loading in all opened WebView including subWindows.
+ */
+ void stopAllLoading() {
+ final int size = getTabCount();
+ for (int i = 0; i < size; i++) {
+ final Tab t = getTab(i);
+ final WebView webview = t.getWebView();
+ if (webview != null) {
+ webview.stopLoading();
+ }
+ final WebView subview = t.getSubWebView();
+ if (subview != null) {
+ webview.stopLoading();
+ }
+ }
+ }
+
// This method checks if a non-app tab (one created within the browser)
// matches the given url.
private boolean tabMatchesUrl(Tab t, String url) {
- if (t.mAppId != null) {
+ if (t.getAppId() != null) {
return false;
- } else if (t.mMainView == null) {
+ }
+ WebView webview = t.getWebView();
+ if (webview == null) {
return false;
- } else if (url.equals(t.mMainView.getUrl()) ||
- url.equals(t.mMainView.getOriginalUrl())) {
+ } else if (url.equals(webview.getUrl())
+ || url.equals(webview.getOriginalUrl())) {
return true;
}
return false;
@@ -982,9 +471,9 @@
* was deleted.
*/
boolean recreateWebView(Tab t, String url) {
- final WebView w = t.mMainView;
+ final WebView w = t.getWebView();
if (w != null) {
- if (url != null && url.equals(t.mOriginalUrl)) {
+ if (url != null && url.equals(t.getOriginalUrl())) {
// The original url matches the current url. Just go back to the
// first history item so we can load it faster than if we
// rebuilt the WebView.
@@ -995,11 +484,7 @@
return false;
}
}
- // Remove the settings object from the global settings and destroy
- // the WebView.
- BrowserSettings.getInstance().deleteObserver(
- t.mMainView.getSettings());
- t.mMainView.destroy();
+ t.destroy();
}
// Create a new WebView. If this tab is the current tab, we need to put
// back all the clients so force it to be the current tab.
@@ -1007,12 +492,11 @@
if (getCurrentTab() == t) {
setCurrentTab(t, true);
}
- // Clear the saved state except for the app id and close-on-exit
- // values.
- t.mSavedState = null;
- t.mPickerData = null;
+ // Clear the saved state and picker data
+ t.setSavedState(null);
+ t.clearPickerData();
// Save the new url in order to avoid deleting the WebView.
- t.mOriginalUrl = url;
+ t.setOriginalUrl(url);
return true;
}
@@ -1027,6 +511,11 @@
w.setMapTrackballToArrowKeys(false); // use trackball directly
// Enable the built-in zoom
w.getSettings().setBuiltInZoomControls(true);
+ // Attach DownloadManager so that downloads can start in an active or
+ // a non-active window. This can happen when going to a site that does
+ // a redirect after a period of time. The user could have switched to
+ // another tab while waiting for the download to start.
+ w.setDownloadListener(mActivity);
// Add this WebView to the settings observer list and update the
// settings
final BrowserSettings s = BrowserSettings.getInstance();
@@ -1043,48 +532,20 @@
return setCurrentTab(newTab, false);
}
- /*package*/ void pauseCurrentTab() {
+ void pauseCurrentTab() {
Tab t = getCurrentTab();
if (t != null) {
- t.mMainView.onPause();
- if (t.mSubView != null) {
- t.mSubView.onPause();
- }
+ t.pause();
}
}
- /*package*/ void resumeCurrentTab() {
+ void resumeCurrentTab() {
Tab t = getCurrentTab();
if (t != null) {
- t.mMainView.onResume();
- if (t.mSubView != null) {
- t.mSubView.onResume();
- }
+ t.resume();
}
}
- private void putViewInForeground(WebView v, WebViewClient vc,
- WebChromeClient cc) {
- v.setWebViewClient(vc);
- v.setWebChromeClient(cc);
- v.setOnCreateContextMenuListener(mActivity);
- v.setDownloadListener(mActivity);
- v.onResume();
- }
-
- private void putViewInBackground(WebView v) {
- // Set an empty callback so that default actions are not triggered.
- v.setWebViewClient(mEmptyClient);
- v.setWebChromeClient(mBackgroundChromeClient);
- v.setOnCreateContextMenuListener(null);
- // Leave the DownloadManager attached so that downloads can start in
- // a non-active window. This can happen when going to a site that does
- // a redirect after a period of time. The user could have switched to
- // another tab while waiting for the download to start.
- v.setDownloadListener(mActivity);
- v.onPause();
- }
-
/**
* If force is true, this method skips the check for newTab == current.
*/
@@ -1094,10 +555,9 @@
return true;
}
if (current != null) {
- // Remove the current WebView and the container of the subwindow
- putTabInBackground(current);
+ current.putInBackground();
+ mCurrentTab = -1;
}
-
if (newTab == null) {
return false;
}
@@ -1109,214 +569,22 @@
}
mTabQueue.add(newTab);
- WebView mainView;
-
// Display the new current tab
mCurrentTab = mTabs.indexOf(newTab);
- mainView = newTab.mMainView;
+ WebView mainView = newTab.getWebView();
boolean needRestore = (mainView == null);
if (needRestore) {
// Same work as in createNewTab() except don't do new Tab()
mainView = createNewWebView();
newTab.setWebView(mainView);
}
- putViewInForeground(mainView, mActivity.getWebViewClient(),
- mActivity.getWebChromeClient());
- // Add the subwindow if it exists
- if (newTab.mSubViewContainer != null) {
- putViewInForeground(newTab.mSubView, newTab.mSubViewClient,
- newTab.mSubViewChromeClient);
- }
+ newTab.putInForeground();
if (needRestore) {
// Have to finish setCurrentTab work before calling restoreState
- if (!restoreState(newTab.mSavedState, newTab)) {
+ if (!newTab.restoreState(newTab.getSavedState())) {
mainView.loadUrl(BrowserSettings.getInstance().getHomePage());
}
}
return true;
}
-
- /*
- * Put the tab in the background using all the empty/background clients.
- */
- private void putTabInBackground(Tab t) {
- putViewInBackground(t.mMainView);
- if (t.mSubView != null) {
- putViewInBackground(t.mSubView);
- }
- }
-
- /*
- * Dismiss the subwindow for the given tab.
- */
- void dismissSubWindow(Tab t) {
- if (t != null && t.mSubView != null) {
- BrowserSettings.getInstance().deleteObserver(
- t.mSubView.getSettings());
- t.mSubView.destroy();
- t.mSubView = null;
- t.mSubViewContainer = null;
- }
- }
-
- /**
- * Ensure that Tab t has data to display in the tab picker.
- * @param t Tab to populate.
- */
- /* package */ void populatePickerData(Tab t) {
- if (t == null) {
- return;
- }
-
- // mMainView == null indicates that the tab has been freed.
- if (t.mMainView == null) {
- populatePickerDataFromSavedState(t);
- return;
- }
-
- // FIXME: The only place we cared about subwindow was for
- // bookmarking (i.e. not when saving state). Was this deliberate?
- final WebBackForwardList list = t.mMainView.copyBackForwardList();
- final WebHistoryItem item =
- list != null ? list.getCurrentItem() : null;
- populatePickerData(t, item);
- }
-
- // Create the PickerData and populate it using the saved state of the tab.
- private void populatePickerDataFromSavedState(Tab t) {
- if (t.mSavedState == null) {
- return;
- }
-
- final PickerData data = new PickerData();
- final Bundle state = t.mSavedState;
- data.mUrl = state.getString(CURRURL);
- data.mTitle = state.getString(CURRTITLE);
- // XXX: These keys are from WebView.savePicture so if they change, this
- // will break.
- data.mScale = state.getFloat("scale", 1.0f);
- data.mScrollX = state.getInt("scrollX", 0);
- data.mScrollY = state.getInt("scrollY", 0);
-
- // Set the tab's picker data.
- t.mPickerData = data;
- }
-
- // Populate the picker data using the given history item and the current
- // top WebView.
- private void populatePickerData(Tab t, WebHistoryItem item) {
- final PickerData data = new PickerData();
- if (item != null) {
- data.mUrl = item.getUrl();
- data.mTitle = item.getTitle();
- data.mFavicon = item.getFavicon();
- if (data.mTitle == null) {
- data.mTitle = data.mUrl;
- }
- }
- // We want to display the top window in the tab picker but use the url
- // and title of the main window.
- final WebView w = t.getTopWindow();
- data.mScale = w.getScale();
- data.mScrollX = w.getScrollX();
- data.mScrollY = w.getScrollY();
-
- t.mPickerData = data;
- }
-
- /**
- * Clean up the data for all tabs.
- */
- /* package */ void wipeAllPickerData() {
- int size = getTabCount();
- for (int i = 0; i < size; i++) {
- final Tab t = getTab(i);
- if (t != null && t.mSavedState == null) {
- t.mPickerData = null;
- }
- }
- }
-
- /*
- * Save the state for an individual tab.
- */
- private boolean saveState(Tab t) {
- if (t != null) {
- final WebView w = t.mMainView;
- // If the WebView is null it means we ran low on memory and we
- // already stored the saved state in mSavedState.
- if (w == null) {
- return true;
- }
- final Bundle b = new Bundle();
- final WebBackForwardList list = w.saveState(b);
- if (list != null) {
- final File f = new File(mThumbnailDir, w.hashCode()
- + "_pic.save");
- if (w.savePicture(b, f)) {
- b.putString(CURRPICTURE, f.getPath());
- }
- }
-
- // Store some extra info for displaying the tab in the picker.
- final WebHistoryItem item =
- list != null ? list.getCurrentItem() : null;
- populatePickerData(t, item);
-
- // XXX: WebView.savePicture stores the scale and scroll positions
- // in the bundle so we don't have to do it here.
- final PickerData data = t.mPickerData;
- if (data.mUrl != null) {
- b.putString(CURRURL, data.mUrl);
- }
- if (data.mTitle != null) {
- b.putString(CURRTITLE, data.mTitle);
- }
- b.putBoolean(CLOSEONEXIT, t.mCloseOnExit);
- if (t.mAppId != null) {
- b.putString(APPID, t.mAppId);
- }
- if (t.mOriginalUrl != null) {
- b.putString(ORIGINALURL, t.mOriginalUrl);
- }
-
- // Remember the parent tab so the relationship can be restored.
- if (t.mParentTab != null) {
- b.putInt(PARENTTAB, getTabIndex(t.mParentTab));
- }
-
- // Remember the saved state.
- t.mSavedState = b;
- return true;
- }
- return false;
- }
-
- /*
- * Restore the state of the tab.
- */
- private boolean restoreState(Bundle b, Tab t) {
- if (b == null) {
- return false;
- }
- // Restore the internal state even if the WebView fails to restore.
- // This will maintain the app id, original url and close-on-exit values.
- t.mSavedState = null;
- t.mPickerData = null;
- t.mCloseOnExit = b.getBoolean(CLOSEONEXIT);
- t.mAppId = b.getString(APPID);
- t.mOriginalUrl = b.getString(ORIGINALURL);
-
- final WebView w = t.mMainView;
- final WebBackForwardList list = w.restoreState(b);
- if (list == null) {
- return false;
- }
- if (b.containsKey(CURRPICTURE)) {
- final File f = new File(b.getString(CURRPICTURE));
- w.restorePicture(b, f);
- f.delete();
- }
- return true;
- }
}