Update German translation. Finish optional app bar icons implementation.
authorSoren Stoutner <soren@stoutner.com>
Mon, 5 Sep 2016 20:32:51 +0000 (13:32 -0700)
committerSoren Stoutner <soren@stoutner.com>
Mon, 5 Sep 2016 20:32:51 +0000 (13:32 -0700)
24 files changed:
app/src/free/assets/de/about_privacy_policy.html
app/src/main/assets/de/about_changelog.html
app/src/main/assets/de/about_contributors.html
app/src/main/assets/de/about_licenses.html
app/src/main/assets/de/about_permissions.html
app/src/main/assets/de/about_privacy_policy.html
app/src/main/assets/de/guide_clear_and_exit.html
app/src/main/assets/de/guide_javascript.html
app/src/main/assets/de/guide_local_storage.html
app/src/main/assets/de/guide_overview.html
app/src/main/assets/de/guide_planned_features.html
app/src/main/assets/de/guide_tor.html
app/src/main/assets/de/guide_tracking_ids.html
app/src/main/assets/de/guide_user_agent.html
app/src/main/assets/en/about_licenses.html
app/src/main/assets/en/images/cookie.png [new file with mode: 0644]
app/src/main/assets/en/images/ic_subtitles.png [new file with mode: 0644]
app/src/main/assets/en/images/ic_web.png [new file with mode: 0644]
app/src/main/java/com/stoutner/privacybrowser/MainWebViewActivity.java
app/src/main/res/drawable/cookies_critical.xml
app/src/main/res/menu/webview_options_menu.xml
app/src/main/res/values-de/strings.xml
app/src/main/res/values/strings.xml
app/src/main/res/xml/preferences.xml

index badffff891746b3f0371017d42b92583de9b04cc..c4a1452e83591cd0062e78c30187f6e6f15c08db 100644 (file)
 \r
 <h3>Werbung</h3>\r
 \r
-<p>Privacy Browser Free zeigt eine Bannerwerbung am unteren Rand des Bildschirms über Googles AdMob-Netzwerk,\r
+<p>Privacy Browser Free zeigt eine Bannerwerbung am unteren Rand des Bildschirms &uuml;ber Googles AdMob-Netzwerk,\r
     welches seine eigene <a href="https://www.google.com/intl/en/policies/privacy/">Datenschutzrichtlinien</a> hat.\r
     Beachten Sie, dass - solange Sie nicht <a href="http://www.techrepublic.com/article/pro-tip-how-to-opt-out-of-interest-based-ads-on-your-android-phone/">interessenbezogene Werbungen deaktiviert haben</a> -\r
-    der Werbebetreibende eine Kopie Ihrer einmaligen, gerätebezogenen Werbe-ID bekommt, was es ihm ermöglicht, Ihr Gerätenutzung in verschiedenen Anwendungen nachzuverfolgen.\r
+    der Werbebetreibende eine Kopie Ihrer einmaligen, ger&auml;tebezogenen Werbe-ID bekommt, was es ihm erm&ouml;glicht, Ihr Ger&auml;tenutzung in verschiedenen Anwendungen nachzuverfolgen.\r
     AdMob erfasst <em>anonymisierte Zusammenfassungen</em> der folgenden Informationen. <strong>Stoutner kann diese Informationen zu jedem Zweck nutzen</strong>.</p>\r
 \r
 <ul>\r
     <li><item>Anzeigen insgesamt</item></li>\r
     <li><item>Klicks insgesamt</item></li>\r
     <li><item>Plattformen</item> (z. B. High-End Mobiltelefone, Tablets)</li>\r
-    <li><item>Aktivität nach Land</item></li>\r
+    <li><item>Aktivit&auml;t nach Land</item></li>\r
 </ul>\r
 \r
 \r
 \r
 <p>Google Play hat seine eigenen <a href="https://www.google.com/intl/en/policies/privacy/">Datenschutzbestimmungen</a>.\r
     Google stellt den Entwicklern <em>anonymisierte Statistiken</em> der folgenden Informationen zu den Bewertungen.\r
-    <strong>Stoutner kann diese Informationen für jeden Zweck benutzen</strong>.</p>\r
+    <strong>Stoutner kann diese Informationen f&uuml;r jeden Zweck benutzen</strong>.</p>\r
 \r
 <ul>\r
     <li><item>Land</item></li>\r
     <li><item>Sprache</item></li>\r
     <li><item>App-Version</item></li>\r
     <li><item>Android-Version</item></li>\r
