From 8550e6404b24db3aab27a94909be5b4053a2ab8c Mon Sep 17 00:00:00 2001 From: Heiko Adams Date: Wed, 10 Apr 2013 19:37:21 +0200 Subject: [PATCH 001/263] updated german translation --- locale/de_DE/LC_MESSAGES/messages.mo | Bin 63479 -> 65282 bytes locale/de_DE/LC_MESSAGES/messages.po | 1366 +++++++++++++------------- 2 files changed, 673 insertions(+), 693 deletions(-) diff --git a/locale/de_DE/LC_MESSAGES/messages.mo b/locale/de_DE/LC_MESSAGES/messages.mo index e0dfca1eb04d66de494740957ac54d690cf18349..7058457b198ad945485b7c21e1175cbb6a779a43 100755 GIT binary patch delta 18082 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\n" "Language-Team: \n" "Language: de\n" @@ -55,48 +55,39 @@ msgstr "Nach 3 Monaten" msgid "Default interval" msgstr "Standard-Intervall" -#: backend.php:79 -#: backend.php:89 +#: backend.php:79 backend.php:89 msgid "Disable updates" msgstr "Nie" -#: backend.php:80 -#: backend.php:90 +#: backend.php:80 backend.php:90 msgid "Each 15 minutes" msgstr "Alle 15 Minuten" -#: backend.php:81 -#: backend.php:91 +#: backend.php:81 backend.php:91 msgid "Each 30 minutes" msgstr "Alle 30 Minuten" -#: backend.php:82 -#: backend.php:92 +#: backend.php:82 backend.php:92 msgid "Hourly" msgstr "Stündlich" -#: backend.php:83 -#: backend.php:93 +#: backend.php:83 backend.php:93 msgid "Each 4 hours" msgstr "Alle 4 Stunden" -#: backend.php:84 -#: backend.php:94 +#: backend.php:84 backend.php:94 msgid "Each 12 hours" msgstr "Alle 12 Stunden" -#: backend.php:85 -#: backend.php:95 +#: backend.php:85 backend.php:95 msgid "Daily" msgstr "Täglich" -#: backend.php:86 -#: backend.php:96 +#: backend.php:86 backend.php:96 msgid "Weekly" msgstr "Wöchentlich" -#: backend.php:99 -#: classes/pref/users.php:123 +#: backend.php:99 classes/pref/users.php:123 msgid "User" msgstr "Benutzer" @@ -109,12 +100,20 @@ msgid "Administrator" msgstr "Administrator" #: errors.php:9 -msgid "This program requires XmlHttpRequest to function properly. Your browser doesn't seem to support it." -msgstr "Dieses Programm benötigt XmlHttpRequest um ordnungsgemäß zu funktionieren. Ihr Browser scheint dies nicht zu unterstützen." +msgid "" +"This program requires XmlHttpRequest to function properly. Your browser " +"doesn't seem to support it." +msgstr "" +"Dieses Programm benötigt XmlHttpRequest um ordnungsgemäß zu funktionieren. " +"Ihr Browser scheint dies nicht zu unterstützen." #: errors.php:12 -msgid "This program requires cookies to function properly. Your browser doesn't seem to support them." -msgstr "Dieses Programm benötigt Cookies um ordungsgemäß zu funktionieren. Ihr Browser scheint diese nicht zu unterstützen." +msgid "" +"This program requires cookies to function properly. Your browser doesn't " +"seem to support them." +msgstr "" +"Dieses Programm benötigt Cookies um ordungsgemäß zu funktionieren. Ihr " +"Browser scheint diese nicht zu unterstützen." #: errors.php:15 msgid "Backend sanity check failed." @@ -125,8 +124,12 @@ msgid "Frontend sanity check failed." msgstr "Frontend Sicherheitsprüfung fehlgeschlagen." #: errors.php:19 -msgid "Incorrect database schema version. <a href='db-updater.php'>Please update</a>." -msgstr "Falsche Version des Datenbankschemas. <a href='update.php'>Bitte aktualisieren</a>." +msgid "" +"Incorrect database schema version. <a href='db-updater.php'>Please " +"update</a>." +msgstr "" +"Falsche Version des Datenbankschemas. <a href='update.php'>Bitte " +"aktualisieren</a>." #: errors.php:21 msgid "Request not authorized." @@ -137,60 +140,48 @@ msgid "No operation to perform." msgstr "Keine Funktion ausgewählt." #: errors.php:25 -msgid "Could not display feed: query failed. Please check label match syntax or local configuration." -msgstr "Kann Feed nicht angezeigen: Abfrage fehlgeschlagen. Bitte überprüfen Sie die Label Such-Syntax oder die lokale Konfiguration." +msgid "" +"Could not display feed: query failed. Please check label match syntax or " +"local configuration." +msgstr "" +"Kann Feed nicht angezeigen: Abfrage fehlgeschlagen. Bitte überprüfen Sie die " +"Label Such-Syntax oder die lokale Konfiguration." #: errors.php:27 msgid "Denied. Your access level is insufficient to access this page." -msgstr "Zugriff verweigert. Sie haben nicht die benötigten Rechte um auf diese Seite zuzugreifen." +msgstr "" +"Zugriff verweigert. Sie haben nicht die benötigten Rechte um auf diese Seite " +"zuzugreifen." #: errors.php:29 msgid "Configuration check failed" msgstr "Konfigurationsprüfung fehlgeschlagen" #: errors.php:31 -msgid "Your version of MySQL is not currently supported. Please see official site for more information." -msgstr "Ihre Version von MySQL wird zur Zeit nicht unterstüzt. Für weitere Informationen schauen Sie sich die offiziellen Website an." +msgid "" +"Your version of MySQL is not currently supported. Please see official site " +"for more information." +msgstr "" +"Ihre Version von MySQL wird zur Zeit nicht unterstüzt. Für weitere " +"Informationen schauen Sie sich die offiziellen Website an." #: errors.php:35 msgid "SQL escaping test failed, check your database and PHP configuration" -msgstr "SQL Escaping Test fehlgeschlagen, überprüfen Sie Ihre Datenbank und PHP Konfiguration" +msgstr "" +"SQL Escaping Test fehlgeschlagen, überprüfen Sie Ihre Datenbank und PHP " +"Konfiguration" -#: index.php:135 -#: index.php:152 -#: index.php:277 -#: prefs.php:103 -#: classes/backend.php:5 -#: classes/pref/labels.php:296 -#: classes/pref/filters.php:680 -#: classes/pref/feeds.php:1331 -#: plugins/digest/digest_body.php:63 -#: js/feedlist.js:128 -#: js/feedlist.js:438 -#: js/functions.js:420 -#: js/functions.js:758 -#: js/functions.js:1194 -#: js/functions.js:1329 -#: js/functions.js:1641 -#: js/prefs.js:86 -#: js/prefs.js:576 -#: js/prefs.js:666 -#: js/prefs.js:858 -#: js/prefs.js:1440 -#: js/prefs.js:1493 -#: js/prefs.js:1552 -#: js/prefs.js:1569 -#: js/prefs.js:1585 -#: js/prefs.js:1601 -#: js/prefs.js:1620 -#: js/prefs.js:1793 -#: js/prefs.js:1809 -#: js/tt-rss.js:497 -#: js/tt-rss.js:514 -#: js/viewfeed.js:800 -#: js/viewfeed.js:1224 -#: plugins/import_export/import_export.js:17 -#: plugins/updater/updater.js:17 +#: index.php:135 index.php:152 index.php:277 prefs.php:103 +#: classes/backend.php:5 classes/pref/labels.php:296 +#: classes/pref/filters.php:680 classes/pref/feeds.php:1331 +#: plugins/digest/digest_body.php:63 js/feedlist.js:128 js/feedlist.js:438 +#: js/functions.js:420 js/functions.js:758 js/functions.js:1194 +#: js/functions.js:1329 js/functions.js:1641 js/prefs.js:86 js/prefs.js:576 +#: js/prefs.js:666 js/prefs.js:858 js/prefs.js:1440 js/prefs.js:1493 +#: js/prefs.js:1552 js/prefs.js:1569 js/prefs.js:1585 js/prefs.js:1601 +#: js/prefs.js:1620 js/prefs.js:1793 js/prefs.js:1809 js/tt-rss.js:497 +#: js/tt-rss.js:514 js/viewfeed.js:800 js/viewfeed.js:1224 +#: plugins/import_export/import_export.js:17 plugins/updater/updater.js:17 msgid "Loading, please wait..." msgstr "Ladevorgang, bitte warten..." @@ -210,21 +201,15 @@ msgstr "Adaptiv" msgid "All Articles" msgstr "Alle Artikel" -#: index.php:174 -#: include/functions.php:1961 -#: classes/feeds.php:106 +#: index.php:174 include/functions.php:1961 classes/feeds.php:106 msgid "Starred" msgstr "Markiert" -#: index.php:175 -#: include/functions.php:1962 -#: classes/feeds.php:107 +#: index.php:175 include/functions.php:1962 classes/feeds.php:107 msgid "Published" msgstr "Veröffentlicht" -#: index.php:176 -#: classes/feeds.php:93 -#: classes/feeds.php:105 +#: index.php:176 classes/feeds.php:93 classes/feeds.php:105 msgid "Unread" msgstr "Ungelesen" @@ -260,14 +245,9 @@ msgstr "älteste zuerst" msgid "Title" msgstr "Titel" -#: index.php:192 -#: index.php:241 -#: include/functions.php:1951 -#: classes/feeds.php:111 -#: classes/feeds.php:440 -#: js/FeedTree.js:128 -#: js/FeedTree.js:156 -#: plugins/digest/digest.js:647 +#: index.php:192 index.php:241 include/functions.php:1951 +#: classes/feeds.php:111 classes/feeds.php:440 js/FeedTree.js:128 +#: js/FeedTree.js:156 plugins/digest/digest.js:647 msgid "Mark as read" msgstr "Als gelesen markieren" @@ -307,8 +287,7 @@ msgstr "Suchen..." msgid "Feed actions:" msgstr "Feed-Aktionen:" -#: index.php:236 -#: classes/handler/public.php:578 +#: index.php:236 classes/handler/public.php:578 msgid "Subscribe to feed..." msgstr "Feed abonnieren..." @@ -320,9 +299,7 @@ msgstr "Feed bearbeiten..." msgid "Rescore feed" msgstr "Feed neu bewerten" -#: index.php:239 -#: classes/pref/feeds.php:717 -#: classes/pref/feeds.php:1283 +#: index.php:239 classes/pref/feeds.php:717 classes/pref/feeds.php:1283 #: js/PrefFeedTree.js:73 msgid "Unsubscribe" msgstr "Feed abbestellen" @@ -347,8 +324,7 @@ msgstr "Zur Zusammenfassung wechseln..." msgid "Show tag cloud..." msgstr "Tagwolke anzeigen..." -#: index.php:248 -#: include/functions.php:1937 +#: index.php:248 include/functions.php:1937 msgid "Toggle widescreen mode" msgstr "Breitbild-Modus umschalten" @@ -368,16 +344,13 @@ msgstr "Filter erstellen..." msgid "Keyboard shortcuts help" msgstr "Tastaturkürzel..." -#: index.php:261 -#: plugins/digest/digest_body.php:77 +#: index.php:261 plugins/digest/digest_body.php:77 #: plugins/mobile/mobile-functions.php:62 #: plugins/mobile/mobile-functions.php:237 msgid "Logout" msgstr "Abmelden" -#: prefs.php:36 -#: prefs.php:121 -#: include/functions.php:1964 +#: prefs.php:36 prefs.php:121 include/functions.php:1964 #: classes/pref/prefs.php:446 msgid "Preferences" msgstr "Einstellungen" @@ -390,23 +363,17 @@ msgstr "Tastaturkürzel" msgid "Exit preferences" msgstr "Einstellungen verlassen" -#: prefs.php:124 -#: classes/pref/feeds.php:107 -#: classes/pref/feeds.php:1209 +#: prefs.php:124 classes/pref/feeds.php:107 classes/pref/feeds.php:1209 #: classes/pref/feeds.php:1272 msgid "Feeds" msgstr "Feeds" -#: prefs.php:127 -#: classes/pref/filters.php:156 +#: prefs.php:127 classes/pref/filters.php:156 msgid "Filters" msgstr "Filter" -#: prefs.php:130 -#: include/functions.php:1150 -#: include/functions.php:1787 -#: classes/pref/labels.php:90 -#: plugins/mobile/mobile-functions.php:198 +#: prefs.php:130 include/functions.php:1150 include/functions.php:1787 +#: classes/pref/labels.php:90 plugins/mobile/mobile-functions.php:198 msgid "Labels" msgstr "Label" @@ -414,8 +381,7 @@ msgstr "Label" msgid "Users" msgstr "Benutzer" -#: register.php:186 -#: include/login_form.php:238 +#: register.php:186 include/login_form.php:238 msgid "Create new account" msgstr "Neues Konto erstellen" @@ -423,27 +389,24 @@ msgstr "Neues Konto erstellen" msgid "New user registrations are administratively disabled." msgstr "Die Registrierung für neue Benutzer wurde administrativ deaktiviert." -#: register.php:196 -#: register.php:241 -#: register.php:254 -#: register.php:269 -#: register.php:288 -#: register.php:336 -#: register.php:346 -#: register.php:358 -#: classes/handler/public.php:648 -#: classes/handler/public.php:736 -#: classes/handler/public.php:818 -#: classes/handler/public.php:893 -#: classes/handler/public.php:907 -#: classes/handler/public.php:914 +#: register.php:196 register.php:241 register.php:254 register.php:269 +#: register.php:288 register.php:336 register.php:346 register.php:358 +#: classes/handler/public.php:648 classes/handler/public.php:736 +#: classes/handler/public.php:818 classes/handler/public.php:893 +#: classes/handler/public.php:907 classes/handler/public.php:914 #: classes/handler/public.php:939 msgid "Return to Tiny Tiny RSS" msgstr "Zu Tiny Tiny RSS zurückkehren" #: register.php:217 -msgid "Your temporary password will be sent to the specified email. Accounts, which were not logged in once, are erased automatically 24 hours after temporary password is sent." -msgstr "Ihr vorübergehendes Passwort wird an Ihre angegebene E-Mail-Adresse gesendet. Konten, die nicht innerhalb von 24 Stunden aktiviert wurden, werden gelöscht." +msgid "" +"Your temporary password will be sent to the specified email. Accounts, which " +"were not logged in once, are erased automatically 24 hours after temporary " +"password is sent." +msgstr "" +"Ihr vorübergehendes Passwort wird an Ihre angegebene E-Mail-Adresse " +"gesendet. Konten, die nicht innerhalb von 24 Stunden aktiviert wurden, " +"werden gelöscht." #: register.php:223 msgid "Desired login:" @@ -453,13 +416,11 @@ msgstr "Gewünschter Benutzername:" msgid "Check availability" msgstr "Verfügbarkeit prüfen" -#: register.php:228 -#: classes/handler/public.php:776 +#: register.php:228 classes/handler/public.php:776 msgid "Email:" msgstr "E-Mail:" -#: register.php:231 -#: classes/handler/public.php:781 +#: register.php:231 classes/handler/public.php:781 msgid "How much is two plus two:" msgstr "Wieviel ist zwei plus zwei:" @@ -491,13 +452,9 @@ msgstr "Registrierung für neue Benutzer ist momentan geschlossen." msgid "Tiny Tiny RSS data update script." msgstr "Skript zum Updaten von Tiny Tiny RSS." -#: include/digest.php:109 -#: include/functions.php:1159 -#: include/functions.php:1688 -#: include/functions.php:1773 -#: include/functions.php:1795 -#: classes/opml.php:416 -#: classes/pref/feeds.php:222 +#: include/digest.php:109 include/functions.php:1159 +#: include/functions.php:1688 include/functions.php:1773 +#: include/functions.php:1795 classes/opml.php:416 classes/pref/feeds.php:222 msgid "Uncategorized" msgstr "Unkategorisiert" @@ -512,14 +469,12 @@ msgstr[1] "%d archivierte Artikel" msgid "No feeds found." msgstr "Keine Feeds gefunden." -#: include/functions.php:1148 -#: include/functions.php:1785 +#: include/functions.php:1148 include/functions.php:1785 #: plugins/mobile/mobile-functions.php:171 msgid "Special" msgstr "Sonderfeeds" -#: include/functions.php:1637 -#: classes/feeds.php:1110 +#: include/functions.php:1637 classes/feeds.php:1110 #: classes/pref/filters.php:427 msgid "All feeds" msgstr "Alle Feeds" @@ -536,8 +491,7 @@ msgstr "Veröffentlichte Artikel" msgid "Fresh articles" msgstr "Neue Artikel" -#: include/functions.php:1844 -#: include/functions.php:1959 +#: include/functions.php:1844 include/functions.php:1959 msgid "All articles" msgstr "Alle Artikel" @@ -578,14 +532,14 @@ msgid "Open previous article (don't scroll long articles)" msgstr "Vorherigen Artikel laden (lange Artikel werden nicht gescrollt)" #: include/functions.php:1918 -#, fuzzy msgid "Move to next article (don't expand or mark read)" -msgstr "Nächsten Artikel laden (lange Artikel werden nicht gescrollt)" +msgstr "" +"Zum nächsten Artikel springen (nicht als gelesen markieren oder ausklappen)" #: include/functions.php:1919 -#, fuzzy msgid "Move to previous article (don't expand or mark read)" -msgstr "Vorherigen Artikel laden (lange Artikel werden nicht gescrollt)" +msgstr "" +"Zum vorherigen Artikel springen (nicht als gelesen markieren oder ausklappen)" #: include/functions.php:1920 msgid "Show search dialog" @@ -599,13 +553,11 @@ msgstr "Artikel" msgid "Toggle starred" msgstr "Markierung ein-/ausschalten" -#: include/functions.php:1923 -#: js/viewfeed.js:1918 +#: include/functions.php:1923 js/viewfeed.js:1918 msgid "Toggle published" msgstr "Veröffentlichung ein-/ausschalten" -#: include/functions.php:1924 -#: js/viewfeed.js:1896 +#: include/functions.php:1924 js/viewfeed.js:1896 msgid "Toggle unread" msgstr "Gelesen-Status umschalten" @@ -625,13 +577,11 @@ msgstr "gelesene Artikel verwerfen" msgid "Open in new window" msgstr "In neuem Fenster öffnen" -#: include/functions.php:1929 -#: js/viewfeed.js:1937 +#: include/functions.php:1929 js/viewfeed.js:1937 msgid "Mark below as read" msgstr "Untere als gelesen markieren" -#: include/functions.php:1930 -#: js/viewfeed.js:1931 +#: include/functions.php:1930 js/viewfeed.js:1931 msgid "Mark above as read" msgstr "Obige als gelesen markieren" @@ -656,12 +606,10 @@ msgid "Close/collapse article" msgstr "Artikel schließen/verbergen" #: include/functions.php:1936 -#, fuzzy msgid "Toggle article expansion (combined mode)" msgstr "Kombinierte Feed-Anzeige umschalten" -#: include/functions.php:1938 -#: plugins/embed_original/init.php:33 +#: include/functions.php:1938 plugins/embed_original/init.php:33 msgid "Toggle embed original" msgstr "\"Original einbetten\" umschalten" @@ -693,8 +641,7 @@ msgstr "Auswahl umkehren" msgid "Deselect everything" msgstr "Auswahl aufheben" -#: include/functions.php:1946 -#: classes/pref/feeds.php:521 +#: include/functions.php:1946 classes/pref/feeds.php:521 #: classes/pref/feeds.php:754 msgid "Feed" msgstr "Feed" @@ -707,14 +654,11 @@ msgstr "Aktuellen Feed aktualisieren" msgid "Un/hide read feeds" msgstr "Gelesene Feeds zeigen/verstecken" -#: include/functions.php:1949 -#: classes/pref/feeds.php:1275 +#: include/functions.php:1949 classes/pref/feeds.php:1275 msgid "Subscribe to feed" msgstr "Feed abonnieren" -#: include/functions.php:1950 -#: js/FeedTree.js:135 -#: js/PrefFeedTree.js:67 +#: include/functions.php:1950 js/FeedTree.js:135 js/PrefFeedTree.js:67 msgid "Edit feed" msgstr "Feed bearbeiten" @@ -726,8 +670,7 @@ msgstr "Schlagzeilensortierung umkehren" msgid "Debug feed update" msgstr "Aktualisierung im Diagnose-Modus durchführen" -#: include/functions.php:1954 -#: js/FeedTree.js:178 +#: include/functions.php:1954 js/FeedTree.js:178 msgid "Mark all feeds as read" msgstr "Alle Feeds als gelesen markieren" @@ -751,9 +694,7 @@ msgstr "Gehe zu" msgid "Fresh" msgstr "Neu" -#: include/functions.php:1963 -#: js/tt-rss.js:447 -#: js/tt-rss.js:606 +#: include/functions.php:1963 js/tt-rss.js:447 js/tt-rss.js:606 msgid "Tag cloud" msgstr "Tagwolke" @@ -761,13 +702,11 @@ msgstr "Tagwolke" msgid "Other" msgstr "Sonstiges" -#: include/functions.php:1966 -#: classes/pref/labels.php:281 +#: include/functions.php:1966 classes/pref/labels.php:281 msgid "Create label" msgstr "Label erstellen" -#: include/functions.php:1967 -#: classes/pref/filters.php:654 +#: include/functions.php:1967 classes/pref/filters.php:654 msgid "Create filter" msgstr "Filter erstellen" @@ -784,13 +723,11 @@ msgstr "Hilfe anzeigen" msgid "Search results: %s" msgstr "Suchergebnisse: %s" -#: include/functions.php:2985 -#: js/viewfeed.js:2024 +#: include/functions.php:2985 js/viewfeed.js:2024 msgid "Click to play" msgstr "Zum Abspielen klicken" -#: include/functions.php:2986 -#: js/viewfeed.js:2023 +#: include/functions.php:2986 js/viewfeed.js:2023 msgid "Play" msgstr "Abspielen" @@ -798,47 +735,31 @@ msgstr "Abspielen" msgid " - " msgstr " - " -#: include/functions.php:3126 -#: include/functions.php:3426 +#: include/functions.php:3126 include/functions.php:3426 #: classes/article.php:281 msgid "no tags" msgstr "Keine Tags" -#: include/functions.php:3136 -#: classes/feeds.php:689 +#: include/functions.php:3136 classes/feeds.php:689 msgid "Edit tags for this article" msgstr "Tags für diesen Artikel bearbeiten" -#: include/functions.php:3170 -#: classes/feeds.php:641 +#: include/functions.php:3170 classes/feeds.php:641 msgid "Originally from:" msgstr "Original von:" -#: include/functions.php:3183 -#: classes/feeds.php:654 -#: classes/pref/feeds.php:540 +#: include/functions.php:3183 classes/feeds.php:654 classes/pref/feeds.php:540 msgid "Feed URL" msgstr "Feed URL" -#: include/functions.php:3215 -#: classes/dlg.php:37 -#: classes/dlg.php:60 -#: classes/dlg.php:93 -#: classes/dlg.php:159 -#: classes/dlg.php:190 -#: classes/dlg.php:217 -#: classes/dlg.php:250 -#: classes/dlg.php:262 -#: classes/backend.php:105 -#: classes/pref/users.php:99 -#: classes/pref/filters.php:147 -#: classes/pref/prefs.php:1107 -#: classes/pref/feeds.php:1588 -#: classes/pref/feeds.php:1660 -#: plugins/import_export/init.php:406 -#: plugins/import_export/init.php:429 -#: plugins/googlereaderimport/init.php:173 -#: plugins/share/init.php:67 +#: include/functions.php:3215 classes/dlg.php:37 classes/dlg.php:60 +#: classes/dlg.php:93 classes/dlg.php:159 classes/dlg.php:190 +#: classes/dlg.php:217 classes/dlg.php:250 classes/dlg.php:262 +#: classes/backend.php:105 classes/pref/users.php:99 +#: classes/pref/filters.php:147 classes/pref/prefs.php:1107 +#: classes/pref/feeds.php:1588 classes/pref/feeds.php:1660 +#: plugins/import_export/init.php:406 plugins/import_export/init.php:429 +#: plugins/googlereaderimport/init.php:173 plugins/share/init.php:67 #: plugins/updater/init.php:370 msgid "Close this window" msgstr "Fenster schließen" @@ -855,15 +776,12 @@ msgstr "unbekannter Typ" msgid "Attachments" msgstr "Anhänge" -#: include/login_form.php:183 -#: classes/handler/public.php:483 -#: classes/handler/public.php:771 -#: plugins/mobile/login_form.php:40 +#: include/login_form.php:183 classes/handler/public.php:483 +#: classes/handler/public.php:771 plugins/mobile/login_form.php:40 msgid "Login:" msgstr "Benutzername:" -#: include/login_form.php:192 -#: classes/handler/public.php:486 +#: include/login_form.php:192 classes/handler/public.php:486 #: plugins/mobile/login_form.php:45 msgid "Password:" msgstr "Passwort:" @@ -872,8 +790,7 @@ msgstr "Passwort:" msgid "I forgot my password" msgstr "Ich habe mein Passwort vergessen" -#: include/login_form.php:201 -#: classes/handler/public.php:489 +#: include/login_form.php:201 classes/handler/public.php:489 #: classes/pref/prefs.php:554 msgid "Language:" msgstr "Sprache:" @@ -882,10 +799,8 @@ msgstr "Sprache:" msgid "Profile:" msgstr "Profil:" -#: include/login_form.php:213 -#: classes/handler/public.php:233 -#: classes/rpc.php:64 -#: classes/pref/prefs.php:1043 +#: include/login_form.php:213 classes/handler/public.php:233 +#: classes/rpc.php:64 classes/pref/prefs.php:1043 msgid "Default profile" msgstr "Standardprofil" @@ -897,8 +812,7 @@ msgstr "Weniger Datenverkehr nutzen" msgid "Remember me" msgstr "Erinnere dich an mich" -#: include/login_form.php:235 -#: classes/handler/public.php:499 +#: include/login_form.php:235 classes/handler/public.php:499 #: plugins/mobile/login_form.php:28 msgid "Log in" msgstr "Anmelden" @@ -915,44 +829,28 @@ msgstr "Artikel nicht gefunden." msgid "Tags for this article (separated by commas):" msgstr "Tags für diesen Artikel (durch Komma getrennt):" -#: classes/article.php:204 -#: classes/pref/users.php:176 -#: classes/pref/labels.php:79 -#: classes/pref/filters.php:405 -#: classes/pref/prefs.php:989 -#: classes/pref/feeds.php:733 -#: classes/pref/feeds.php:881 -#: plugins/nsfw/init.php:86 -#: plugins/note/init.php:53 -#: plugins/instances/init.php:248 +#: classes/article.php:204 classes/pref/users.php:176 +#: classes/pref/labels.php:79 classes/pref/filters.php:405 +#: classes/pref/prefs.php:989 classes/pref/feeds.php:733 +#: classes/pref/feeds.php:881 plugins/nsfw/init.php:86 +#: plugins/note/init.php:53 plugins/instances/init.php:248 msgid "Save" msgstr "Speichern" -#: classes/article.php:206 -#: classes/handler/public.php:460 -#: classes/handler/public.php:502 -#: classes/feeds.php:1037 -#: classes/feeds.php:1089 -#: classes/feeds.php:1149 -#: classes/pref/users.php:178 -#: classes/pref/labels.php:81 -#: classes/pref/filters.php:408 -#: classes/pref/filters.php:804 -#: classes/pref/filters.php:880 -#: classes/pref/filters.php:947 -#: classes/pref/prefs.php:991 -#: classes/pref/feeds.php:734 -#: classes/pref/feeds.php:884 -#: classes/pref/feeds.php:1800 -#: plugins/mail/init.php:126 -#: plugins/note/init.php:55 -#: plugins/instances/init.php:251 +#: classes/article.php:206 classes/handler/public.php:460 +#: classes/handler/public.php:502 classes/feeds.php:1037 +#: classes/feeds.php:1089 classes/feeds.php:1149 classes/pref/users.php:178 +#: classes/pref/labels.php:81 classes/pref/filters.php:408 +#: classes/pref/filters.php:804 classes/pref/filters.php:880 +#: classes/pref/filters.php:947 classes/pref/prefs.php:991 +#: classes/pref/feeds.php:734 classes/pref/feeds.php:884 +#: classes/pref/feeds.php:1800 plugins/mail/init.php:126 +#: plugins/note/init.php:55 plugins/instances/init.php:251 #: plugins/instances/init.php:440 msgid "Cancel" msgstr "Abbrechen" -#: classes/handler/public.php:424 -#: plugins/bookmarklets/init.php:38 +#: classes/handler/public.php:424 plugins/bookmarklets/init.php:38 msgid "Share with Tiny Tiny RSS" msgstr "Teilen mit Tiny Tiny RSS" @@ -960,10 +858,8 @@ msgstr "Teilen mit Tiny Tiny RSS" msgid "Title:" msgstr "Titel:" -#: classes/handler/public.php:434 -#: classes/pref/feeds.php:538 -#: classes/pref/feeds.php:769 -#: plugins/instances/init.php:215 +#: classes/handler/public.php:434 classes/pref/feeds.php:538 +#: classes/pref/feeds.php:769 plugins/instances/init.php:215 #: plugins/instances/init.php:405 msgid "URL:" msgstr "URL:" @@ -992,48 +888,42 @@ msgstr "Nicht angemeldet" msgid "Incorrect username or password" msgstr "Benutzername oder Passwort falsch" -#: classes/handler/public.php:584 -#: classes/handler/public.php:681 +#: classes/handler/public.php:584 classes/handler/public.php:681 #, php-format msgid "Already subscribed to %s." msgstr "%s bereits abonniert." -#: classes/handler/public.php:587 -#: classes/handler/public.php:672 +#: classes/handler/public.php:587 classes/handler/public.php:672 #, php-format msgid "Subscribed to %s." msgstr "%s abonniert." -#: classes/handler/public.php:590 -#: classes/handler/public.php:675 +#: classes/handler/public.php:590 classes/handler/public.php:675 #, php-format msgid "Could not subscribe to %s." msgstr "Konnte %s nicht abonnieren." -#: classes/handler/public.php:593 -#: classes/handler/public.php:678 +#: classes/handler/public.php:593 classes/handler/public.php:678 #, php-format msgid "No feeds found in %s." msgstr "Keine Feeds in %s gefunden." -#: classes/handler/public.php:596 -#: classes/handler/public.php:684 +#: classes/handler/public.php:596 classes/handler/public.php:684 msgid "Multiple feed URLs found." msgstr "Mehrere Feed-URLs gefunden." -#: classes/handler/public.php:600 -#: classes/handler/public.php:689 +#: classes/handler/public.php:600 classes/handler/public.php:689 #, php-format msgid "Could not subscribe to %s.
Can't download the Feed URL." -msgstr "Das Abonnieren von %s ist fehlgeschlagen.
Der Feed konnte nicht heruntergeladen werden." +msgstr "" +"Das Abonnieren von %s ist fehlgeschlagen.
Der Feed konnte nicht " +"heruntergeladen werden." -#: classes/handler/public.php:618 -#: classes/handler/public.php:707 +#: classes/handler/public.php:618 classes/handler/public.php:707 msgid "Subscribe to selected feed" msgstr "Ausgewählte Feeds abonnieren" -#: classes/handler/public.php:643 -#: classes/handler/public.php:731 +#: classes/handler/public.php:643 classes/handler/public.php:731 msgid "Edit subscription options" msgstr "Abonnementoptionen bearbeiten" @@ -1042,11 +932,14 @@ msgid "Password recovery" msgstr "Passwort-Wiederherstellung" #: classes/handler/public.php:764 -msgid "You will need to provide valid account name and email. New password will be sent on your email address." -msgstr "Sie müssen einen gültigen Benutzernamen und EMail angeben. Das neue Passwort wird an Ihre EMail gesendet." +msgid "" +"You will need to provide valid account name and email. New password will be " +"sent on your email address." +msgstr "" +"Sie müssen einen gültigen Benutzernamen und EMail angeben. Das neue Passwort " +"wird an Ihre EMail gesendet." -#: classes/handler/public.php:786 -#: classes/pref/users.php:360 +#: classes/handler/public.php:786 classes/pref/users.php:360 msgid "Reset password" msgstr "Passwort zurücksetzen" @@ -1054,15 +947,16 @@ msgstr "Passwort zurücksetzen" msgid "Some of the required form parameters are missing or incorrect." msgstr "Einige der benötigten Eingaben fehlen oder sind falsch." -#: classes/handler/public.php:800 -#: classes/handler/public.php:826 +#: classes/handler/public.php:800 classes/handler/public.php:826 #: plugins/digest/digest_body.php:69 msgid "Go back" msgstr "Zurück" #: classes/handler/public.php:822 msgid "Sorry, login and email combination not found." -msgstr "Entschuldigung, diese Kombination von Benutzername und E-Mail konnte nicht gefunden werden." +msgstr "" +"Entschuldigung, diese Kombination von Benutzername und E-Mail konnte nicht " +"gefunden werden." #: classes/handler/public.php:842 msgid "Your access level is insufficient to run this script." @@ -1077,30 +971,46 @@ msgid "Perform updates" msgstr "Aktualisierungen durchführen" #: classes/dlg.php:16 -msgid "If you have imported labels and/or filters, you might need to reload preferences to see your new data." -msgstr "Wenn Label und/oder Filter importiert wurden, müssen die Einstellungen erneut geladen werden, um alle neuen Einstellungen zu sehen." +msgid "" +"If you have imported labels and/or filters, you might need to reload " +"preferences to see your new data." +msgstr "" +"Wenn Label und/oder Filter importiert wurden, müssen die Einstellungen " +"erneut geladen werden, um alle neuen Einstellungen zu sehen." #: classes/dlg.php:48 msgid "Your Public OPML URL is:" msgstr "Ihre öffentliche OPML-URL lautet:" -#: classes/dlg.php:57 -#: classes/dlg.php:214 +#: classes/dlg.php:57 classes/dlg.php:214 msgid "Generate new URL" msgstr "Erzeuge neue URL" #: classes/dlg.php:71 -msgid "Update daemon is enabled in configuration, but daemon process is not running, which prevents all feeds from updating. Please start the daemon process or contact instance owner." -msgstr "Der Aktualisierungs-Daemon ist in den Einstellungen aktiviert, aber der Daemon Prozess läuft nicht, weshalb keine Feeds aktualisiert werden können. Bitte starten Sie den Prozess des Daemons oder benachrichtigen Sie den Besitzer der Instanz." +msgid "" +"Update daemon is enabled in configuration, but daemon process is not " +"running, which prevents all feeds from updating. Please start the daemon " +"process or contact instance owner." +msgstr "" +"Der Aktualisierungs-Daemon ist in den Einstellungen aktiviert, aber der " +"Daemon Prozess läuft nicht, weshalb keine Feeds aktualisiert werden können. " +"Bitte starten Sie den Prozess des Daemons oder benachrichtigen Sie den " +"Besitzer der Instanz." -#: classes/dlg.php:75 -#: classes/dlg.php:84 +#: classes/dlg.php:75 classes/dlg.php:84 msgid "Last update:" msgstr "Letzte Aktualisierung:" #: classes/dlg.php:80 -msgid "Update daemon is taking too long to perform a feed update. This could indicate a problem like crash or a hang. Please check the daemon process or contact instance owner." -msgstr "Der Aktualisierungs Daemon braucht zu lange um eine Aktualisierung durchzuführen. Dies könnte auf ein Problem wie einen Absturz oder eine Blockierung hinweisen. Bitte überprüfen Sie den Prozess des Daemons oder benachrichtigen Sie den Besitzer des Instanz." +msgid "" +"Update daemon is taking too long to perform a feed update. This could " +"indicate a problem like crash or a hang. Please check the daemon process or " +"contact instance owner." +msgstr "" +"Der Aktualisierungs Daemon braucht zu lange um eine Aktualisierung " +"durchzuführen. Dies könnte auf ein Problem wie einen Absturz oder eine " +"Blockierung hinweisen. Bitte überprüfen Sie den Prozess des Daemons oder " +"benachrichtigen Sie den Besitzer des Instanz." #: classes/dlg.php:166 msgid "Match:" @@ -1126,18 +1036,20 @@ msgstr "Einträge anzeigen" msgid "You can view this feed as RSS using the following URL:" msgstr "Sie finden diesen Feed als RSS unter der folgenden URL:" -#: classes/dlg.php:233 -#: plugins/updater/init.php:333 +#: classes/dlg.php:233 plugins/updater/init.php:333 #, php-format msgid "New version of Tiny Tiny RSS is available (%s)." msgstr "Neue Version von Tiny Tiny RSS verfügbar (%s)." #: classes/dlg.php:241 -msgid "You can update using built-in updater in the Preferences or by using update.php" -msgstr "Um ein Update durchzuführen können Sie den eingebauten Updater in den Einstellungen oder die update.php benutzen" +msgid "" +"You can update using built-in updater in the Preferences or by using update." +"php" +msgstr "" +"Um ein Update durchzuführen können Sie den eingebauten Updater in den " +"Einstellungen oder die update.php benutzen" -#: classes/dlg.php:245 -#: plugins/updater/init.php:337 +#: classes/dlg.php:245 plugins/updater/init.php:337 msgid "See the release notes" msgstr "Release notes anzeigen" @@ -1147,7 +1059,9 @@ msgstr "Download" #: classes/dlg.php:255 msgid "Error receiving version information or no new version available." -msgstr "Das Abrufen von Update-Informationen ist fehlgeschlagen oder es ist bereits die neuste Version installiert." +msgstr "" +"Das Abrufen von Update-Informationen ist fehlgeschlagen oder es ist bereits " +"die neuste Version installiert." #: classes/feeds.php:68 msgid "Visit the website" @@ -1157,9 +1071,7 @@ msgstr "Offizielle Website besuchen" msgid "View as RSS feed" msgstr "Als RSS-Feed anzeigen" -#: classes/feeds.php:84 -#: classes/feeds.php:138 -#: classes/pref/feeds.php:1440 +#: classes/feeds.php:84 classes/feeds.php:138 classes/pref/feeds.php:1440 msgid "View as RSS" msgstr "Als RSS anzeigen" @@ -1167,19 +1079,12 @@ msgstr "Als RSS anzeigen" msgid "Select:" msgstr "Auswahl:" -#: classes/feeds.php:92 -#: classes/pref/users.php:345 -#: classes/pref/labels.php:275 -#: classes/pref/filters.php:282 -#: classes/pref/filters.php:330 -#: classes/pref/filters.php:648 -#: classes/pref/filters.php:737 -#: classes/pref/filters.php:764 -#: classes/pref/prefs.php:1003 -#: classes/pref/feeds.php:1266 -#: classes/pref/feeds.php:1536 -#: classes/pref/feeds.php:1606 -#: plugins/instances/init.php:290 +#: classes/feeds.php:92 classes/pref/users.php:345 classes/pref/labels.php:275 +#: classes/pref/filters.php:282 classes/pref/filters.php:330 +#: classes/pref/filters.php:648 classes/pref/filters.php:737 +#: classes/pref/filters.php:764 classes/pref/prefs.php:1003 +#: classes/pref/feeds.php:1266 classes/pref/feeds.php:1536 +#: classes/pref/feeds.php:1606 plugins/instances/init.php:290 msgid "All" msgstr "Alle" @@ -1187,19 +1092,12 @@ msgstr "Alle" msgid "Invert" msgstr "Umkehren" -#: classes/feeds.php:95 -#: classes/pref/users.php:347 -#: classes/pref/labels.php:277 -#: classes/pref/filters.php:284 -#: classes/pref/filters.php:332 -#: classes/pref/filters.php:650 -#: classes/pref/filters.php:739 -#: classes/pref/filters.php:766 -#: classes/pref/prefs.php:1005 -#: classes/pref/feeds.php:1268 -#: classes/pref/feeds.php:1538 -#: classes/pref/feeds.php:1608 -#: plugins/instances/init.php:292 +#: classes/feeds.php:95 classes/pref/users.php:347 classes/pref/labels.php:277 +#: classes/pref/filters.php:284 classes/pref/filters.php:332 +#: classes/pref/filters.php:650 classes/pref/filters.php:739 +#: classes/pref/filters.php:766 classes/pref/prefs.php:1005 +#: classes/pref/feeds.php:1268 classes/pref/feeds.php:1538 +#: classes/pref/feeds.php:1608 plugins/instances/init.php:292 msgid "None" msgstr "Keine" @@ -1227,17 +1125,13 @@ msgstr "Archiv" msgid "Move back" msgstr "Zurückgehen" -#: classes/feeds.php:118 -#: classes/pref/filters.php:291 -#: classes/pref/filters.php:339 -#: classes/pref/filters.php:746 +#: classes/feeds.php:118 classes/pref/filters.php:291 +#: classes/pref/filters.php:339 classes/pref/filters.php:746 #: classes/pref/filters.php:773 msgid "Delete" msgstr "Löschen" -#: classes/feeds.php:125 -#: classes/feeds.php:130 -#: plugins/mailto/init.php:28 +#: classes/feeds.php:125 classes/feeds.php:130 plugins/mailto/init.php:28 #: plugins/mail/init.php:28 msgid "Forward by email" msgstr "Per E-Mail weiterleiten" @@ -1246,8 +1140,7 @@ msgstr "Per E-Mail weiterleiten" msgid "Feed:" msgstr "Feed:" -#: classes/feeds.php:205 -#: classes/feeds.php:837 +#: classes/feeds.php:205 classes/feeds.php:837 msgid "Feed not found." msgstr "Feed nicht gefunden." @@ -1277,21 +1170,24 @@ msgid "No starred articles found to display." msgstr "Keine markierten Artikel zum Anzeigen gefunden." #: classes/feeds.php:748 -msgid "No articles found to display. You can assign articles to labels manually from article header context menu (applies to all selected articles) or use a filter." -msgstr "Keine Artikel zum Anzeigen gefunden. Sie können Artikel zu Labeln manuell hinzufügen (siehe obiges Aktionsmenü) oder durch das Benutzen von Filtern." +msgid "" +"No articles found to display. You can assign articles to labels manually " +"from article header context menu (applies to all selected articles) or use a " +"filter." +msgstr "" +"Keine Artikel zum Anzeigen gefunden. Sie können Artikel zu Labeln manuell " +"hinzufügen (siehe obiges Aktionsmenü) oder durch das Benutzen von Filtern." #: classes/feeds.php:750 msgid "No articles found to display." msgstr "Keine Artikel zum Anzeigen gefunden." -#: classes/feeds.php:765 -#: classes/feeds.php:932 +#: classes/feeds.php:765 classes/feeds.php:932 #, php-format msgid "Feeds last updated at %s" msgstr "Feeds zuletzt aktualisiert am %s" -#: classes/feeds.php:775 -#: classes/feeds.php:942 +#: classes/feeds.php:775 classes/feeds.php:942 msgid "Some feeds have update errors (click for details)" msgstr "Einige Feeds haben Aktualisierungsfehler (klicken für Details)" @@ -1299,14 +1195,11 @@ msgstr "Einige Feeds haben Aktualisierungsfehler (klicken für Details)" msgid "No feed selected." msgstr "Keinen Feed ausgewählt." -#: classes/feeds.php:975 -#: classes/feeds.php:983 +#: classes/feeds.php:975 classes/feeds.php:983 msgid "Feed or site URL" msgstr "URL von Feed oder Seite" -#: classes/feeds.php:989 -#: classes/pref/feeds.php:560 -#: classes/pref/feeds.php:782 +#: classes/feeds.php:989 classes/pref/feeds.php:560 classes/pref/feeds.php:782 #: classes/pref/feeds.php:1764 msgid "Place in category:" msgstr "In Kategorie einordnen:" @@ -1315,25 +1208,19 @@ msgstr "In Kategorie einordnen:" msgid "Available feeds" msgstr "Verfügbare Feeds" -#: classes/feeds.php:1009 -#: classes/pref/users.php:139 -#: classes/pref/feeds.php:590 -#: classes/pref/feeds.php:818 +#: classes/feeds.php:1009 classes/pref/users.php:139 +#: classes/pref/feeds.php:590 classes/pref/feeds.php:818 msgid "Authentication" msgstr "Authentifizierung" -#: classes/feeds.php:1013 -#: classes/pref/users.php:402 -#: classes/pref/feeds.php:596 -#: classes/pref/feeds.php:822 +#: classes/feeds.php:1013 classes/pref/users.php:402 +#: classes/pref/feeds.php:596 classes/pref/feeds.php:822 #: classes/pref/feeds.php:1778 msgid "Login" msgstr "Benutzername" -#: classes/feeds.php:1016 -#: classes/pref/prefs.php:271 -#: classes/pref/feeds.php:602 -#: classes/pref/feeds.php:828 +#: classes/feeds.php:1016 classes/pref/prefs.php:271 +#: classes/pref/feeds.php:602 classes/pref/feeds.php:828 #: classes/pref/feeds.php:1781 msgid "Password" msgstr "Passwort" @@ -1342,9 +1229,7 @@ msgstr "Passwort" msgid "This feed requires authentication." msgstr "Dieser Feed erfordert Authentifizierung." -#: classes/feeds.php:1031 -#: classes/feeds.php:1087 -#: classes/pref/feeds.php:1799 +#: classes/feeds.php:1031 classes/feeds.php:1087 classes/pref/feeds.php:1799 msgid "Subscribe" msgstr "Abonnieren" @@ -1352,12 +1237,8 @@ msgstr "Abonnieren" msgid "More feeds" msgstr "Weitere Feeds" -#: classes/feeds.php:1057 -#: classes/feeds.php:1148 -#: classes/pref/users.php:332 -#: classes/pref/filters.php:641 -#: classes/pref/feeds.php:1259 -#: js/tt-rss.js:170 +#: classes/feeds.php:1057 classes/feeds.php:1148 classes/pref/users.php:332 +#: classes/pref/filters.php:641 classes/pref/feeds.php:1259 js/tt-rss.js:170 msgid "Search" msgstr "Suchen" @@ -1373,12 +1254,9 @@ msgstr "Feed-Archiv" msgid "limit:" msgstr "Grenzwert:" -#: classes/feeds.php:1088 -#: classes/pref/users.php:358 -#: classes/pref/labels.php:284 -#: classes/pref/filters.php:398 -#: classes/pref/filters.php:667 -#: classes/pref/feeds.php:707 +#: classes/feeds.php:1088 classes/pref/users.php:358 +#: classes/pref/labels.php:284 classes/pref/filters.php:398 +#: classes/pref/filters.php:667 classes/pref/feeds.php:707 #: plugins/instances/init.php:297 msgid "Remove" msgstr "Entfernen" @@ -1415,8 +1293,7 @@ msgstr "Strg" msgid "Help topic not found." msgstr "Hilfethema nicht gefunden." -#: classes/opml.php:28 -#: classes/opml.php:33 +#: classes/opml.php:28 classes/opml.php:33 msgid "OPML Utility" msgstr "OPML Werkzeug" @@ -1466,22 +1343,20 @@ msgstr "Verarbeite Kategorie: %s" msgid "Error: please upload OPML file." msgstr "Fehler: bitte eine OPML-Datei hochladen." -#: classes/opml.php:475 -#: plugins/googlereaderimport/init.php:166 +#: classes/opml.php:475 plugins/googlereaderimport/init.php:166 msgid "Error while parsing document." msgstr "Fehler beim Parsen des Dokuments." -#: classes/pref/users.php:6 -#: plugins/instances/init.php:157 +#: classes/pref/users.php:6 plugins/instances/init.php:157 msgid "Your access level is insufficient to open this tab." -msgstr "Sie haben nicht die benötigten Rechte um diese Registerkarte zu öffnen." +msgstr "" +"Sie haben nicht die benötigten Rechte um diese Registerkarte zu öffnen." #: classes/pref/users.php:34 msgid "User not found" msgstr "Benutzer nicht gefunden" -#: classes/pref/users.php:53 -#: classes/pref/users.php:404 +#: classes/pref/users.php:53 classes/pref/users.php:404 msgid "Registered" msgstr "Registriert" @@ -1505,8 +1380,7 @@ msgstr "Zugriffsberechtigung: " msgid "Change password to" msgstr "Passwort ändern in" -#: classes/pref/users.php:161 -#: classes/pref/feeds.php:610 +#: classes/pref/users.php:161 classes/pref/feeds.php:610 #: classes/pref/feeds.php:834 msgid "Options" msgstr "Optionen" @@ -1544,18 +1418,12 @@ msgstr "Sende das neue Passwort von Benutzer %s an %s" msgid "[tt-rss] Password change notification" msgstr "[tt-rss] Benachrichtigung: Passwort geändert" -#: classes/pref/users.php:342 -#: classes/pref/labels.php:272 -#: classes/pref/filters.php:279 -#: classes/pref/filters.php:327 -#: classes/pref/filters.php:645 -#: classes/pref/filters.php:734 -#: classes/pref/filters.php:761 -#: classes/pref/prefs.php:1000 -#: classes/pref/feeds.php:1263 -#: classes/pref/feeds.php:1533 -#: classes/pref/feeds.php:1603 -#: plugins/instances/init.php:287 +#: classes/pref/users.php:342 classes/pref/labels.php:272 +#: classes/pref/filters.php:279 classes/pref/filters.php:327 +#: classes/pref/filters.php:645 classes/pref/filters.php:734 +#: classes/pref/filters.php:761 classes/pref/prefs.php:1000 +#: classes/pref/feeds.php:1263 classes/pref/feeds.php:1533 +#: classes/pref/feeds.php:1603 plugins/instances/init.php:287 msgid "Select" msgstr "Auswahl" @@ -1567,8 +1435,7 @@ msgstr "Benutzer anlegen" msgid "Details" msgstr "Details" -#: classes/pref/users.php:356 -#: classes/pref/filters.php:660 +#: classes/pref/users.php:356 classes/pref/filters.php:660 #: plugins/instances/init.php:296 msgid "Edit" msgstr "Bearbeiten" @@ -1581,8 +1448,7 @@ msgstr "Zugriffsberechtigung" msgid "Last login" msgstr "Zuletzt angemeldet" -#: classes/pref/users.php:426 -#: plugins/instances/init.php:337 +#: classes/pref/users.php:426 plugins/instances/init.php:337 msgid "Click to edit" msgstr "Zum Bearbeiten klicken" @@ -1594,8 +1460,7 @@ msgstr "Keine Benutzer definiert." msgid "No matching users found." msgstr "Keine zugehörigen Benutzer gefunden." -#: classes/pref/labels.php:22 -#: classes/pref/filters.php:268 +#: classes/pref/labels.php:22 classes/pref/filters.php:268 #: classes/pref/filters.php:725 msgid "Caption" msgstr "Titel" @@ -1627,47 +1492,44 @@ msgstr "Artikel, die auf diesen Filter passen: " #: classes/pref/filters.php:133 msgid "No recent articles matching this filter have been found." -msgstr "Keine kürzlich erschienenen Artikel gefunden, die auf diesen Filter passen." +msgstr "" +"Keine kürzlich erschienenen Artikel gefunden, die auf diesen Filter passen." #: classes/pref/filters.php:137 -msgid "Complex expressions might not give results while testing due to issues with database server regexp implementation." -msgstr "Komplexe Filter liefern im Testmodus möglichweise keine Ergebnisse, da es Probleme mit der RegExp-Implementierung des Datenbankservers gibt." +msgid "" +"Complex expressions might not give results while testing due to issues with " +"database server regexp implementation." +msgstr "" +"Komplexe Filter liefern im Testmodus möglichweise keine Ergebnisse, da es " +"Probleme mit der RegExp-Implementierung des Datenbankservers gibt." -#: classes/pref/filters.php:274 -#: classes/pref/filters.php:729 +#: classes/pref/filters.php:274 classes/pref/filters.php:729 #: classes/pref/filters.php:844 msgid "Match" msgstr "Kriterien" -#: classes/pref/filters.php:288 -#: classes/pref/filters.php:336 -#: classes/pref/filters.php:743 -#: classes/pref/filters.php:770 +#: classes/pref/filters.php:288 classes/pref/filters.php:336 +#: classes/pref/filters.php:743 classes/pref/filters.php:770 msgid "Add" msgstr "Hinzufügen" -#: classes/pref/filters.php:322 -#: classes/pref/filters.php:756 +#: classes/pref/filters.php:322 classes/pref/filters.php:756 msgid "Apply actions" msgstr "Aktionen anwenden" -#: classes/pref/filters.php:372 -#: classes/pref/filters.php:785 +#: classes/pref/filters.php:372 classes/pref/filters.php:785 msgid "Enabled" msgstr "Aktiviert" -#: classes/pref/filters.php:381 -#: classes/pref/filters.php:788 +#: classes/pref/filters.php:381 classes/pref/filters.php:788 msgid "Match any rule" msgstr "Ein erfülltes Kriterium ist ausreichend" -#: classes/pref/filters.php:390 -#: classes/pref/filters.php:791 +#: classes/pref/filters.php:390 classes/pref/filters.php:791 msgid "Inverse matching" msgstr "Invertierte Übereinstimmung" -#: classes/pref/filters.php:402 -#: classes/pref/filters.php:798 +#: classes/pref/filters.php:402 classes/pref/filters.php:798 msgid "Test" msgstr "Test" @@ -1684,14 +1546,12 @@ msgstr "%s innerhalb %s von %s %s" msgid "Combine" msgstr "Zusammenfügen" -#: classes/pref/filters.php:663 -#: classes/pref/feeds.php:1279 +#: classes/pref/filters.php:663 classes/pref/feeds.php:1279 #: classes/pref/feeds.php:1293 msgid "Reset sort order" msgstr "Sortierreihenfolge zurücksetzen" -#: classes/pref/filters.php:671 -#: classes/pref/feeds.php:1318 +#: classes/pref/filters.php:671 classes/pref/feeds.php:1318 msgid "Rescore articles" msgstr "Artikel neu bewerten" @@ -1707,8 +1567,7 @@ msgstr "Invertiere reguläre Ausdrücke" msgid "on field" msgstr "in Feld" -#: classes/pref/filters.php:864 -#: js/PrefFilterTree.js:45 +#: classes/pref/filters.php:864 js/PrefFilterTree.js:45 #: plugins/digest/digest.js:242 msgid "in" msgstr "in" @@ -1717,8 +1576,7 @@ msgstr "in" msgid "Save rule" msgstr "Regel speichern" -#: classes/pref/filters.php:877 -#: js/functions.js:1013 +#: classes/pref/filters.php:877 js/functions.js:1013 msgid "Add rule" msgstr "Regel hinzufügen" @@ -1734,8 +1592,7 @@ msgstr "mit Parametern:" msgid "Save action" msgstr "Aktion speichern" -#: classes/pref/filters.php:944 -#: js/functions.js:1039 +#: classes/pref/filters.php:944 js/functions.js:1039 msgid "Add action" msgstr "Aktion hinzufügen" @@ -1772,16 +1629,25 @@ msgid "Blacklisted tags" msgstr "Gesperrte Tags" #: classes/pref/prefs.php:27 -msgid "When auto-detecting tags in articles these tags will not be applied (comma-separated list)." -msgstr "Bei der automatischen Erkennung von Tags in Artikeln werden die folgenden nicht verwendet (durch Komma getrennte Liste)." +msgid "" +"When auto-detecting tags in articles these tags will not be applied (comma-" +"separated list)." +msgstr "" +"Bei der automatischen Erkennung von Tags in Artikeln werden die folgenden " +"nicht verwendet (durch Komma getrennte Liste)." #: classes/pref/prefs.php:28 msgid "Automatically mark articles as read" msgstr "Artikel automatisch als gelesen markieren" #: classes/pref/prefs.php:28 -msgid "This option enables marking articles as read automatically while you scroll article list." -msgstr "Diese Option aktiviert das automatische \"Als gelesen markieren\" im kombinierten Anzeigemodus (ausgenommen ist der Neue-Artikel-Feed), während Sie durch die Artikelliste scrollen." +msgid "" +"This option enables marking articles as read automatically while you scroll " +"article list." +msgstr "" +"Diese Option aktiviert das automatische \"Als gelesen markieren\" im " +"kombinierten Anzeigemodus (ausgenommen ist der Neue-Artikel-Feed), während " +"Sie durch die Artikelliste scrollen." #: classes/pref/prefs.php:29 msgid "Automatically expand articles in combined mode" @@ -1792,8 +1658,12 @@ msgid "Combined feed display" msgstr "Kombinierte Feed-Anzeige" #: classes/pref/prefs.php:30 -msgid "Display expanded list of feed articles, instead of separate displays for headlines and article content" -msgstr "Erweiterte Anzeigeliste für Artikel, anstelle von einzelnen Fenstern für Schlagzeilen und Artikelinhalt" +msgid "" +"Display expanded list of feed articles, instead of separate displays for " +"headlines and article content" +msgstr "" +"Erweiterte Anzeigeliste für Artikel, anstelle von einzelnen Fenstern für " +"Schlagzeilen und Artikelinhalt" #: classes/pref/prefs.php:31 msgid "Confirm marking feed as read" @@ -1804,13 +1674,16 @@ msgid "Amount of articles to display at once" msgstr "Anzahl der Artikel, die gleichzeitig geladen werden" #: classes/pref/prefs.php:33 -#, fuzzy msgid "Default feed update interval" -msgstr "Standard-Intervall" +msgstr "Standard-Intervall für Feed-Updates" #: classes/pref/prefs.php:33 -msgid "Shortest interval at which a feed will be checked for updates regardless of update method" +msgid "" +"Shortest interval at which a feed will be checked for updates regardless of " +"update method" msgstr "" +"Kürzestes Intervall, in dem ein Feed, unabhängig von der gewählten Update-" +"Methode, auf neue Beiträge überprüft wird" #: classes/pref/prefs.php:34 msgid "Mark articles in e-mail digest as read" @@ -1821,8 +1694,12 @@ msgid "Enable e-mail digest" msgstr "Aktiviere E-Mail-Zusammenfassung" #: classes/pref/prefs.php:35 -msgid "This option enables sending daily digest of new (and unread) headlines on your configured e-mail address" -msgstr "Diese Option aktiviert das Senden einer täglichen Zusammenfassung über neue (und ungelesene) Schlagzeilen an Ihre angegebene E-Mail-Adresse" +msgid "" +"This option enables sending daily digest of new (and unread) headlines on " +"your configured e-mail address" +msgstr "" +"Diese Option aktiviert das Senden einer täglichen Zusammenfassung über neue " +"(und ungelesene) Schlagzeilen an Ihre angegebene E-Mail-Adresse" #: classes/pref/prefs.php:36 msgid "Try to send digests around specified time" @@ -1869,8 +1746,11 @@ msgid "On catchup show next feed" msgstr "Den nächsten Feed anzeigen" #: classes/pref/prefs.php:44 -msgid "Automatically open next feed with unread articles after marking one as read" -msgstr "Automatisch nächsten Feed mit ungelesenen Artikeln laden, nachdem ein Feed als gelesen markiert wurde" +msgid "" +"Automatically open next feed with unread articles after marking one as read" +msgstr "" +"Automatisch nächsten Feed mit ungelesenen Artikeln laden, nachdem ein Feed " +"als gelesen markiert wurde" #: classes/pref/prefs.php:45 msgid "Purge articles after this number of days (0 - disables)" @@ -1880,8 +1760,7 @@ msgstr "Alte Artikel nach dieser Anzahl an Tagen löschen (0 - deaktivert)" msgid "Purge unread articles" msgstr "Ungelesene Artikel löschen" -#: classes/pref/prefs.php:47 -#: plugins/mobile/prefs.php:60 +#: classes/pref/prefs.php:47 plugins/mobile/prefs.php:60 msgid "Reverse headline order (oldest first)" msgstr "Schlagzeilensortierung umkehren (älteste zuerst)" @@ -1899,7 +1778,9 @@ msgstr "Feeds nach Schlagzeilendatum sortieren" #: classes/pref/prefs.php:50 msgid "Use feed-specified date to sort headlines instead of local import date." -msgstr "Benutze feed-spezifisches Datum statt des lokalen Importdatums um Schlagzeilen zu sortieren." +msgstr "" +"Benutze feed-spezifisches Datum statt des lokalen Importdatums um " +"Schlagzeilen zu sortieren." #: classes/pref/prefs.php:51 msgid "Login with an SSL certificate" @@ -1921,8 +1802,7 @@ msgstr "Unsichere Tags aus Artikeln entfernen" msgid "Strip all but most common HTML tags when reading articles." msgstr "Alle außer den meist verwendeten HTML Tags beim Lesen entfernen." -#: classes/pref/prefs.php:54 -#: js/prefs.js:1720 +#: classes/pref/prefs.php:54 js/prefs.js:1720 msgid "Customize stylesheet" msgstr "Benutzerdefiniertes Stylesheet" @@ -1940,7 +1820,9 @@ msgstr "Schlagzeilen in virtuellen Feeds gruppieren" #: classes/pref/prefs.php:56 msgid "Special feeds, labels, and categories are grouped by originating feeds" -msgstr "Spezial-Feeds, Labels und Kategorien sind nach den ursprünglichen Feeds gruppiert" +msgstr "" +"Spezial-Feeds, Labels und Kategorien sind nach den ursprünglichen Feeds " +"gruppiert" #: classes/pref/prefs.php:57 msgid "Select theme" @@ -1980,9 +1862,8 @@ msgid "Your personal data has been saved." msgstr "Ihre persönlichen Daten wurden gespeichert." #: classes/pref/prefs.php:184 -#, fuzzy msgid "Your preferences are now set to default values." -msgstr "Einige Einstellungen sind nur im Standardprofil verfügbar." +msgstr "Ihre Einstellungen sind jetzt auf die Standardwerte gesetzt." #: classes/pref/prefs.php:206 msgid "Personal data / Authentication" @@ -2037,11 +1918,14 @@ msgid "One time passwords / Authenticator" msgstr "Einmalpasswörter (OTP) / Authentifikator" #: classes/pref/prefs.php:338 -msgid "One time passwords are currently enabled. Enter your current password below to disable." -msgstr "Einmalpasswörter sind aktiviert. Gib dein aktuelles Passwort ein, um diese zu deaktivieren." +msgid "" +"One time passwords are currently enabled. Enter your current password below " +"to disable." +msgstr "" +"Einmalpasswörter sind aktiviert. Gib dein aktuelles Passwort ein, um diese " +"zu deaktivieren." -#: classes/pref/prefs.php:363 -#: classes/pref/prefs.php:414 +#: classes/pref/prefs.php:363 classes/pref/prefs.php:414 msgid "Enter your password" msgstr "Geben Sie Ihr Passwort ein" @@ -2050,8 +1934,12 @@ msgid "Disable OTP" msgstr "Einmalpasswörter ausschalten" #: classes/pref/prefs.php:380 -msgid "You will need a compatible Authenticator to use this. Changing your password would automatically disable OTP." -msgstr "Sie benötigen einen kompatiblen Authentifikator. Sollten Sie Ihr Passwort ändern, wird diese Funktion automatisch ausgeschaltet." +msgid "" +"You will need a compatible Authenticator to use this. Changing your password " +"would automatically disable OTP." +msgstr "" +"Sie benötigen einen kompatiblen Authentifikator. Sollten Sie Ihr Passwort " +"ändern, wird diese Funktion automatisch ausgeschaltet." #: classes/pref/prefs.php:382 msgid "Scan the following code by the Authenticator application:" @@ -2059,7 +1947,9 @@ msgstr "Scannen Sie den folgenden Code mit Ihrem Authentifikator:" #: classes/pref/prefs.php:423 msgid "I have scanned the code and would like to enable OTP" -msgstr "Ich habe den Code gescannt und möchte die Anmeldung mit Einmalpasswörtern jetzt aktivieren" +msgstr "" +"Ich habe den Code gescannt und möchte die Anmeldung mit Einmalpasswörtern " +"jetzt aktivieren" #: classes/pref/prefs.php:431 msgid "Enable OTP" @@ -2102,50 +1992,53 @@ msgstr "Profile verwalten" msgid "Reset to defaults" msgstr "Auf Standardwerte zurücksetzen" -#: classes/pref/prefs.php:726 -#: classes/pref/prefs.php:728 +#: classes/pref/prefs.php:726 classes/pref/prefs.php:728 msgid "Plugins" msgstr "Plugins" #: classes/pref/prefs.php:730 -msgid "You will need to reload Tiny Tiny RSS for plugin changes to take effect." -msgstr "Du musst Tiny Tiny RSS neu laden, damit Pluginänderungen angewandt werden." +msgid "" +"You will need to reload Tiny Tiny RSS for plugin changes to take effect." +msgstr "" +"Du musst Tiny Tiny RSS neu laden, damit Pluginänderungen angewandt werden." #: classes/pref/prefs.php:732 -msgid "Download more plugins at tt-rss.org forums or wiki." -msgstr "Mehr Plugins im tt-rss.org Forum oder im Wiki." +msgid "" +"Download more plugins at tt-rss.org forums or wiki." +msgstr "" +"Mehr Plugins im tt-rss.org Forum oder im Wiki." #: classes/pref/prefs.php:758 msgid "System plugins" msgstr "System-Plugins" -#: classes/pref/prefs.php:762 -#: classes/pref/prefs.php:816 +#: classes/pref/prefs.php:762 classes/pref/prefs.php:816 msgid "Plugin" msgstr "Plugin" -#: classes/pref/prefs.php:763 -#: classes/pref/prefs.php:817 +#: classes/pref/prefs.php:763 classes/pref/prefs.php:817 msgid "Description" msgstr "Beschreibung" -#: classes/pref/prefs.php:764 -#: classes/pref/prefs.php:818 +#: classes/pref/prefs.php:764 classes/pref/prefs.php:818 msgid "Version" msgstr "Version" -#: classes/pref/prefs.php:765 -#: classes/pref/prefs.php:819 +#: classes/pref/prefs.php:765 classes/pref/prefs.php:819 msgid "Author" msgstr "Autor" -#: classes/pref/prefs.php:794 -#: classes/pref/prefs.php:851 +#: classes/pref/prefs.php:794 classes/pref/prefs.php:851 msgid "more info" msgstr "weitere Informationen" -#: classes/pref/prefs.php:803 -#: classes/pref/prefs.php:860 +#: classes/pref/prefs.php:803 classes/pref/prefs.php:860 msgid "Clear data" msgstr "Daten löschen" @@ -2157,22 +2050,27 @@ msgstr "Benutzer-Plugins" msgid "Enable selected plugins" msgstr "Ausgewählte Plugins aktivieren" -#: classes/pref/prefs.php:930 -#: classes/pref/prefs.php:948 +#: classes/pref/prefs.php:930 classes/pref/prefs.php:948 msgid "Incorrect password" msgstr "Falsches Passwort" #: classes/pref/prefs.php:974 #, php-format -msgid "You can override colors, fonts and layout of your currently selected theme with custom CSS declarations here. This file can be used as a baseline." -msgstr "Sie können Farben, Schriftarten und das Layout Ihres aktuell gewählten Themas mit einem eigenen CSS-Stylesheet überschreiben. Diese Datei kann als Grundlage benutzt werden." +msgid "" +"You can override colors, fonts and layout of your currently selected theme " +"with custom CSS declarations here. This file can be used as a baseline." +msgstr "" +"Sie können Farben, Schriftarten und das Layout Ihres aktuell gewählten " +"Themas mit einem eigenen CSS-Stylesheet überschreiben. Diese Datei kann als Grundlage benutzt " +"werden." #: classes/pref/prefs.php:1014 msgid "Create profile" msgstr "Profil erstellen" -#: classes/pref/prefs.php:1037 -#: classes/pref/prefs.php:1067 +#: classes/pref/prefs.php:1037 classes/pref/prefs.php:1067 msgid "(active)" msgstr "(aktiv)" @@ -2192,47 +2090,43 @@ msgstr "Ankreuzen um das Feld zu aktivieren" msgid "Feed Title" msgstr "Feed-Titel" -#: classes/pref/feeds.php:568 -#: classes/pref/feeds.php:793 +#: classes/pref/feeds.php:568 classes/pref/feeds.php:793 msgid "Update" msgstr "Aktualisieren" -#: classes/pref/feeds.php:583 -#: classes/pref/feeds.php:809 +#: classes/pref/feeds.php:583 classes/pref/feeds.php:809 msgid "Article purging:" msgstr "Artikel löschen:" #: classes/pref/feeds.php:606 -msgid "Hint: you need to fill in your login information if your feed requires authentication, except for Twitter feeds." -msgstr "Hinweis: Sie müssen Ihre Login-Informationen eingeben, wenn Ihr Feed eine Authentifizierung erfordert (außer Twitter-Feeds)." +msgid "" +"Hint: you need to fill in your login information if your feed " +"requires authentication, except for Twitter feeds." +msgstr "" +"Hinweis: Sie müssen Ihre Login-Informationen eingeben, wenn Ihr Feed " +"eine Authentifizierung erfordert (außer Twitter-Feeds)." -#: classes/pref/feeds.php:622 -#: classes/pref/feeds.php:838 +#: classes/pref/feeds.php:622 classes/pref/feeds.php:838 msgid "Hide from Popular feeds" msgstr "Nicht unter beliebten Feeds aufführen" -#: classes/pref/feeds.php:634 -#: classes/pref/feeds.php:844 +#: classes/pref/feeds.php:634 classes/pref/feeds.php:844 msgid "Include in e-mail digest" msgstr "In E-Mail-Zusammenfassung aufnehmen" -#: classes/pref/feeds.php:647 -#: classes/pref/feeds.php:850 +#: classes/pref/feeds.php:647 classes/pref/feeds.php:850 msgid "Always display image attachments" msgstr "Angehängte Bilder immer anzeigen" -#: classes/pref/feeds.php:660 -#: classes/pref/feeds.php:858 +#: classes/pref/feeds.php:660 classes/pref/feeds.php:858 msgid "Do not embed images" msgstr "Bilder nicht einbetten" -#: classes/pref/feeds.php:673 -#: classes/pref/feeds.php:866 +#: classes/pref/feeds.php:673 classes/pref/feeds.php:866 msgid "Cache images locally" msgstr "Bilder lokal zwischenspeichern" -#: classes/pref/feeds.php:685 -#: classes/pref/feeds.php:872 +#: classes/pref/feeds.php:685 classes/pref/feeds.php:872 msgid "Mark updated articles as unread" msgstr "Aktualisierte Artikel als ungelesen markieren" @@ -2252,8 +2146,7 @@ msgstr "Abonnierte Feeds:" msgid "Resets PubSubHubbub subscription status for push-enabled feeds." msgstr "PubSubHubbub-Abonnementstatus für Push-fähige Feeds zurücksetzen." -#: classes/pref/feeds.php:1112 -#: classes/pref/feeds.php:1165 +#: classes/pref/feeds.php:1112 classes/pref/feeds.php:1165 msgid "All done." msgstr "Fertig." @@ -2269,8 +2162,7 @@ msgstr "Inaktive Feeds" msgid "Edit selected feeds" msgstr "Bearbeite ausgewählte Feeds" -#: classes/pref/feeds.php:1281 -#: js/prefs.js:1765 +#: classes/pref/feeds.php:1281 js/prefs.js:1765 msgid "Batch subscribe" msgstr "Mehrere Feeds abonnieren" @@ -2307,8 +2199,12 @@ msgid "OPML" msgstr "OPML" #: classes/pref/feeds.php:1370 -msgid "Using OPML you can export and import your feeds, filters, labels and Tiny Tiny RSS settings." -msgstr "Über OPML können Feeds, Filter, Label und Tiny-Tiny-RSS-Einstellungen importiert und exportiert werden." +msgid "" +"Using OPML you can export and import your feeds, filters, labels and Tiny " +"Tiny RSS settings." +msgstr "" +"Über OPML können Feeds, Filter, Label und Tiny-Tiny-RSS-Einstellungen " +"importiert und exportiert werden." #: classes/pref/feeds.php:1372 msgid "Only main settings profile can be migrated using OPML." @@ -2331,12 +2227,21 @@ msgid "Export OPML" msgstr "OPML exportieren" #: classes/pref/feeds.php:1399 -msgid "Your OPML can be published publicly and can be subscribed by anyone who knows the URL below." -msgstr "Ihre OPML können veröffentlicht werden, so dass jeder, der die URL kennt, diese abonnieren kann." +msgid "" +"Your OPML can be published publicly and can be subscribed by anyone who " +"knows the URL below." +msgstr "" +"Ihre OPML können veröffentlicht werden, so dass jeder, der die URL kennt, " +"diese abonnieren kann." #: classes/pref/feeds.php:1401 -msgid "Published OPML does not include your Tiny Tiny RSS settings, feeds that require authentication or feeds hidden from Popular feeds." -msgstr "Eine öffentliche OPML enthält keine Tiny-Tiny-RSS-Einstellungen, passwortgeschützte Feeds oder Feeds, die nicht in den beliebten Feeds auftauchen sollen." +msgid "" +"Published OPML does not include your Tiny Tiny RSS settings, feeds that " +"require authentication or feeds hidden from Popular feeds." +msgstr "" +"Eine öffentliche OPML enthält keine Tiny-Tiny-RSS-Einstellungen, " +"passwortgeschützte Feeds oder Feeds, die nicht in den beliebten Feeds " +"auftauchen sollen." #: classes/pref/feeds.php:1403 msgid "Public OPML URL" @@ -2351,8 +2256,12 @@ msgid "Firefox integration" msgstr "Firefox-Integration" #: classes/pref/feeds.php:1416 -msgid "This Tiny Tiny RSS site can be used as a Firefox Feed Reader by clicking the link below." -msgstr "Tiny Tiny RSS kann durch den folgenden Link als Feedreader für Firefox verwendet werden." +msgid "" +"This Tiny Tiny RSS site can be used as a Firefox Feed Reader by clicking the " +"link below." +msgstr "" +"Tiny Tiny RSS kann durch den folgenden Link als Feedreader für Firefox " +"verwendet werden." #: classes/pref/feeds.php:1423 msgid "Click here to register this site as a feed reader." @@ -2367,8 +2276,12 @@ msgid "Published articles and generated feeds" msgstr "Veröffentlichte Artikel und erzeugte Feeds" #: classes/pref/feeds.php:1435 -msgid "Published articles are exported as a public RSS feed and can be subscribed by anyone who knows the URL specified below." -msgstr "Veröffentlichte Artikel werden als öffentlicher RSS-Feed exportiert und können von jedem abonniert werden, der die nachstehende URL kennt." +msgid "" +"Published articles are exported as a public RSS feed and can be subscribed " +"by anyone who knows the URL specified below." +msgstr "" +"Veröffentlichte Artikel werden als öffentlicher RSS-Feed exportiert und " +"können von jedem abonniert werden, der die nachstehende URL kennt." #: classes/pref/feeds.php:1441 msgid "Display URL" @@ -2391,16 +2304,18 @@ msgid "Unshare all articles" msgstr "Alle veröffentlichten Artikel zurückziehen" #: classes/pref/feeds.php:1529 -msgid "These feeds have not been updated with new content for 3 months (oldest first):" -msgstr "Folgende Feeds konnten seit 3 Monaten nicht aktualisiert werden (älteste zuerst):" +msgid "" +"These feeds have not been updated with new content for 3 months (oldest " +"first):" +msgstr "" +"Folgende Feeds konnten seit 3 Monaten nicht aktualisiert werden (älteste " +"zuerst):" -#: classes/pref/feeds.php:1566 -#: classes/pref/feeds.php:1636 +#: classes/pref/feeds.php:1566 classes/pref/feeds.php:1636 msgid "Click to edit feed" msgstr "Zum Bearbeiten klicken" -#: classes/pref/feeds.php:1584 -#: classes/pref/feeds.php:1656 +#: classes/pref/feeds.php:1584 classes/pref/feeds.php:1656 msgid "Unsubscribe from selected feeds" msgstr "Ausgewählte Feeds abbestellen" @@ -2410,7 +2325,9 @@ msgstr "Folgende Feeds konnten aufgrund von Fehlern nicht aktualisiert werden:" #: classes/pref/feeds.php:1761 msgid "Add one valid RSS feed per line (no feed detection is done)" -msgstr "Einen gültigen RSS Feed pro Zeile hinzufügen (Es findet keine Feederkennung statt)" +msgstr "" +"Einen gültigen RSS Feed pro Zeile hinzufügen (Es findet keine Feederkennung " +"statt)" #: classes/pref/feeds.php:1770 msgid "Feeds to subscribe, One per line" @@ -2421,8 +2338,12 @@ msgid "Feeds require authentication." msgstr "Feeds benötigen Authentifizierung." #: plugins/digest/digest_body.php:59 -msgid "Your browser doesn't support Javascript, which is required for this application to function properly. Please check your browser settings." -msgstr "Diese Anwendung benötigt Javascript um ordnungsgemäß zu funktionieren. Bitte überprüfen Sie Ihre Browser-Einstellungen." +msgid "" +"Your browser doesn't support Javascript, which is required for this " +"application to function properly. Please check your browser settings." +msgstr "" +"Diese Anwendung benötigt Javascript um ordnungsgemäß zu funktionieren. Bitte " +"überprüfen Sie Ihre Browser-Einstellungen." #: plugins/digest/digest_body.php:74 msgid "Hello," @@ -2436,8 +2357,7 @@ msgstr "Reguläre Version" msgid "Close article" msgstr "Artikel schließen" -#: plugins/nsfw/init.php:32 -#: plugins/nsfw/init.php:43 +#: plugins/nsfw/init.php:32 plugins/nsfw/init.php:43 msgid "Not work safe (click to toggle)" msgstr "NSFW (Klicken zum Anzeigen)" @@ -2470,8 +2390,7 @@ msgstr "Altes Passwort ist falsch." #: plugins/mobile/mobile-functions.php:173 #: plugins/mobile/mobile-functions.php:200 #: plugins/mobile/mobile-functions.php:236 -#: plugins/mobile/mobile-functions.php:373 -#: plugins/mobile/prefs.php:29 +#: plugins/mobile/mobile-functions.php:373 plugins/mobile/prefs.php:29 msgid "Home" msgstr "Startseite" @@ -2487,21 +2406,15 @@ msgstr "Reguläre Version öffnen" msgid "Enable categories" msgstr "Feedkategorien aktivieren" -#: plugins/mobile/prefs.php:35 -#: plugins/mobile/prefs.php:40 -#: plugins/mobile/prefs.php:46 -#: plugins/mobile/prefs.php:51 -#: plugins/mobile/prefs.php:56 -#: plugins/mobile/prefs.php:61 +#: plugins/mobile/prefs.php:35 plugins/mobile/prefs.php:40 +#: plugins/mobile/prefs.php:46 plugins/mobile/prefs.php:51 +#: plugins/mobile/prefs.php:56 plugins/mobile/prefs.php:61 msgid "ON" msgstr "AN" -#: plugins/mobile/prefs.php:35 -#: plugins/mobile/prefs.php:40 -#: plugins/mobile/prefs.php:46 -#: plugins/mobile/prefs.php:51 -#: plugins/mobile/prefs.php:56 -#: plugins/mobile/prefs.php:61 +#: plugins/mobile/prefs.php:35 plugins/mobile/prefs.php:40 +#: plugins/mobile/prefs.php:46 plugins/mobile/prefs.php:51 +#: plugins/mobile/prefs.php:56 plugins/mobile/prefs.php:61 msgid "OFF" msgstr "AUS" @@ -2521,15 +2434,12 @@ msgstr "Gelesene Artikel und Feeds verstecken" msgid "Sort feeds by unread count" msgstr "Feeds nach Anzahl der ungelesenen Artikel sortieren" -#: plugins/mailto/init.php:52 -#: plugins/mailto/init.php:58 -#: plugins/mail/init.php:66 -#: plugins/mail/init.php:72 +#: plugins/mailto/init.php:52 plugins/mailto/init.php:58 +#: plugins/mail/init.php:66 plugins/mail/init.php:72 msgid "[Forwarded]" msgstr "[Weitergeleitet]" -#: plugins/mailto/init.php:52 -#: plugins/mail/init.php:66 +#: plugins/mailto/init.php:52 plugins/mail/init.php:66 msgid "Multiple articles" msgstr "Mehrere Artikel" @@ -2542,8 +2452,11 @@ msgid "Forward selected article(s) by email." msgstr "Markierte(n) Artikel per E-Mail weiterleiten" #: plugins/mailto/init.php:81 -msgid "You should be able to edit the message before sending in your mail client." -msgstr "Sie können die Nachricht bearbeiten, bevor Sie diese mit Ihrem Mailclienten abschicken." +msgid "" +"You should be able to edit the message before sending in your mail client." +msgstr "" +"Sie können die Nachricht bearbeiten, bevor Sie diese mit Ihrem Mailclienten " +"abschicken." #: plugins/mailto/init.php:86 msgid "Close this dialog" @@ -2554,8 +2467,13 @@ msgid "Bookmarklets" msgstr "Lesezeichen" #: plugins/bookmarklets/init.php:24 -msgid "Drag the link below to your browser toolbar, open the feed you're interested in in your browser and click on the link to subscribe to it." -msgstr "Ziehen Sie den folgenden Link in Ihre Browser-Toolbar, öffnen Sie den Feed, an dem Sie interessiert sind, in Ihren Browser und klicken auf den Link, um ihn zu abonnieren." +msgid "" +"Drag the link below to your browser toolbar, open the feed you're interested " +"in in your browser and click on the link to subscribe to it." +msgstr "" +"Ziehen Sie den folgenden Link in Ihre Browser-Toolbar, öffnen Sie den Feed, " +"an dem Sie interessiert sind, in Ihren Browser und klicken auf den Link, um " +"ihn zu abonnieren." #: plugins/bookmarklets/init.php:28 #, php-format @@ -2568,7 +2486,9 @@ msgstr "Abonnieren in Tiny Tiny RSS" #: plugins/bookmarklets/init.php:34 msgid "Use this bookmarklet to publish arbitrary pages using Tiny Tiny RSS" -msgstr "Benutzen Sie dieses Lesezeichen, um beliebige Seiten mit Tiny Tiny RSS zu teilen" +msgstr "" +"Benutzen Sie dieses Lesezeichen, um beliebige Seiten mit Tiny Tiny RSS zu " +"teilen" #: plugins/import_export/init.php:61 msgid "Import and export" @@ -2579,8 +2499,12 @@ msgid "Article archive" msgstr "Artikelarchiv" #: plugins/import_export/init.php:65 -msgid "You can export and import your Starred and Archived articles for safekeeping or when migrating between tt-rss instances." -msgstr "Die markierten und archivierten Artikel können zur Aufbewahrung oder Migration zwischen verschiedenen Tiny Tiny RSS Instanzen exportiert werden." +msgid "" +"You can export and import your Starred and Archived articles for safekeeping " +"or when migrating between tt-rss instances." +msgstr "" +"Die markierten und archivierten Artikel können zur Aufbewahrung oder " +"Migration zwischen verschiedenen Tiny Tiny RSS Instanzen exportiert werden." #: plugins/import_export/init.php:68 msgid "Export my data" @@ -2633,8 +2557,12 @@ msgstr "Bereite Daten vor" #: plugins/import_export/init.php:423 #, php-format -msgid "Could not upload file. You might need to adjust upload_max_filesize in PHP.ini (current value = %s)" -msgstr "Datei konnte nicht hochgeladen werden. Möglicherweise muss upload_max_filesize in der PHP.ini angepasst werden. (Aktueller Wert = %s)" +msgid "" +"Could not upload file. You might need to adjust upload_max_filesize in PHP." +"ini (current value = %s)" +msgstr "" +"Datei konnte nicht hochgeladen werden. Möglicherweise muss " +"upload_max_filesize in der PHP.ini angepasst werden. (Aktueller Wert = %s)" #: plugins/mail/init.php:87 msgid "From:" @@ -2652,8 +2580,7 @@ msgstr "Betreff:" msgid "Send e-mail" msgstr "E-Mail versenden" -#: plugins/note/init.php:28 -#: plugins/note/note.js:11 +#: plugins/note/init.php:28 plugins/note/note.js:11 msgid "Edit article note" msgstr "Artikelnotizen bearbeiten" @@ -2698,35 +2625,30 @@ msgstr "Importiere meine markierten Einträge" msgid "Linked" msgstr "Verbunden" -#: plugins/instances/init.php:207 -#: plugins/instances/init.php:399 +#: plugins/instances/init.php:207 plugins/instances/init.php:399 msgid "Instance" msgstr "Instanz" -#: plugins/instances/init.php:218 -#: plugins/instances/init.php:315 +#: plugins/instances/init.php:218 plugins/instances/init.php:315 #: plugins/instances/init.php:408 msgid "Instance URL" msgstr "Instanz-URL" -#: plugins/instances/init.php:229 -#: plugins/instances/init.php:418 +#: plugins/instances/init.php:229 plugins/instances/init.php:418 msgid "Access key:" msgstr "Zugriffsberechtigung:" -#: plugins/instances/init.php:232 -#: plugins/instances/init.php:316 +#: plugins/instances/init.php:232 plugins/instances/init.php:316 #: plugins/instances/init.php:421 msgid "Access key" msgstr "Zugriffsberechtigung" -#: plugins/instances/init.php:236 -#: plugins/instances/init.php:425 +#: plugins/instances/init.php:236 plugins/instances/init.php:425 msgid "Use one access key for both linked instances." -msgstr "Benutzen Sie den selben Zugriffschlüssel für beide verbundenen Instanzen." +msgstr "" +"Benutzen Sie den selben Zugriffschlüssel für beide verbundenen Instanzen." -#: plugins/instances/init.php:244 -#: plugins/instances/init.php:433 +#: plugins/instances/init.php:244 plugins/instances/init.php:433 msgid "Generate new key" msgstr "Neuen Zugriffsschlüssel erzeugen" @@ -2735,8 +2657,13 @@ msgid "Link instance" msgstr "Instanz verbinden" #: plugins/instances/init.php:307 -msgid "You can connect other instances of Tiny Tiny RSS to this one to share Popular feeds. Link to this instance of Tiny Tiny RSS by using this URL:" -msgstr "Sie können andere Instanzen von Tiny Tiny RSS mit dieser verbinden, um beliebte Feeds zu teilen. Verbinden Sie diese Instanz von Tiny Tiny RSS mit folgender URL:" +msgid "" +"You can connect other instances of Tiny Tiny RSS to this one to share " +"Popular feeds. Link to this instance of Tiny Tiny RSS by using this URL:" +msgstr "" +"Sie können andere Instanzen von Tiny Tiny RSS mit dieser verbinden, um " +"beliebte Feeds zu teilen. Verbinden Sie diese Instanz von Tiny Tiny RSS mit " +"folgender URL:" #: plugins/instances/init.php:317 msgid "Last connected" @@ -2762,8 +2689,7 @@ msgstr "Per URL teilen" msgid "You can share this article by the following unique URL:" msgstr "Sie können diesen Artikel über folgende eindeutige URL teilen:" -#: plugins/updater/init.php:323 -#: plugins/updater/init.php:340 +#: plugins/updater/init.php:323 plugins/updater/init.php:340 #: plugins/updater/updater.js:10 msgid "Update Tiny Tiny RSS" msgstr "Tiny Tiny RSS updaten" @@ -2773,21 +2699,27 @@ msgid "Your Tiny Tiny RSS installation is up to date." msgstr "Tiny Tiny RSS ist auf dem neuesten Stand." #: plugins/updater/init.php:351 -#, fuzzy msgid "Do not close this dialog until updating is finished." -msgstr "Diesen Dialog nicht Schließen, bis das Update abgeschlossen ist. Sichern Sie ihr tt-rss Verzeichnis, bevor Sie fortfahren." +msgstr "Diesen Dialog nicht Schließen, bis das Update abgeschlossen ist." #: plugins/updater/init.php:360 msgid "It is suggested to backup your tt-rss directory first." msgstr "" +"Es wird empfohlen, das tt-rss Verzeichnis zu sichern, bevor Sie fortfahren." #: plugins/updater/init.php:361 msgid "Your database will not be modified." -msgstr "" +msgstr "Ihre Datenbank wird nicht verändert" #: plugins/updater/init.php:362 -msgid "Your current tt-rss installation directory will not be modified. It will be renamed and left in the parent directory. You will be able to migrate all your customized files after update finishes." +msgid "" +"Your current tt-rss installation directory will not be modified. It will be " +"renamed and left in the parent directory. You will be able to migrate all " +"your customized files after update finishes." msgstr "" +"Ihre aktuelle tt-rss Installation wird nicht verändert. Sie wird umbenannt " +"und bleibt somit erhalten. Ihre Anpassungen können Sie nach dem Update " +"migrieren." #: plugins/updater/init.php:363 msgid "Ready to update." @@ -2797,27 +2729,33 @@ msgstr "Bereit zum Updaten." msgid "Start update" msgstr "Starte update" -#: js/feedlist.js:394 -#: js/feedlist.js:422 -#: plugins/digest/digest.js:26 +#: js/feedlist.js:394 js/feedlist.js:422 plugins/digest/digest.js:26 msgid "Mark all articles in %s as read?" msgstr "Alle Artikel in %s als gelesen markieren?" #: js/feedlist.js:413 msgid "Mark all articles in %s older than 1 day as read?" -msgstr "Alle Artikel in %s, die älter als einen Tag sind, als gelesen markieren?" +msgstr "" +"Alle Artikel in %s, die älter als einen Tag sind, als gelesen markieren?" #: js/feedlist.js:416 msgid "Mark all articles in %s older than 1 week as read?" -msgstr "Alle Artikel in %s, die älter als eine Woche sind, als gelesen markieren?" +msgstr "" +"Alle Artikel in %s, die älter als eine Woche sind, als gelesen markieren?" #: js/feedlist.js:419 msgid "Mark all articles in %s older than 2 weeks as read?" -msgstr "Alle Artikel in %s, die älter als 2 Wochen sind, als gelesen markieren?" +msgstr "" +"Alle Artikel in %s, die älter als 2 Wochen sind, als gelesen markieren?" #: js/functions.js:92 -msgid "Are you sure to report this exception to tt-rss.org? The report will include your browser information. Your IP would be saved in the database." -msgstr "Sind Sie sicher, dass Sie diesen Fehler an tt-rss.org melden wollen? Der Bericht enthält Ihre Browser-Informationen. Ihre IP-Adresse würde in der Datenbank gespeichert werden." +msgid "" +"Are you sure to report this exception to tt-rss.org? The report will include " +"your browser information. Your IP would be saved in the database." +msgstr "" +"Sind Sie sicher, dass Sie diesen Fehler an tt-rss.org melden wollen? Der " +"Bericht enthält Ihre Browser-Informationen. Ihre IP-Adresse würde in der " +"Datenbank gespeichert werden." #: js/functions.js:214 msgid "close" @@ -2900,15 +2838,18 @@ msgid "Create Filter" msgstr "Filter erstellen" #: js/functions.js:1191 -msgid "Reset subscription? Tiny Tiny RSS will try to subscribe to the notification hub again on next feed update." -msgstr "Abonnement zurücksetzen? Tiny Tiny RSS wird versuchen, sich bei der nächsten Feed-Aktualisierung erneut beim Benachrichtigungs-Hub anzumelden." +msgid "" +"Reset subscription? Tiny Tiny RSS will try to subscribe to the notification " +"hub again on next feed update." +msgstr "" +"Abonnement zurücksetzen? Tiny Tiny RSS wird versuchen, sich bei der nächsten " +"Feed-Aktualisierung erneut beim Benachrichtigungs-Hub anzumelden." #: js/functions.js:1202 msgid "Subscription reset." msgstr "Abonnement zurückgesetzt." -#: js/functions.js:1212 -#: js/tt-rss.js:641 +#: js/functions.js:1212 js/tt-rss.js:641 msgid "Unsubscribe from %s?" msgstr "%s abbestellen?" @@ -2924,14 +2865,11 @@ msgstr "Bitte geben Sie den Kategorietitel ein:" msgid "Generate new syndication address for this feed?" msgstr "Neue Veröffentlichungsadresse für diesen Feed erzeugen?" -#: js/functions.js:1358 -#: js/prefs.js:1217 +#: js/functions.js:1358 js/prefs.js:1217 msgid "Trying to change address..." msgstr "Versuche, die Adresse zu ändern..." -#: js/functions.js:1545 -#: js/tt-rss.js:412 -#: js/tt-rss.js:622 +#: js/functions.js:1545 js/tt-rss.js:412 js/tt-rss.js:622 msgid "You can't edit this kind of feed." msgstr "Sie können diese Art von Feed nicht bearbeiten." @@ -2939,9 +2877,7 @@ msgstr "Sie können diese Art von Feed nicht bearbeiten." msgid "Edit Feed" msgstr "Feed bearbeiten" -#: js/functions.js:1566 -#: js/prefs.js:194 -#: js/prefs.js:749 +#: js/functions.js:1566 js/prefs.js:194 js/prefs.js:749 msgid "Saving data..." msgstr "Speichere Daten..." @@ -2949,33 +2885,29 @@ msgstr "Speichere Daten..." msgid "More Feeds" msgstr "Weitere Feeds" -#: js/functions.js:1659 -#: js/functions.js:1769 -#: js/prefs.js:397 -#: js/prefs.js:427 -#: js/prefs.js:459 -#: js/prefs.js:642 -#: js/prefs.js:662 -#: js/prefs.js:1193 +#: js/functions.js:1659 js/functions.js:1769 js/prefs.js:397 js/prefs.js:427 +#: js/prefs.js:459 js/prefs.js:642 js/prefs.js:662 js/prefs.js:1193 #: js/prefs.js:1338 msgid "No feeds are selected." msgstr "Keine Feeds ausgewählt." #: js/functions.js:1701 -msgid "Remove selected feeds from the archive? Feeds with stored articles will not be removed." -msgstr "Die ausgewählten Feeds aus dem Archiv löschen? Feeds mit gespeicherten Artikeln werden nicht gelöscht" +msgid "" +"Remove selected feeds from the archive? Feeds with stored articles will not " +"be removed." +msgstr "" +"Die ausgewählten Feeds aus dem Archiv löschen? Feeds mit gespeicherten " +"Artikeln werden nicht gelöscht" #: js/functions.js:1740 msgid "Feeds with update errors" msgstr "Feeds mit Aktualisierungsfehlern" -#: js/functions.js:1751 -#: js/prefs.js:1175 +#: js/functions.js:1751 js/prefs.js:1175 msgid "Remove selected feeds?" msgstr "Ausgewählte Feeds entfernen?" -#: js/functions.js:1754 -#: js/prefs.js:1178 +#: js/functions.js:1754 js/prefs.js:1178 msgid "Removing selected feeds..." msgstr "Ausgewählte Feeds werden entfernt..." @@ -3031,23 +2963,23 @@ msgstr "Ausgewählte Label entfernen?" msgid "Removing selected labels..." msgstr "Ausgewählte Label werden entfernt..." -#: js/prefs.js:295 -#: js/prefs.js:1379 +#: js/prefs.js:295 js/prefs.js:1379 msgid "No labels are selected." msgstr "Keine Label ausgewählt." #: js/prefs.js:309 -msgid "Remove selected users? Neither default admin nor your account will be removed." -msgstr "Ausgewählte Benutzer löschen? Weder der Administrator noch Ihr eigenes Konto werden gelöscht." +msgid "" +"Remove selected users? Neither default admin nor your account will be " +"removed." +msgstr "" +"Ausgewählte Benutzer löschen? Weder der Administrator noch Ihr eigenes Konto " +"werden gelöscht." #: js/prefs.js:312 msgid "Removing selected users..." msgstr "Ausgewählte Benutzer werden entfernt..." -#: js/prefs.js:326 -#: js/prefs.js:507 -#: js/prefs.js:528 -#: js/prefs.js:567 +#: js/prefs.js:326 js/prefs.js:507 js/prefs.js:528 js/prefs.js:567 msgid "No users are selected." msgstr "Keine Benutzer ausgewählt." @@ -3059,9 +2991,7 @@ msgstr "Ausgewählte Filter entfernen?" msgid "Removing selected filters..." msgstr "Ausgewählte Filter werden entfernt..." -#: js/prefs.js:359 -#: js/prefs.js:597 -#: js/prefs.js:616 +#: js/prefs.js:359 js/prefs.js:597 js/prefs.js:616 msgid "No filters are selected." msgstr "Keine Filter ausgewählt." @@ -3101,9 +3031,7 @@ msgstr "Feld für Benutzername darf nicht leer sein." msgid "Saving user..." msgstr "Benutzer werden gespeichert..." -#: js/prefs.js:512 -#: js/prefs.js:533 -#: js/prefs.js:572 +#: js/prefs.js:512 js/prefs.js:533 js/prefs.js:572 msgid "Please select only one user." msgstr "Bitte nur einen Benutzer auswählen." @@ -3147,8 +3075,7 @@ msgstr "OPML Import" msgid "Please choose an OPML file first." msgstr "Bitte zuerst eine OPML-Datei auswählen." -#: js/prefs.js:815 -#: plugins/import_export/import_export.js:115 +#: js/prefs.js:815 plugins/import_export/import_export.js:115 #: plugins/googlereaderimport/init.js:45 msgid "Importing, please wait..." msgstr "Importiere, bitte warten..." @@ -3158,8 +3085,11 @@ msgid "Reset to defaults?" msgstr "Auf Standardwerte zurücksetzen?" #: js/prefs.js:1082 -msgid "Remove category %s? Any nested feeds would be placed into Uncategorized." -msgstr "Kategorie %s löschen? Feeds dieser Kategorie werden dann nach Unkategorisiert verschoben." +msgid "" +"Remove category %s? Any nested feeds would be placed into Uncategorized." +msgstr "" +"Kategorie %s löschen? Feeds dieser Kategorie werden dann nach " +"Unkategorisiert verschoben." #: js/prefs.js:1088 msgid "Removing category..." @@ -3207,7 +3137,8 @@ msgstr "Ausgewählte Feed werden neu bewertet..." #: js/prefs.js:1345 msgid "Rescore all articles? This operation may take a lot of time." -msgstr "Alle Artikel neu bewerten? Dieser Vorgang kann viel Zeit in Anspruch nehmen." +msgstr "" +"Alle Artikel neu bewerten? Dieser Vorgang kann viel Zeit in Anspruch nehmen." #: js/prefs.js:1348 msgid "Rescoring feeds..." @@ -3222,8 +3153,11 @@ msgid "Settings Profiles" msgstr "Einstellungsprofile" #: js/prefs.js:1411 -msgid "Remove selected profiles? Active and default profiles will not be removed." -msgstr "Ausgewählte Profile löschen? Das aktive und das Standardprofil werden nicht gelöscht." +msgid "" +"Remove selected profiles? Active and default profiles will not be removed." +msgstr "" +"Ausgewählte Profile löschen? Das aktive und das Standardprofil werden nicht " +"gelöscht." #: js/prefs.js:1414 msgid "Removing selected profiles..." @@ -3233,13 +3167,11 @@ msgstr "Ausgewählte Profile werden entfernt..." msgid "No profiles are selected." msgstr "Keine Profile ausgewählt." -#: js/prefs.js:1437 -#: js/prefs.js:1490 +#: js/prefs.js:1437 js/prefs.js:1490 msgid "Activate selected profile?" msgstr "Ausgewählte Profile entfernen?" -#: js/prefs.js:1453 -#: js/prefs.js:1506 +#: js/prefs.js:1453 js/prefs.js:1506 msgid "Please choose a profile to activate." msgstr "Bitte ein Profil zum Aktivieren auswählen." @@ -3251,8 +3183,7 @@ msgstr "Profil wird erstellt..." msgid "This will invalidate all previously generated feed URLs. Continue?" msgstr "Alle zuvor erstellten Feed-URLs werden ungültig. Fortfahren?" -#: js/prefs.js:1517 -#: js/prefs.js:1536 +#: js/prefs.js:1517 js/prefs.js:1536 msgid "Clearing URLs..." msgstr "Leere URLs..." @@ -3304,8 +3235,7 @@ msgstr "Artikel nach Tag auswählen" msgid "You can't unsubscribe from the category." msgstr "Sie können die Kategorie nicht abbestellen." -#: js/tt-rss.js:635 -#: js/tt-rss.js:787 +#: js/tt-rss.js:635 js/tt-rss.js:787 msgid "Please select some feed first." msgstr "Bitte erst einen Feed auswählen." @@ -3329,40 +3259,29 @@ msgstr "Neue Version verfügbar!" msgid "Cancel search" msgstr "Suche abbrechen" -#: js/viewfeed.js:455 -#: plugins/digest/digest.js:258 +#: js/viewfeed.js:455 plugins/digest/digest.js:258 #: plugins/digest/digest.js:714 msgid "Unstar article" msgstr "Artikelmarkierung entfernen" -#: js/viewfeed.js:459 -#: plugins/digest/digest.js:260 +#: js/viewfeed.js:459 plugins/digest/digest.js:260 #: plugins/digest/digest.js:718 msgid "Star article" msgstr "Artikel markieren" -#: js/viewfeed.js:499 -#: plugins/digest/digest.js:263 +#: js/viewfeed.js:499 plugins/digest/digest.js:263 #: plugins/digest/digest.js:749 msgid "Unpublish article" msgstr "Artikelveröffentlichung widerrufen" -#: js/viewfeed.js:503 -#: plugins/digest/digest.js:265 +#: js/viewfeed.js:503 plugins/digest/digest.js:265 #: plugins/digest/digest.js:754 msgid "Publish article" msgstr "Artikel veröffentlichen" -#: js/viewfeed.js:705 -#: js/viewfeed.js:733 -#: js/viewfeed.js:760 -#: js/viewfeed.js:823 -#: js/viewfeed.js:857 -#: js/viewfeed.js:975 -#: js/viewfeed.js:1018 -#: js/viewfeed.js:1071 -#: js/viewfeed.js:2106 -#: plugins/mailto/init.js:7 +#: js/viewfeed.js:705 js/viewfeed.js:733 js/viewfeed.js:760 js/viewfeed.js:823 +#: js/viewfeed.js:857 js/viewfeed.js:975 js/viewfeed.js:1018 +#: js/viewfeed.js:1071 js/viewfeed.js:2106 plugins/mailto/init.js:7 #: plugins/mail/mail.js:7 msgid "No articles are selected." msgstr "Keine Artikel ausgewählt." @@ -3392,8 +3311,11 @@ msgstr[0] "%d archivierten Artikel zurück verschieben?" msgstr[1] "%d archivierte Artikel zurück verschieben?" #: js/viewfeed.js:1032 -msgid "Please note that unstarred articles might get purged on next feed update." -msgstr "Bitte beachten Sie, das nicht markierte Artikel beim nächsten Update der Feeds gelöscht werden könnten." +msgid "" +"Please note that unstarred articles might get purged on next feed update." +msgstr "" +"Bitte beachten Sie, das nicht markierte Artikel beim nächsten Update der " +"Feeds gelöscht werden könnten." #: js/viewfeed.js:1077 msgid "Mark %d selected article in %s as read?" @@ -3493,10 +3415,10 @@ msgstr "Mehr laden..." #: plugins/embed_original/init.js:6 msgid "Sorry, your browser does not support sandboxed iframes." -msgstr "Entschuldigung, dein Browser unterstützt keine \"Sandbox\" für iframes." +msgstr "" +"Entschuldigung, dein Browser unterstützt keine \"Sandbox\" für iframes." -#: plugins/mailto/init.js:21 -#: plugins/mail/mail.js:21 +#: plugins/mailto/init.js:21 plugins/mail/mail.js:21 msgid "Forward article by email" msgstr "Artikel via E-Mail weiterleiten" @@ -3505,10 +3427,18 @@ msgid "Export Data" msgstr "Daten exportieren" #: plugins/import_export/import_export.js:40 -msgid "Finished, exported %d article. You can download the data here." -msgid_plural "Finished, exported %d articles. You can download the data here." -msgstr[0] "Fertig, %d Artikel exportiert. Hier herunterladen." -msgstr[1] "Fertig, %d Artikel exportiert. Hier herunterladen." +msgid "" +"Finished, exported %d article. You can download the data here." +msgid_plural "" +"Finished, exported %d articles. You can download the data here." +msgstr[0] "" +"Fertig, %d Artikel exportiert. Hier " +"herunterladen." +msgstr[1] "" +"Fertig, %d Artikel exportiert. Hier " +"herunterladen." #: plugins/import_export/import_export.js:93 msgid "Data Import" @@ -3546,8 +3476,7 @@ msgstr "Ausgewählte Instanzen entfernen?" msgid "Removing selected instances..." msgstr "Ausgewählte Instanzen werden entfernt..." -#: plugins/instances/instances.js:139 -#: plugins/instances/instances.js:151 +#: plugins/instances/instances.js:139 plugins/instances/instances.js:151 msgid "No instances are selected." msgstr "Keine Instanzen ausgewählt." @@ -3560,9 +3489,12 @@ msgid "Share article by URL" msgstr "Artikel über URL teilen" #: plugins/updater/updater.js:58 -#, fuzzy -msgid "Backup your tt-rss directory before continuing. Please type 'yes' to continue." -msgstr "Direktes Updaten ist noch experimentell. Sichern Sie Ihr tt-rss Verzeichnis, bevor Sie fortfahren. Schreiben Sie 'yes' zum fortfahren." +msgid "" +"Backup your tt-rss directory before continuing. Please type 'yes' to " +"continue." +msgstr "" +"Bitte sichern Sie ihr tt-rss Verzeichnis, bevor Sie fortfahren. Geben Sie " +"'yes' ein, um fortzufahren." #~ msgid "Default interval between feed updates" #~ msgstr "Standard Intervall zwischen Feed-Aktualisierungen" @@ -3582,8 +3514,12 @@ msgstr "Direktes Updaten ist noch experimentell. Sichern Sie Ihr tt-rss Verzeich #~ msgid "Please backup your database before proceeding." #~ msgstr "Bitte sichern Sie Ihre Datenbank bevor Sie fortfahren." -#~ msgid "Your Tiny Tiny RSS database needs update to the latest version (%d to %d)." -#~ msgstr "Ihre Tiny Tiny RSS Datenbank benötigt eine Aktualisierung auf die neuste Version (%d nach %d)." +#~ msgid "" +#~ "Your Tiny Tiny RSS database needs update to the latest version (%d " +#~ "to %d)." +#~ msgstr "" +#~ "Ihre Tiny Tiny RSS Datenbank benötigt eine Aktualisierung auf die neuste " +#~ "Version (%d nach %d)." #~ msgid "Performing updates..." #~ msgstr "Führe Aktualisierungen durch..." @@ -3601,9 +3537,14 @@ msgstr "Direktes Updaten ist noch experimentell. Sichern Sie Ihr tt-rss Verzeich #~ msgstr "FEHLER!" #~ msgid "Finished. Performed %d update up to schema version %d." -#~ msgid_plural "Finished. Performed %d updates up to schema version %d." -#~ msgstr[0] "Beendet. %d Aktualisierung auf Schema Version %d durchgeführt." -#~ msgstr[1] "Beendet. %d Aktualisierungen auf Schema Version %d durchgeführt." +#~ msgid_plural "" +#~ "Finished. Performed %d updates up to schema version %d." +#~ msgstr[0] "" +#~ "Beendet. %d Aktualisierung auf Schema Version %d " +#~ "durchgeführt." +#~ msgstr[1] "" +#~ "Beendet. %d Aktualisierungen auf Schema Version %d " +#~ "durchgeführt." #~ msgid "Your database schema is from a newer version of Tiny Tiny RSS." #~ msgstr "Ihr Datenbankschema stammt von einer neueren Tiny Tiny RSS Version." @@ -3611,8 +3552,12 @@ msgstr "Direktes Updaten ist noch experimentell. Sichern Sie Ihr tt-rss Verzeich #~ msgid "Found schema version: %d, required: %d." #~ msgstr "Gefundene Schemaversion: %d, benötigt: %d." -#~ msgid "Schema upgrade impossible. Please update Tiny Tiny RSS files to the newer version and continue." -#~ msgstr "Aktualisierung des Schemas nicht möglich. Bitte aktualisieren Sie die Tiny Tiny RSS Dateien auf die neuere Version und fahren Sie fort." +#~ msgid "" +#~ "Schema upgrade impossible. Please update Tiny Tiny RSS files to the newer " +#~ "version and continue." +#~ msgstr "" +#~ "Aktualisierung des Schemas nicht möglich. Bitte aktualisieren Sie die " +#~ "Tiny Tiny RSS Dateien auf die neuere Version und fahren Sie fort." #~ msgid "Mark feed as read" #~ msgstr "Feed als gelesen markieren" @@ -3641,11 +3586,21 @@ msgstr "Direktes Updaten ist noch experimentell. Sichern Sie Ihr tt-rss Verzeich #~ msgid "Modify score" #~ msgstr "Bewertung ändern" -#~ msgid "This option is useful when you are reading several planet-type aggregators with partially colliding userbase. When disabled, it forces same posts from different feeds to appear only once." -#~ msgstr "Diese Option dient zum Lesen von Feedsammlungen mit teilweise wiederkehrenden Artikeln. Ist diese Option deaktiviert, wird ein Artikel von unterschiedlichen Feedsquellen nur einmal angezeigt." +#~ msgid "" +#~ "This option is useful when you are reading several planet-type " +#~ "aggregators with partially colliding userbase. When disabled, it forces " +#~ "same posts from different feeds to appear only once." +#~ msgstr "" +#~ "Diese Option dient zum Lesen von Feedsammlungen mit teilweise " +#~ "wiederkehrenden Artikeln. Ist diese Option deaktiviert, wird ein Artikel " +#~ "von unterschiedlichen Feedsquellen nur einmal angezeigt." -#~ msgid "When this option is enabled, headlines in Special feeds and Labels are grouped by feeds" -#~ msgstr "Wenn diese Option aktiviert ist, werden Schlagzeilen in Sonderfeeds und Labels nach Feeds gruppiert" +#~ msgid "" +#~ "When this option is enabled, headlines in Special feeds and Labels are " +#~ "grouped by feeds" +#~ msgstr "" +#~ "Wenn diese Option aktiviert ist, werden Schlagzeilen in Sonderfeeds und " +#~ "Labels nach Feeds gruppiert" #~ msgid "Enable external API" #~ msgstr "Externe API aktivieren" @@ -3687,7 +3642,9 @@ msgstr "Direktes Updaten ist noch experimentell. Sichern Sie Ihr tt-rss Verzeich #~ msgstr "Fertig." #~ msgid "Enable the options you wish to apply using checkboxes on the right:" -#~ msgstr "Benutzen Sie die Auswahlkästchen auf der rechten Seite um die gewünschen Optionen anzuwenden:" +#~ msgstr "" +#~ "Benutzen Sie die Auswahlkästchen auf der rechten Seite um die gewünschen " +#~ "Optionen anzuwenden:" #~ msgid "New articles available in this feed (click to show)" #~ msgstr "Neue Artikel verfügbar (klicken zum Anzeigen)" @@ -3725,8 +3682,12 @@ msgstr "Direktes Updaten ist noch experimentell. Sichern Sie Ihr tt-rss Verzeich #~ msgid "Back to feeds" #~ msgstr "Zurück zu den Feeds" -#~ msgid "This will clear your stored authentication information for Twitter. Continue?" -#~ msgstr "Dies wird Ihre gespeicherten Authentifizierungsinformationen für Twitter löschen. Fortfahren?" +#~ msgid "" +#~ "This will clear your stored authentication information for Twitter. " +#~ "Continue?" +#~ msgstr "" +#~ "Dies wird Ihre gespeicherten Authentifizierungsinformationen für Twitter " +#~ "löschen. Fortfahren?" #~ msgid "Clearing credentials..." #~ msgstr "Berechtigungen werden gelöscht..." @@ -3825,8 +3786,12 @@ msgstr "Direktes Updaten ist noch experimentell. Sichern Sie Ihr tt-rss Verzeich #~ msgid "Focus search (if present)" #~ msgstr "Fokussierte Suche (wenn gewählt)" -#~ msgid "Note: not all actions may be available, depending on Tiny Tiny RSS configuration and your access level." -#~ msgstr "Anmerkung: Abhängig von Ihren Tiny-Tiny-RSS-Einstellungen und Zugriffsrechten könnten nicht alle Aktionen verfügbar sein." +#~ msgid "" +#~ "Note: not all actions may be available, depending on Tiny Tiny RSS " +#~ "configuration and your access level." +#~ msgstr "" +#~ "Anmerkung: Abhängig von Ihren Tiny-Tiny-RSS-Einstellungen und " +#~ "Zugriffsrechten könnten nicht alle Aktionen verfügbar sein." #~ msgid "Open article in new tab" #~ msgstr "Artikel in neuem Reiter öffnen" @@ -3901,7 +3866,9 @@ msgstr "Direktes Updaten ist noch experimentell. Sichern Sie Ihr tt-rss Verzeich #~ msgstr "Mit Twitter verbinden" #~ msgid "Could not connect to Twitter. Refresh the page or try again later." -#~ msgstr "Konnte nicht zu Twitter verbinden. Aktualisieren Sie die Seite oder versuchen es später erneut." +#~ msgstr "" +#~ "Konnte nicht zu Twitter verbinden. Aktualisieren Sie die Seite oder " +#~ "versuchen es später erneut." #~ msgid "Congratulations! You have successfully registered with Twitter." #~ msgstr "Glückwunsch! Sie haben sich erfolgreich mit Twitter verbunden." @@ -3925,7 +3892,8 @@ msgstr "Direktes Updaten ist noch experimentell. Sichern Sie Ihr tt-rss Verzeich #~ msgstr "Keine Feedkategorien definiert." #~ msgid "Hint: you can drag feeds and categories around." -#~ msgstr "Hinweis: Sie können Feeds und Kategorien mit der Maus herumziehen." +#~ msgstr "" +#~ "Hinweis: Sie können Feeds und Kategorien mit der Maus herumziehen." #~ msgid "Subscribing using bookmarklet" #~ msgstr "Mit Bookmarklet abonnieren" @@ -3933,11 +3901,19 @@ msgstr "Direktes Updaten ist noch experimentell. Sichern Sie Ihr tt-rss Verzeich #~ msgid "Twitter" #~ msgstr "Twitter" -#~ msgid "Before you can update your Twitter feeds, you must register this instance of Tiny Tiny RSS with Twitter.com." -#~ msgstr "Bevor Sie Ihre Twitter-Feeds aktualisieren können, müssen Sie diese Instanz von Tiny Tiny RSS bei Twitter registrieren." +#~ msgid "" +#~ "Before you can update your Twitter feeds, you must register this instance " +#~ "of Tiny Tiny RSS with Twitter.com." +#~ msgstr "" +#~ "Bevor Sie Ihre Twitter-Feeds aktualisieren können, müssen Sie diese " +#~ "Instanz von Tiny Tiny RSS bei Twitter registrieren." -#~ msgid "You have been successfully registered with Twitter.com and should be able to access your Twitter feeds." -#~ msgstr "Sie haben diese Instanz erfolgreich mit Twitter verbunden und sollten nun auf Ihre Twitter-Feeds zugreifen können." +#~ msgid "" +#~ "You have been successfully registered with Twitter.com and should be able " +#~ "to access your Twitter feeds." +#~ msgstr "" +#~ "Sie haben diese Instanz erfolgreich mit Twitter verbunden und sollten nun " +#~ "auf Ihre Twitter-Feeds zugreifen können." #~ msgid "Register with Twitter.com" #~ msgstr "Mit Twitter registrieren" @@ -3954,5 +3930,9 @@ msgstr "Direktes Updaten ist noch experimentell. Sichern Sie Ihr tt-rss Verzeich #~ msgid "Filter Test Results" #~ msgstr "Filtertestergebnis" -#~ msgid "When \"Mark as read\" button is clicked in toolbar, automatically open next feed with unread articles." -#~ msgstr "Beim Klick auf \"Als gelesen markieren\" in der Toolbar, automatisch nächsten Feed mit ungelesenen Artikeln öffnen." +#~ msgid "" +#~ "When \"Mark as read\" button is clicked in toolbar, automatically open " +#~ "next feed with unread articles." +#~ msgstr "" +#~ "Beim Klick auf \"Als gelesen markieren\" in der Toolbar, automatisch " +#~ "nächsten Feed mit ungelesenen Artikeln öffnen." From 8131e83c4676d28b3930a4a2d0160b2f46cc3d33 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 10 Apr 2013 22:48:09 +0400 Subject: [PATCH 002/263] mailto: use rawurlencode --- plugins/mailto/init.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/mailto/init.php b/plugins/mailto/init.php index e140bbea7..6c7478b68 100644 --- a/plugins/mailto/init.php +++ b/plugins/mailto/init.php @@ -68,8 +68,8 @@ class MailTo extends Plugin { $content = ""; $tpl->generateOutputToString($content); - $mailto_link = htmlspecialchars("mailto: ?subject=".urlencode($subject). - "&body=".urlencode($content)); + $mailto_link = htmlspecialchars("mailto: ?subject=".rawurlencode($subject). + "&body=".rawurlencode($content)); print __("Clicking the following link to invoke your mail client:"); From 5f938254facf69729e49cc5596661075ae957b97 Mon Sep 17 00:00:00 2001 From: pictuga Date: Thu, 11 Apr 2013 01:24:50 +0300 Subject: [PATCH 003/263] Use CSS3 ellipsis in .postTitle. CSS3 property which makes cut-off text look smoother. --- tt-rss.css | 1 + 1 file changed, 1 insertion(+) diff --git a/tt-rss.css b/tt-rss.css index 48a5aa596..ba017f1d6 100644 --- a/tt-rss.css +++ b/tt-rss.css @@ -41,6 +41,7 @@ div.postReply div.postHeader { div.postReply div.postTitle { overflow : hidden; + text-overflow: ellipsis; white-space : nowrap; } From 3306daecf4450555961490c11e70e7cf7fe7b86e Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 11 Apr 2013 19:12:00 +0400 Subject: [PATCH 004/263] implement upload-related support for open_basedir --- cache/upload/.empty | 0 classes/opml.php | 32 +++++++++++++++++++++++++---- classes/pref/feeds.php | 25 ++++++++++++++++++---- include/rssfuncs.php | 2 +- include/sanity_check.php | 8 ++++---- install/index.php | 4 ---- plugins/googlereaderimport/init.php | 28 +++++++++++++++++++++++-- 7 files changed, 80 insertions(+), 19 deletions(-) create mode 100644 cache/upload/.empty diff --git a/cache/upload/.empty b/cache/upload/.empty new file mode 100644 index 000000000..e69de29bb diff --git a/classes/opml.php b/classes/opml.php index 7a49f757c..2ecae4237 100644 --- a/classes/opml.php +++ b/classes/opml.php @@ -461,14 +461,38 @@ class Opml extends Handler_Protected { # if ($debug) $doc = DOMDocument::load("/tmp/test.opml"); - if (is_file($_FILES['opml_file']['tmp_name'])) { - $doc = new DOMDocument(); - $doc->load($_FILES['opml_file']['tmp_name']); - } else if (!$doc) { + if ($_FILES['opml_file']['error'] != 0) { + print_error(T_sprintf("Upload failed with error code %d", + $_FILES['opml_file']['error'])); + return; + } + + $tmp_file = false; + + if (is_uploaded_file($_FILES['opml_file']['tmp_name'])) { + $tmp_file = tempnam(CACHE_DIR . '/upload', 'opml'); + + $result = move_uploaded_file($_FILES['opml_file']['tmp_name'], + $tmp_file); + + if (!$result) { + print_error(__("Unable to move uploaded file.")); + return; + } + } else { print_error(__('Error: please upload OPML file.')); return; } + if (is_file($tmp_file)) { + $doc = new DOMDocument(); + $doc->load($tmp_file); + unlink($tmp_file); + } else if (!$doc) { + print_error(__('Error: unable to find moved OPML file.')); + return; + } + if ($doc) { $this->opml_import_category($doc, false, $owner_uid, false); } else { diff --git a/classes/pref/feeds.php b/classes/pref/feeds.php index 469ca1111..f57cc37d6 100644 --- a/classes/pref/feeds.php +++ b/classes/pref/feeds.php @@ -463,7 +463,7 @@ class Pref_Feeds extends Handler_Protected { WHERE id = '$feed_id' AND owner_uid = ". $_SESSION["uid"]); if (db_num_rows($result) != 0) { - unlink(ICONS_DIR . "/$feed_id.ico"); + @unlink(ICONS_DIR . "/$feed_id.ico"); } return; @@ -472,7 +472,22 @@ class Pref_Feeds extends Handler_Protected { function uploadicon() { header("Content-type: text/html"); - $icon_file = $_FILES['icon_file']['tmp_name']; + $tmp_file = false; + + if (is_uploaded_file($_FILES['icon_file']['tmp_name'])) { + $tmp_file = tempnam(CACHE_DIR . '/upload', 'icon'); + + $result = move_uploaded_file($_FILES['icon_file']['tmp_name'], + $tmp_file); + + if (!$result) { + return; + } + } else { + return; + } + + $icon_file = $tmp_file; $feed_id = db_escape_string($this->link, $_REQUEST["feed_id"]); if (is_file($icon_file) && $feed_id) { @@ -482,8 +497,8 @@ class Pref_Feeds extends Handler_Protected { WHERE id = '$feed_id' AND owner_uid = ". $_SESSION["uid"]); if (db_num_rows($result) != 0) { - unlink(ICONS_DIR . "/$feed_id.ico"); - move_uploaded_file($icon_file, ICONS_DIR . "/$feed_id.ico"); + @unlink(ICONS_DIR . "/$feed_id.ico"); + rename($icon_file, ICONS_DIR . "/$feed_id.ico"); $rc = 0; } else { $rc = 2; @@ -495,6 +510,8 @@ class Pref_Feeds extends Handler_Protected { $rc = 2; } + @unlink($icon_file); + print ""; diff --git a/include/rssfuncs.php b/include/rssfuncs.php index 727e42897..7c2e1655b 100644 --- a/include/rssfuncs.php +++ b/include/rssfuncs.php @@ -1191,7 +1191,7 @@ } function expire_cached_files($debug) { - foreach (array("simplepie", "images", "export") as $dir) { + foreach (array("simplepie", "images", "export", "upload") as $dir) { $cache_dir = CACHE_DIR . "/$dir"; if ($debug) _debug("Expiring $cache_dir"); diff --git a/include/sanity_check.php b/include/sanity_check.php index 99d3051f3..69309290e 100644 --- a/include/sanity_check.php +++ b/include/sanity_check.php @@ -55,6 +55,10 @@ array_push($errors, "Image cache is not writable (chmod -R 777 ".CACHE_DIR."/images)"); } + if (!is_writable(CACHE_DIR . "/upload")) { + array_push($errors, "Upload cache is not writable (chmod -R 777 ".CACHE_DIR."/upload)"); + } + if (!is_writable(CACHE_DIR . "/export")) { array_push($errors, "Data export cache is not writable (chmod -R 777 ".CACHE_DIR."/export)"); } @@ -102,10 +106,6 @@ array_push($errors, "LOCK_DIRECTORY defined in config.php is not writable (chmod -R 777 ".LOCK_DIRECTORY.").\n"); } - if (ini_get("open_basedir")) { - array_push($errors, "PHP configuration option open_basedir is not supported. Please disable this in PHP settings file (php.ini)."); - } - if (!function_exists("curl_init") && !ini_get("allow_url_fopen")) { array_push($errors, "PHP configuration option allow_url_fopen is disabled, and CURL functions are not present. Either enable allow_url_fopen or install PHP extension for CURL."); } diff --git a/install/index.php b/install/index.php index 026e00d01..3b6a1f544 100644 --- a/install/index.php +++ b/install/index.php @@ -17,10 +17,6 @@ array_push($errors, "PHP version 5.3.0 or newer required."); } - if (ini_get("open_basedir")) { - array_push($errors, "PHP configuration option open_basedir is not supported. Please disable this in PHP settings file (php.ini)."); - } - if (!function_exists("curl_init") && !ini_get("allow_url_fopen")) { array_push($errors, "PHP configuration option allow_url_fopen is disabled, and CURL functions are not present. Either enable allow_url_fopen or install PHP extension for CURL."); } diff --git a/plugins/googlereaderimport/init.php b/plugins/googlereaderimport/init.php index ac7a872f2..f7d876b90 100644 --- a/plugins/googlereaderimport/init.php +++ b/plugins/googlereaderimport/init.php @@ -66,8 +66,32 @@ class GoogleReaderImport extends Plugin { $owner_uid = $_SESSION["uid"]; - if (is_file($_FILES['starred_file']['tmp_name'])) { - $doc = json_decode(file_get_contents($_FILES['starred_file']['tmp_name']), true); + if ($_FILES['starred_file']['error'] != 0) { + print_error(T_sprintf("Upload failed with error code %d", + $_FILES['starred_file']['error'])); + return; + } + + $tmp_file = false; + + if (is_uploaded_file($_FILES['starred_file']['tmp_name'])) { + $tmp_file = tempnam(CACHE_DIR . '/upload', 'starred'); + + $result = move_uploaded_file($_FILES['starred_file']['tmp_name'], + $tmp_file); + + if (!$result) { + print_error(__("Unable to move uploaded file.")); + return; + } + } else { + print_error(__('Error: please upload OPML file.')); + return; + } + + if (is_file($tmp_file)) { + $doc = json_decode(file_get_contents($tmp_file), true); + unlink($tmp_file); } else { print_error(__('No file uploaded.')); return; From 0192ffe5a5f8254d723cf46e4bda839220191c2c Mon Sep 17 00:00:00 2001 From: Pedro Silva Date: Thu, 11 Apr 2013 16:25:37 +0100 Subject: [PATCH 005/263] Add new API method: `getFeedStats' `getFeedStats' calls the new static function `api_get_feed_stats' to return an array of real feeds of the following form: [{ "first" : 1127, "unread" : 873, "last" : 15460, "title" : "Some feed", "id" : 31, "total" : 1513 }] where "first", "last", "total" are the first, last and total number of articles in the feed. This adds the ability to nntp-oriented clients to efficiently retrieve an "active file" without having to resort to `getHeadlines(limit=-1)' --- classes/api.php | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/classes/api.php b/classes/api.php index 4427834eb..6f95db0be 100644 --- a/classes/api.php +++ b/classes/api.php @@ -110,6 +110,11 @@ class API extends Handler { print $this->wrap(self::STATUS_OK, getAllCounters($this->link)); } + function getFeedStats() { + $feeds = $this->api_get_feed_stats($this->link); + print $this->wrap(self::STATUS_OK, $feeds); + } + function getFeeds() { $cat_id = db_escape_string($this->link, $_REQUEST["cat_id"]); $unread_only = sql_bool_to_bool($_REQUEST["unread_only"]); @@ -480,6 +485,38 @@ class API extends Handler { } } + static function api_get_feed_stats($link) { + + $feeds = array(); + + $result = db_query($link, "SELECT ttrss_feeds.id, ttrss_feeds.title,". + " MIN(ttrss_entries.id) AS first, MAX(ttrss_entries.id) AS last,". + " COUNT(ttrss_entries.id) AS total". + " FROM ttrss_entries, ttrss_user_entries, ttrss_feeds". + " WHERE ttrss_user_entries.feed_id = ttrss_feeds.id". + " AND ttrss_user_entries.ref_id = ttrss_entries.id". + " AND ttrss_user_entries.owner_uid = ".$_SESSION["uid"]. + " GROUP BY ttrss_feeds.title"); + + while ($line = db_fetch_assoc($result)) { + + $unread = getFeedUnread($link, $line["id"]); + + $row = array( + "id" => (int)$line["id"], + "title" => $line["title"], + "first" => (int)$line["first"], + "last" => (int)$line["last"], + "total" => (int)$line["total"], + "unread" => (int)$unread + ); + + array_push($feeds, $row); + } + + return $feeds; +} + static function api_get_feeds($link, $cat_id, $unread_only, $limit, $offset, $include_nested = false) { $feeds = array(); From b91a1e4deb510252485044f8856d9eb178f822ae Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 11 Apr 2013 20:06:07 +0400 Subject: [PATCH 006/263] bump api level --- classes/api.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/api.php b/classes/api.php index 6f95db0be..a347237c9 100644 --- a/classes/api.php +++ b/classes/api.php @@ -2,7 +2,7 @@ class API extends Handler { - const API_LEVEL = 5; + const API_LEVEL = 6; const STATUS_OK = 0; const STATUS_ERR = 1; From b229a1845693e2d6210d431a852462e8c274061a Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 11 Apr 2013 20:31:24 +0400 Subject: [PATCH 007/263] fix import_export plugin for open_basedir; add missing closing form tags to import_export and googleimport plugin --- plugins/googlereaderimport/init.php | 1 + plugins/import_export/init.php | 29 ++++++++++++++++++++++++++--- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/plugins/googlereaderimport/init.php b/plugins/googlereaderimport/init.php index f7d876b90..d25d3288f 100644 --- a/plugins/googlereaderimport/init.php +++ b/plugins/googlereaderimport/init.php @@ -374,6 +374,7 @@ class GoogleReaderImport extends Plugin { "; + print ""; print ""; #pane } diff --git a/plugins/import_export/init.php b/plugins/import_export/init.php index 1d7a8e55f..a01a612a4 100644 --- a/plugins/import_export/init.php +++ b/plugins/import_export/init.php @@ -83,6 +83,7 @@ class Import_Export extends Plugin implements IHandler { "; + print ""; print ""; # pane } @@ -416,13 +417,35 @@ class Import_Export extends Plugin implements IHandler { print "
"; - if (is_file($_FILES['export_file']['tmp_name'])) { + if ($_FILES['export_file']['error'] != 0) { + print_error(T_sprintf("Upload failed with error code %d", + $_FILES['export_file']['error'])); + return; + } - $this->perform_data_import($this->link, $_FILES['export_file']['tmp_name'], $_SESSION['uid']); + $tmp_file = false; + if (is_uploaded_file($_FILES['export_file']['tmp_name'])) { + $tmp_file = tempnam(CACHE_DIR . '/upload', 'export'); + + $result = move_uploaded_file($_FILES['export_file']['tmp_name'], + $tmp_file); + + if (!$result) { + print_error(__("Unable to move uploaded file.")); + return; + } } else { - print "

" . T_sprintf("Could not upload file. You might need to adjust upload_max_filesize in PHP.ini (current value = %s)", ini_get("upload_max_filesize")) . " or use CLI import tool.

"; + print_error(__('Error: please upload OPML file.')); + return; + } + if (is_file($tmp_file)) { + $this->perform_data_import($this->link, $tmp_file, $_SESSION['uid']); + unlink($tmp_file); + } else { + print_error(__('No file uploaded.')); + return; } print ""; - - print ""; - - print "
"; #pane - } - - function api_version() { - return 2; - } - -} -?> diff --git a/plugins/example_api/init.php b/plugins/example_api/init.php deleted file mode 100644 index 1f896badf..000000000 --- a/plugins/example_api/init.php +++ /dev/null @@ -1,34 +0,0 @@ -host = $host; - - $host->add_api_method("example_testmethod", $this); - } - - function example_testmethod() { - return array(API::STATUS_OK, array("current_time" => time())); - } - - function api_version() { - return 2; - } - -} -?> diff --git a/plugins/example_article/init.js b/plugins/example_article/init.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/plugins/example_article/init.php b/plugins/example_article/init.php deleted file mode 100644 index 69902cbf1..000000000 --- a/plugins/example_article/init.php +++ /dev/null @@ -1,34 +0,0 @@ -host = $host; - - $host->add_hook($host::HOOK_RENDER_ARTICLE, $this); - } - - function get_prefs_js() { - return file_get_contents(dirname(__FILE__) . "/init.js"); - } - - function hook_render_article($article) { - $article["content"] = "Content changed: " . $article["content"]; - - return $article; - } - - function api_version() { - return 2; - } - -} -?> diff --git a/plugins/example_feed/init.php b/plugins/example_feed/init.php deleted file mode 100644 index 1d653a9f6..000000000 --- a/plugins/example_feed/init.php +++ /dev/null @@ -1,32 +0,0 @@ -host = $host; - - $host->add_hook($host::HOOK_FEED_PARSED, $this); - } - - function hook_feed_parsed($feed) { - _debug("I'm a little feed short and stout, here's my title: " . $feed->get_title()); - _debug("... here's my link element: " . $feed->get_link()); - } - - function api_version() { - return 2; - } - -} -?> diff --git a/plugins/example_routing/init.php b/plugins/example_routing/init.php deleted file mode 100644 index a7b19d787..000000000 --- a/plugins/example_routing/init.php +++ /dev/null @@ -1,56 +0,0 @@ -host = $host; - - $host->add_handler("test", "example", $this); - $host->add_handler("public", "getunread", $this); - } - - function getunread() { - print rand(0,100); # yeah right - } - - function example() { - print "example method called"; - } - - function csrf_ignore($method) { - return true; - } - - function before($method) { - return true; - } - - function after() { - return true; - } - - function api_version() { - return 2; - } - -} -?> diff --git a/plugins/example_vfeed/init.php b/plugins/example_vfeed/init.php deleted file mode 100644 index 31076190f..000000000 --- a/plugins/example_vfeed/init.php +++ /dev/null @@ -1,52 +0,0 @@ -host = $host; - - $this->dummy_id = $host->add_feed(-1, 'Dummy feed', 'images/pub_set.svg', $this); - } - - function get_unread($feed_id) { - return 1234; - } - - function get_headlines($feed_id, $options) { - $qfh_ret = queryFeedHeadlines(-4, - $options['limit'], - $options['view_mode'], $options['cat_view'], - $options['search'], - $options['search_mode'], - $options['override_order'], - $options['offset'], - $options['owner_uid'], - $options['filter'], - $options['since_id'], - $options['include_children']); - - $qfh_ret[1] = 'Dummy feed'; - - return $qfh_ret; - } - - function api_version() { - return 2; - } - -} -?> From 6f7798b6434f5ef6073447998c436901b507e3df Mon Sep 17 00:00:00 2001 From: Rasmus Lerdorf Date: Tue, 7 May 2013 00:35:10 -0700 Subject: [PATCH 259/263] Fixing bugs found by static analysis --- api/index.php | 2 +- classes/api.php | 77 ++++++++++++------------- classes/article.php | 2 +- classes/auth/base.php | 2 +- classes/db/pdo.php | 2 +- classes/handler/public.php | 17 +++--- classes/pluginhost.php | 4 +- classes/pref/filters.php | 2 - classes/pref/prefs.php | 2 +- classes/rpc.php | 4 +- classes/ttrssmailer.php | 2 +- include/colors.php | 10 ++-- include/functions.php | 9 +-- include/rssfuncs.php | 4 +- index.php | 10 ++-- install/index.php | 2 +- lib/MiniTemplator.class.php | 4 +- lib/phpqrcode/bindings/tcpdf/qrcode.php | 8 +-- lib/phpqrcode/phpqrcode.php | 12 ++-- lib/phpqrcode/qrencode.php | 2 +- lib/phpqrcode/qrmask.php | 4 +- lib/phpqrcode/qrsplit.php | 8 +-- plugins/af_unburn/init.php | 2 +- plugins/auth_internal/init.php | 2 +- plugins/auth_remote/init.php | 2 +- prefs.php | 10 ++-- update.php | 2 +- 27 files changed, 103 insertions(+), 104 deletions(-) diff --git a/api/index.php b/api/index.php index 9f0d93f69..facdf82c5 100644 --- a/api/index.php +++ b/api/index.php @@ -57,7 +57,7 @@ $method = strtolower($_REQUEST["op"]); - $handler = new API(Db::get(), $_REQUEST); + $handler = new API($_REQUEST); if ($handler->before($method)) { if ($method && method_exists($handler, $method)) { diff --git a/classes/api.php b/classes/api.php index badd0b564..f5e4a0c5c 100644 --- a/classes/api.php +++ b/classes/api.php @@ -14,12 +14,12 @@ class API extends Handler { header("Content-Type: text/json"); if (!$_SESSION["uid"] && $method != "login" && $method != "isloggedin") { - print $this->wrap(self::STATUS_ERR, array("error" => 'NOT_LOGGED_IN')); + $this->wrap(self::STATUS_ERR, array("error" => 'NOT_LOGGED_IN')); return false; } if ($_SESSION["uid"] && $method != "logout" && !get_pref('ENABLE_API_ACCESS')) { - print $this->wrap(self::STATUS_ERR, array("error" => 'API_DISABLED')); + $this->wrap(self::STATUS_ERR, array("error" => 'API_DISABLED')); return false; } @@ -38,12 +38,12 @@ class API extends Handler { function getVersion() { $rv = array("version" => VERSION); - print $this->wrap(self::STATUS_OK, $rv); + $this->wrap(self::STATUS_OK, $rv); } function getApiLevel() { $rv = array("level" => self::API_LEVEL); - print $this->wrap(self::STATUS_OK, $rv); + $this->wrap(self::STATUS_OK, $rv); } function login() { @@ -65,33 +65,33 @@ class API extends Handler { } if (!$uid) { - print $this->wrap(self::STATUS_ERR, array("error" => "LOGIN_ERROR")); + $this->wrap(self::STATUS_ERR, array("error" => "LOGIN_ERROR")); return; } if (get_pref("ENABLE_API_ACCESS", $uid)) { if (authenticate_user($login, $password)) { // try login with normal password - print $this->wrap(self::STATUS_OK, array("session_id" => session_id(), + $this->wrap(self::STATUS_OK, array("session_id" => session_id(), "api_level" => self::API_LEVEL)); } else if (authenticate_user($login, $password_base64)) { // else try with base64_decoded password - print $this->wrap(self::STATUS_OK, array("session_id" => session_id(), + $this->wrap(self::STATUS_OK, array("session_id" => session_id(), "api_level" => self::API_LEVEL)); } else { // else we are not logged in - print $this->wrap(self::STATUS_ERR, array("error" => "LOGIN_ERROR")); + $this->wrap(self::STATUS_ERR, array("error" => "LOGIN_ERROR")); } } else { - print $this->wrap(self::STATUS_ERR, array("error" => "API_DISABLED")); + $this->wrap(self::STATUS_ERR, array("error" => "API_DISABLED")); } } function logout() { logout_user(); - print $this->wrap(self::STATUS_OK, array("status" => "OK")); + $this->wrap(self::STATUS_OK, array("status" => "OK")); } function isLoggedIn() { - print $this->wrap(self::STATUS_OK, array("status" => $_SESSION["uid"] != '')); + $this->wrap(self::STATUS_OK, array("status" => $_SESSION["uid"] != '')); } function getUnread() { @@ -99,15 +99,15 @@ class API extends Handler { $is_cat = $this->dbh->escape_string($_REQUEST["is_cat"]); if ($feed_id) { - print $this->wrap(self::STATUS_OK, array("unread" => getFeedUnread($feed_id, $is_cat))); + $this->wrap(self::STATUS_OK, array("unread" => getFeedUnread($feed_id, $is_cat))); } else { - print $this->wrap(self::STATUS_OK, array("unread" => getGlobalUnread())); + $this->wrap(self::STATUS_OK, array("unread" => getGlobalUnread())); } } /* Method added for ttrss-reader for Android */ function getCounters() { - print $this->wrap(self::STATUS_OK, getAllCounters()); + $this->wrap(self::STATUS_OK, getAllCounters()); } function getFeeds() { @@ -119,7 +119,7 @@ class API extends Handler { $feeds = $this->api_get_feeds($cat_id, $unread_only, $limit, $offset, $include_nested); - print $this->wrap(self::STATUS_OK, $feeds); + $this->wrap(self::STATUS_OK, $feeds); } function getCategories() { @@ -176,7 +176,7 @@ class API extends Handler { } } - print $this->wrap(self::STATUS_OK, $cats); + $this->wrap(self::STATUS_OK, $cats); } function getHeadlines() { @@ -219,9 +219,9 @@ class API extends Handler { $include_attachments, $since_id, $search, $search_mode, $include_nested, $sanitize_content); - print $this->wrap(self::STATUS_OK, $headlines); + $this->wrap(self::STATUS_OK, $headlines); } else { - print $this->wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE')); + $this->wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE')); } } @@ -293,11 +293,11 @@ class API extends Handler { } } - print $this->wrap(self::STATUS_OK, array("status" => "OK", + $this->wrap(self::STATUS_OK, array("status" => "OK", "updated" => $num_updated)); } else { - print $this->wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE')); + $this->wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE')); } } @@ -352,7 +352,7 @@ class API extends Handler { } } - print $this->wrap(self::STATUS_OK, $articles); + $this->wrap(self::STATUS_OK, $articles); } @@ -370,7 +370,7 @@ class API extends Handler { $config["num_feeds"] = (int)$num_feeds; - print $this->wrap(self::STATUS_OK, $config); + $this->wrap(self::STATUS_OK, $config); } function updateFeed() { @@ -380,7 +380,7 @@ class API extends Handler { update_rss_feed($feed_id, true); - print $this->wrap(self::STATUS_OK, array("status" => "OK")); + $this->wrap(self::STATUS_OK, array("status" => "OK")); } function catchupFeed() { @@ -389,13 +389,13 @@ class API extends Handler { catchup_feed($feed_id, $is_cat); - print $this->wrap(self::STATUS_OK, array("status" => "OK")); + $this->wrap(self::STATUS_OK, array("status" => "OK")); } function getPref() { $pref_name = $this->dbh->escape_string($_REQUEST["pref_name"]); - print $this->wrap(self::STATUS_OK, array("value" => get_pref($pref_name))); + $this->wrap(self::STATUS_OK, array("value" => get_pref($pref_name))); } function getLabels() { @@ -432,7 +432,7 @@ class API extends Handler { "checked" => $checked)); } - print $this->wrap(self::STATUS_OK, $rv); + $this->wrap(self::STATUS_OK, $rv); } function setArticleLabel() { @@ -460,7 +460,7 @@ class API extends Handler { } } - print $this->wrap(self::STATUS_OK, array("status" => "OK", + $this->wrap(self::STATUS_OK, array("status" => "OK", "updated" => $num_updated)); } @@ -471,10 +471,10 @@ class API extends Handler { if ($plugin && method_exists($plugin, $method)) { $reply = $plugin->$method(); - print $this->wrap($reply[0], $reply[1]); + $this->wrap($reply[0], $reply[1]); } else { - print $this->wrap(self::STATUS_ERR, array("error" => 'UNKNOWN_METHOD', "method" => $method)); + $this->wrap(self::STATUS_ERR, array("error" => 'UNKNOWN_METHOD', "method" => $method)); } } @@ -484,9 +484,9 @@ class API extends Handler { $content = $this->dbh->escape_string(strip_tags($_REQUEST["content"])); if (Article::create_published_article($title, $url, $content, "", $_SESSION["uid"])) { - print $this->wrap(self::STATUS_OK, array("status" => 'OK')); + $this->wrap(self::STATUS_OK, array("status" => 'OK')); } else { - print $this->wrap(self::STATUS_ERR, array("error" => 'Publishing failed')); + $this->wrap(self::STATUS_ERR, array("error" => 'Publishing failed')); } } @@ -714,9 +714,9 @@ class API extends Handler { if ($this->dbh->num_rows($result) != 0) { Pref_Feeds::remove_feed($feed_id, $_SESSION["uid"]); - print $this->wrap(self::STATUS_OK, array("status" => "OK")); + $this->wrap(self::STATUS_OK, array("status" => "OK")); } else { - print $this->wrap(self::STATUS_ERR, array("error" => "FEED_NOT_FOUND")); + $this->wrap(self::STATUS_ERR, array("error" => "FEED_NOT_FOUND")); } } @@ -727,12 +727,11 @@ class API extends Handler { $password = $this->dbh->escape_string($_REQUEST["password"]); if ($feed_url) { - $rc = subscribe_to_feed($feed_url, $category_id, - $login, $password, false); + $rc = subscribe_to_feed($feed_url, $category_id, $login, $password); - print $this->wrap(self::STATUS_OK, array("status" => $rc)); + $this->wrap(self::STATUS_OK, array("status" => $rc)); } else { - print $this->wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE')); + $this->wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE')); } } @@ -746,9 +745,9 @@ class API extends Handler { if ($pf){ $data = $pf->makefeedtree(); - print $this->wrap(self::STATUS_OK, array("categories" => $data)); + $this->wrap(self::STATUS_OK, array("categories" => $data)); } else { - print $this->wrap(self::STATUS_ERR, array("error" => + $this->wrap(self::STATUS_ERR, array("error" => 'UNABLE_TO_INSTANTIATE_OBJECT')); } diff --git a/classes/article.php b/classes/article.php index 1198eefa9..e9f86f298 100644 --- a/classes/article.php +++ b/classes/article.php @@ -215,7 +215,7 @@ class Article extends Handler_Protected { $this->dbh->query("UPDATE ttrss_user_entries SET score = '$score' WHERE ref_id IN ($ids) AND owner_uid = " . $_SESSION["uid"]); - print json_encode(array("id" => $id, + print json_encode(array("id" => $ids, "score_pic" => get_score_pic($score))); } diff --git a/classes/auth/base.php b/classes/auth/base.php index 83f99d109..c77df5157 100644 --- a/classes/auth/base.php +++ b/classes/auth/base.php @@ -16,7 +16,7 @@ class Auth_Base { // Auto-creates specified user if allowed by system configuration // Can be used instead of find_user_by_login() by external auth modules - function auto_create_user($login) { + function auto_create_user($login, $password) { if ($login && defined('AUTH_AUTO_CREATE') && AUTH_AUTO_CREATE) { $user_id = $this->find_user_by_login($login); diff --git a/classes/db/pdo.php b/classes/db/pdo.php index 59499139d..126f5150a 100644 --- a/classes/db/pdo.php +++ b/classes/db/pdo.php @@ -79,7 +79,7 @@ class Db_PDO implements IDb { } function last_error() { - return join(" ", $pdo->errorInfo()); + return join(" ", $this->pdo->errorInfo()); } function init() { diff --git a/classes/handler/public.php b/classes/handler/public.php index d5933a18c..7fa744107 100644 --- a/classes/handler/public.php +++ b/classes/handler/public.php @@ -382,9 +382,9 @@ class Handler_Public extends Handler { header('Content-Type: text/html; charset=utf-8'); print "Tiny Tiny RSS"; - print stylesheet_tag("utility.css"); - print javascript_tag("lib/prototype.js"); - print javascript_tag("lib/scriptaculous/scriptaculous.js?load=effects,dragdrop,controls"); + stylesheet_tag("utility.css"); + javascript_tag("lib/prototype.js"); + javascript_tag("lib/scriptaculous/scriptaculous.js?load=effects,dragdrop,controls"); print " "; @@ -643,6 +643,7 @@ class Handler_Public extends Handler { $feed_url = $this->dbh->escape_string(trim($_REQUEST["feed_url"])); $cat_id = $this->dbh->escape_string($_REQUEST["cat_id"]); $from = $this->dbh->escape_string($_REQUEST["from"]); + $feed_urls = array(); /* only read authentication information from POST */ @@ -666,8 +667,10 @@ class Handler_Public extends Handler { break; case 4: print_notice(__("Multiple feed URLs found.")); - - $feed_urls = get_feeds_from_html($feed_url); + $contents = @fetch_file_contents($url, false, $auth_login, $auth_pass); + if (is_html($contents)) { + $feed_urls = get_feeds_from_html($url, $contents); + } break; case 5: print_error(T_sprintf("Could not subscribe to %s.
Can't download the Feed URL.", $feed_url)); @@ -732,8 +735,8 @@ class Handler_Public extends Handler { header('Content-Type: text/html; charset=utf-8'); print "Tiny Tiny RSS"; - print stylesheet_tag("utility.css"); - print javascript_tag("lib/prototype.js"); + stylesheet_tag("utility.css"); + javascript_tag("lib/prototype.js"); print " "; diff --git a/classes/pluginhost.php b/classes/pluginhost.php index 8e2aefcf1..bc5dc96be 100644 --- a/classes/pluginhost.php +++ b/classes/pluginhost.php @@ -186,7 +186,7 @@ class PluginHost { } } - function del_handler($handler, $method) { + function del_handler($handler, $method, $sender) { $handler = str_replace("-", "_", strtolower($handler)); $method = strtolower($method); @@ -252,8 +252,6 @@ class PluginHost { function load_data($force = false) { if ($this->owner_uid) { - $plugin = $this->dbh->escape_string($plugin); - $result = $this->dbh->query("SELECT name, content FROM ttrss_plugin_storage WHERE owner_uid = '".$this->owner_uid."'"); diff --git a/classes/pref/filters.php b/classes/pref/filters.php index 4dbee5906..bcc7b5aec 100644 --- a/classes/pref/filters.php +++ b/classes/pref/filters.php @@ -83,8 +83,6 @@ class Pref_Filters extends Handler_Protected { } } - $feed_title = getFeedTitle($feed); - $qfh_ret = queryFeedHeadlines(-4, 30, "", false, false, false, "date_entered DESC", 0, $_SESSION["uid"], $filter); diff --git a/classes/pref/prefs.php b/classes/pref/prefs.php index ba83a9900..fb6795957 100644 --- a/classes/pref/prefs.php +++ b/classes/pref/prefs.php @@ -747,7 +747,7 @@ class Pref_Prefs extends Handler_Protected { $system_enabled = array_map("trim", explode(",", PLUGINS)); $user_enabled = array_map("trim", explode(",", get_pref("_ENABLED_PLUGINS"))); - $tmppluginhost = new PluginHost(Db::get()); + $tmppluginhost = new PluginHost(); $tmppluginhost->load_all($tmppluginhost::KIND_ALL, $_SESSION["uid"]); $tmppluginhost->load_data(true); diff --git a/classes/rpc.php b/classes/rpc.php index 2b07bbf91..46583feb5 100644 --- a/classes/rpc.php +++ b/classes/rpc.php @@ -291,7 +291,7 @@ class RPC extends Handler_Protected { $reply = array(); - if ($seq) $reply['seq'] = $seq; + if (!empty($_REQUEST['seq'])) $reply['seq'] = (int) $_REQUEST['seq']; if ($last_article_id != getLastArticleId()) { $reply['counters'] = getAllCounters(); @@ -464,7 +464,7 @@ class RPC extends Handler_Protected { $id = 0; } - print_feed_cat_select("cat_id", $id); + print_feed_cat_select("cat_id", $id, ''); } // Silent diff --git a/classes/ttrssmailer.php b/classes/ttrssmailer.php index fd7f969aa..1e8d07723 100644 --- a/classes/ttrssmailer.php +++ b/classes/ttrssmailer.php @@ -28,7 +28,7 @@ class ttrssMailer extends PHPMailer { $this->Host = $pair[0]; $this->Port = $pair[1]; - if (!$Port) $Port = 25; + if (!$this->Port) $this->Port = 25; } else { $this->Host = ''; $this->Port = ''; diff --git a/include/colors.php b/include/colors.php index 7cf1a6af0..41bf7b819 100644 --- a/include/colors.php +++ b/include/colors.php @@ -237,16 +237,16 @@ function rgb2hsl($arr) { } else { $s = $del_Max / $var_Max; - $del_R = ((($max - $var_R ) / 6 ) + ($del_Max / 2 ) ) / $del_Max; - $del_G = ((($max - $var_G ) / 6 ) + ($del_Max / 2 ) ) / $del_Max; - $del_B = ((($max - $var_B ) / 6 ) + ($del_Max / 2 ) ) / $del_Max; + $del_R = ((($var_Max - $var_R ) / 6 ) + ($del_Max / 2 ) ) / $del_Max; + $del_G = ((($var_Max - $var_G ) / 6 ) + ($del_Max / 2 ) ) / $del_Max; + $del_B = ((($var_Max - $var_B ) / 6 ) + ($del_Max / 2 ) ) / $del_Max; if ($var_R == $var_Max) $h = $del_B - $del_G; else if ($var_G == $var_Max) $h = (1 / 3 ) + $del_R - $del_B; else if ($var_B == $var_Max) $h = (2 / 3 ) + $del_G - $del_R; - if ($H < 0) $h++; - if ($H > 1) $h--; + if ($h < 0) $h++; + if ($h > 1) $h--; } return array($h, $s, $v); diff --git a/include/functions.php b/include/functions.php index 15a875746..414196e9c 100644 --- a/include/functions.php +++ b/include/functions.php @@ -1162,7 +1162,7 @@ $data = array_merge($data, getVirtCounters()); $data = array_merge($data, getLabelCounters()); - $data = array_merge($data, getFeedCounters($active_feed)); + $data = array_merge($data, getFeedCounters()); $data = array_merge($data, getCategoryCounters()); return $data; @@ -1286,7 +1286,7 @@ return $unread; } else if ($cat == -1) { - return getFeedUnread(-1) + getFeedUnread($link, -2) + getFeedUnread($link, -3) + getFeedUnread($link, 0); + return getFeedUnread(-1) + getFeedUnread(-2) + getFeedUnread(-3) + getFeedUnread(0); } else if ($cat == -2) { $result = db_query(" @@ -1726,7 +1726,8 @@ } if (!$root_id) { - $is_selected = ($default_id == "CAT:0") ? "selected=\"1\"" : ""; + $default_is_cat = ($default_id == "CAT:0"); + $is_selected = $default_is_cat ? "selected=\"1\"" : ""; printf("", __("Uncategorized")); @@ -4099,7 +4100,7 @@ preg_match("/(Location:|URI:)[^(\n)]*/", $header, $matches); $url = trim(str_replace($matches[1],"",$matches[0])); $url_parsed = parse_url($url); - return (isset($url_parsed))? geturl($url, $referer):''; + return (isset($url_parsed))? geturl($url):''; } $oline=''; foreach($status as $key=>$eline){$oline.='['.$key.']'.$eline.' ';} diff --git a/include/rssfuncs.php b/include/rssfuncs.php index 61f6ee6a0..612c914c0 100644 --- a/include/rssfuncs.php +++ b/include/rssfuncs.php @@ -334,7 +334,7 @@ } $pluginhost = new PluginHost(); - $pluginhost->set_debug($debug_enabled, $debug_enabled); + $pluginhost->set_debug($debug_enabled); $user_plugins = get_pref("_ENABLED_PLUGINS", $owner_uid); $pluginhost->load(PLUGINS, PluginHost::KIND_ALL); @@ -411,7 +411,7 @@ _debug("checking favicon...", $debug_enabled); - check_feed_favicon($site_url, $feed, $link); + check_feed_favicon($site_url, $feed); $favicon_modified_new = @filemtime($favicon_file); if ($favicon_modified_new > $favicon_modified) diff --git a/index.php b/index.php index 6a34be5e8..29b8b173d 100644 --- a/index.php +++ b/index.php @@ -56,14 +56,14 @@ Tiny Tiny RSS - - - + + + @@ -91,7 +91,7 @@ "lib/dojo/tt-rss-layer.js", "errors.php?mode=js") as $jsfile) { - echo javascript_tag($jsfile); + javascript_tag($jsfile); } ?> diff --git a/install/index.php b/install/index.php index cd017f995..6cb2ace4f 100644 --- a/install/index.php +++ b/install/index.php @@ -89,7 +89,7 @@ $msg"; } - function db_connect($host, $user, $pass, $db, $type, $port) { + function db_connect($host, $user, $pass, $db, $type, $port = false) { if ($type == "pgsql") { $string = "dbname=$db user=$user"; diff --git a/lib/MiniTemplator.class.php b/lib/MiniTemplator.class.php index 69281cb5e..a139473f9 100644 --- a/lib/MiniTemplator.class.php +++ b/lib/MiniTemplator.class.php @@ -336,7 +336,7 @@ function processBeginBlockCmd ($parms, $cmdTPosBegin, $cmdTPosEnd) { $this->openBlocksTab[$this->currentNestingLevel] = $blockNo; $this->currentNestingLevel += 1; if ($this->currentNestingLevel > $this->maxNestingLevel) { - $trhis->triggerError ("Block nesting overflow in template at offset $cmdTPosBegin."); + $this->triggerError ("Block nesting overflow in template at offset $cmdTPosBegin."); return false; } return true; } @@ -844,7 +844,7 @@ function readFileIntoString ($fileName, &$s) { $fh = fopen($fileName,"rb"); if ($fh === false) return false; $fileSize = filesize($fileName); - if ($fileSize === false) {close ($fh); return false; } + if ($fileSize === false) {fclose ($fh); return false; } $s = fread($fh,$fileSize); fclose ($fh); if (strlen($s) != $fileSize) return false; diff --git a/lib/phpqrcode/bindings/tcpdf/qrcode.php b/lib/phpqrcode/bindings/tcpdf/qrcode.php index 7995460b5..9001e3a2e 100644 --- a/lib/phpqrcode/bindings/tcpdf/qrcode.php +++ b/lib/phpqrcode/bindings/tcpdf/qrcode.php @@ -1101,7 +1101,7 @@ if (!class_exists('QRcode', false)) { protected function makeMaskNo($maskNo, $width, $s, &$d, $maskGenOnly=false) { $b = 0; $bitMask = array(); - $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d); + $bitMask = $this->generateMaskNo($maskNo, $width, $s); if ($maskGenOnly) { return; } @@ -1399,7 +1399,7 @@ if (!class_exists('QRcode', false)) { $p += 2; } $this->items = $this->appendNewInputItem($this->items, QR_MODE_KJ, $p, str_split($this->dataStr)); - return $run; + return $p; } /** @@ -1470,7 +1470,7 @@ if (!class_exists('QRcode', false)) { break; } case QR_MODE_KJ: { - if ($hint == QR_MODE_KJ) { + if ($this->hint == QR_MODE_KJ) { $length = $this->eatKanji(); } else { $length = $this->eat8(); @@ -1499,7 +1499,7 @@ if (!class_exists('QRcode', false)) { $stringLen = strlen($this->dataStr); $p = 0; while ($p < $stringLen) { - $mode = $this->identifyMode(substr($this->dataStr, $p), $this->hint); + $mode = $this->identifyMode(substr($this->dataStr, $p)); if ($mode == QR_MODE_KJ) { $p += 2; } else { diff --git a/lib/phpqrcode/phpqrcode.php b/lib/phpqrcode/phpqrcode.php index 80adb9df2..02b877639 100644 --- a/lib/phpqrcode/phpqrcode.php +++ b/lib/phpqrcode/phpqrcode.php @@ -2195,7 +2195,7 @@ case QR_MODE_NUM: $length = $this->eatNum(); break; case QR_MODE_AN: $length = $this->eatAn(); break; case QR_MODE_KANJI: - if ($hint == QR_MODE_KANJI) + if ($this->modeHint == QR_MODE_KANJI) $length = $this->eatKanji(); else $length = $this->eat8(); break; @@ -2217,7 +2217,7 @@ $p = 0; while ($p<$stringLen) { - $mode = self::identifyMode(substr($this->dataStr, $p), $this->modeHint); + $mode = self::identifyMode(substr($this->dataStr, $p)); if($mode == QR_MODE_KANJI) { $p += 2; } else { @@ -2621,13 +2621,13 @@ if (file_exists($fileName)) { $bitMask = self::unserial(file_get_contents($fileName)); } else { - $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d); + $bitMask = $this->generateMaskNo($maskNo, $width, $s); if (!file_exists(QR_CACHE_DIR.'mask_'.$maskNo)) mkdir(QR_CACHE_DIR.'mask_'.$maskNo); file_put_contents($fileName, self::serial($bitMask)); } } else { - $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d); + $bitMask = $this->generateMaskNo($maskNo, $width, $s); } if ($maskGenOnly) @@ -2937,7 +2937,7 @@ //---------------------------------------------------------------------- public function getCode() { - $ret; + $ret = 0; if($this->count < $this->dataLength) { $row = $this->count % $this->blocks; @@ -3059,7 +3059,7 @@ $input = new QRinput($version, $level); if($input == NULL) return NULL; - $ret = $input->append($input, QR_MODE_8, strlen($string), str_split($string)); + $ret = $input->append(QR_MODE_8, strlen($string), str_split($string)); if($ret < 0) { unset($input); return NULL; diff --git a/lib/phpqrcode/qrencode.php b/lib/phpqrcode/qrencode.php index 4b77a5bdd..5bdeaec20 100644 --- a/lib/phpqrcode/qrencode.php +++ b/lib/phpqrcode/qrencode.php @@ -129,7 +129,7 @@ //---------------------------------------------------------------------- public function getCode() { - $ret; + $ret = 0; if($this->count < $this->dataLength) { $row = $this->count % $this->blocks; diff --git a/lib/phpqrcode/qrmask.php b/lib/phpqrcode/qrmask.php index b14d7ae16..43d653ce3 100644 --- a/lib/phpqrcode/qrmask.php +++ b/lib/phpqrcode/qrmask.php @@ -149,13 +149,13 @@ if (file_exists($fileName)) { $bitMask = self::unserial(file_get_contents($fileName)); } else { - $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d); + $bitMask = $this->generateMaskNo($maskNo, $width, $s); if (!file_exists(QR_CACHE_DIR.'mask_'.$maskNo)) mkdir(QR_CACHE_DIR.'mask_'.$maskNo); file_put_contents($fileName, self::serial($bitMask)); } } else { - $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d); + $bitMask = $this->generateMaskNo($maskNo, $width, $s); } if ($maskGenOnly) diff --git a/lib/phpqrcode/qrsplit.php b/lib/phpqrcode/qrsplit.php index d75b82737..1f9f65c3b 100644 --- a/lib/phpqrcode/qrsplit.php +++ b/lib/phpqrcode/qrsplit.php @@ -186,7 +186,7 @@ if($ret < 0) return -1; - return $run; + return $ret; } //---------------------------------------------------------------------- @@ -258,7 +258,7 @@ case QR_MODE_NUM: $length = $this->eatNum(); break; case QR_MODE_AN: $length = $this->eatAn(); break; case QR_MODE_KANJI: - if ($hint == QR_MODE_KANJI) + if ($this->modeHint == QR_MODE_KANJI) $length = $this->eatKanji(); else $length = $this->eat8(); break; @@ -280,7 +280,7 @@ $p = 0; while ($p<$stringLen) { - $mode = self::identifyMode(substr($this->dataStr, $p), $this->modeHint); + $mode = self::identifyMode(substr($this->dataStr, $p)); if($mode == QR_MODE_KANJI) { $p += 2; } else { @@ -308,4 +308,4 @@ return $split->splitString(); } - } \ No newline at end of file + } diff --git a/plugins/af_unburn/init.php b/plugins/af_unburn/init.php index 62b3b4dcf..a97502b12 100644 --- a/plugins/af_unburn/init.php +++ b/plugins/af_unburn/init.php @@ -114,7 +114,7 @@ class Af_Unburn extends Plugin { preg_match("/(Location:|URI:)[^(\n)]*/", $header, $matches); $url = trim(str_replace($matches[1],"",$matches[0])); $url_parsed = parse_url($url); - return (isset($url_parsed))? geturl($url, $referer):''; + return (isset($url_parsed))? geturl($url):''; } $oline=''; foreach($status as $key=>$eline){$oline.='['.$key.']'.$eline.' ';} diff --git a/plugins/auth_internal/init.php b/plugins/auth_internal/init.php index 79a8e8cb3..87c8555c0 100644 --- a/plugins/auth_internal/init.php +++ b/plugins/auth_internal/init.php @@ -51,7 +51,7 @@ class Auth_Internal extends Plugin implements IAuthModule { $return = urlencode($_REQUEST["return"]); ?> Tiny Tiny RSS - +
diff --git a/plugins/auth_remote/init.php b/plugins/auth_remote/init.php index 2bf090d54..2ec2c87b2 100644 --- a/plugins/auth_remote/init.php +++ b/plugins/auth_remote/init.php @@ -45,7 +45,7 @@ class Auth_Remote extends Plugin implements IAuthModule { # if (!$try_login) $try_login = "test_qqq"; if ($try_login) { - $user_id = $this->base->auto_create_user($try_login); + $user_id = $this->base->auto_create_user($try_login, $password); if ($user_id) { $_SESSION["fake_login"] = $try_login; diff --git a/prefs.php b/prefs.php index 9bf610a53..b617d94bc 100644 --- a/prefs.php +++ b/prefs.php @@ -32,14 +32,14 @@ Tiny Tiny RSS : <?php echo __("Preferences") ?> - - - + + + @@ -58,7 +58,7 @@ "lib/dojo/tt-rss-layer.js", "errors.php?mode=js") as $jsfile) { - echo javascript_tag($jsfile); + javascript_tag($jsfile); } ?> diff --git a/update.php b/update.php index d4160c7ba..f542a390b 100755 --- a/update.php +++ b/update.php @@ -321,7 +321,7 @@ } if (isset($options["list-plugins"])) { - $tmppluginhost = new PluginHost(Db::get()); + $tmppluginhost = new PluginHost(); $tmppluginhost->load_all($tmppluginhost::KIND_ALL); $enabled = array_map("trim", explode(",", PLUGINS)); From 75933cf00d4331fd27821af03cadbb2e7c83da79 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 7 May 2013 12:14:11 +0400 Subject: [PATCH 260/263] better fix for feedTree shifting --- tt-rss.css | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tt-rss.css b/tt-rss.css index b5cf4d2a2..09a3505af 100644 --- a/tt-rss.css +++ b/tt-rss.css @@ -1017,12 +1017,17 @@ div.hl.active a.title { margin-right : 25px; } -#feedTree .dijitTreeRow, #feedTree .dijitTreeNode, #feedTree .dijitFocused { +#feedTree .dijitTreeRow, #feedTree .dijitFocused { padding : 1px 0px 1px; border-width : 1px; border-color : transparent; } +#feedTree .dijitTreeNode { + padding : 0px; + border-width : 0px; +} + #feedTree { height : 100%; overflow-x : hidden; From ea46d90eee462d6fc7724340670550f7f5717372 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 7 May 2013 12:36:09 +0400 Subject: [PATCH 261/263] auth_base: choose random password if not supplied by auth module --- classes/auth/base.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/classes/auth/base.php b/classes/auth/base.php index c77df5157..69acd0985 100644 --- a/classes/auth/base.php +++ b/classes/auth/base.php @@ -16,10 +16,12 @@ class Auth_Base { // Auto-creates specified user if allowed by system configuration // Can be used instead of find_user_by_login() by external auth modules - function auto_create_user($login, $password) { + function auto_create_user($login, $password = false) { if ($login && defined('AUTH_AUTO_CREATE') && AUTH_AUTO_CREATE) { $user_id = $this->find_user_by_login($login); + if (!$password) $password = make_password(); + if (!$user_id) { $login = $this->dbh->escape_string($login); $salt = substr(bin2hex(get_random_bytes(125)), 0, 250); From d29357fa0267fd78794511e234d8278c89a6464e Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 7 May 2013 15:18:37 +0400 Subject: [PATCH 262/263] fix more hphp detected issues --- classes/pref/feeds.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/classes/pref/feeds.php b/classes/pref/feeds.php index da3a96282..7d050f135 100644 --- a/classes/pref/feeds.php +++ b/classes/pref/feeds.php @@ -787,7 +787,7 @@ class Pref_Feeds extends Handler_Protected { print ""; + name=\"title\" value=\"\">"; $this->batch_edit_cbox("title"); @@ -798,7 +798,7 @@ class Pref_Feeds extends Handler_Protected { print __('URL:') . " "; print ""; + name=\"feed_url\" value=\"\">"; $this->batch_edit_cbox("feed_url"); @@ -810,7 +810,7 @@ class Pref_Feeds extends Handler_Protected { print __('Place in category:') . " "; - print_feed_cat_select("cat_id", $cat_id, + print_feed_cat_select("cat_id", false, 'disabled="1" dojoType="dijit.form.Select"'); $this->batch_edit_cbox("cat_id"); @@ -824,7 +824,7 @@ class Pref_Feeds extends Handler_Protected { /* Update Interval */ - print_select_hash("update_interval", $update_interval, $update_intervals, + print_select_hash("update_interval", "", $update_intervals, 'disabled="1" dojoType="dijit.form.Select"'); $this->batch_edit_cbox("update_interval"); @@ -837,7 +837,7 @@ class Pref_Feeds extends Handler_Protected { print __('Article purging:') . " "; - print_select_hash("purge_interval", $purge_interval, $purge_intervals, + print_select_hash("purge_interval", "", $purge_intervals, 'disabled="1" dojoType="dijit.form.Select"'); $this->batch_edit_cbox("purge_interval"); @@ -849,13 +849,13 @@ class Pref_Feeds extends Handler_Protected { print ""; + name=\"auth_login\" value=\"\">"; $this->batch_edit_cbox("auth_login"); print "
"; + value=\"\">"; $this->batch_edit_cbox("auth_pass"); From 23923fb29b345c1eea5b70a6df4d30395425bf37 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 7 May 2013 15:34:20 +0400 Subject: [PATCH 263/263] subscribe_to_feed: use already fetched data when updating initially --- include/functions.php | 2 +- include/rssfuncs.php | 91 ++++++++++++++++++++++--------------------- 2 files changed, 47 insertions(+), 46 deletions(-) diff --git a/include/functions.php b/include/functions.php index 414196e9c..e3e113786 100644 --- a/include/functions.php +++ b/include/functions.php @@ -1661,7 +1661,7 @@ $feed_id = db_fetch_result($result, 0, "id"); if ($feed_id) { - update_rss_feed($feed_id, true); + update_rss_feed($feed_id, false, false, false, $contents); } return array("code" => 1); diff --git a/include/rssfuncs.php b/include/rssfuncs.php index 612c914c0..d5fc14f79 100644 --- a/include/rssfuncs.php +++ b/include/rssfuncs.php @@ -191,7 +191,7 @@ // ignore_daemon is not used function update_rss_feed($feed, $ignore_daemon = false, $no_cache = false, - $override_url = false) { + $override_url = false, $override_data = false) { $debug_enabled = defined('DAEMON_EXTENDED_DEBUG') || $_REQUEST['xdebug']; @@ -251,7 +251,11 @@ $force_refetch = isset($_REQUEST["force_refetch"]); - if (file_exists($cache_filename) && + if ($override_data) { + $feed_data = $override_data; + } + + if (!$feed_data && file_exists($cache_filename) && is_readable($cache_filename) && !$auth_login && !$auth_pass && filemtime($cache_filename) > time() - 30) { @@ -268,69 +272,66 @@ _debug("local cache will not be used for this feed", $debug_enabled); } - if (!$rss) { + if (!$feed_data) { + _debug("fetching [$fetch_url]...", $debug_enabled); + _debug("If-Modified-Since: ".gmdate('D, d M Y H:i:s \G\M\T', $last_article_timestamp), $debug_enabled); - if (!$feed_data) { - _debug("fetching [$fetch_url]...", $debug_enabled); - _debug("If-Modified-Since: ".gmdate('D, d M Y H:i:s \G\M\T', $last_article_timestamp), $debug_enabled); + $feed_data = fetch_file_contents($fetch_url, false, + $auth_login, $auth_pass, false, + $no_cache ? FEED_FETCH_NO_CACHE_TIMEOUT : FEED_FETCH_TIMEOUT, + $force_refetch ? 0 : $last_article_timestamp); - $feed_data = fetch_file_contents($fetch_url, false, - $auth_login, $auth_pass, false, - $no_cache ? FEED_FETCH_NO_CACHE_TIMEOUT : FEED_FETCH_TIMEOUT, - $force_refetch ? 0 : $last_article_timestamp); + global $fetch_curl_used; - global $fetch_curl_used; + if (!$fetch_curl_used) { + $tmp = @gzdecode($feed_data); - if (!$fetch_curl_used) { - $tmp = @gzdecode($feed_data); + if ($tmp) $feed_data = $tmp; + } - if ($tmp) $feed_data = $tmp; - } + $feed_data = trim($feed_data); - $feed_data = trim($feed_data); + _debug("fetch done.", $debug_enabled); - _debug("fetch done.", $debug_enabled); + if ($feed_data) { + $error = verify_feed_xml($feed_data); - if ($feed_data) { - $error = verify_feed_xml($feed_data); + if ($error) { + _debug("error verifying XML, code: " . $error->code, $debug_enabled); - if ($error) { - _debug("error verifying XML, code: " . $error->code, $debug_enabled); + if ($error->code == 26) { + _debug("got error 26, trying to decode entities...", $debug_enabled); - if ($error->code == 26) { - _debug("got error 26, trying to decode entities...", $debug_enabled); + $feed_data = html_entity_decode($feed_data, ENT_COMPAT, 'UTF-8'); - $feed_data = html_entity_decode($feed_data, ENT_COMPAT, 'UTF-8'); + $error = verify_feed_xml($feed_data); - $error = verify_feed_xml($feed_data); - - if ($error) $feed_data = ''; - } + if ($error) $feed_data = ''; } } } + } - if (!$feed_data) { - global $fetch_last_error; - global $fetch_last_error_code; + if (!$feed_data) { + global $fetch_last_error; + global $fetch_last_error_code; - _debug("unable to fetch: $fetch_last_error [$fetch_last_error_code]", $debug_enabled); + _debug("unable to fetch: $fetch_last_error [$fetch_last_error_code]", $debug_enabled); - $error_escaped = ''; + $error_escaped = ''; - // If-Modified-Since - if ($fetch_last_error_code != 304) { - $error_escaped = db_escape_string($fetch_last_error); - } else { - _debug("source claims data not modified, nothing to do.", $debug_enabled); - } - - db_query( - "UPDATE ttrss_feeds SET last_error = '$error_escaped', - last_updated = NOW() WHERE id = '$feed'"); - - return; + // If-Modified-Since + if ($fetch_last_error_code != 304) { + $error_escaped = db_escape_string($fetch_last_error); + } else { + _debug("source claims data not modified, nothing to do.", $debug_enabled); } + + db_query( + "UPDATE ttrss_feeds SET last_error = '$error_escaped', + last_updated = NOW() WHERE id = '$feed'"); + + return; } $pluginhost = new PluginHost();