-    <li><item>Gerät</item> (z. B. Google Nexus 5X, Samsung Galaxy Note3)</li>\r
-    <li><item>Tablets</item> (z. B. Tablets 10" und größer)</li>\r
+    <li><item>Ger&auml;t</item> (z. B. Google Nexus 5X, Samsung Galaxy Note3)</li>\r
+    <li><item>Tablets</item> (z. B. Tablets 10" und gr&ouml;&szlig;er)</li>\r
 </ul>\r
 \r
 \r
 <h3>Google Play Rezensionen</h3>\r
 \r
 <p>Google Play hat seine eigenen <a href="https://www.google.com/intl/en/policies/privacy/">Datenschutzbestimmungen</a>.\r
-    Zusätzlich zum Namen des Verfassers, der Bewertung und der Rezension (welche alle öffentlich sind)\r
-    stellt Google einige oder alle der folgenden Informationen dem Entwickler zur Verfügung.\r
+    Zus&auml;tzlich zum Namen des Verfassers, der Bewertung und der Rezension (welche alle &ouml;ffentlich sind)\r
+    stellt Google einige oder alle der folgenden Informationen dem Entwickler zur Verf&uuml;gung.\r
     <strong>Stoutner kann diese Informationen zu jedem Zweck nutzen</strong>.</p>\r
 \r
 <ul>\r
     <li><item>Version-Code</item> (z. B. 7)</li>\r
     <li><item>Version-Name</item> (z. B. 1.6)</li>\r
     <li><item>Android Version</item> (z. B. Android 5.1)</li>\r
-    <li><item>Gerät</item> (z. B. Galaxy S6 Edge+ [zenlte])</li>\r
+    <li><item>Ger&auml;t</item> (z. B. Galaxy S6 Edge+ [zenlte])</li>\r
     <li><item>Hersteller</item> (z. B. Samsung)</li>\r
-    <li><item>Gerätetyp</item> (z. B. Telefon)</li>\r
+    <li><item>Ger&auml;tetyp</item> (z. B. Telefon)</li>\r
     <li><item>CPU-Hersteller</item> (z. B. Samsung)</li>\r
     <li><item>CPU-Modell</item> (z. B. Exynos 7420)</li>\r
     <li><item>Bildschirmdichte</item> (z. B. 560 dpi)</li>\r
-    <li><item>Bildschirmgröße</item> (z. B. 2560 x 1440)</li>\r
+    <li><item>Bildschirmgr&ouml;&szlig;e</item> (z. B. 2560 x 1440)</li>\r
     <li><item>RAM</item> (z. B. 4096 MB)</li>\r
     <li><item>Native Plattform</item> (z. B. armeabi-v7a,armeabi,arm64v8a)</li>\r
     <li><item>OpenGL ES Version</item> (z. B. 3.1)</li>\r
-    <li><item>Gerätesprache</item> (z. B. Englisch)</li>\r
+    <li><item>Ger&auml;tesprache</item> (z. B. Englisch)</li>\r
 </ul>\r
 \r
 <hr />\r
index ca9a470cf7dfa4290b5f8ef96c0634c0afa674b4..6eaa342ee8975b8f9b187e0dc62ecec91e47759f 100644 (file)
 </head>\r
 \r
 <body>\r
+\r
+<h3>1.9.1 (version code 11)</h3>\r
+<p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=6de831ce03c8b9114212870715c6c722e26f5b28">27. August 2016</a> - Mindest-API 19, Ziel-API 23</p>\r
+<ul>\r
+    <li>Bilder-Verkn&uuml;pfungen zu relativen Pfaden ge&auml;ndert, sodass Privacy Browser in F-Droid geladen wird.</li>\r
+</ul>\r
+\r
+<h3>1.9 (version code 10)</h3>\r
+<p>26. August 2016 - Mindest-API 19, Ziel-API 23</p>\r
+<ul>\r
+    <li>Deutsche &Uuml;bersetzung hinzugef&uuml;gt durch <a href="mailto:aaron@gerlach.com">Aaron Gerlach</a>.</li>\r
+    <li>Die M&ouml;glichkeit hinzugef&uuml;gt, <a href="https://redmine.stoutner.com/issues/2">SSL-Zertifikatsdetails und -fehlermeldungen anzuzeigen</a>.  Das erm&ouml;glicht es Privacy Browser, Websites mit selbstsignierten Zertifikaten zu laden.</li>\r
+    <li><a href="https://redmine.stoutner.com/issues/38">Schriftgr&ouml;&szlig;en-Einstellungen</a> hinzugef&uuml;gt.</li>\r
+    <li><a href="https://redmine.stoutner.com/issues/14">"mailto:"-Links</a> auf Websites k&ouml;nnen verarbeitet werden.</li>\r
+    <li>App-Absturz behoben, wenn <a href="https://redmine.stoutner.com/issues/47">man ein Lesezeichen ohne Favicon erstellt oder bearbeitet</a>.</li>\r
+    <li>Fehler behoben, der manchmal <a href="https://redmine.stoutner.com/issues/28">die Navigationsleiste deaktivierte, nachdem ein Vollbildvideo ge&ouml;ffnet war</a>.</li>\r
+    <li>Senden eines <a href="https://redmine.stoutner.com/issues/37">Nullwerts f&uuml;r den "X-Requested-With"-Header beim erstmaligen Laden der Seite</a>.</li>\r
+</ul>\r
+\r
 <h3>1.8 (version code 9)</h3>\r
 <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=f386169ee9c68325562068394cb6b21b0b89be1c;ds=inline">16. Juli 2016</a> - Mindest-API 19, Ziel-API 23</p>\r
 <ul>\r
index ba61ab18346aa178d1382a41a577b58b94223d9d..e3b0f19bc1fca8f66fd25259c6f70d7fb7cba7f8 100644 (file)
 <body>
 <h3>Leitende Entwickler</h3>
 
-<p>Privacy Browser ist primär entwickelt von <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
+<p>Privacy Browser ist prim&auml;r entwickelt von <a href="mailto:soren@stoutner.com">Soren Stoutner</a>.</p>
 
 
 <h3>Mitwirkende</h3>
 
-<a href="mailto:aaron@gerlach.com">Aaron Gerlach</a>: Deutsche Übersetzung
+<a href="mailto:aaron@gerlach.com">Aaron Gerlach</a>: Deutsche &Uuml;bersetzung
 
-<p>Mitwirkung ist willkommen in Form von <a href="https://www.stoutner.com/privacy-browser/contributors/">Code und Übersetzung</a>.</p>
+<p>Mitwirkung ist willkommen in Form von <a href="https://www.stoutner.com/privacy-browser/contributors/">Code und &Uuml;bersetzung</a>.</p>
 </body>
 </html>
\ No newline at end of file
index 1be868b5ff32e8ebe1849e7286d7c45229f8c974..1aeaa18113afe62ddcc61c3eed44278cce6edad7 100644 (file)
@@ -36,6 +36,8 @@
 
         img.left {
         float: left;
+        height: 32;
+        width: 32;
         }
     </style>
 </head>
 
 <h3>Lizenz</h3>
 
-<p>Privacy Browser ist veröffentlicht unter der <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ Lizenz</a>.
+<p>Privacy Browser ist ver&ouml;ffentlicht unter der <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPLv3+ Lizenz</a>.
     Der volle Inhalt dieser Lizenz ist unten auf dieser Seite angegeben.</p>
 
 
 <h3>Attribute</h3>
 
-<p>Die Icons in Privacy Browser kommen aus dem Android Material Icon Set, welches unter der <a href=https://creativecommons.org/licenses/by/4.0/>CC-BY Lizenz</a> veröffentlicht wird.</p>
+<p>Die Icons in Privacy Browser kommen aus dem Android Material Icon Set, welches unter der <a href=https://creativecommons.org/licenses/by/4.0/>CC-BY Lizenz</a> ver&ouml;ffentlicht wird.</p>
 
-<p><img class="left" src="images/privacy_browser.png" height="32" width="32">
-    <img class="left" src="images/privacy_browser_free.png" height="32" width="32">
-    <img class="left" src="images/warning.png" height="32" width="32">
-    <img class="left" src="images/javascript_enabled.png" height="32" width="32">
+<p><img class="left" src="images/privacy_browser.png">
+    <img class="left" src="images/privacy_browser_free.png">
+    <img class="left" src="images/warning.png">
+    <img class="left" src="images/javascript_enabled.png">
     sind bezogen aus ic_security und ic_language. Bearbeitungen wurden von Soren Stoutner in 2016 vorgenommen.</p>
 
-<p><img class="icon" src="images/ic_language.png"> ic_language.</p>
-
-<p><img class="icon" src="images/ic_home.png"> ic_home.</p>
+<p><img class="icon" src="images/ic_add.png"> ic_add.</p>
 
 <p><img class="icon" src="images/ic_arrow_back.png"> ic_arrow_back.</p>
 
 
 <p><img class="icon" src="images/ic_bookmark_border.png"> ic_bookmark_border.</p>
 
-<p><img class="icon" src="images/ic_file_download.png"> ic_file_download.</p>
+<p><img class="icon" src="images/ic_create_new_folder.png"> ic_create_new_folder.</p>
 
-<p><img class="icon" src="images/ic_settings.png"> ic_settings.</p>
-
-<p><img class="icon" src="images/ic_import_contacts.png"> ic_import_contacts.</p>
+<p><img class="icon" src="images/ic_delete.png"> ic_download.</p>
 
-<p><img class="icon" src="images/ic_info_outline.png"> ic_info_outline.</p>
+<p><img class="icon" src="images/ic_edit.png"> ic_edit.</p>
 
 <p><img class="icon" src="images/ic_exit_to_app.png"> ic_exit_to_app.</p>
 
-<p><img class="icon" src="images/ic_add.png"> ic_add.</p>
+<p><img class="icon" src="images/ic_file_download.png"> ic_file_download.</p>
 
-<p><img class="icon" src="images/ic_vertical_align_top.png"> ic_vertical_align_top</p>
+<p><img class="icon" src="images/ic_folder.png"> ic_folder.</p>
 
-<p><img class="icon" src="images/ic_vertical_align_bottom.png"> ic_vertical_align_bottom</p>
+<p><img class="icon" src="images/ic_folder_special.png"> ic_folder_special.</p>
 
-<p><img class="icon" src="images/ic_folder.png"> ic_folder</p>
+<p><img class="icon" src="images/ic_home.png"> ic_home.</p>
 
-<p><img class="icon" src="images/ic_create_new_folder.png"> ic_create_new_folder</p>
+<p><img class="icon" src="images/ic_import_contacts.png"> ic_import_contacts.</p>
 
-<p><img class="icon" src="images/ic_folder_special.png"> ic_folder_special</p>
+<p><img class="icon" src="images/ic_info_outline.png"> ic_info_outline.</p>
 
-<p><img class="icon" src="images/ic_edit.png"> ic_edit.</p>
+<p><img class="icon" src="images/ic_language.png"> ic_language.</p>
 
-<p><img class="icon" src="images/ic_delete.png"> ic_download.</p>
+<p><img class="icon" src="images/ic_select_all.png"> ic_select_all.</p>
+
+<p><img class="icon" src="images/ic_settings.png"> ic_settings.</p>
+
+<p><img class="icon" src="images/ic_subtitles.png"> ic_subtitles.</p>
+
+<p><img class="icon" src="images/ic_vertical_align_bottom.png"> ic_vertical_align_bottom.</p>
+
+<p><img class="icon" src="images/ic_vertical_align_top.png"> ic_vertical_align_top.</p>
 
-<p><img class="icon" src="images/ic_select_all.png"> ic_select_all</p>
+<p><img class="icon" src="images/ic_web.png"> ic_web.</p>
 <hr/>
 
 <h3>GNU General Public License</h3>
-<p><a href="http://www.gnu.de/documents/gpl.de.html">Offizielle deutsche Übersetzung der GNU General Public License</a></p>
+<p><a href="http://www.gnu.de/documents/gpl.de.html">Offizielle deutsche &Uuml;bersetzung der GNU General Public License</a></p>
 
 <p></p>
 
index 0c19d6b581b200650d85c89f3b356e49c875dff6..78d16ff6fc787a680b258ba8d9bcd1fa29a26adb 100644 (file)
 \r
 <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#INTERNET">android.permission.INTERNET</a></p>\r
 \r
-<p>Benötigt, damit WebView das Internet nutzen kann. Ohne diese Berechtigung wäre Privacy Browser "Kein Browser: Schützt Ihre Privatsphäre durch Fernbleiben von jeglicher Konnektivität".</p>\r
+<p>Ben&ouml;tigt, damit WebView das Internet nutzen kann. Ohne diese Berechtigung w&auml;re Privacy Browser "Kein Browser: Sch&uuml;tzt Ihre Privatsph&auml;re durch Fernbleiben von jeglicher Konnektivit&auml;t".</p>\r
 \r
 \r
 <h3>Verkn&uuml;pfungen installieren</h3>\r
 \r
 <p><a href="https://developer.android.com/reference/android/Manifest.permission.html#INSTALL_SHORTCUT">com.android.launcher.permission.INSTALL_SHORTCUT</a></p>\r
 \r
-<p>Benötigt, um Verknüpfungen zu Websites auf Ihrer Startseite zu erstellen.</p>\r
+<p>Ben&Atilde;&para;tigt, um Verkn&uuml;pfungen zu Websites auf Ihrer Startseite zu erstellen.</p>\r
 </body>\r
 </html>
\ No newline at end of file
index 5f3d69ddf7c25942f5c2d62eebbd267e453562a8..9735f5493ec85e844a8a93e1d4ce4cb841920a4f 100644 (file)
 
 <p>Google Play hat seine eigenen <a href="https://www.google.com/intl/en/policies/privacy/">Datenschutzbestimmungen</a>.
     Google stellt den Entwicklern <em>anonymisierte Statistiken</em> der folgenden Informationen zu den Bewertungen.
-    <strong>Stoutner kann diese Informationen für jeden Zweck benutzen</strong>.</p>
+    <strong>Stoutner kann diese Informationen f&uuml;r jeden Zweck benutzen</strong>.</p>
 
 <ul>
     <li><item>Land</item></li>
     <li><item>Sprache</item></li>
     <li><item>App-Version</item></li>
     <li><item>Android-Version</item></li>
-    <li><item>Gerät</item> (z. B. Google Nexus 5X, Samsung Galaxy Note3)</li>
-    <li><item>Tablets</item> (z. B. Tablets 10" und größer)</li>
+    <li><item>Ger&auml;t</item> (z. B. Google Nexus 5X, Samsung Galaxy Note3)</li>
+    <li><item>Tablets</item> (z. B. Tablets 10" und gr&ouml;&szlig;er)</li>
 </ul>
 
 
 <h3>Google Play Rezensionen</h3>
 
 <p>Google Play hat seine eigenen <a href="https://www.google.com/intl/en/policies/privacy/">Datenschutzbestimmungen</a>.
-    Zusätzlich zum Namen des Verfassers, der Bewertung und der Rezension (welche alle öffentlich sind)
-    stellt Google einige oder alle der folgenden Informationen dem Entwickler zur Verfügung.
+    Zus&auml;tzlich zum Namen des Verfassers, der Bewertung und der Rezension (welche alle &ouml;ffentlich sind)
+    stellt Google einige oder alle der folgenden Informationen dem Entwickler zur Verf&Atilde;&frac14;gung.
     <strong>Stoutner kann diese Informationen zu jedem Zweck nutzen</strong>.</p>
 
 <ul>
     <li><item>Version-Code</item> (z. B. 7)</li>
     <li><item>Version-Name</item> (z. B. 1.6)</li>
     <li><item>Android Version</item> (z. B. Android 5.1)</li>
-    <li><item>Gerät</item> (z. B. Galaxy S6 Edge+ [zenlte])</li>
+    <li><item>Ger&auml;t</item> (z. B. Galaxy S6 Edge+ [zenlte])</li>
     <li><item>Hersteller</item> (z. B. Samsung)</li>
-    <li><item>Gerätetyp</item> (z. B. Telefon)</li>
+    <li><item>Ger&auml;tetyp</item> (z. B. Telefon)</li>
     <li><item>CPU-Hersteller</item> (z. B. Samsung)</li>
     <li><item>CPU-Modell</item> (z. B. Exynos 7420)</li>
     <li><item>Bildschirmdichte</item> (z. B. 560 dpi)</li>
-    <li><item>Bildschirmgröße</item> (z. B. 2560 x 1440)</li>
+    <li><item>Bildschirmgr&ouml;&szlig;e</item> (z. B. 2560 x 1440)</li>
     <li><item>RAM</item> (z. B. 4096 MB)</li>
     <li><item>Native Plattform</item> (z. B. armeabi-v7a,armeabi,arm64v8a)</li>
     <li><item>OpenGL ES Version</item> (z. B. 3.1)</li>
-    <li><item>Gerätesprache</item> (z. B. Englisch)</li>
+    <li><item>Ger&auml;tesprache</item> (z. B. Englisch)</li>
 </ul>
 
 <hr />
index 14ff6ce094d638eb77adcbd7b0cff9304ef69574..4ee8b524bbc290b8572ae6aebb98acb77bc50deb 100644 (file)
 </head>
 
 <body>
-<h3>Den überflüssigen Inhalt leeren</h3>
+<h3>Den &uuml;berfl&uuml;ssigen Inhalt leeren</h3>
 
 <p><strong>Leeren und Beenden</strong> bewirkt Folgendes:</p>
 
 <ul>
-    <li><item>Löscht alle Cookies</item>.</li>
+    <li><item>L&ouml;scht alle Cookies</item>.</li>
     <li><item>Leert den DOM-Speicher</item>.</li>
-    <li><item>Löscht alle Fornulardaten</item>.</li>
+    <li><item>L&ouml;scht alle Fornulardaten</item>.</li>
     <li><item>Leert den Cache inklusive gespeicherte Daten</item>.</li>
-    <li><item>Leert die Vorwärts-/Rückwärtshistorie</item>.</li>
-    <li><item>Löscht die momentane URL</item>.</li>
-    <li><item>Zerstört den internen Status von WebView</item>.</li>
-    <li><item>Beendet Privacy Browser</item>. In Android Lollipop und aktueller (Version >= 5.0 oder API >= 21) wird Privacy Browser außerdem aus den aktuellen Anwendungen entfernt.</li>
+    <li><item>Leert die Vorw&auml;rts-/R&uuml;ckw&auml;rtshistorie</item>.</li>
+    <li><item>L&ouml;scht jegliche gespeicherte Pr&auml;ferenzen zu SSL-Zertifikaten</item> (fehlerhafte SSL-Zertifikate, die ignoriert werden).</li>
+    <li><item>L&ouml;scht die momentane URL</item>.</li>
+    <li><item>Zerst&ouml;rt den internen Status von WebView</item>.</li>
+    <li><item>Beendet Privacy Browser</item>. In Android Lollipop und aktueller (Version >= 5.0 oder API >= 21) wird Privacy Browser au&szlig;erdem aus den aktuellen Anwendungen entfernt.</li>
 </ul>
 </body>
 </html>
\ No newline at end of file
index 0814356d23374061df3374f37db5887dd3342de2..a5edee8e7e2dd2dc1c04370a7fb7c561b7a0626e 100644 (file)
 <body>
 <h3>JavaScript ist machtvoll</h3>
 
-<p>In den frühen Tagen des Internets waren Websites statisch, zeigten also nur Text und Bilder, welche auf dem Bildschirm
-    sichtbar sind, veränderten sich aber nicht oder interagierten. Natürlich passierte auf solch statischen Websites nicht viel Interessantes.
-    Viele verschiedene Technologien wurden für dynamische Websites entwickelt. Javascript war eine davon.</p>
+<p>In den fr&uuml;hen Tagen des Internets waren Websites statisch, zeigten also nur Text und Bilder, welche auf dem Bildschirm
+    sichtbar sind, ver&auml;nderten sich aber nicht oder interagierten. Nat&uuml;rlich passierte auf solch statischen Websites nicht viel Interessantes.
+    Viele verschiedene Technologien wurden f&uuml;r dynamische Websites entwickelt. Javascript war eine davon.</p>
 
-<p>Javascript ist eine Programmiersprache. Viele Webserver hosten Programme geschrieben in Javascript, welche an die Geräte als Teil der Website gesandt werden.
-    Das Gerät führt das Javascript auf dem lokalen Prozessor aus und folgt den Anweisungen des Programms, was beispielsweise Bilder animieren kann,
-    ein Menü öffnen und viele andere großartige Dinge.</p>
+<p>Javascript ist eine Programmiersprache. Viele Webserver hosten Programme geschrieben in Javascript, welche an die Ger&auml;te als Teil der Website gesandt werden.
+    Das Ger&auml;t f&uuml;hrt das Javascript auf dem lokalen Prozessor aus und folgt den Anweisungen des Programms, was beispielsweise Bilder animieren kann,
+    ein Men&uuml; &ouml;ffnen und viele andere gro&szlig;artige Dinge.</p>
 
-<h3>JavaScript ist gefährlich</h3>
-<p>Natürlich birgt das Konzept von willkürlich ausgeführten Programmen aus einer Website heraus ein großes gefahrenprotenzial. Also werden Limitationen in Javascript gesetzt,
+<h3>JavaScript ist gef&auml;hrlich</h3>
+<p>Nat&uuml;rlich birgt das Konzept von willk&uuml;rlich ausgef&uuml;hrten Programmen aus einer Website heraus ein gro&szlig;es gefahrenprotenzial. Also werden Limitierungen in Javascript gesetzt,
     damit Dinge wie Viren vorgebeugt wird. Wie auch immer, im Endeffekt sind diese Limitationen sehr ausgedehnt.
-    Unten ist ein Screenshot von <a href="http://webkay.robinlinus.com">webkay</a>, einer Website die Beispiele für von einem Gerät produzierten
-    Informationen bietet, wenn Javascript auf einem Gerät läuft.  <a href="http://www.browserleaks.com/">Browser Leaks</a> ist eine andere gute Quelle.</p>
+    Unten ist ein Screenshot von <a href="http://webkay.robinlinus.com">webkay</a>, einer Website die Beispiele f&uuml;r von einem Ger&auml;t produzierten
+    Informationen bietet, wenn Javascript auf einem Ger&auml;t l&Atilde;&curren;uft.  <a href="http://www.browserleaks.com/">Browser Leaks</a> ist eine andere gute Quelle.</p>
 
 <p><img class="center" src="images/webkay.png" height="640" width="360"></p>
 
-<p>Zum Schutz der Privatsphäre wäre es ideal das Web ohne Javascript zu nutzen.  Jedoch benötigen manche Websites legitimerweise
-    JavaScript, um ihre Zwecke zu erfüllen und andere funktionieren nicht korrekt ohne Javascript, selbst wenn sie dazu umprogrammiert werden könnten.
-    Privacy Browser geht auf diese Problematik ein und macht es einfach, Javascript zu (de-)aktivieren.  Ein Knopfdruck auf das Privatsphäre-Schild wechselt zwischen blau
+<p>Zum Schutz der Privatsph&auml;re w&auml;re es ideal das Web ohne Javascript zu nutzen.  Jedoch ben&ouml;tigen manche Websites legitimerweise
+    JavaScript, um ihre Zwecke zu erf&uuml;llen und andere funktionieren nicht korrekt ohne Javascript, selbst wenn sie dazu umprogrammiert werden k&ouml;nnten.
+    Privacy Browser geht auf diese Problematik ein und macht es einfach, Javascript zu (de-)aktivieren.  Ein Knopfdruck auf das Privatsph&auml;re-Schild wechselt zwischen blau
     <img src="images/privacy_browser.png" height="16" width="16"> oder gelb <img src="images/warning.png" height="16" width="16"> (beide zeigen an, dass
     JavaScript aus ist) und rot <img src="images/javascript_enabled.png" height="16" width="16"> (JavaScript aktiviert) und aktualisieren die Website.
     Der Vergleich der verschiedenen Informationen, die <a href="http://webkay.robinlinus.com">webkay</a> mit und ohne Javascript sammeln kann ist informativ.</p>
 
-<p>Das Surfen im Internet mit deaktiviertem und nur bei Bedarf/Benötigung aktiviertem Javascript macht viel beim Datenschutz aus. Zusätzlich wird JavaScript
-    genutzt, um eine Großteil der nervigen Werbung und Extra-Müll, die mit Websites oft kommen, mitzuladen. Wenn es deaktiviert ist, werden Websites
-    schneller laden, weniger Datentraffic fressen und nur weniger nervige, und nicht die nervigen, Texte auf der Website überdeckenden Werbungen anzeigen.</p>
+<p>Das Surfen im Internet mit deaktiviertem und nur bei Bedarf/Ben&ouml;tigung aktiviertem Javascript macht viel beim Datenschutz aus. Zus&auml;tzlich wird JavaScript
+    genutzt, um eine Gro&szlig;teil der nervigen Werbung und Extra-M&uuml;ll, die mit Websites oft kommen, mitzuladen. Wenn es deaktiviert ist, werden Websites
+    schneller laden, weniger Datentraffic fressen und nur weniger nervige, und nicht die nervigen, Texte auf der Website &uuml;berdeckenden Werbungen anzeigen.</p>
 </body>
 </html>
\ No newline at end of file
index 37afa78ddad27368dc1c03ea74312c5b64541802..8aea57346eef6389d4568b5e10c306cc4a55d1a1 100644 (file)
 <body>
 <h3>Erstanbieter-Cookies</h3>
 
-<p>Cookies können in zwei Typen unterteilt werden. Erstanbieter-Cookies sind Cookies, die von aktuell besuchten Website gesetzt werden.</p>
+<p>Cookies k&ouml;nnen in zwei Typen unterteilt werden. Erstanbieter-Cookies sind Cookies, die von aktuell besuchten Website gesetzt werden.</p>
 
-<p>In den frühen Tagen des Internets stellte sich heraus, dass es nützlich sein könnte, wenn Websites Informationen für einen
-    späteren Zugriff auf dem Computer speichern können. Zum Beispiel könnte eine Website, die Informationen zum Wetter bietet, den Benutzer nach der
-    Postleitzahl fragen und sie dann in einem Cookie speichern.  Beim nächsten Besuch des Benutzers würden die Informationen automatisch für diese
-    Postleitzahl geladen werden, ohne dass der Benutzer sie erneut eingibt oder einen Benutzeraccount für diese Website erstellt (was völlig überzogen für solch
-    eine simple Aufgabe wäre).</p>
+<p>In den fr&uuml;hen Tagen des Internets stellte sich heraus, dass es n&uuml;tzlich sein k&ouml;nnte, wenn Websites Informationen f&uuml;r einen
+    sp&auml;teren Zugriff auf dem Computer speichern k&ouml;nnen. Zum Beispiel k&ouml;nnte eine Website, die Informationen zum Wetter bietet, den Benutzer nach der
+    Postleitzahl fragen und sie dann in einem Cookie speichern.  Beim n&auml;chsten Besuch des Benutzers w&uuml;rden die Informationen automatisch f&uuml;r diese
+    Postleitzahl geladen werden, ohne dass der Benutzer sie erneut eingibt oder einen Benutzeraccount f&uuml;r diese Website erstellt (was v&ouml;llig &uuml;berzogen f&uuml;r solch
+    eine simple Aufgabe w&auml;re).</p>
 
-<p>Wie bei allem im Web fanden kluge Leute alle möglichen Wege, Cookies für Dinge zu nutzen, die der Nutzer niemals grstatten würde, wenn er davon wüsste.
-    zum Beispiel kann eine Website einen Cookie mit einem einmaligen Schlüsselcode auf einem Gerät hinterlegen.
-    Dann kann er, jedes Mal wenn der Benutzer die Seite auf diesem Gerät besucht, diesen Benutzer einem bestimmten Profil
+<p>Wie bei allem im Web fanden kluge Leute alle m&ouml;glichen Wege, Cookies f&uuml;r Dinge zu nutzen, die der Nutzer niemals grstatten w&uuml;rde, wenn er davon w&uuml;sste.
+    zum Beispiel kann eine Website einen Cookie mit einem einmaligen Schl&uuml;sselcode auf einem Ger&auml;t hinterlegen.
+    Dann kann er, jedes Mal wenn der Benutzer die Seite auf diesem Ger&auml;t besucht, diesen Benutzer einem bestimmten Profil
     zuordnen welches der Server anlegt, selbst wenn der Nutzer - wie es auf einem Handy oft der Fall ist - mit einer anderen IP-Adresse surft.</p>
 
-<p>Einige Websites mit Login-Funktion benötigen Erstanbieter-Cookies, damit der Benutzer eingeloggt bleibt.  Cookies sind nicht die einzige Möglichkeit
-    für eine Website, den User während des umherklickens auf der Website eingeloggt zu lassen; wenn eine bestimmte Website sich jedoch dazu entschieden hat,
-    aktive Logins nur über Cookies zu verwalten, sind eingeschaltetem Erstanbieter-Cookies die einzige Möglichkeit, diese Funktion zu nutzen.</p>
+<p>Einige Websites mit Login-Funktion ben&ouml;tigen Erstanbieter-Cookies, damit der Benutzer eingeloggt bleibt.  Cookies sind nicht die einzige M&ouml;glichkeit
+    f&uuml;r eine Website, den User w&auml;hrend des Umherklickens auf der Website eingeloggt zu lassen; wenn eine bestimmte Website sich jedoch dazu entschieden hat,
+    aktive Logins nur &uuml;ber Cookies zu verwalten, sind eingeschaltetem Erstanbieter-Cookies die einzige M&ouml;glichkeit, diese Funktion zu nutzen.</p>
 
-<p>Wenn Erstanbieter-Cookies aktiviert sind aber Javascript deaktiviert, ist das Privatsphäre-Icon gelb <img src="images/warning.png" height="16" width="16">
+<p>Wenn Erstanbieter-Cookies aktiviert sind aber Javascript deaktiviert, ist das Privatsph&auml;re-Icon gelb <img src="images/warning.png" height="16" width="16">
     als Warnung.</p>
 
 
 
 <p>Drittanbieter-Cookies werden von Teilen einer Website gesetzt, die von einem anderen Server als dem aktuell besuchten.
     Beispielsweise laden viele Websites Werbungen von einem Drittanbieter-Broker wie Googles
-    <a href="https://www.google.com/adsense/start/#?modal_active=none">Ad Sense</a>. Jedes Mal wenn die Website lädt, fragt bei dem
-    Werbe-Broker an, dass er Werbung zeigen soll.  Der Werbe-Broker analysiert jegliche information, die er über den Nutzer hat, vergleicht mit dem aktuell gezahlten Satz der Werbenden
-    Firmen, die die Werbung platziert haben wollen, und wählt die anzuzeigenden Werbungen aus. Der Bereich der Website, auf dem die Werbung
+    <a href="https://www.google.com/adsense/start/#?modal_active=none">Ad Sense</a>. Jedes Mal wenn die Website l&auml;dt, fragt bei dem
+    Werbe-Broker an, dass er Werbung zeigen soll.  Der Werbe-Broker analysiert jegliche information, die er &uuml;ber den Nutzer hat, vergleicht mit dem aktuell gezahlten Satz der Werbenden
+    Firmen, die die Werbung platziert haben wollen, und w&auml;hlt die anzuzeigenden Werbungen aus. Der Bereich der Website, auf dem die Werbung
     angezeigt wird, wird vom Drittanbieter-Broker statt von der eigentlich besuchten Website geladen.</p>
 
 <p>Weil die meisten Werbungen im Internet von ein paar wenigen Brokern betrieben werden hat es nicht lange gedauert, bis sie gemerkt haben,
-    dass sie einfach einen Tracking-Cookie auf dem Gerät des Benutzers hinterlassen können um immer bescheid zu wissen, wohin er geht. Jedes Mal, wenn eine Werbung von einem Broker geladen wird,
-    ist es seine erste Aufgabe, das Gerät auf eine einmalige Seriennummer in einem cookie zu überprüfen. Wenn es den hat, sucht er
-    das Profil für diese Seriennummer heraus und merkt sich die neu besuchte Seite. Deshalb kann der Nutzer auf der einen Seite nach einem Produkt suchen,
-    nach dem er normalerweise nicht sucht, wie z. B. Walnüsse, und plötzlich auf jeder anderen besuchten Website Werbungen für Walnüsse angezeigt bekommen.</p>
+    dass sie einfach einen Tracking-Cookie auf dem Ger&auml;t des Benutzers hinterlassen k&ouml;nnen um immer bescheid zu wissen, wohin er geht. Jedes Mal, wenn eine Werbung von einem Broker geladen wird,
+    ist es seine erste Aufgabe, das Ger&auml;t auf eine einmalige Seriennummer in einem cookie zu &uuml;berpr&uuml;fen. Wenn es den hat, sucht er
+    das Profil f&uuml;r diese Seriennummer heraus und merkt sich die neu besuchte Seite. Deshalb kann der Nutzer auf der einen Seite nach einem Produkt suchen,
+    nach dem er normalerweise nicht sucht, wie z. B. Waln&uuml;sse, und pl&ouml;tzlich auf jeder anderen besuchten Website Werbungen f&uuml;r Waln&uuml;sse angezeigt bekommen.</p>
 
-<p>Zusätzlich zu Werbe-Brokern machen Social-Media-Plattformen das Gleiche. Vor ein paar Jahren haben die großen Plattformen wie
-    Facebook und Twitter eine große Auswahl von Websites ausgemacht, auf denen es in ihrem größten Interesse wäre, kleine Social Media-Icons zu platzieren.
+<p>Zus&auml;tzlich zu Werbe-Brokern machen Social-Media-Plattformen das Gleiche. Vor ein paar Jahren haben die gro&szlig;en Plattformen wie
+    Facebook und Twitter eine gro&szlig;e Auswahl von Websites ausgemacht, auf denen es in ihrem gr&ouml;&szlig;ten Interesse w&auml;re, kleine Social Media-Icons zu platzieren.
     Das sind nicht nur Bilder. Sie beinhalten <a href="https://developers.facebook.com/docs/plugins/like-button/">eingebettete Codes</a>, welche
-    zurück auf die Social-Media-Plattform verlinken und - neben anderen Dingen - einen Drittanbieter-Cookie auf dem Gerät hinterlassen. Diese Cookies werden selbst dann gesetzt,
-    wenn der Benutzer keinen Account bei der Social-Media-Plattform hat. Mit der Zeit bauten Firmen wie Facebook (welche ebenfalls einen Werbe-Broker betreiben) eine große Anzahl von
-    detaillierten Profilen über Personen an, die <a href="http://www.theverge.com/2016/5/27/11795248/facebook-ad-network-non-users-cookies-plug-ins">niemals einen Account
+    zur&uuml;ck auf die Social-Media-Plattform verlinken und - neben anderen Dingen - einen Drittanbieter-Cookie auf dem Ger&auml;t hinterlassen. Diese Cookies werden selbst dann gesetzt,
+    wenn der Benutzer keinen Account bei der Social-Media-Plattform hat. Mit der Zeit bauten Firmen wie Facebook (welche ebenfalls einen Werbe-Broker betreiben) eine gro&szlig;e Anzahl von
+    detaillierten Profilen &uuml;ber Personen an, die <a href="http://www.theverge.com/2016/5/27/11795248/facebook-ad-network-non-users-cookies-plug-ins">niemals einen Account
         auf ihrer Seite erstellt haben</a>.</p>
 
-<p>Es gibt kaum gute Gründe, Drittanbieter-Cookies zu aktivieren. Auf Android-Geräten mit Android-Version KitKat oder ältere (Version <= 4.4.4 oder API <=20)
+<p>Es gibt kaum gute Gr&uuml;nde, Drittanbieter-Cookies zu aktivieren. Auf Android-Ger&auml;ten mit Android-Version KitKat oder &auml;ltere (Version <= 4.4.4 oder API <=20)
     <a href="https://developer.android.com/reference/android/webkit/CookieManager.html#acceptThirdPartyCookies(android.webkit.WebView)">unterscheidet Webview Erstanbieter- und Drittanbieter-Cookies nicht</a>.
     Deshalb aktiviert das Aktivieren von Erstanbieter-Cookies zugleich auch Drittanbieter-Cookies.</p>
 
 
 <h3>DOM-Speicher</h3>
 
-<p>Der Document Object Model-Speicher, auch bekannt als Web-Speicher, ist wie Cookies auf Steroiden. Während die maximale Gesamtspeichergröße für alle Cookies von
-    einer einzigen URL 4kb beträgt, kann der DOM-Speicher zwischen <a href="https://en.wikipedia.org/wiki/Web_storage#Storage_size">5-25 Megabytes pro Seite</a> betragen.
-    Da der DOM-Speicher Javascript zum Lesen und Schreiben von Daten nutzt, ändert das Aktivieren also nichts, solange nicht auch Javascript aktiviert ist.</p>
+<p>Der Document Object Model-Speicher, auch bekannt als Web-Speicher, ist wie Cookies auf Steroiden. W&auml;hrend die maximale Gesamtspeichergr&szlig;e f&uuml;r alle Cookies von
+    einer einzigen URL 4kb betr&auml;gt, kann der DOM-Speicher zwischen <a href="https://en.wikipedia.org/wiki/Web_storage#Storage_size">5-25 Megabytes pro Seite</a> betragen.
+    Da der DOM-Speicher Javascript zum Lesen und Schreiben von Daten nutzt, &Atilde;&curren;ndert das Aktivieren also nichts, solange nicht auch Javascript aktiviert ist.</p>
 
 
 <h3>Formulardaten</h3>
 
-<p>Formulardaten beinhalten die Informationen, die in Web-Formularen eingegeben werden, wie Benutzernamen, Adressen, Telefonnummern etc. und listet sie als Auswahlmenü auf künftig besuchten Websites auf.
+<p>Formulardaten beinhalten die Informationen, die in Web-Formularen eingegeben werden, wie Benutzernamen, Adressen, Telefonnummern etc. und listet sie als Auswahlmen&uuml; auf k&uuml;nftig besuchten Websites auf.
     Ungleich der anderen Arten der lokalen Datenspeicherung werden Formulardaten nicht ohne die explizite Handlung des Nutzers an den Webserver gesendet.</p>
 </body>
 </html>
\ No newline at end of file
index 0243b79c033a8cbdeb2163b06e478661a034b3a9..c9c906aa142f9a4cb4bf999fdcef30163e45d326 100644 (file)
 </head>
 
 <body>
-<h3>Echte Privatsphäre</h3>
+<h3>Echte Privatsph&auml;re</h3>
 
-<p>Privacy Browser wurde entwickelt um Ihnen während des Surfens die maximal mögliche Kontrolle über Ihre Privatsphäre zu gewähren.
-    Wenn Sie sich mit einer Website verbinden werden bestimmte Informationen, die zum Verarbeiten der Verbindung nötig sind, an den Server gesandt.
-    Der Server erhält beispielsweise Ihre IP-Adresse und eine Port-Nummer, welche er benötigt, damit er weiß, wohin er antworten soll.
-    Diese Informationen werden häufig gespeichert, damit der Webseitenbetreiber Statistiken generieren kann darüber, wie oft eine Website geladen wird
+<p>Privacy Browser wurde entwickelt um Ihnen w&auml;hrend des Surfens die maximal m&auml;gliche Kontrolle &uuml;ber Ihre Privatsph&auml;re zu gew&auml;hren.
+    Wenn Sie sich mit einer Website verbinden werden bestimmte Informationen, die zum Verarbeiten der Verbindung n&ouml;tig sind, an den Server gesandt.
+    Der Server erh&auml;lt beispielsweise Ihre IP-Adresse und eine Port-Nummer, welche er ben&ouml;tigt, damit er wei&szlig;, wohin er antworten soll.
+    Diese Informationen werden h&auml;ufig gespeichert, damit der Webseitenbetreiber Statistiken generieren kann dar&uuml;ber, wie oft eine Website geladen wird
     und wie viele verschiedene IP-Adressen sie besucht haben.</p>
 
-<p>Darüber hinaus wollen die meisten Webseitenbetreiber Ihr Surfverhalten im ganzen Internet und nicht nur auf einem einzigen Server nachverfolgen. Sie nutzen dabei verschiedene technische Möglichkeiten.
-    Einige davon nutzen das Anfragen oder Platzieren von bestimmten Informationen auf Ihrem Gerät, die das Nachverfolgen ermöglichen.  Nahezu alle Browser nehmen freiwillig an dieser Verfolgung Teil,
-    ohne den Nutzer darüber zu informieren. Privacy Browser ist dazu entwickelt, dass der Benutzer so viel Information und Kontrolle über diese Verfolgungstechniken wie möglich erhält.</p>
+<p>Dar&uuml;ber hinaus wollen die meisten Webseitenbetreiber Ihr Surfverhalten im ganzen Internet und nicht nur auf einem einzigen Server nachverfolgen. Sie nutzen dabei verschiedene technische M&ouml;glichkeiten.
+    Einige davon nutzen das Anfragen oder Platzieren von bestimmten Informationen auf Ihrem Ger&auml;t, die das Nachverfolgen erm&ouml;glichen.  Nahezu alle Browser nehmen freiwillig an dieser Verfolgung Teil,
+    ohne den Nutzer dar&uuml;ber zu informieren. Privacy Browser ist dazu entwickelt, dass der Benutzer so viel Information und Kontrolle &uuml;ber diese Verfolgungstechniken wie m&ouml;glich erh&auml;lt.</p>
 
 
-<h3>Android's WebView Einschränkungen</h3>
+<h3>Android's WebView Einschr&auml;nkungen</h3>
 
-<p>Privacy Browser benutzt Androids integrierte WebView um Webseiten zu rendern. Es gibt einige Einschränkungen bei den Möglichkeiten, die WebView zur Kontrolle der Privatsphäre bietet. Zum Beispiel
-    ist es nicht möglich, nur bestimmte Javascript-Kommandos ohne die anderen gleichzeitig zu (de-)aktivieren. Sobald Privacy Browser zu einem alle in WebView möglichen Privatsphärekontrollen beinhaltenden, umfassenden Browser herangewachsen ist,
-    ist es eine Überlegung wert, eine eigene, überarbeitete WebView oder eine andere Rendering Engine zu nutzen.</p>
+<p>Privacy Browser benutzt Androids integrierte WebView um Webseiten zu rendern. Es gibt einige Einschr&auml;nkungen bei den M&ouml;glichkeiten, die WebView zur Kontrolle der Privatsph&auml;re bietet. Zum Beispiel
+    ist es nicht m&ouml;glich, nur bestimmte Javascript-Kommandos ohne die anderen gleichzeitig zu (de-)aktivieren. Sobald Privacy Browser zu einem alle in WebView m&ouml;glichen Privatsph&auml;rekontrollen beinhaltenden, umfassenden Browser herangewachsen ist,
+    ist es eine &Uuml;berlegung wert, eine eigene, &uuml;berarbeitete WebView oder eine andere Rendering Engine zu nutzen.</p>
 </body>
 </html>
\ No newline at end of file
index fec14354da061a8e31803c5a75f84f61df4d16b4..376b7cdc9ec8b26b2451a1ad874eabec5aa85810 100644 (file)
 <p>Privacy Browser ist noch unfertig. Die allerbesten Features werden erst noch mit eingebunden. Sie beinhalten Folgendes:</p>
 
 <ul>
-    <li><strong>Kontrollen für SSL-Zertifikate</strong>.</li>
-    <li><strong>Detaillierte Einstellungen für Cookies und DOM-Speicher</strong>.</li>
-    <li><strong>Automatisches Laden von Privatsphäreeinstellungen je nach URL</strong>.</li>
-    <li><strong>Verschlüsseltes Synchronisieren zwischen Geräten</strong>.</li>
+    <li><strong>Detaillierte Einstellungen f&uuml;r Cookies und DOM-Speicher</strong>.</li>
+    <li><strong>Automatisches Laden von Privatsph&auml;reeinstellungen je nach URL</strong>.</li>
+    <li><strong>Verschl&uuml;sseltes Synchronisieren zwischen Ger&auml;ten</strong>.</li>
     <li><strong>Browsen mit Tabs</strong>.</li>
     <li><strong>Integrierter Ad-Blocker</strong>.</li>
 </ul>
 
-<p>Eine umfangreichere Liste aller geplanten Features und Fehler ist unter <a href="https://redmine.stoutner.com/projects/privacy-browser/issues">redmine.stoutner.com</a> verfügbar.</p>
+<p>Eine umfangreichere Liste aller geplanten Features und Fehler ist unter <a href="https://redmine.stoutner.com/projects/privacy-browser/issues">redmine.stoutner.com</a> verf&uuml;gbar.</p>
 </body>
 </html>
\ No newline at end of file
index 3c7b8e2511779436c9447f7524f4aa3e10140ac2..2eb61915b6d1c6146ba67b93cf1c6d0d8bff2594 100644 (file)
 <body>
 <h3>Maskieren von IP-Adressen</h3>
 
-<p>Obwohl es keine perfekte Wissenschaft ist; IP-Adressen können in physikalische Adressen mit steigender Genauigkeit gewandelt werden.
-    Es gibt <a href="https://www.whatismyip.com/">öffentliche Datenbanken</a>, die zeigen, welche ISP welche IP-Adresse besitzt mit einer guten
-    Einschätzung, in welcher Region sie genutzt wird. Es gibt private Datenbanken mit noch genaueren Informationen. Und natürlich
-    weiß die ISP die exakte Serviceadresse jeder einzelnen IP-Adresse.</p>
+<p>Obwohl es keine perfekte Wissenschaft ist; IP-Adressen k&ouml;nnen in physikalische Adressen mit steigender Genauigkeit gewandelt werden.
+    Es gibt <a href="https://www.whatismyip.com/">&ouml;ffentliche Datenbanken</a>, die zeigen, welche ISP welche IP-Adresse besitzt mit einer guten
+    Einsch&auml;tzung, in welcher Region sie genutzt wird. Es gibt private Datenbanken mit noch genaueren Informationen. Und nat&Atilde;&frac14;rlich
+    wei&szlig; die ISP die exakte Serviceadresse jeder einzelnen IP-Adresse.</p>
 
-<p>VPN-Dienste können die IP-Adresse des Geräts vor einem Server verstecken. Wenn ein VPN-Dienst zwischengeschaltet ist wird sämtlicher Datenverkehr verschlüsselt und über
-    den VPN-Server umgeleitet. Der Webserver sieht lediglich die IP-Adresse des VPN-Servers. Das ist zwar ausreichend, um die Anonymität vor
-    Webserver- und Werbebetreibern zu wahren, aber es reicht nicht aus, um die Anonymität vor unterdrückenden Regimen zu schützen,
-    welche womöglich fähig sind die VPN-Betreiber zur Herausgabe der Logs über die IP-Adressen zu bewegen. Diejenigen, die nach Sicherheit vor solchen
-    Regimen suchen oder staatlichen Behörden den Laufpass geben wollen brauchen noch etwas mehr.</p>
+<p>VPN-Dienste k&ouml;nnen die IP-Adresse des Ger&auml;ts vor einem Server verstecken. Wenn ein VPN-Dienst zwischengeschaltet ist wird s&auml;mtlicher Datenverkehr verschl&uuml;sselt und &uuml;ber
+    den VPN-Server umgeleitet. Der Webserver sieht lediglich die IP-Adresse des VPN-Servers. Das ist zwar ausreichend, um die Anonymit&auml;t vor
+    Webserver- und Werbebetreibern zu wahren, aber es reicht nicht aus, um die Anonymit&auml;t vor unterdr&uuml;ckenden Regimen zu sch&uuml;tzen,
+    welche wom&ouml;glich f&auml;hig sind die VPN-Betreiber zur Herausgabe der Logs &uuml;ber die IP-Adressen zu bewegen. Diejenigen, die nach Sicherheit vor solchen
+    Regimen suchen oder staatlichen Beh&ouml;rden den Laufpass geben wollen brauchen noch etwas mehr.</p>
 
-<p>Das Tor (The Onion Router) Netzwerk wurde für genau diese Zwecke entwickelt. Es leitet verschlüsselten Datenverkehr durch mindestens drei verschiedene unabhängige Server,
-    die dem Projekt ihre Bandbreite spenden. Keiner der Server hat genügend Informationen, sodass er weder die IP-Adresse des sendenden Computers als auch
-    dem Ankunftsort hat. Daher müsste die jeweils gemiedene Behörde, die Zugriff auf diesen Inhalt möchte, all diese Maschinen in dieser Verbindung mit einbeziehen,
-    welche alle über den Globus verteilt sind. Das bietet nicht die ultimative Privatsphäre, kommt aber nahe dran.</p>
+<p>Das Tor (The Onion Router) Netzwerk wurde f&uuml;r genau diese Zwecke entwickelt. Es leitet verschl&uuml;sselten Datenverkehr durch mindestens drei verschiedene unabh&auml;ngige Server,
+    die dem Projekt ihre Bandbreite spenden. Keiner der Server hat gen&uuml;gend Informationen, sodass er weder die IP-Adresse des sendenden Computers als auch
+    dem Ankunftsort hat. Daher m&uuml;sste die jeweils gemiedene Beh&ouml;rde, die Zugriff auf diesen Inhalt m&ouml;chte, all diese Maschinen in dieser Verbindung mit einbeziehen,
+    welche alle &uuml;ber den Globus verteilt sind. Das bietet nicht die ultimative Privatsph&auml;re, kommt aber nahe dran.</p>
 
-<p>Das Tor Projekt hat eine Android-App namens Orbot, welche auf <a href="https://f-droid.org/repository/browse/?fdfilter=orbot&fdid=org.torproject.android">F-Droid</a> verfügbar ist
-    und überall sonst, wo Privacy Browser auch bezogen werde kann. Orbot kann in drei Modi arbeiten.</p>
+<p>Das Tor Projekt hat eine Android-App namens Orbot, welche auf <a href="https://f-droid.org/repository/browse/?fdfilter=orbot&fdid=org.torproject.android">F-Droid</a> verf&uuml;gbar ist
+    und &uuml;berall sonst, wo Privacy Browser auch bezogen werde kann. Orbot kann in drei Modi arbeiten.</p>
 
 <ul>
-    <li><strong>Proxy-Modus</strong> Apps müssen das Weiterleiten ihres Datenverkehrs anfragen, sprich müssen einen Code beinhalten, den der jeweilige Entwickler einbinden
+    <li><strong>Proxy-Modus</strong> Apps m&uuml;ssen das Weiterleiten ihres Datenverkehrs anfragen, sprich m&uuml;ssen einen Code beinhalten, den der jeweilige Entwickler einbinden
         muss, damit es funktioniert.</li>
     <li><strong>Transparenter Proxy-Modus</strong> Orbot greift bei jedem Datenverkehr von anderen Apps ein und leitet es weiter an
-        das Tor Netzwerk. Apps müssen nicht von ihrem Entwickler modifiziert werden um mit dem transparenten Proxy zu funktionieren, jedoch braucht Orbot dazu
-        Root-Zugriff auf dem Gerät.</li>
-    <li><strong>VPN-Modus</strong> Orbot registriert sich als VPN auf dem Gerät.  Apps benötigen keine vorherige Modifizierung durch den Entwickler
-        und Root wird nicht benötigt.</li>
+        das Tor Netzwerk. Apps m&uuml;ssen nicht von ihrem Entwickler modifiziert werden um mit dem transparenten Proxy zu funktionieren, jedoch braucht Orbot dazu
+        Root-Zugriff auf dem Ger&auml;t.</li>
+    <li><strong>VPN-Modus</strong> Orbot registriert sich als VPN auf dem Ger&auml;t.  Apps ben&ouml;tigen keine vorherige Modifizierung durch den Entwickler
+        und Root wird nicht ben&ouml;tigt.</li>
 </ul>
 
-<p>Momentsn funktioniert Privacy Browser mit Orbot im transparenten Proxying und im VPN-Modus. Unterstützung für den Standard-Proxymodus wird zu einem
-    <a href="https://redmine.stoutner.com/issues/26">späteren Zeitpunkt</a> hinzugefügt.</p>
+<p>Momentsn funktioniert Privacy Browser mit Orbot im transparenten Proxying und im VPN-Modus. Unterst&uuml;tzung f&uuml;r den Standard-Proxymodus wird zu einem
+    <a href="https://redmine.stoutner.com/issues/26">sp&auml;teren Zeitpunkt</a> hinzugef&uuml;gt.</p>
 
 <p>Weil der Datenverkehr durch mehrere verschiedene Tor-Ports geleitet wird ist das Surfen mit aktiviertem Tor oft langsamer als beim normalen Surfen.</p>
 </body>
index 6727b5dd309b279ce6074274492f214d26fb33ab..980172ec7107fd867f8421be94dee71596282c5f 100644 (file)
 <h3>Werbung</h3>
 
 <p>Privacy Browser Free beinhaltet eine Bannerwerbung unten auf dem Bildschirm, welcher von Googles
-    AdMob-Netzwerk befüllt wird. Standardmäßig stellt Google die <a href="https://support.google.com/googleplay/android-developer/answer/6048248?hl=en">Werbe-ID</a>
-    des Geräts den Werbungen über dieses Netzwerk zur Verfügung. Das ermöglicht werbenden Firmen, ein Profil von
-    dem Gerät anzulegen, welches zeigt welche Apps installiert sind  (welche auch Werbungen zeigen), wie oft sie genutzt werden und an welchen Werbungen der Nutzer interessiert ist.</p>
+    AdMob-Netzwerk bef&uuml;llt wird. Standardm&auml;&szlig;ig stellt Google die <a href="https://support.google.com/googleplay/android-developer/answer/6048248?hl=en">Werbe-ID</a>
+    des Ger&auml;ts den Werbungen &uuml;ber dieses Netzwerk zur Verf&uuml;gung. Das erm&ouml;glicht werbenden Firmen, ein Profil von
+    dem Ger&auml;t anzulegen, welches zeigt welche Apps installiert sind  (welche auch Werbungen zeigen), wie oft sie genutzt werden und an welchen Werbungen der Nutzer interessiert ist.</p>
 
-<p>Benutzer können diese Werbe-ID deaktivieren in <strong>Einstellungen</strong>, <strong>Google</strong>, <strong>Werbung</strong>.</p>
+<p>Benutzer k&ouml;nnen diese Werbe-ID deaktivieren in <strong>Einstellungen</strong>, <strong>Google</strong>, <strong>Werbung</strong>.</p>
 
 <img class="center" src="images/advertising_id.png" height="640" width="360">
 
-<p>Der Zweck der kostenlosen Version von Privacy Browser ist es, Nutzern zu ermöglichen, die Features der App zu testen. Die Standardversion kann in den bekannten App-Stores
+<p>Der Zweck der kostenlosen Version von Privacy Browser ist es, Nutzern zu erm&Atilde;&para;glichen, die Features der App zu testen. Die Standardversion kann in den bekannten App-Stores
     gekauft oder kostenlos von
     <a href="https://f-droid.org/repository/browse/?fdfilter=privacy+browser&fdid=com.stoutner.privacybrowser.standard">F-Droid</a> bezogen werden.</p>
 
 
 <h3>Verizon Tracking Headers</h3>
 
-<p>Verizon, einer der großen Mobilfunkbetreiber in den USA, fügt einen einmaligen Tracking Header zu sämtlichem HTTP-Datenverkehr über ihr Netzwerk hinzu. Die Electronic Frontier
-    Foundation hat über die <a href="https://www.eff.org/deeplinks/2014/11/verizon-x-uidh">Einschränkungen in der Privatsphäre bei diesem Vorgehen</a> berichtet.  Aufgrund des öffentlichen Drucks
-    hat Verizon eine Möglichkeit geschaffen, <a href="http://www.clark.com/how-opt-out-verizons-super-cookie-tracking">sich von diesem Tracking abzumelden</a>.</p>
+<p>Verizon, einer der gro&szlig;en Mobilfunkbetreiber in den USA, f&uuml;gt einen einmaligen Tracking Header zu s&auml;mtlichem HTTP-Datenverkehr &uuml;ber ihr Netzwerk hinzu. Die Electronic Frontier
+    Foundation hat &uuml;ber die <a href="https://www.eff.org/deeplinks/2014/11/verizon-x-uidh">Einschr&auml;nkungen in der Privatsph&auml;re bei diesem Vorgehen</a> berichtet.  Aufgrund des &ouml;ffentlichen Drucks
+    hat Verizon eine M&ouml;glichkeit geschaffen, <a href="http://www.clark.com/how-opt-out-verizons-super-cookie-tracking">sich von diesem Tracking abzumelden</a>.</p>
 
 </body>
 </html>
\ No newline at end of file
index da4242253416d7541f1d4b092a3f7a8852f248f4..eb0a426c3827681dddee8e5b8f54dd6f2402ae59 100644 (file)
 <h3>Browser-Identifikation</h3>
 
 <p>Wenn Internetbrowser sich mit Websites verbinden senden sie einen sog. User Agent, welcher den Browser und die
-    Rendering-Möglichkeiten an die Website kommuniziert. Die Website kann diese Informationen nutzen, um zu entscheiden, welche Version der Website
-    an den Browser übermittelt werden soll.  Viele Websites haben beispielsweise verschiedene Versionen für Desktopcomputer
+    Rendering-M&ouml;glichkeiten an die Website kommuniziert. Die Website kann diese Informationen nutzen, um zu entscheiden, welche Version der Website
+    an den Browser &uuml;bermittelt werden soll.  Viele Websites haben beispielsweise verschiedene Versionen f&uuml;r Desktopcomputer
     mobile Browser.</p>
 
-<p>Privacy Browser nutzt standardmäßig den auf dem Gerät in WebView integrierten User Agent.
-    Sie können nachsehen, welcher es ist, wenn Sie in die <strong>Einstellungen</strong> gehen und den <strong>User
+<p>Privacy Browser nutzt standardm&auml;&szlig;ig den auf dem Ger&auml;t in WebView integrierten User Agent.
+    Sie k&ouml;nnen nachsehen, welcher es ist, wenn Sie in die <strong>Einstellungen</strong> gehen und den <strong>User
         Agent</strong> auf <strong>WebView-Standard</strong> stellen. Der Screenshot unten zeigt ein Nexus 6P mit Android 6.0.1
     und installiertem Android System WebView 52.0.2743.98.</p>
 
 <img class="center" src="images/user_agent.png" height="640" width="360">
 
-<p>Im User Agent sind genügend Informationen, sodass manchmal nur einige wenige Besucher einer Website denselben haben. Wenn der User Agent
+<p>Im User Agent sind gen&uuml;gend Informationen, sodass manchmal nur einige wenige Besucher einer Website denselben haben. Wenn der User Agent
     mit einem anderen Teil von nicht-einmaligen Identifizierungsinformationen kombiniert wird, resultiert das oft in einem einmaligen "Fingerabdruck".
     Die Electronic Frontier Foundation hat ein Tool namens <a href="https://panopticlick.eff.org/">Panopticlick</a> erstellt,
-    um zu demonstrieren, wie viele Informationen aus diesen Quellen bezogen werden können. Wenn dieser Test mit aktiviertem Javascript ausgeführt wird
-    wächst die Anzahl an Sammelband Informationen drastisch.</p>
+    um zu demonstrieren, wie viele Informationen aus diesen Quellen bezogen werden k&ouml;nnen. Wenn dieser Test mit aktiviertem Javascript ausgef&uuml;hrt wird
+    w&auml;chst die Anzahl an Sammelband Informationen drastisch.</p>
 
 <img class="center" src="images/panopticlick.png" height=640" width="360">
 
-<p>Privacy Browser erlaubt Ihnen den User Agent zu ändern. Es gibt einige vorgegebenen Optionen, die auf übliche Browser und Betriebssysteme zutreffen.
-    Privacy Browser hat auÃ\9ferdem seinen eigenen User Agent, welcher ganz einfach PrivacyBrowser/1.0 ist. Beim Tracking gilt: Alles was selten ist, ist einfacher
-    zu verfolgen. Wenn Privacy Browser bekannter wird und mehr Leute PrivacyBrowser/1.0 als User Agent nutzen wird es eine gute Wahl für Privatsphäre darstellen.
-    Momentan ermöglicht das Wählen von etwas, das viele Klicks auf dem Server hat, wie <strong>Edge 13 auf Windows 10</strong>, das Untertauchen in der
-    Menge der Nutzer. Firefox oder Chrome bieten weniger Privatsphäre, da sie automatisch aktualisiert werden und ihre Versionsnummer so schnell wechselt, sodass
-    die in Privacy Browser eingepflegte Version wahrscheinlich schnell überholt wird und so oft aus der auf Server Logs auftauchenden Menge heraussticht.</p>
+<p>Privacy Browser erlaubt Ihnen den User Agent zu &Atilde;&curren;ndern. Es gibt einige vorgegebenen Optionen, die auf &Atilde;&frac14;bliche Browser und Betriebssysteme zutreffen.
+    Privacy Browser hat au&Atilde;Â\9ferdem seinen eigenen User Agent, welcher ganz einfach PrivacyBrowser/1.0 ist. Beim Tracking gilt: Alles was selten ist, ist einfacher
+    zu verfolgen. Wenn Privacy Browser bekannter wird und mehr Leute PrivacyBrowser/1.0 als User Agent nutzen wird es eine gute Wahl f&Atilde;&frac14;r Privatsph&Atilde;&curren;re darstellen.
+    Momentan erm&Atilde;&para;glicht das W&Atilde;&curren;hlen von etwas, das viele Klicks auf dem Server hat, wie <strong>Edge 13 auf Windows 10</strong>, das Untertauchen in der
+    Menge der Nutzer. Firefox oder Chrome bieten weniger Privatsph&Atilde;&curren;re, da sie automatisch aktualisiert werden und ihre Versionsnummer so schnell wechselt, sodass
+    die in Privacy Browser eingepflegte Version wahrscheinlich schnell &Atilde;&frac14;berholt wird und so oft aus der auf Server Logs auftauchenden Menge heraussticht.</p>
 
-<p>Ein zweiter Grund für das Ã\84ndern des User Agents ist das Ã\9cberzeugen des Servers, dass er die Desktopversion der Website anzeigen soll, welche oftmals
-    besser auf modernen Smartphones läuft als die mobile Seite. Für diesen Zweck funktioniert PrivacyBrowser/1.0 sehr gut, da Webserver für gewöhnlich
+<p>Ein zweiter Grund f&Atilde;&frac14;r das &Atilde;Â\84ndern des User Agents ist das &Atilde;Â\9cberzeugen des Servers, dass er die Desktopversion der Website anzeigen soll, welche oftmals
+    besser auf modernen Smartphones l&Atilde;&curren;uft als die mobile Seite. F&Atilde;&frac14;r diesen Zweck funktioniert PrivacyBrowser/1.0 sehr gut, da Webserver f&Atilde;&frac14;r gew&Atilde;&para;hnlich
     die Desktopversion als Standardversion anzeigen, wenn sie keinen mobilen Browser als User Agent erhalten.</p>
 
 <p>Androids WebView erlaubt keinen leeren User Agent. Wenn das der Fall ist, wird der Standard-User Agent an den Server gesandt.</p>
index 9bd93d46e6358a36710022237a96c296fd779974..9c46415e2be64887da042c3e683711cbefb2d88a 100644 (file)
@@ -31,6 +31,8 @@
 
     img.left {
         float: left;
+        height: 32;
+        width: 32;
     }
 </style>
 </head>
 
 <h3>Attributions</h3>
 
-<p>The icons in Privacy Browser come from the Android Material icon set, which is released under the <a href=https://creativecommons.org/licenses/by/4.0/>CC-BY license</a>.</p>
+<p>Most of the icons in Privacy Browser come from the <a href="https://design.google.com/icons/">Android Material icon set</a>, which is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.</p>
 
-<p><img class="left" src="images/privacy_browser.png" height="32" width="32">
-    <img class="left" src="images/privacy_browser_free.png" height="32" width="32">
-    <img class="left" src="images/warning.png" height="32" width="32">
-    <img class="left" src="images/javascript_enabled.png" height="32" width="32">
+<p><img class="left" src="images/privacy_browser.png">
+    <img class="left" src="images/privacy_browser_free.png">
+    <img class="left" src="images/warning.png">
+    <img class="left" src="images/javascript_enabled.png">
     are derived from ic_security and ic_language. Modifications were made by Soren Stoutner in 2016.</p>
 
-<p>The following icons are unchanged except for layout information like color and size.  Some of them have been renamed to match their use in the code.  The original icons and names are shown below.</p>
-
-<p><img class="icon" src="images/ic_language.png"> ic_language.</p>
+<p>The following icons are unchanged except for layout information like color and size. Some of them have been renamed to match their use in the code. The original icons and names are shown below.</p>
 
-<p><img class="icon" src="images/ic_home.png"> ic_home.</p>
+<p><img class="icon" src="images/ic_add.png"> ic_add.</p>
 
 <p><img class="icon" src="images/ic_arrow_back.png"> ic_arrow_back.</p>
 
 
 <p><img class="icon" src="images/ic_bookmark_border.png"> ic_bookmark_border.</p>
 
+<p><img class="icon" src="images/ic_create_new_folder.png"> ic_create_new_folder.</p>
+
+<p><img class="icon" src="images/ic_delete.png"> ic_download.</p>
+
+<p><img class="icon" src="images/ic_edit.png"> ic_edit.</p>
+
+<p><img class="icon" src="images/ic_exit_to_app.png"> ic_exit_to_app.</p>
+
 <p><img class="icon" src="images/ic_file_download.png"> ic_file_download.</p>
 
-<p><img class="icon" src="images/ic_settings.png"> ic_settings.</p>
+<p><img class="icon" src="images/ic_folder.png"> ic_folder.</p>
+
+<p><img class="icon" src="images/ic_folder_special.png"> ic_folder_special.</p>
+
+<p><img class="icon" src="images/ic_home.png"> ic_home.</p>
 
 <p><img class="icon" src="images/ic_import_contacts.png"> ic_import_contacts.</p>
 
 <p><img class="icon" src="images/ic_info_outline.png"> ic_info_outline.</p>
 
-<p><img class="icon" src="images/ic_exit_to_app.png"> ic_exit_to_app.</p>
-
-<p><img class="icon" src="images/ic_add.png"> ic_add.</p>
+<p><img class="icon" src="images/ic_language.png"> ic_language.</p>
 
-<p><img class="icon" src="images/ic_vertical_align_top.png"> ic_vertical_align_top</p>
+<p><img class="icon" src="images/ic_select_all.png"> ic_select_all.</p>
 
-<p><img class="icon" src="images/ic_vertical_align_bottom.png"> ic_vertical_align_bottom</p>
+<p><img class="icon" src="images/ic_settings.png"> ic_settings.</p>
 
-<p><img class="icon" src="images/ic_folder.png"> ic_folder</p>
+<p><img class="icon" src="images/ic_subtitles.png"> ic_subtitles.</p>
 
-<p><img class="icon" src="images/ic_create_new_folder.png"> ic_create_new_folder</p>
+<p><img class="icon" src="images/ic_vertical_align_bottom.png"> ic_vertical_align_bottom.</p>
 
-<p><img class="icon" src="images/ic_folder_special.png"> ic_folder_special</p>
+<p><img class="icon" src="images/ic_vertical_align_top.png"> ic_vertical_align_top.</p>
 
-<p><img class="icon" src="images/ic_edit.png"> ic_edit.</p>
+<p><img class="icon" src="images/ic_web.png"> ic_web.</p>
 
-<p><img class="icon" src="images/ic_delete.png"> ic_download.</p>
+<br/>
 
-<p><img class="icon" src="images/ic_select_all.png"> ic_select_all</p>
+<p><img class="left" src="images/cookie.png"> cookie was created by Google.
+    It is released under the <a href ="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>
+    and can be downloaded from <a href="https://materialdesignicons.com/icon/cookie">Material Design Icons</a>.</p>
 <hr/>
 
 <h3>GNU General Public License</h3>
diff --git a/app/src/main/assets/en/images/cookie.png b/app/src/main/assets/en/images/cookie.png
new file mode 100644 (file)
index 0000000..3967829
Binary files /dev/null and b/app/src/main/assets/en/images/cookie.png differ
diff --git a/app/src/main/assets/en/images/ic_subtitles.png b/app/src/main/assets/en/images/ic_subtitles.png
new file mode 100644 (file)
index 0000000..dc320b0
Binary files /dev/null and b/app/src/main/assets/en/images/ic_subtitles.png differ
diff --git a/app/src/main/assets/en/images/ic_web.png b/app/src/main/assets/en/images/ic_web.png
new file mode 100644 (file)
index 0000000..5ffe93a
Binary files /dev/null and b/app/src/main/assets/en/images/ic_web.png differ
index a48fa3780d25da29a395e17b4084a8138ab5b449..d604a2e1f14bec7b4cb39094d8c0ae7203772ee1 100644 (file)
@@ -148,6 +148,9 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation
     // `sslErrorHandler` is used in `onCreate()`, `onSslErrorCancel()`, and `onSslErrorProceed`.
     private SslErrorHandler sslErrorHandler;
 
+    // `sharedPreferences` is used in `onCreate()` and `onCreateOptionsMenu()`.
+    SharedPreferences sharedPreferences;
+
     @Override
     // Remove Android Studio's warning about the dangers of using SetJavaScriptEnabled.  The whole premise of Privacy Browser is built around an understanding of these dangers.
     @SuppressLint("SetJavaScriptEnabled")
@@ -373,35 +376,35 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation
         PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
 
         // Get the shared preference values.
-        SharedPreferences savedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
+        sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
 
         // Set JavaScript initial status.  The default value is false.
-        javaScriptEnabled = savedPreferences.getBoolean("javascript_enabled", false);
+        javaScriptEnabled = sharedPreferences.getBoolean("javascript_enabled", false);
         mainWebView.getSettings().setJavaScriptEnabled(javaScriptEnabled);
 
         // Initialize cookieManager.
         cookieManager = CookieManager.getInstance();
 
         // Set cookies initial status.  The default value is false.
-        firstPartyCookiesEnabled = savedPreferences.getBoolean("first_party_cookies_enabled", false);
+        firstPartyCookiesEnabled = sharedPreferences.getBoolean("first_party_cookies_enabled", false);
         cookieManager.setAcceptCookie(firstPartyCookiesEnabled);
 
         // Set third-party cookies initial status if API >= 21.  The default value is false.
         if (Build.VERSION.SDK_INT >= 21) {
-            thirdPartyCookiesEnabled = savedPreferences.getBoolean("third_party_cookies_enabled", false);
+            thirdPartyCookiesEnabled = sharedPreferences.getBoolean("third_party_cookies_enabled", false);
             cookieManager.setAcceptThirdPartyCookies(mainWebView, thirdPartyCookiesEnabled);
         }
 
         // Set DOM storage initial status.  The default value is false.
-        domStorageEnabled = savedPreferences.getBoolean("dom_storage_enabled", false);
+        domStorageEnabled = sharedPreferences.getBoolean("dom_storage_enabled", false);
         mainWebView.getSettings().setDomStorageEnabled(domStorageEnabled);
 
         // Set the saved form data initial status.  The default is false.
-        saveFormDataEnabled = savedPreferences.getBoolean("save_form_data_enabled", false);
+        saveFormDataEnabled = sharedPreferences.getBoolean("save_form_data_enabled", false);
         mainWebView.getSettings().setSaveFormData(saveFormDataEnabled);
 
         // Set the user agent initial status.
-        String userAgentString = savedPreferences.getString("user_agent", "Default user agent");
+        String userAgentString = sharedPreferences.getString("user_agent", "Default user agent");
         switch (userAgentString) {
             case "Default user agent":
                 // Do nothing.
@@ -409,43 +412,43 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation
 
             case "Custom user agent":
                 // Set the custom user agent on mainWebView,  The default is "PrivacyBrowser/1.0".
-                mainWebView.getSettings().setUserAgentString(savedPreferences.getString("custom_user_agent", "PrivacyBrowser/1.0"));
+                mainWebView.getSettings().setUserAgentString(sharedPreferences.getString("custom_user_agent", "PrivacyBrowser/1.0"));
                 break;
 
             default:
                 // Set the selected user agent on mainWebView.  The default is "PrivacyBrowser/1.0".
-                mainWebView.getSettings().setUserAgentString(savedPreferences.getString("user_agent", "PrivacyBrowser/1.0"));
+                mainWebView.getSettings().setUserAgentString(sharedPreferences.getString("user_agent", "PrivacyBrowser/1.0"));
                 break;
         }
 
         // Set the initial string for JavaScript disabled search.
-        if (savedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q=").equals("Custom URL")) {
+        if (sharedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q=").equals("Custom URL")) {
             // Get the custom URL string.  The default is "".
-            javaScriptDisabledSearchURL = savedPreferences.getString("javascript_disabled_search_custom_url", "");
+            javaScriptDisabledSearchURL = sharedPreferences.getString("javascript_disabled_search_custom_url", "");
         } else {
             // Use the string from javascript_disabled_search.
-            javaScriptDisabledSearchURL = savedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q=");
+            javaScriptDisabledSearchURL = sharedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q=");
         }
 
         // Set the initial string for JavaScript enabled search.
-        if (savedPreferences.getString("javascript_enabled_search", "https://duckduckgo.com/?q=").equals("Custom URL")) {
+        if (sharedPreferences.getString("javascript_enabled_search", "https://duckduckgo.com/?q=").equals("Custom URL")) {
             // Get the custom URL string.  The default is "".
-            javaScriptEnabledSearchURL = savedPreferences.getString("javascript_enabled_search_custom_url", "");
+            javaScriptEnabledSearchURL = sharedPreferences.getString("javascript_enabled_search_custom_url", "");
         } else {
             // Use the string from javascript_enabled_search.
-            javaScriptEnabledSearchURL = savedPreferences.getString("javascript_enabled_search", "https://duckduckgo.com/?q=");
+            javaScriptEnabledSearchURL = sharedPreferences.getString("javascript_enabled_search", "https://duckduckgo.com/?q=");
         }
 
 
         // Set the homepage initial status.  The default value is `https://www.duckduckgo.com`.
-        homepage = savedPreferences.getString("homepage", "https://www.duckduckgo.com");
+        homepage = sharedPreferences.getString("homepage", "https://www.duckduckgo.com");
 
         // Set the font size initial status.  the default value is `100`.
-        String defaultFontSizeString = savedPreferences.getString("default_font_size", "100");
+        String defaultFontSizeString = sharedPreferences.getString("default_font_size", "100");
         mainWebView.getSettings().setTextZoom(Integer.valueOf(defaultFontSizeString));
 
         // Set the swipe to refresh initial status.  The default is `true`.
-        swipeToRefreshEnabled = savedPreferences.getBoolean("swipe_to_refresh_enabled", true);
+        swipeToRefreshEnabled = sharedPreferences.getBoolean("swipe_to_refresh_enabled", true);
         swipeToRefresh.setEnabled(swipeToRefreshEnabled);
 
 
@@ -514,7 +517,7 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation
         // Set the initial status of the privacy icon.
         updatePrivacyIcons(privacyBrowserActivity);
 
-        // Get MenuItems for checkable menu items.
+        // Get handles for the menu items.
         MenuItem toggleFirstPartyCookies = menu.findItem(R.id.toggleFirstPartyCookies);
         MenuItem toggleThirdPartyCookies = menu.findItem(R.id.toggleThirdPartyCookies);
         MenuItem toggleDomStorage = menu.findItem(R.id.toggleDomStorage);
@@ -526,6 +529,19 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation
         toggleDomStorage.setChecked(domStorageEnabled);
         toggleSaveFormData.setChecked(saveFormDataEnabled);
 
+        // Set the status of the additional app bar icons.  The default is `false`.
+        if (sharedPreferences.getBoolean("display_additional_app_bar_icons", false)) {
+            toggleFirstPartyCookies.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
+            toggleThirdPartyCookies.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
+            toggleDomStorage.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
+            toggleSaveFormData.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
+        } else { //Do not display the additional icons.
+            toggleFirstPartyCookies.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
+            toggleThirdPartyCookies.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
+            toggleDomStorage.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
+            toggleSaveFormData.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
+        }
+
         return true;
     }
 
index 236b1c5a7375d8c88d9da7c696488eb52591d934..5a4812a9585e46a07fa89c418b05d13f597333b2 100644 (file)
@@ -1,4 +1,5 @@
-<!-- cookies_critical.xml was created by Google and downloaded from https://materialdesignicons.com/icon/cookie. -->
+<!-- cookies_critical.xml was created by Google and downloaded from https://materialdesignicons.com/icon/cookie.
+    It is released under the Apache License 2.0. -->
 
 <vector
     xmlns:android="http://schemas.android.com/apk/res/android"
index 40294bccfbc92a19eb71bf8fbd1505824932dbb8..0d1f909397f9ee9f48882f6d429780cbfa933d3f 100644 (file)
         android:id="@+id/toggleJavaScript"
         android:title="@string/javascript"
         android:orderInCategory="10"
-        app:showAsAction="always" />
+        app:showAsAction="ifRoom" />
 
     <item
         android:id="@+id/toggleFirstPartyCookies"
         android:title="@string/first_party_cookies"
         android:orderInCategory="20"
         android:checkable="true"
-        app:showAsAction="ifRoom" />
+        app:showAsAction="never" />
 
     <item
         android:id="@+id/toggleThirdPartyCookies"
         android:title="@string/third_party_cookies"
         android:orderInCategory="30"
         android:checkable="true"
-        app:showAsAction="ifRoom" />
+        app:showAsAction="never" />
 
     <item
         android:id="@+id/toggleDomStorage"
         android:title="@string/dom_storage"
         android:orderInCategory="40"
         android:checkable="true"
-        app:showAsAction="ifRoom" />
+        app:showAsAction="never" />
 
     <item
         android:id="@+id/toggleSaveFormData"
         android:title="@string/form_data"
         android:orderInCategory="50"
         android:checkable="true"
-        app:showAsAction="ifRoom" />
+        app:showAsAction="never" />
 
     <item
         android:id="@+id/clearCookies"
index 4ee7ccde382c0568d395ef77fa0d7681427c6513..70ce3bc061f094d50295d91da23b438cbc47cb29 100644 (file)
     <string name="favorite_icon">Website-Icon</string>
     <string name="url_or_search_terms">URL oder Suchbegriff</string>
 
-    <!-- Main WebView Navigation Drawer. -->
+    <!-- View SSL Certificate. -->
+    <string name="view_ssl_certificate">SSL-Zertifikat ansehen</string>
+    <string name="unencrypted_website">Unverschlüsselte Website</string>
+    <string name="no_ssl_certificate">Die Kommunikation mit dieser Website wird nicht durch ein SSL-Zertifikat verschlüsselt.</string>
+    <string name="ssl_certificate">SSL-Zertifikat</string>
+    <string name="close">Schließen</string>
+    <string name="issued_to">Ausgestellt für</string>
+    <string name="issued_by">Ausgestellt von</string>
+    <string name="common_name">Allgemeiner Name (CN):</string>
+    <string name="organization">Organisation (O):</string>
+    <string name="organizational_unit">Organisierende Einheit (OU):</string>
+    <string name="valid_dates">Gültige Daten</string>
+    <string name="start_date">Startdatum:</string>
+    <string name="end_date">Enddatum:</string>
+
+    <!-- SSL Certificate Error. -->
+    <string name="ssl_certificate_error">SSL-Zertifikatsfehler</string>
+    <string name="proceed">Fortfahren</string>
+    <string name="future_certificate">Das Startdatum des SSL-Zertifikats liegt in der Zukunft</string>
+    <string name="expired_certificate">ŽDas Zertifikat ist abgelaufen</string>
+    <string name="cn_mismatch">Der allgemeine Name entspricht nicht dem Hostnamen</string>
+    <string name="untrusted">Der Zertifikatsbehörde wird nicht vertraut</string>
+    <string name="invalid_date">Das Datum des Zertifikats ist ungültig</string>
+    <string name="invalid_certificate">Das Zertifikat ist ungültig</string>
+    <string name="url">URL</string>
+    <string name="url_label">URL:</string>
+
+    <!-- Main `WebView` Navigation Drawer. -->
     <string name="navigation_drawer">Navigationspanel</string>
     <string name="navigation">Navigation</string>
     <string name="home">Startseite</string>
@@ -56,7 +83,7 @@
     <string name="about">Infos</string>
     <string name="clear_and_exit">Leeren und verlassen</string>
 
-    <!-- Main WebView Options Menu. -->
+    <!-- Main `WebView` Options Menu. -->
     <string name="javascript">JavaScript</string>
     <string name="first_party_cookies">Erstanbieter-Cookies</string>
     <string name="third_party_cookies">Drittanbieter-Cookies</string>
     <string name="clear_cookies">Cookies leeren</string>
     <string name="clear_dom_storage">DOM-Speicher leeren</string>
     <string name="clear_form_data">Formulardaten leeren</string>
+        <string name="font_size">Schriftgröße</string>
+        <string name="fifty_percent">50%</string>
+        <string name="seventy_five_percent">75%</string>
+        <string name="one_hundred_percent">100%</string>
+        <string name="one_hundred_twenty_five_percent">125%</string>
+        <string name="one_hundred_fifty_percent">150%</string>
+        <string name="one_hundred_seventy_five_percent">175%</string>
+        <string name="two_hundred_percent">200%</string>
     <string name="share">Teilen</string>
     <string name="add_to_home_screen">Zur Startseite hinzufügen</string>
     <string name="refresh">Aktualisieren</string>
     <string name="custom_url">Eigene URL</string>
     <string name="general">Allgemein</string>
     <string name="homepage_preference">Startseite</string>
+    <string name="default_font_size">Standard-Schriftgröße</string>
+    <string-array name="default_font_size_entries">
+        <item>50%</item>
+        <item>75%</item>
+        <item>100%</item>
+        <item>125%</item>
+        <item>150%</item>
+        <item>175%</item>
+        <item>200%</item>
+    </string-array>
     <string name="swipe_to_refresh_enabled">Herunterziehen zum Aktualisieren</string>
     <string name="swipe_to_refresh_enabled_summary">Einige Websites funktionieren nicht, wenn "Herunterziehen zum Aktualisieren" eingeschaltet ist.</string>
 
index 7eeaaecff2e436462b9138179338edbc405dcab0..f0da49be2c92164445d5ee63620d2e6614c6e344 100644 (file)
     <string name="custom_url">Custom URL</string>
     <string name="general">General</string>
     <string name="homepage_preference">Homepage</string>
-    <string name="default_font_size">Default Font Size</string>
+    <string name="default_font_size">Default font size</string>
     <string-array name="default_font_size_entries">
         <item>50%</item>
         <item>75%</item>
     </string-array>
     <string name="swipe_to_refresh_enabled">Swipe to refresh</string>
     <string name="swipe_to_refresh_enabled_summary">Some websites don\'t work well if swipe to refresh is enabled.</string>
+    <string name="display_additional_app_bar_icons">Display additional app bar icons</string>
+    <string name="display_additional_app_bar_icons_summary">Display icons for toggling cookies, DOM storage, and form data in the app bar if there is room.</string>
 
     <!-- About Activity. -->
     <string name="about_privacy_browser">About Privacy Browser</string>
index e9c6405bb748cd4696344877d52b912d6d52a1de..f6acd2575d2dbebf04e5dac6da15010a06d9ba41 100644 (file)
             android:title="@string/swipe_to_refresh_enabled"
             android:summary="@string/swipe_to_refresh_enabled_summary"
             android:defaultValue="true" />
+
+        <SwitchPreference
+            android:key="display_additional_app_bar_icons"
+            android:title="@string/display_additional_app_bar_icons"
+            android:summary="@string/display_additional_app_bar_icons_summary"
+            android:defaultValue="false" />
     </PreferenceCategory>
 </PreferenceScreen>
\ No newline at end of file