aboutsummaryrefslogtreecommitdiff
path: root/app/i18n
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2015-01-31 14:45:37 +0100
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2015-01-31 14:45:37 +0100
commita97bbd9bd54c5fa56d54b3c214cf4e8af96af8b2 (patch)
tree6e83890bc1b3814a12c3b7bedc0d5944f30f507b /app/i18n
parent42fd539a1b14f883077048a35864b4294b6efe94 (diff)
parente91b72b63cd11ae3c4f59e48439e93955242c673 (diff)
Merge branch 'dev'
Conflicts: CHANGELOG README.fr.md README.md app/Controllers/feedController.php app/Controllers/indexController.php app/i18n/en.php app/i18n/fr.php app/views/helpers/view/normal_view.phtml app/views/stats/index.phtml app/views/stats/repartition.phtml constants.php p/scripts/main.js
Diffstat (limited to 'app/i18n')
-rw-r--r--app/i18n/de/admin.php170
-rw-r--r--app/i18n/de/conf.php169
-rw-r--r--app/i18n/de/feedback.php110
-rw-r--r--app/i18n/de/gen.php163
-rw-r--r--app/i18n/de/index.php61
-rw-r--r--app/i18n/de/install.php107
-rw-r--r--app/i18n/de/sub.php61
-rw-r--r--app/i18n/en.php455
-rw-r--r--app/i18n/en/admin.php170
-rw-r--r--app/i18n/en/conf.php169
-rw-r--r--app/i18n/en/feedback.php110
-rw-r--r--app/i18n/en/gen.php163
-rw-r--r--app/i18n/en/index.php61
-rw-r--r--app/i18n/en/install.php107
-rw-r--r--app/i18n/en/sub.php61
-rw-r--r--app/i18n/fr.php455
-rw-r--r--app/i18n/fr/admin.php170
-rw-r--r--app/i18n/fr/conf.php169
-rw-r--r--app/i18n/fr/feedback.php110
-rw-r--r--app/i18n/fr/gen.php163
-rw-r--r--app/i18n/fr/index.php61
-rw-r--r--app/i18n/fr/install.php107
-rw-r--r--app/i18n/fr/sub.php61
-rw-r--r--app/i18n/install.en.php69
-rw-r--r--app/i18n/install.fr.php68
25 files changed, 2523 insertions, 1047 deletions
diff --git a/app/i18n/de/admin.php b/app/i18n/de/admin.php
new file mode 100644
index 000000000..bcd0fcc61
--- /dev/null
+++ b/app/i18n/de/admin.php
@@ -0,0 +1,170 @@
+<?php
+
+return array(
+ 'auth' => array(
+ 'allow_anonymous' => 'Anonymes Lesen der Artikel des Standardbenutzers (%s) erlauben',
+ 'allow_anonymous_refresh' => 'Anonymes Aktualisieren der Artikel erlauben',
+ 'api_enabled' => '<abbr>API</abbr>-Zugriff erlauben <small>(für mobile Anwendungen benötigt)</small>',
+ 'form' => 'Webformular (traditionell, benötigt JavaScript)',
+ 'http' => 'HTTP (HTTPS für erfahrene Benutzer)',
+ 'none' => 'Keine (gefährlich)',
+ 'persona' => 'Mozilla Persona (modern, benötigt JavaScript)',
+ 'title' => 'Authentifizierung',
+ 'title_reset' => 'Zurücksetzen der Authentifizierung',
+ 'token' => 'Authentifizierungs-Token',
+ 'token_help' => 'Erlaubt den Zugriff auf die RSS-Ausgabe des Standardbenutzers ohne Authentifizierung.',
+ 'type' => 'Authentifizierungsmethode',
+ 'unsafe_autologin' => 'Erlaube unsicheres automatisches Anmelden mit folgendem Format: ',
+ ),
+ 'check_install' => array(
+ 'cache' => array(
+ 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses <em>./data/cache</em>. Der HTTP-Server muss Schreibrechte besitzen.',
+ 'ok' => 'Berechtigungen des Verzeichnisses <em>./data/cache</em> sind in Ordnung.',
+ ),
+ 'categories' => array(
+ 'nok' => 'Die Tabelle <em>category</em> ist schlecht konfiguriert.',
+ 'ok' => 'Die Tabelle <em>category</em> ist in Ordnung.',
+ ),
+ 'connection' => array(
+ 'nok' => 'Verbindung zur Datenbank kann nicht aufgebaut werden.',
+ 'ok' => 'Verbindung zur Datenbank ist in Ordnung.',
+ ),
+ 'ctype' => array(
+ 'nok' => 'Ihnen fehlt eine benötigte Bibliothek für die Überprüfung von Zeichentypen (php-ctype).',
+ 'ok' => 'Sie haben die benötigte Bibliothek für die Überprüfung von Zeichentypen (ctype).',
+ ),
+ 'curl' => array(
+ 'nok' => 'Ihnen fehlt cURL (Paket php5-curl).',
+ 'ok' => 'Sie haben die cURL-Erweiterung.',
+ ),
+ 'data' => array(
+ 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses <em>./data</em>. Der HTTP-Server muss Schreibrechte besitzen.',
+ 'ok' => 'Berechtigungen des Verzeichnisses <em>./data</em> sind in Ordnung.',
+ ),
+ 'database' => 'Datenbank-Installation',
+ 'dom' => array(
+ 'nok' => 'Ihnen fehlt eine benötigte Bibliothek um DOM zu durchstöbern (Paket php-xml).',
+ 'ok' => 'Sie haben die benötigte Bibliothek um DOM zu durchstöbern.',
+ ),
+ 'entries' => array(
+ 'nok' => 'Die Tabelle <em>entry</em> ist schlecht konfiguriert.',
+ 'ok' => 'Die Tabelle <em>entry</em> ist in Ordnung.',
+ ),
+ 'favicons' => array(
+ 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses <em>./data/favicons</em>. Der HTTP-Server muss Schreibrechte besitzen.',
+ 'ok' => 'Berechtigungen des Verzeichnisses <em>./data/favicons</em> sind in Ordnung.',
+ ),
+ 'feeds' => array(
+ 'nok' => 'Die Tabelle <em>feed</em> ist schlecht konfiguriert.',
+ 'ok' => 'Die Tabelle <em>feed</em> ist in Ordnung.',
+ ),
+ 'files' => 'Datei-Installation',
+ 'json' => array(
+ 'nok' => 'Ihnen fehlt JSON (Paket php5-json).',
+ 'ok' => 'Sie haben die JSON-Erweiterung.',
+ ),
+ 'minz' => array(
+ 'nok' => 'Ihnen fehlt das Minz-Framework.',
+ 'ok' => 'Sie haben das Minz-Framework.',
+ ),
+ 'pcre' => array(
+ 'nok' => 'Ihnen fehlt eine benötigte Bibliothek für reguläre Ausdrücke (php-pcre).',
+ 'ok' => 'Sie haben die benötigte Bibliothek für reguläre Ausdrücke (PCRE).',
+ ),
+ 'pdo' => array(
+ 'nok' => 'Ihnen fehlt PDO oder einer der unterstützten Treiber (pdo_mysql, pdo_sqlite).',
+ 'ok' => 'Sie haben PDO und mindestens einen der unterstützten Treiber (pdo_mysql, pdo_sqlite).',
+ ),
+ 'persona' => array(
+ 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses <em>./data/persona</em>. Der HTTP-Server muss Schreibrechte besitzen.',
+ 'ok' => 'Berechtigungen des Verzeichnisses <em>./data/persona</em> sind in Ordnung.',
+ ),
+ 'php' => array(
+ '_' => 'PHP-Installation',
+ 'nok' => 'Ihre PHP-Version ist %s aber FreshRSS benötigt mindestens Version %s.',
+ 'ok' => 'Ihre PHP-Version ist %s, welche kompatibel mit FreshRSS ist.',
+ ),
+ 'tables' => array(
+ 'nok' => 'Es fehlen eine oder mehrere Tabellen in der Datenbank.',
+ 'ok' => 'Tabellen existieren in der Datenbank.',
+ ),
+ 'title' => 'Installationsüberprüfung',
+ 'tokens' => array(
+ 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses <em>./data/tokens</em>. Der HTTP-Server muss Schreibrechte besitzen.',
+ 'ok' => 'Berechtigungen des Verzeichnisses <em>./data/tokens</em> sind in Ordnung.',
+ ),
+ 'users' => array(
+ 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses <em>./data/users</em>. Der HTTP-Server muss Schreibrechte besitzen.',
+ 'ok' => 'Berechtigungen des Verzeichnisses <em>./data/users</em> sind in Ordnung.',
+ ),
+ 'zip' => array(
+ 'nok' => 'Ihnen fehlt die ZIP-Erweiterung (Paket php5-zip).',
+ 'ok' => 'Sie haben die ZIP-Erweiterung.',
+ ),
+ ),
+ 'extensions' => array(
+ 'disabled' => 'Deaktiviert',
+ 'empty_list' => 'Es gibt keine installierte Erweiterung.',
+ 'enabled' => 'Aktiviert',
+ 'no_configure_view' => 'Diese Erweiterung kann nicht konfiguriert werden.',
+ 'system' => array(
+ '_' => 'System-Erweiterungen',
+ 'no_rights' => 'System-Erweiterung (Sie haben keine Berechtigung dafür)',
+ ),
+ 'title' => 'Erweiterungen',
+ 'user' => 'Benutzer-Erweiterungen',
+ ),
+ 'stats' => array(
+ '_' => 'Statistiken',
+ 'all_feeds' => 'Alle Feeds',
+ 'category' => 'Kategorie',
+ 'entry_count' => 'Anzahl der Einträge',
+ 'entry_per_category' => 'Einträge pro Kategorie',
+ 'entry_per_day' => 'Einträge pro Tag (letzte 30 Tage)',
+ 'entry_per_day_of_week' => 'Pro Wochentag (Durchschnitt: %.2f Nachrichten)',
+ 'entry_per_hour' => 'Pro Stunde (Durchschnitt: %.2f Nachrichten)',
+ 'entry_per_month' => 'Pro Monat (Durchschnitt: %.2f Nachrichten)',
+ 'entry_repartition' => 'Einträge-Verteilung',
+ 'feed' => 'Feed',
+ 'feed_per_category' => 'Feeds pro Kategorie',
+ 'idle' => 'Untätige Feeds',
+ 'main' => 'Haupt-Statistiken',
+ 'main_stream' => 'Haupt-Feeds',
+ 'menu' => array(
+ 'idle' => 'Untätige Feeds',
+ 'main' => 'Haupt-Statistiken',
+ 'repartition' => 'Artikel-Verteilung',
+ ),
+ 'no_idle' => 'Es gibt keinen untätigen Feed!',
+ 'number_entries' => '%d Artikel',
+ 'percent_of_total' => '%% Gesamt',
+ 'repartition' => 'Artikel-Verteilung',
+ 'status_favorites' => 'Favoriten',
+ 'status_read' => 'Gelesen',
+ 'status_total' => 'Gesamt',
+ 'status_unread' => 'Ungelesen',
+ 'title' => 'Statistiken',
+ 'top_feed' => 'Top 10-Feeds',
+ ),
+ 'update' => array(
+ '_' => 'System aktualisieren',
+ 'apply' => 'Anwenden',
+ 'check' => 'Auf neue Aktualisierungen prüfen',
+ 'current_version' => 'Ihre aktuelle Version von FreshRSS ist %s.',
+ 'last' => 'Letzte Überprüfung: %s',
+ 'none' => 'Keine Aktualisierung zum Anwenden',
+ 'title' => 'System aktualisieren',
+ ),
+ 'user' => array(
+ 'articles_and_size' => '%s Artikel (%s)',
+ 'create' => 'Neuen Benutzer erstellen',
+ 'email_persona' => 'Anmelde-E-Mail-Adresse<br /><small>(für <a href="https://persona.org/" rel="external">Mozilla Persona</a>)</small>',
+ 'language' => 'Sprache',
+ 'password_form' => 'Passwort<br /><small>(für die Anmeldemethode per Webformular)</small>',
+ 'password_format' => 'mindestens 7 Zeichen',
+ 'title' => 'Benutzer verwalten',
+ 'user_list' => 'Liste der Benutzer',
+ 'username' => 'Nutzername',
+ 'users' => 'Benutzer',
+ ),
+);
diff --git a/app/i18n/de/conf.php b/app/i18n/de/conf.php
new file mode 100644
index 000000000..64c2c0945
--- /dev/null
+++ b/app/i18n/de/conf.php
@@ -0,0 +1,169 @@
+<?php
+
+return array(
+ 'archiving' => array(
+ '_' => 'Archivierung',
+ 'advanced' => 'Erweitert',
+ 'delete_after' => 'Entferne Artikel nach',
+ 'help' => 'Weitere Optionen sind in den Einstellungen der individuellen Nachrichten-Feeds vorhanden.',
+ 'keep_history_by_feed' => 'Minimale Anzahl an Artikeln, die pro Feed behalten wird',
+ 'optimize' => 'Datenbank optimieren',
+ 'optimize_help' => 'Sollte gelegentlich durchgeführt werden, um die Größe der Datenbank zu reduzieren.',
+ 'purge_now' => 'Jetzt bereinigen',
+ 'title' => 'Archivierung',
+ 'ttl' => 'Aktualisiere automatisch nicht öfter als',
+ ),
+ 'display' => array(
+ '_' => 'Anzeige',
+ 'icon' => array(
+ 'bottom_line' => 'Fußzeile',
+ 'entry' => 'Artikel-Symbole',
+ 'publication_date' => 'Datum der Veröffentlichung',
+ 'related_tags' => 'Verwandte Tags',
+ 'sharing' => 'Teilen',
+ 'top_line' => 'Kopfzeile',
+ ),
+ 'language' => 'Sprache',
+ 'notif_html5' => array(
+ 'seconds' => 'Sekunden (0 bedeutet keine Zeitüberschreitung)',
+ 'timeout' => 'Zeitüberschreitung für HTML5-Benachrichtigung',
+ ),
+ 'theme' => 'Erscheinungsbild',
+ 'title' => 'Anzeige',
+ 'width' => array(
+ 'content' => 'Inhaltsbreite',
+ 'large' => 'Weit',
+ 'medium' => 'Mittel',
+ 'no_limit' => 'Keine Begrenzung',
+ 'thin' => 'Schmal',
+ ),
+ ),
+ 'query' => array(
+ '_' => 'Benutzerabfragen',
+ 'deprecated' => 'Diese Abfrage ist nicht länger gültig. Die referenzierte Kategorie oder der Feed ist gelöscht worden.',
+ 'filter' => 'Angewendeter Filter:',
+ 'get_all' => 'Alle Artikel anzeigen',
+ 'get_category' => 'Kategorie "%s" anzeigen',
+ 'get_favorite' => 'Lieblingsartikel anzeigen',
+ 'get_feed' => 'Feed "%s" anzeigen',
+ 'no_filter' => 'Kein Filter',
+ 'none' => 'Sie haben bisher keine Benutzerabfrage erstellt.',
+ 'number' => 'Abfrage Nr. %d',
+ 'order_asc' => 'Älteste Artikel zuerst anzeigen',
+ 'order_desc' => 'Neueste Artikel zuerst anzeigen',
+ 'search' => 'Suche nach "%s"',
+ 'state_0' => 'Alle Artikel anzeigen',
+ 'state_1' => 'Gelesene Artikel anzeigen',
+ 'state_2' => 'Ungelesene Artikel anzeigen',
+ 'state_3' => 'Alle Artikel anzeigen',
+ 'state_4' => 'Lieblingsartikel anzeigen',
+ 'state_5' => 'Gelesene Lieblingsartikel anzeigen',
+ 'state_6' => 'Ungelesene Lieblingsartikel anzeigen',
+ 'state_7' => 'Lieblingsartikel anzeigen',
+ 'state_8' => 'Keine Lieblingsartikel anzeigen',
+ 'state_9' => 'Gelesene ohne Lieblingsartikel anzeigen',
+ 'state_10' => 'Ungelesene ohne Lieblingsartikel anzeigen',
+ 'state_11' => 'Keine Lieblingsartikel anzeigen',
+ 'state_12' => 'Alle Artikel anzeigen',
+ 'state_13' => 'Gelesene Artikel anzeigen',
+ 'state_14' => 'Ungelesene Artikel anzeigen',
+ 'state_15' => 'Alle Artikel anzeigen',
+ 'title' => 'Benutzerabfragen',
+ ),
+ 'profile' => array(
+ '_' => 'Profil-Verwaltung',
+ 'email_persona' => 'Anmelde-E-Mail-Adresse<br /><small>(für <a href="https://persona.org/" rel="external">Mozilla Persona</a>)</small>',
+ 'password_api' => 'Passwort-API<br /><small>(z. B. für mobile Anwendungen)</small>',
+ 'password_form' => 'Passwort<br /><small>(für die Anmeldemethode per Webformular)</small>',
+ 'password_format' => 'mindestens 7 Zeichen',
+ 'title' => 'Profil',
+ ),
+ 'reading' => array(
+ '_' => 'Lesen',
+ 'after_onread' => 'Nach „Alle als gelesen markieren“,',
+ 'articles_per_page' => 'Anzahl der Artikel pro Seite',
+ 'auto_load_more' => 'Die nächsten Artikel am Seitenende laden',
+ 'auto_remove_article' => 'Artikel nach dem Lesen verstecken',
+ 'confirm_enabled' => 'Bei der Aktion „Alle als gelesen markieren“ einen Bestätigungsdialog anzeigen',
+ 'display_articles_unfolded' => 'Artikel standardmäßig ausgeklappt zeigen',
+ 'display_categories_unfolded' => 'Kategorien standardmäßig eingeklappt zeigen',
+ 'hide_read_feeds' => 'Kategorien & Feeds ohne ungelesene Artikel verstecken (funktioniert nicht mit der Einstellung „Alle Artikel zeigen“)',
+ 'img_with_lazyload' => 'Verwende die "träges Laden"-Methode zum Laden von Bildern',
+ 'jump_next' => 'springe zum nächsten ungelesenen Geschwisterelement (Feed oder Kategorie)',
+ 'number_divided_when_reader' => 'Geteilt durch 2 in der Lese-Ansicht.',
+ 'read' => array(
+ 'article_open_on_website' => 'wenn der Artikel auf der Original-Webseite geöffnet wird',
+ 'article_viewed' => 'wenn der Artikel angesehen wird',
+ 'scroll' => 'beim Blättern',
+ 'upon_reception' => 'beim Empfang des Artikels',
+ 'when' => 'Artikel als gelesen markieren…',
+ ),
+ 'show' => array(
+ '_' => 'Artikel zum Anzeigen',
+ 'adaptive' => 'Anzeige anpassen',
+ 'all_articles' => 'Alle Artikel zeigen',
+ 'unread' => 'Nur ungelesene zeigen',
+ ),
+ 'sort' => array(
+ '_' => 'Sortierreihenfolge',
+ 'newer_first' => 'Neuere zuerst',
+ 'older_first' => 'Ältere zuerst',
+ ),
+ 'sticky_post' => 'Wenn geöffnet, den Artikel ganz oben anheften',
+ 'title' => 'Lesen',
+ 'view' => array(
+ 'default' => 'Standard-Ansicht',
+ 'global' => 'Globale Ansicht',
+ 'normal' => 'Normale Ansicht',
+ 'reader' => 'Lese-Ansicht',
+ ),
+ ),
+ 'sharing' => array(
+ '_' => 'Teilen',
+ 'blogotext' => 'Blogotext',
+ 'diaspora' => 'Diaspora*',
+ 'email' => 'E-Mail',
+ 'facebook' => 'Facebook',
+ 'g+' => 'Google+',
+ 'more_information' => 'Weitere Informationen',
+ 'print' => 'Drucken',
+ 'shaarli' => 'Shaarli',
+ 'share_name' => 'Anzuzeigender Teilen-Name',
+ 'share_url' => 'Zu verwendende Teilen-URL',
+ 'title' => 'Teilen',
+ 'twitter' => 'Twitter',
+ 'wallabag' => 'wallabag',
+ ),
+ 'shortcut' => array(
+ '_' => 'Tastaturkürzel',
+ 'article_action' => 'Artikelaktionen',
+ 'auto_share' => 'Teilen',
+ 'auto_share_help' => 'Wenn es nur eine Option zum Teilen gibt, wird diese verwendet. Ansonsten sind die Optionen über ihre Nummer erreichbar.',
+ 'close_dropdown' => 'Menüs schließen',
+ 'collapse_article' => 'Zusammenfalten',
+ 'first_article' => 'Zum ersten Artikel springen',
+ 'focus_search' => 'Auf Suchfeld zugreifen',
+ 'help' => 'Dokumentation anzeigen',
+ 'javascript' => 'JavaScript muss aktiviert sein, um Tastaturkürzel benutzen zu können',
+ 'last_article' => 'Zum letzten Artikel springen',
+ 'load_more' => 'Weitere Artikel laden',
+ 'mark_read' => 'Als gelesen markieren',
+ 'mark_favorite' => 'Als Favorit markieren',
+ 'navigation' => 'Navigation',
+ 'navigation_help' => 'Mit der "Umschalttaste" finden die Tastaturkürzel auf Feeds Anwendung.<br/>Mit der "Alt-Taste" finden die Tastaturkürzel auf Kategorien Anwendung.',
+ 'next_article' => 'Zum nächsten Artikel springen',
+ 'other_action' => 'Andere Aktionen',
+ 'previous_article' => 'Zum vorherigen Artikel springen',
+ 'see_on_website' => 'Auf der Original-Webseite ansehen',
+ 'shift_for_all_read' => '+ <code>Umschalttaste</code>, um alle Artikel als gelesen zu markieren.',
+ 'title' => 'Tastaturkürzel',
+ 'user_filter' => 'Auf Benutzerfilter zugreifen',
+ 'user_filter_help' => 'Wenn es nur einen Benutzerfilter gibt, wird dieser verwendet. Ansonsten sind die Filter über ihre Nummer erreichbar.',
+ ),
+ 'user' => array(
+ 'articles_and_size' => '%s Artikel (%s)',
+ 'current' => 'Aktueller Benutzer',
+ 'is_admin' => 'ist Administrator',
+ 'users' => 'Benutzer',
+ ),
+);
diff --git a/app/i18n/de/feedback.php b/app/i18n/de/feedback.php
new file mode 100644
index 000000000..48f8b74f5
--- /dev/null
+++ b/app/i18n/de/feedback.php
@@ -0,0 +1,110 @@
+<?php
+
+return array(
+ 'admin' => array(
+ 'optimization_complete' => 'Optimierung abgeschlossen',
+ ),
+ 'access' => array(
+ 'denied' => 'Sie haben nicht die Berechtigung, diese Seite aufzurufen',
+ 'not_found' => 'Sie suchen nach einer Seite, die nicht existiert',
+ ),
+ 'auth' => array(
+ 'form' => array(
+ 'not_set' => 'Während der Konfiguration des Authentifikationssystems trat ein Fehler auf. Bitte versuchen Sie es später erneut.',
+ 'set' => 'Formular ist ab sofort ihr Standard-Authentifikationssystem.',
+ ),
+ 'login' => array(
+ 'invalid' => 'Anmeldung ist ungültig',
+ 'success' => 'Sie sind verbunden',
+ ),
+ 'logout' => array(
+ 'success' => 'Sie sind getrennt',
+ ),
+ 'no_password_set' => 'Administrator-Passwort ist nicht gesetzt worden. Dieses Feature ist nicht verfügbar.',
+ 'not_persona' => 'Nur das Persona-System kann zurückgesetzt werden.',
+ ),
+ 'conf' => array(
+ 'error' => 'Während des Speicherung der Konfiguration trat ein Fehler auf',
+ 'query_created' => 'Abfrage "%s" ist erstellt worden.',
+ 'shortcuts_updated' => 'Tastaturkürzel sind aktualisiert worden',
+ 'updated' => 'Konfiguration ist aktualisiert worden',
+ ),
+ 'extensions' => array(
+ 'already_enabled' => '%s ist bereits aktiviert',
+ 'disable' => array(
+ 'ko' => '%s kann nicht deaktiviert werden. Für Details <a href="%s">prüfen Sie die FressRSS-Protokolle</a>.',
+ 'ok' => '%s ist jetzt deaktiviert',
+ ),
+ 'enable' => array(
+ 'ko' => '%s kann nicht aktiviert werden. Für Details <a href="%s">prüfen Sie die FressRSS-Protokolle</a>.',
+ 'ok' => '%s ist jetzt aktiviert',
+ ),
+ 'no_access' => 'Sie haben keinen Zugang zu %s',
+ 'not_enabled' => '%s ist noch nicht aktiviert',
+ 'not_found' => '%s existiert nicht',
+ ),
+ 'import_export' => array(
+ 'export_no_zip_extension' => 'Die Zip-Erweiterung fehlt auf Ihrem Server. Bitte versuchen Sie, Dateien eine nach der anderen zu exportieren.',
+ 'feeds_imported' => 'Ihre Feeds sind importiert worden und werden jetzt aktualisiert',
+ 'feeds_imported_with_errors' => 'Ihre Feeds sind importiert worden, aber es traten einige Fehler auf',
+ 'file_cannot_be_uploaded' => 'Datei kann nicht hochgeladen werden!',
+ 'no_zip_extension' => 'Die Zip-Erweiterung ist auf Ihrem Server nicht vorhanden.',
+ 'zip_error' => 'Ein Fehler trat während des Zip-Imports auf.',
+ ),
+ 'sub' => array(
+ 'actualize' => 'Aktualisieren',
+ 'category' => array(
+ 'created' => 'Kategorie %s ist erstellt worden.',
+ 'deleted' => 'Kategorie ist gelöscht worden.',
+ 'emptied' => 'Kategorie ist geleert worden.',
+ 'error' => 'Kategorie kann nicht aktualisiert werden',
+ 'name_exists' => 'Kategorie-Name existiert bereits.',
+ 'no_id' => 'Sie müssen die ID der Kategorie präzisieren.',
+ 'no_name' => 'Kategorie-Name kann nicht leer sein.',
+ 'not_delete_default' => 'Sie können die Vorgabe-Kategorie nicht löschen!',
+ 'not_exist' => 'Die Kategorie existiert nicht!',
+ 'over_max' => 'Sie haben Ihr Kategorien-Limit erreicht (%d)',
+ 'updated' => 'Kategorie ist aktualisiert worden.',
+ ),
+ 'feed' => array(
+ 'actualized' => '<em>%s</em> ist aktualisiert worden',
+ 'actualizeds' => 'RSS-Feeds sind aktualisiert worden',
+ 'added' => 'RSS-Feed <em>%s</em> ist hinzugefügt worden',
+ 'already_subscribed' => 'Sie haben <em>%s</em> bereits abonniert',
+ 'deleted' => 'Feed ist gelöscht worden',
+ 'error' => 'Feed kann nicht aktualisiert werden',
+ 'internal_problem' => 'Der RSS-Feed konnte nicht hinzugefügt werden. Für Details <a href="%s">prüfen Sie die FressRSS-Protokolle</a>.',
+ 'invalid_url' => 'URL <em>%s</em> ist ungültig',
+ 'marked_read' => 'Feeds sind als gelesen markiert worden',
+ 'n_actualized' => '%d Feeds sind aktualisiert worden',
+ 'n_entries_deleted' => '%d Artikel sind gelöscht worden',
+ 'no_refresh' => 'Es gibt keinen Feed zum Aktualisieren…',
+ 'not_added' => '<em>%s</em> konnte nicht hinzugefügt werden',
+ 'over_max' => 'Sie haben Ihr Feeds-Limit erreicht (%d)',
+ 'updated' => 'Feed ist aktualisiert worden',
+ ),
+ 'purge_completed' => 'Bereinigung abgeschlossen (%d Artikel gelöscht)',
+ ),
+ 'update' => array(
+ 'can_apply' => 'FreshRSS wird nun auf die <strong>Version %s</strong> aktualisiert.',
+ 'error' => 'Der Aktualisierungsvorgang stieß auf einen Fehler: %s',
+ 'file_is_nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses <em>%s</em>. Der HTTP-Server muss Schreibrechte besitzen',
+ 'finished' => 'Aktualisierung abgeschlossen!',
+ 'none' => 'Keine Aktualisierung zum Anwenden',
+ 'server_not_found' => 'Aktualisierungs-Server kann nicht gefunden werden. [%s]',
+ ),
+ 'user' => array(
+ 'created' => array(
+ '_' => 'Benutzer %s ist erstellt worden',
+ 'error' => 'Benutzer %s kann nicht erstellt werden',
+ ),
+ 'deleted' => array(
+ '_' => 'Benutzer %s ist gelöscht worden',
+ 'error' => 'Benutzer %s kann nicht gelöscht werden',
+ ),
+ ),
+ 'profile' => array(
+ 'error' => 'Ihr Profil kann nicht geändert werden',
+ 'updated' => 'Ihr Profil ist geändert worden',
+ ),
+);
diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php
new file mode 100644
index 000000000..f3479ed53
--- /dev/null
+++ b/app/i18n/de/gen.php
@@ -0,0 +1,163 @@
+<?php
+
+return array(
+ 'action' => array(
+ 'actualize' => 'Aktualisieren',
+ 'back_to_rss_feeds' => '← Zurück zu Ihren RSS-Feeds gehen',
+ 'cancel' => 'Abbrechen',
+ 'create' => 'Erstellen',
+ 'disable' => 'Deaktivieren',
+ 'empty' => 'Leeren',
+ 'enable' => 'Aktivieren',
+ 'export' => 'Exportieren',
+ 'filter' => 'Filtern',
+ 'import' => 'Importieren',
+ 'manage' => 'Verwalten',
+ 'mark_read' => 'Als gelesen markieren',
+ 'mark_favorite' => 'Als Favorit markieren',
+ 'remove' => 'Entfernen',
+ 'see_website' => 'Webseite ansehen',
+ 'submit' => 'Abschicken',
+ 'truncate' => 'Alle Artikel löschen',
+ ),
+ 'auth' => array(
+ 'keep_logged_in' => 'Eingeloggt bleiben <small>(1 Monat)</small>',
+ 'login' => 'Anmelden',
+ 'login_persona' => 'Anmelden mit Persona',
+ 'login_persona_problem' => 'Verbindungsproblem mit Persona?',
+ 'logout' => 'Abmelden',
+ 'password' => 'Passwort',
+ 'reset' => 'Zurücksetzen der Authentifizierung',
+ 'username' => 'Nutzername',
+ 'username_admin' => 'Administrator-Nutzername',
+ 'will_reset' => 'Authentifikationssystem wird zurückgesetzt: ein Formular wird anstelle von Persona benutzt.',
+ ),
+ 'date' => array(
+ 'Apr' => '\\A\\p\\r\\i\\l',
+ 'Aug' => '\\A\\u\\g\\u\\s\\t',
+ 'Dec' => '\\D\\e\\z\\e\\m\\b\\e\\r',
+ 'Feb' => '\\F\\e\\b\\r\\u\\a\\r',
+ 'Jan' => '\\J\\a\\n\\u\\a\\r',
+ 'Jul' => '\\J\\u\\l\\i',
+ 'Jun' => '\\J\\u\\n\\i',
+ 'Mar' => '\\M\\ä\\r\\z',
+ 'May' => '\\M\\a\\i',
+ 'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',
+ 'Oct' => '\\O\\k\\t\\o\\b\\e\\r',
+ 'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',
+ 'apr' => 'Apr',
+ 'april' => 'April',
+ 'aug' => 'Aug',
+ 'august' => 'August',
+ 'before_yesterday' => 'Vor gestern',
+ 'dec' => 'Dez',
+ 'december' => 'Dezember',
+ 'feb' => 'Feb',
+ 'february' => 'Februar',
+ 'format_date' => 'd\\. %s Y',
+ 'format_date_hour' => 'd\\. %s Y \\u\\m H\\:i',
+ 'fri' => 'Fr',
+ 'jan' => 'Jan',
+ 'january' => 'Januar',
+ 'jul' => 'Jul',
+ 'july' => 'Juli',
+ 'jun' => 'Jun',
+ 'june' => 'Juni',
+ 'last_3_month' => 'Letzte drei Monate',
+ 'last_6_month' => 'Letzte sechs Monate',
+ 'last_month' => 'Letzter Monat',
+ 'last_week' => 'Letzte Woche',
+ 'last_year' => 'Letztes Jahr',
+ 'mar' => 'Mär',
+ 'march' => 'März',
+ 'may' => 'Mai',
+ 'mon' => 'Mo',
+ 'month' => 'Monat(en)',
+ 'nov' => 'Nov',
+ 'november' => 'November',
+ 'oct' => 'Okt',
+ 'october' => 'Oktober',
+ 'sat' => 'Sa',
+ 'sep' => 'Sep',
+ 'september' => 'September',
+ 'sun' => 'So',
+ 'thu' => 'Do',
+ 'today' => 'Heute',
+ 'tue' => 'Di',
+ 'wed' => 'Mi',
+ 'yesterday' => 'Gestern',
+ ),
+ 'freshrss' => array(
+ '_' => 'FreshRSS',
+ 'about' => 'Über FreshRSS',
+ ),
+ 'js' => array(
+ 'category_empty' => 'Kategorie leeren',
+ 'confirm_action' => 'Sind Sie sicher, dass Sie diese Aktion durchführen wollen? Dies kann nicht abgebrochen werden!',
+ 'confirm_action_feed_cat' => 'Sind Sie sicher, dass Sie diese Aktion durchführen wollen? Sie werden zugehörige Favoriten und Benutzerabfragen verlieren. Dies kann nicht abgebrochen werden!',
+ 'feedback' => array(
+ 'body_new_articles' => 'Es gibt \\d neue Artikel zum Lesen auf FreshRSS.',
+ 'request_failed' => 'Eine Anfrage ist fehlgeschlagen, dies könnte durch Probleme mit der Internetverbindung verursacht worden sein.',
+ 'title_new_articles' => 'FreshRSS: neue Artikel!',
+ ),
+ 'new_article' => 'Es gibt neue verfügbare Artikel. Klicken Sie, um die Seite zu aktualisieren.',
+ 'should_be_activated' => 'JavaScript muss aktiviert sein',
+ ),
+ 'lang' => array(
+ 'de' => 'Deutsch',
+ 'en' => 'English',
+ 'fr' => 'Français',
+ ),
+ 'menu' => array(
+ 'about' => 'Über',
+ 'admin' => 'Administration',
+ 'archiving' => 'Archivierung',
+ 'authentication' => 'Authentifizierung',
+ 'check_install' => 'Installationsüberprüfung',
+ 'configuration' => 'Konfiguration',
+ 'display' => 'Anzeige',
+ 'extensions' => 'Erweiterungen',
+ 'logs' => 'Protokolle',
+ 'queries' => 'Benutzerabfragen',
+ 'reading' => 'Lesen',
+ 'search' => 'Suche Worte oder #Tags',
+ 'sharing' => 'Teilen',
+ 'shortcuts' => 'Tastaturkürzel',
+ 'stats' => 'Statistiken',
+ 'update' => 'Aktualisieren',
+ 'user_management' => 'Benutzer verwalten',
+ 'user_profile' => 'Profil',
+ ),
+ 'pagination' => array(
+ 'first' => 'Erste',
+ 'last' => 'Letzte',
+ 'load_more' => 'Weitere Artikel laden',
+ 'mark_all_read' => 'Alle als gelesen markieren',
+ 'next' => 'Nächste',
+ 'nothing_to_load' => 'Es gibt keine weiteren Artikel',
+ 'previous' => 'Vorherige',
+ ),
+ 'share' => array(
+ 'blogotext' => 'Blogotext',
+ 'diaspora' => 'Diaspora*',
+ 'email' => 'E-Mail',
+ 'facebook' => 'Facebook',
+ 'g+' => 'Google+',
+ 'print' => 'Drucken',
+ 'shaarli' => 'Shaarli',
+ 'twitter' => 'Twitter',
+ 'wallabag' => 'wallabag',
+ ),
+ 'short' => array(
+ 'attention' => 'Achtung!',
+ 'blank_to_disable' => 'Zum Deaktivieren frei lassen',
+ 'by_author' => 'Von <em>%s</em>',
+ 'by_default' => 'standardmäßig',
+ 'damn' => 'Verdammt!',
+ 'default_category' => 'Unkategorisiert',
+ 'no' => 'Nein',
+ 'ok' => 'OK!',
+ 'or' => 'oder',
+ 'yes' => 'Ja',
+ ),
+);
diff --git a/app/i18n/de/index.php b/app/i18n/de/index.php
new file mode 100644
index 000000000..3449de87d
--- /dev/null
+++ b/app/i18n/de/index.php
@@ -0,0 +1,61 @@
+<?php
+
+return array(
+ 'about' => array(
+ '_' => 'Über',
+ 'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',
+ 'bugs_reports' => 'Fehlerberichte',
+ 'credits' => 'Credits',
+ 'credits_content' => 'Einige Designelemente stammen von <a href="http://twitter.github.io/bootstrap/">Bootstrap</a>, obwohl FreshRSS dieses Framework nicht nutzt. <a href="https://git.gnome.org/browse/gnome-icon-theme-symbolic">Icons</a> stammen vom <a href="https://www.gnome.org/">GNOME project</a>. <em>Open Sans</em> Font wurde von <a href="https://www.google.com/webfonts/specimen/Open+Sans">Steve Matteson</a> erstellt. Favicons werden mit <a href="https://getfavicon.appspot.com/">getFavicon API</a> gesammelt. FreshRSS basiert auf <a href="https://github.com/marienfressinaud/MINZ">Minz</a>, einem PHP-Framework.',
+ 'freshrss_description' => 'FreshRSS ist ein RSS-Feedsaggregator zum selbst hosten wie zum Beispiel <a href="http://tontof.net/kriss/feed/">Kriss Feed</a> oder <a href="http://projet.idleman.fr/leed/">Leed</a>. Er ist leicht und einfach zu handhaben und gleichzeitig ein leistungsstarkes und konfigurierbares Werkzeug.',
+ 'github' => '<a href="https://github.com/FreshRSS/FreshRSS/issues">on Github</a>',
+ 'license' => 'Lizenz',
+ 'project_website' => 'Projekt-Webseite',
+ 'title' => 'Über',
+ 'version' => 'Version',
+ 'website' => 'Webseite',
+ ),
+ 'feed' => array(
+ 'add' => 'Sie können Feeds hinzufügen.',
+ 'empty' => 'Es gibt keinen Artikel zum Zeigen.',
+ 'rss_of' => 'RSS-Feed von %s',
+ 'title' => 'Ihre RSS-Feeds',
+ 'title_global' => 'Globale Ansicht',
+ 'title_fav' => 'Ihre Favoriten',
+ ),
+ 'log' => array(
+ '_' => 'Protokolle',
+ 'clear' => 'Protokolle leeren',
+ 'empty' => 'Protokolldatei ist leer.',
+ 'title' => 'Protokolle',
+ ),
+ 'menu' => array(
+ 'about' => 'Über FreshRSS',
+ 'add_query' => 'Eine Abfrage hinzufügen',
+ 'before_one_day' => 'Vor einem Tag',
+ 'before_one_week' => 'Vor einer Woche',
+ 'favorites' => 'Favoriten (%s)',
+ 'global_view' => 'Globale Ansicht',
+ 'main_stream' => 'Haupt-Feeds',
+ 'mark_all_read' => 'Alle als gelesen markieren',
+ 'mark_cat_read' => 'Kategorie als gelesen markieren',
+ 'mark_feed_read' => 'Feed als gelesen markieren',
+ 'newer_first' => 'Neuere zuerst',
+ 'non-starred' => 'Alle außer Favoriten zeigen',
+ 'normal_view' => 'Normale Ansicht',
+ 'older_first' => 'Ältere zuerst',
+ 'queries' => 'Benutzerabfragen',
+ 'read' => 'Nur gelesene zeigen',
+ 'reader_view' => 'Lese-Ansicht',
+ 'rss_view' => 'RSS-Feed',
+ 'search_short' => 'Suchen',
+ 'starred' => 'Nur Favoriten zeigen',
+ 'stats' => 'Statistiken',
+ 'subscription' => 'Abonnementverwaltung',
+ 'unread' => 'Nur ungelesene zeigen',
+ ),
+ 'share' => 'Teilen',
+ 'tag' => array(
+ 'related' => 'Verwandte Tags',
+ ),
+);
diff --git a/app/i18n/de/install.php b/app/i18n/de/install.php
new file mode 100644
index 000000000..e9267bbbd
--- /dev/null
+++ b/app/i18n/de/install.php
@@ -0,0 +1,107 @@
+<?php
+
+return array(
+ 'action' => array(
+ 'finish' => 'Installation fertigstellen',
+ 'fix_errors_before' => 'Fehler korrigieren, bevor zum nächsten Schritt gesprungen wird.',
+ 'next_step' => 'Zum nächsten Schritt gehen',
+ ),
+ 'auth' => array(
+ 'email_persona' => 'Anmelde-E-Mail-Adresse<br /><small>(für <a href="https://persona.org/" rel="external">Mozilla Persona</a>)</small>',
+ 'form' => 'Webformular (traditionell, benötigt JavaScript)',
+ 'http' => 'HTTP (HTTPS für erfahrene Benutzer)',
+ 'none' => 'Keine (gefährlich)',
+ 'password_form' => 'Passwort<br /><small>(für die Anmeldemethode per Webformular)</small>',
+ 'password_format' => 'mindestens 7 Zeichen',
+ 'persona' => 'Mozilla Persona (modern, benötigt JavaScript)',
+ 'type' => 'Authentifizierungsmethode',
+ ),
+ 'bdd' => array(
+ '_' => 'Datenbank',
+ 'conf' => array(
+ '_' => 'Datenbank-Konfiguration',
+ 'ko' => 'Überprüfen Sie Ihre Datenbank-Information.',
+ 'ok' => 'Datenbank-Konfiguration ist gespeichert worden.',
+ ),
+ 'host' => 'Host',
+ 'prefix' => 'Tabellen-Präfix',
+ 'password' => 'HTTP-Password',
+ 'type' => 'Datenbank-Typ',
+ 'username' => 'HTTP-Nutzername',
+ ),
+ 'check' => array(
+ '_' => 'Überprüfungen',
+ 'cache' => array(
+ 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses <em>./data/cache</em>. Der HTTP-Server muss Schreibrechte besitzen.',
+ 'ok' => 'Berechtigungen des Verzeichnisses <em>./data/cache</em> sind in Ordnung.',
+ ),
+ 'ctype' => array(
+ 'nok' => 'Ihnen fehlt eine benötigte Bibliothek für die Überprüfung von Zeichentypen (php-ctype).',
+ 'ok' => 'Sie haben die benötigte Bibliothek für die Überprüfung von Zeichentypen (ctype).',
+ ),
+ 'curl' => array(
+ 'nok' => 'Ihnen fehlt cURL (Paket php5-curl).',
+ 'ok' => 'Sie haben die cURL-Erweiterung.',
+ ),
+ 'data' => array(
+ 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses <em>./data</em>. Der HTTP-Server muss Schreibrechte besitzen.',
+ 'ok' => 'Berechtigungen des Verzeichnisses <em>./data</em> sind in Ordnung.',
+ ),
+ 'dom' => array(
+ 'nok' => 'Ihnen fehlt eine benötigte Bibliothek um DOM zu durchstöbern (Paket php-xml).',
+ 'ok' => 'Sie haben die benötigte Bibliothek um DOM zu durchstöbern.',
+ ),
+ 'favicons' => array(
+ 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses <em>./data/favicons</em>. Der HTTP-Server muss Schreibrechte besitzen.',
+ 'ok' => 'Berechtigungen des Verzeichnisses <em>./data/favicons</em> sind in Ordnung.',
+ ),
+ 'http_referer' => array(
+ 'nok' => 'Bitte stellen Sie sicher, dass Sie Ihren HTTP REFERER nicht abändern.',
+ 'ok' => 'Ihr HTTP REFERER ist bekannt und entspricht Ihrem Server.',
+ ),
+ 'minz' => array(
+ 'nok' => 'Ihnen fehlt das Minz-Framework.',
+ 'ok' => 'Sie haben das Minz-Framework.',
+ ),
+ 'pcre' => array(
+ 'nok' => 'Ihnen fehlt eine benötigte Bibliothek für reguläre Ausdrücke (php-pcre).',
+ 'ok' => 'Sie haben die benötigte Bibliothek für reguläre Ausdrücke (PCRE).',
+ ),
+ 'pdo' => array(
+ 'nok' => 'Ihnen fehlt PDO oder einer der unterstützten Treiber (pdo_mysql, pdo_sqlite).',
+ 'ok' => 'Sie haben PDO und mindestens einen der unterstützten Treiber (pdo_mysql, pdo_sqlite).',
+ ),
+ 'persona' => array(
+ 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses <em>./data/persona</em>. Der HTTP-Server muss Schreibrechte besitzen.',
+ 'ok' => 'Berechtigungen des Verzeichnisses <em>./data/persona</em> sind in Ordnung.',
+ ),
+ 'php' => array(
+ 'nok' => 'Ihre PHP-Version ist %s aber FreshRSS benötigt mindestens Version %s.',
+ 'ok' => 'Ihre PHP-Version ist %s, welche kompatibel mit FreshRSS ist.',
+ ),
+ 'users' => array(
+ 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses <em>./data/users</em>. Der HTTP-Server muss Schreibrechte besitzen.',
+ 'ok' => 'Berechtigungen des Verzeichnisses <em>./data/users</em> sind in Ordnung.',
+ ),
+ ),
+ 'conf' => array(
+ '_' => 'Allgemeine Konfiguration',
+ 'ok' => 'Allgemeine Konfiguration ist gespeichert worden.',
+ ),
+ 'congratulations' => 'Glückwunsch!',
+ 'default_user' => 'Nutzername des Standardbenutzers <small>(maximal 16 alphanumerische Zeichen)</small>',
+ 'delete_articles_after' => 'Entferne Artikel nach',
+ 'fix_errors_before' => 'Fehler korrigieren, bevor zum nächsten Schritt gesprungen wird.',
+ 'javascript_is_better' => 'FreshRSS ist ansprechender mit aktiviertem JavaScript',
+ 'language' => array(
+ '_' => 'Sprache',
+ 'choose' => 'Wählen Sie eine Sprache für FreshRSS',
+ 'defined' => 'Sprache ist festgelegt worden.',
+ ),
+ 'not_deleted' => 'Etwas ist schiefgelaufen; Sie müssen die Datei <em>%s</em> manuell löschen.',
+ 'ok' => 'Der Installationsvorgang war erfolgreich.',
+ 'step' => 'Schritt %d',
+ 'steps' => 'Schritte',
+ 'title' => 'Installation · FreshRSS',
+ 'this_is_the_end' => 'Das ist das Ende',
+);
diff --git a/app/i18n/de/sub.php b/app/i18n/de/sub.php
new file mode 100644
index 000000000..0479b8f46
--- /dev/null
+++ b/app/i18n/de/sub.php
@@ -0,0 +1,61 @@
+<?php
+
+return array(
+ 'category' => array(
+ '_' => 'Kategorie',
+ 'add' => 'Eine Kategorie hinzufügen',
+ 'empty' => 'Leere Kategorie',
+ 'new' => 'Neue Kategorie',
+ ),
+ 'feed' => array(
+ 'add' => 'Einen RSS-Feed hinzufügen',
+ 'advanced' => 'Erweitert',
+ 'archiving' => 'Archivierung',
+ 'auth' => array(
+ 'configuration' => 'Anmelden',
+ 'help' => 'Die Verbindung erlaubt Zugriff auf HTTP-geschützte RSS-Feeds',
+ 'http' => 'HTTP-Authentifizierung',
+ 'password' => 'HTTP-Passwort',
+ 'username' => 'HTTP-Nutzername',
+ ),
+ 'css_help' => 'Ruft gekürzte RSS-Feeds ab (Achtung, benötigt mehr Zeit!)',
+ 'css_path' => 'Pfad zur CSS-Datei des Artikels auf der Original-Webseite',
+ 'description' => 'Beschreibung',
+ 'empty' => 'Dieser Feed ist leer. Bitte stellen Sie sicher, dass er noch gepflegt wird.',
+ 'error' => 'Dieser Feed ist auf ein Problem gestoßen. Bitte stellen Sie sicher, dass er immer lesbar ist und aktualisieren Sie ihn dann.',
+ 'in_main_stream' => 'In Haupt-Feeds zeigen',
+ 'informations' => 'Information',
+ 'keep_history' => 'Minimale Anzahl an Artikeln, die behalten wird',
+ 'moved_category_deleted' => 'Wenn Sie eine Kategorie entfernen, werden deren Feeds automatisch in die Kategorie <em>%s</em> eingefügt.',
+ 'no_selected' => 'Kein Feed ausgewählt.',
+ 'number_entries' => '%d Artikel',
+ 'stats' => 'Statistiken',
+ 'think_to_add' => 'Sie können Feeds hinzufügen.',
+ 'title' => 'Titel',
+ 'title_add' => 'Einen RSS-Feed hinzufügen',
+ 'ttl' => 'Aktualisiere automatisch nicht öfter als',
+ 'url' => 'Feed-URL',
+ 'validator' => 'Überprüfen Sie die Gültigkeit des Feeds',
+ 'website' => 'Webseiten-URL',
+ ),
+ 'import_export' => array(
+ 'export' => 'Exportieren',
+ 'export_opml' => 'Liste der Feeds exportieren (OPML)',
+ 'export_starred' => 'Ihre Favoriten exportieren',
+ 'feed_list' => 'Liste von %s Artikeln',
+ 'file_to_import' => 'Zu importierende Datei<br />(OPML, JSON oder Zip)',
+ 'file_to_import_no_zip' => 'Zu importierende Datei<br />(OPML oder JSON)',
+ 'import' => 'Importieren',
+ 'starred_list' => 'Liste der Lieblingsartikel',
+ 'title' => 'Importieren / Exportieren',
+ ),
+ 'menu' => array(
+ 'bookmark' => 'Abonnieren (FreshRSS-Lesezeichen)',
+ 'import_export' => 'Importieren / Exportieren',
+ 'subscription_management' => 'Abonnementverwaltung',
+ ),
+ 'title' => array(
+ '_' => 'Abonnementverwaltung',
+ 'feed_management' => 'Verwaltung der RSS-Feeds',
+ ),
+);
diff --git a/app/i18n/en.php b/app/i18n/en.php
deleted file mode 100644
index 0d3654744..000000000
--- a/app/i18n/en.php
+++ /dev/null
@@ -1,455 +0,0 @@
-<?php
-
-return array (
- // LAYOUT
- 'login' => 'Login',
- 'keep_logged_in' => 'Keep me logged in <small>(1 month)</small>',
- 'login_with_persona' => 'Login with Persona',
- 'login_persona_problem' => 'Connection problem with Persona?',
- 'logout' => 'Logout',
- 'search' => 'Search words or #tags',
- 'search_short' => 'Search',
-
- 'configuration' => 'Configuration',
- 'users' => 'Users',
- 'categories' => 'Categories',
- 'category' => 'Category',
- 'feed' => 'Feed',
- 'feeds' => 'Feeds',
- 'shortcuts' => 'Shortcuts',
- 'queries' => 'User queries',
- 'query_search' => 'Search for "%s"',
- 'query_order_asc' => 'Display oldest articles first',
- 'query_order_desc' => 'Display newest articles first',
- 'query_get_category' => 'Display "%s" category',
- 'query_get_feed' => 'Display "%s" feed',
- 'query_get_all' => 'Display all articles',
- 'query_get_favorite' => 'Display favorite articles',
- 'query_state_0' => 'Display all articles',
- 'query_state_1' => 'Display read articles',
- 'query_state_2' => 'Display unread articles',
- 'query_state_3' => 'Display all articles',
- 'query_state_4' => 'Display favorite articles',
- 'query_state_5' => 'Display read favorite articles',
- 'query_state_6' => 'Display unread favorite articles',
- 'query_state_7' => 'Display favorite articles',
- 'query_state_8' => 'Display not favorite articles',
- 'query_state_9' => 'Display read not favorite articles',
- 'query_state_10' => 'Display unread not favorite articles',
- 'query_state_11' => 'Display not favorite articles',
- 'query_state_12' => 'Display all articles',
- 'query_state_13' => 'Display read articles',
- 'query_state_14' => 'Display unread articles',
- 'query_state_15' => 'Display all articles',
- 'query_number' => 'Query n°%d',
- 'add_query' => 'Add a query',
- 'query_created' => 'Query "%s" has been created.',
- 'no_query' => 'You haven’t created any user query yet.',
- 'query_filter' => 'Filter applied:',
- 'no_query_filter' => 'No filter',
- 'query_deprecated' => 'This query is no longer valid. The referenced category or feed has been deleted.',
- 'about' => 'About',
- 'stats' => 'Statistics',
- 'stats_idle' => 'Idle feeds',
- 'stats_main' => 'Main statistics',
- 'stats_repartition' => 'Articles repartition',
- 'stats_entry_per_hour' => 'Per hour',
- 'stats_entry_per_day_of_week' => 'Per day of week',
- 'stats_entry_per_month' => 'Per month',
- 'stats_percent_of_total' => '%% of total',
-
- 'last_week' => 'Last week',
- 'last_month' => 'Last month',
- 'last_3_month' => 'Last three months',
- 'last_6_month' => 'Last six months',
- 'last_year' => 'Last year',
-
- 'your_rss_feeds' => 'Your RSS feeds',
- 'add_rss_feed' => 'Add a RSS feed',
- 'no_rss_feed' => 'No RSS feed',
- 'import_export' => 'Import / export',
- 'bookmark' => 'Subscribe (FreshRSS bookmark)',
-
- 'subscription_management' => 'Subscriptions management',
- 'main_stream' => 'Main stream',
- 'all_feeds' => 'All feeds',
- 'favorite_feeds' => 'Favourites (%s)',
- 'not_read' => '%d unread',
- 'not_reads' => '%d unread',
-
- 'filter' => 'Filter',
- 'see_website' => 'See website',
- 'administration' => 'Manage',
- 'actualize' => 'Actualize',
-
- 'mark_read' => 'Mark as read',
- 'mark_favorite' => 'Mark as favourite',
- 'mark_all_read' => 'Mark all as read',
- 'mark_feed_read' => 'Mark feed as read',
- 'mark_cat_read' => 'Mark category as read',
- 'before_one_day' => 'Before one day',
- 'before_one_week' => 'Before one week',
- 'display' => 'Display',
- 'normal_view' => 'Normal view',
- 'reader_view' => 'Reading view',
- 'global_view' => 'Global view',
- 'rss_view' => 'RSS feed',
- 'show_all_articles' => 'Show all articles',
- 'show_not_reads' => 'Show only unread',
- 'show_adaptive' => 'Adjust showing',
- 'show_read' => 'Show only read',
- 'show_favorite' => 'Show only favorites',
- 'show_not_favorite' => 'Show all but favorites',
- 'older_first' => 'Oldest first',
- 'newer_first' => 'Newer first',
-
- // Pagination
- 'first' => 'First',
- 'previous' => 'Previous',
- 'next' => 'Next',
- 'last' => 'Last',
-
- // CONTROLLERS
- 'article_published_on' => 'This article originally appeared on <a href="%s">%s</a>',
- 'article_published_on_author' => 'This article originally appeared on <a href="%s">%s</a> by %s',
-
- 'access_denied' => 'You don’t have permission to access this page',
- 'page_not_found' => 'You are looking for a page which doesn’t exist',
- 'error_occurred' => 'An error occurred',
- 'error_occurred_update' => 'Nothing was changed',
-
- 'default_category' => 'Uncategorized',
- 'categories_updated' => 'Categories have been updated',
- 'categories_management' => 'Categories management',
- 'feed_updated' => 'Feed has been updated',
- 'rss_feed_management' => 'RSS feeds management',
- 'configuration_updated' => 'Configuration has been updated',
- 'sharing_management' => 'Sharing options management',
- 'bad_opml_file' => 'Your OPML file is invalid',
- 'shortcuts_updated' => 'Shortcuts have been updated',
- 'shortcuts_navigation' => 'Navigation',
- 'shortcuts_navigation_help' => 'With the "Shift" modifier, navigation shortcuts apply on feeds.<br/>With the "Alt" modifier, navigation shortcuts apply on categories.',
- 'shortcuts_article_action' => 'Article actions',
- 'shortcuts_other_action' => 'Other actions',
- 'feeds_marked_read' => 'Feeds have been marked as read',
- 'updated' => 'Modifications have been updated',
-
- 'already_subscribed' => 'You have already subscribed to <em>%s</em>',
- 'feed_added' => 'RSS feed <em>%s</em> has been added',
- 'feed_not_added' => '<em>%s</em> could not be added',
- 'internal_problem_feed' => 'The RSS feed could not be added. <a href="%s">Check FressRSS logs</a> for details.',
- 'invalid_url' => 'URL <em>%s</em> is invalid',
- 'feed_actualized' => '<em>%s</em> has been updated',
- 'n_feeds_actualized' => '%d feeds have been updated',
- 'feeds_actualized' => 'RSS feeds have been updated',
- 'no_feed_actualized' => 'No RSS feed has been updated',
- 'n_entries_deleted' => '%d articles have been deleted',
- 'feeds_imported_with_errors' => 'Your feeds have been imported but some errors occurred',
- 'feeds_imported' => 'Your feeds have been imported and will now be updated',
- 'category_emptied' => 'Category has been emptied',
- 'feed_deleted' => 'Feed has been deleted',
- 'feed_validator' => 'Check the validity of the feed',
-
- 'optimization_complete' => 'Optimization complete',
-
- 'your_rss_feeds' => 'Your RSS feeds',
- 'your_favorites' => 'Your favourites',
- 'public' => 'Public',
- 'invalid_login' => 'Login is invalid',
-
- 'file_is_nok' => 'Check permissions on <em>%s</em> directory. HTTP server must have rights to write into.',
-
- // VIEWS
- 'save' => 'Save',
- 'delete' => 'Delete',
- 'cancel' => 'Cancel',
- 'submit' => 'Submit',
-
- 'back_to_rss_feeds' => '← Go back to your RSS feeds',
- 'feeds_moved_category_deleted' => 'When you delete a category, their feeds are automatically classified under <em>%s</em>.',
- 'category_number' => 'Category n°%d',
- 'ask_empty' => 'Clear?',
- 'number_feeds' => '%d feeds',
- 'can_not_be_deleted' => 'Cannot be deleted',
- 'add_category' => 'Add a category',
- 'new_category' => 'New category',
-
- 'javascript_for_shortcuts' => 'JavaScript must be enabled in order to use shortcuts',
- 'javascript_should_be_activated'=> 'JavaScript must be enabled',
- 'shift_for_all_read' => '+ <code>shift</code> to mark all articles as read',
- 'see_on_website' => 'See on original website',
- 'next_article' => 'Skip to the next article',
- 'last_article' => 'Skip to the last article',
- 'previous_article' => 'Skip to the previous article',
- 'first_article' => 'Skip to the first article',
- 'next_page' => 'Skip to the next page',
- 'previous_page' => 'Skip to the previous page',
- 'collapse_article' => 'Collapse',
- 'auto_share' => 'Share',
- 'auto_share_help' => 'If there is only one sharing mode, it is used. Else modes are accessible by their number.',
- 'focus_search' => 'Access search box',
- 'user_filter' => 'Access user filters',
- 'user_filter_help' => 'If there is only one user filter, it is used. Else filters are accessible by their number.',
- 'help' => 'Display documentation',
-
- 'file_to_import' => 'File to import<br />(OPML, Json or Zip)',
- 'file_to_import_no_zip' => 'File to import<br />(OPML or Json)',
- 'import' => 'Import',
- 'file_cannot_be_uploaded' => 'File cannot be uploaded!',
- 'zip_error' => 'An error occured during Zip import.',
- 'no_zip_extension' => 'Zip extension is not present on your server.',
- 'export' => 'Export',
- 'export_opml' => 'Export list of feeds (OPML)',
- 'export_starred' => 'Export your favourites',
- 'export_no_zip_extension' => 'Zip extension is not present on your server. Please try to export files one by one.',
- 'starred_list' => 'List of favourite articles',
- 'feed_list' => 'List of %s articles',
- 'or' => 'or',
-
- 'informations' => 'Information',
- 'damn' => 'Damn!',
- 'ok' => 'Ok!',
- 'attention' => 'Be careful!',
- 'feed_in_error' => 'This feed has encountered a problem. Please verify that it is always reachable then actualize it.',
- 'feed_empty' => 'This feed is empty. Please verify that it is still maintained.',
- 'feed_description' => 'Description',
- 'website_url' => 'Website URL',
- 'feed_url' => 'Feed URL',
- 'articles' => 'articles',
- 'number_articles' => '%d articles',
- 'by_feed' => 'by feed',
- 'by_default' => 'By default',
- 'keep_history' => 'Minimum number of articles to keep',
- 'ttl' => 'Do not automatically refresh more often than',
- 'categorize' => 'Store in a category',
- 'truncate' => 'Delete all articles',
- 'advanced' => 'Advanced',
- 'show_in_all_flux' => 'Show in main stream',
- 'yes' => 'Yes',
- 'no' => 'No',
- 'css_path_on_website' => 'Articles CSS path on original website',
- 'retrieve_truncated_feeds' => 'Retrieves truncated RSS feeds (attention, requires more time!)',
- 'http_authentication' => 'HTTP Authentication',
- 'http_username' => 'HTTP username',
- 'http_password' => 'HTTP password',
- 'blank_to_disable' => 'Leave blank to disable',
- 'share_name' => 'Share name to display',
- 'share_url' => 'Share URL to use',
- 'not_yet_implemented' => 'Not yet implemented',
- 'access_protected_feeds' => 'Connection allows to access HTTP protected RSS feeds',
- 'no_selected_feed' => 'No feed selected.',
- 'think_to_add' => 'You may add some feeds.',
-
- 'current_user' => 'Current user',
- 'default_user' => 'Username of the default user <small>(maximum 16 alphanumeric characters)</small>',
- 'password_form' => 'Password<br /><small>(for the Web-form login method)</small>',
- 'password_api' => 'Password API<br /><small>(e.g., for mobile apps)</small>',
- 'persona_connection_email' => 'Login mail address<br /><small>(for <a href="https://persona.org/" rel="external">Mozilla Persona</a>)</small>',
- 'allow_anonymous' => 'Allow anonymous reading of the articles of the default user (%s)',
- 'allow_anonymous_refresh' => 'Allow anonymous refresh of the articles',
- 'unsafe_autologin' => 'Allow unsafe automatic login using the format: ',
- 'api_enabled' => 'Allow <abbr>API</abbr> access <small>(required for mobile apps)</small>',
- 'auth_token' => 'Authentication token',
- 'explain_token' => 'Allows to access RSS output of the default user without authentication.<br /><kbd>%s?output=rss&amp;token=%s</kbd>',
- 'login_configuration' => 'Login',
- 'is_admin' => 'is administrator',
- 'auth_type' => 'Authentication method',
- 'auth_none' => 'None (dangerous)',
- 'auth_form' => 'Web form (traditional, requires JavaScript)',
- 'http_auth' => 'HTTP (for advanced users with HTTPS)',
- 'auth_persona' => 'Mozilla Persona (modern, requires JavaScript)',
- 'users_list' => 'List of users',
- 'create_user' => 'Create new user',
- 'username' => 'Username',
- 'username_admin' => 'Administrator username',
- 'password' => 'Password',
- 'create' => 'Create',
- 'user_created' => 'User %s has been created',
- 'user_deleted' => 'User %s has been deleted',
-
- 'language' => 'Language',
- 'month' => 'months',
- 'archiving_configuration' => 'Archiving',
- 'delete_articles_every' => 'Remove articles after',
- 'purge_now' => 'Purge now',
- 'purge_completed' => 'Purge completed (%d articles deleted)',
- 'archiving_configuration_help' => 'More options are available in the individual stream settings',
- 'reading_configuration' => 'Reading',
- 'display_configuration' => 'Display',
- 'articles_per_page' => 'Number of articles per page',
- 'number_divided_when_reader' => 'Divided by 2 in the reading view.',
- 'default_view' => 'Default view',
- 'articles_to_display' => 'Articles to display',
- 'sort_order' => 'Sort order',
- 'auto_load_more' => 'Load next articles at the page bottom',
- 'display_articles_unfolded' => 'Show articles unfolded by default',
- 'display_categories_unfolded' => 'Show categories folded by default',
- 'hide_read_feeds' => 'Hide categories &amp; feeds with no unread article (does not work with “Show all articles” configuration)',
- 'after_onread' => 'After “mark all as read”,',
- 'jump_next' => 'jump to next unread sibling (feed or category)',
- 'article_icons' => 'Article icons',
- 'top_line' => 'Top line',
- 'bottom_line' => 'Bottom line',
- 'html5_notif_timeout' => 'HTML5 notification timeout',
- 'seconds_(0_means_no_timeout)' => 'seconds (0 means no timeout)',
- 'img_with_lazyload' => 'Use "lazy load" mode to load pictures',
- 'sticky_post' => 'Stick the article to the top when opened',
- 'reading_confirm' => 'Display a confirmation dialog on “mark all as read” actions',
- 'auto_read_when' => 'Mark article as read…',
- 'article_viewed' => 'when article is viewed',
- 'article_open_on_website' => 'when article is opened on its original website',
- 'scroll' => 'while scrolling',
- 'upon_reception' => 'upon reception of the article',
- 'your_shaarli' => 'Your Shaarli',
- 'your_wallabag' => 'Your wallabag',
- 'your_diaspora_pod' => 'Your Diaspora* pod',
- 'sharing' => 'Sharing',
- 'share' => 'Share',
- 'by_email' => 'By email',
- 'optimize_bdd' => 'Optimize database',
- 'optimize_todo_sometimes' => 'To do occasionally to reduce the size of the database',
- 'theme' => 'Theme',
- 'content_width' => 'Content width',
- 'width_thin' => 'Thin',
- 'width_medium' => 'Medium',
- 'width_large' => 'Large',
- 'width_no_limit' => 'No limit',
- 'more_information' => 'More information',
- 'activate_sharing' => 'Activate sharing',
- 'shaarli' => 'Shaarli',
- 'blogotext' => 'Blogotext',
- 'wallabag' => 'wallabag',
- 'diaspora' => 'Diaspora*',
- 'twitter' => 'Twitter',
- 'g+' => 'Google+',
- 'facebook' => 'Facebook',
- 'email' => 'Email',
- 'print' => 'Print',
-
- 'article' => 'Article',
- 'title' => 'Title',
- 'author' => 'Author',
- 'publication_date' => 'Date of publication',
- 'by' => 'by',
-
- 'load_more' => 'Load more articles',
- 'nothing_to_load' => 'There are no more articles',
-
- 'rss_feeds_of' => 'RSS feed of %s',
-
- 'refresh' => 'Refresh',
- 'no_feed_to_refresh' => 'There is no feed to refresh…',
-
- 'today' => 'Today',
- 'yesterday' => 'Yesterday',
- 'before_yesterday' => 'Before yesterday',
- 'new_article' => 'There are new available articles, click to refresh the page.',
- 'by_author' => 'By <em>%s</em>',
- 'related_tags' => 'Related tags',
- 'no_feed_to_display' => 'There is no article to show.',
-
- 'about_freshrss' => 'About FreshRSS',
- 'project_website' => 'Project website',
- 'lead_developer' => 'Lead developer',
- 'website' => 'Website',
- 'bugs_reports' => 'Bugs reports',
- 'github_or_email' => '<a href="https://github.com/marienfressinaud/FreshRSS/issues">on Github</a> or <a href="mailto:dev@marienfressinaud.fr">by mail</a>',
- 'license' => 'License',
- 'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',
- 'freshrss_description' => 'FreshRSS is a RSS feeds aggregator to self-host like <a href="http://tontof.net/kriss/feed/">Kriss Feed</a> or <a href="http://projet.idleman.fr/leed/">Leed</a>. It is light and easy to take in hand while being powerful and configurable tool.',
- 'credits' => 'Credits',
- 'credits_content' => 'Some design elements come from <a href="http://twitter.github.io/bootstrap/">Bootstrap</a> although FreshRSS doesn’t use this framework. <a href="https://git.gnome.org/browse/gnome-icon-theme-symbolic">Icons</a> come from <a href="https://www.gnome.org/">GNOME project</a>. <em>Open Sans</em> font police has been created by <a href="https://www.google.com/webfonts/specimen/Open+Sans">Steve Matteson</a>. Favicons are collected with <a href="https://getfavicon.appspot.com/">getFavicon API</a>. FreshRSS is based on <a href="https://github.com/marienfressinaud/MINZ">Minz</a>, a PHP framework.',
- 'version' => 'Version',
-
- 'logs' => 'Logs',
- 'logs_empty' => 'Log file is empty',
- 'clear_logs' => 'Clear the logs',
-
- 'forbidden_access' => 'Access is forbidden!',
- 'login_required' => 'Login required:',
-
- 'confirm_action' => 'Are you sure you want to perform this action? It cannot be cancelled!',
- 'confirm_action_feed_cat' => 'Are you sure you want to perform this action? You may lost related favorites and user queries. It cannot be cancelled!',
- 'notif_title_new_articles' => 'FreshRSS: new articles!',
- 'notif_body_new_articles' => 'There are \d new articles to read on FreshRSS.',
-
- // DATE
- 'january' => 'January',
- 'february' => 'February',
- 'march' => 'March',
- 'april' => 'April',
- 'may' => 'May',
- 'june' => 'June',
- 'july' => 'July',
- 'august' => 'August',
- 'september' => 'September',
- 'october' => 'October',
- 'november' => 'November',
- 'december' => 'December',
- 'january' => 'Jan',
- 'february' => 'Feb',
- 'march' => 'Mar',
- 'april' => 'Apr',
- 'may' => 'May',
- 'june' => 'Jun',
- 'july' => 'Jul',
- 'august' => 'Aug',
- 'september' => 'Sep',
- 'october' => 'Oct',
- 'november' => 'Nov',
- 'december' => 'Dec',
- 'sun' => 'Sun',
- 'mon' => 'Mon',
- 'tue' => 'Tue',
- 'wed' => 'Wed',
- 'thu' => 'Thu',
- 'fri' => 'Fri',
- 'sat' => 'Sat',
- // special format for date() function
- 'Jan' => '\J\a\n\u\a\r\y',
- 'Feb' => '\F\e\b\r\u\a\r\y',
- 'Mar' => '\M\a\r\c\h',
- 'Apr' => '\A\p\r\i\l',
- 'May' => '\M\a\y',
- 'Jun' => '\J\u\n\e',
- 'Jul' => '\J\u\l\y',
- 'Aug' => '\A\u\g\u\s\t',
- 'Sep' => '\S\e\p\t\e\m\b\e\r',
- 'Oct' => '\O\c\t\o\b\e\r',
- 'Nov' => '\N\o\v\e\m\b\e\r',
- 'Dec' => '\D\e\c\e\m\b\e\r',
- // format for date() function, %s allows to indicate month in letter
- 'format_date' => '%s j\<\s\u\p\>S\<\/\s\u\p\> Y',
- 'format_date_hour' => '%s j\<\s\u\p\>S\<\/\s\u\p\> Y \a\t H\:i',
-
- 'status_favorites' => 'Favourites',
- 'status_read' => 'Read',
- 'status_unread' => 'Unread',
- 'status_total' => 'Total',
-
- 'stats_entry_repartition' => 'Entries repartition',
- 'stats_entry_per_day' => 'Entries per day (last 30 days)',
- 'stats_feed_per_category' => 'Feeds per category',
- 'stats_entry_per_category' => 'Entries per category',
- 'stats_top_feed' => 'Top ten feeds',
- 'stats_entry_count' => 'Entry count',
- 'stats_no_idle' => 'There is no idle feed!',
-
- 'update' => 'Update',
- 'update_system' => 'Update system',
- 'update_check' => 'Check for new updates',
- 'update_last' => 'Last verification: %s',
- 'update_can_apply' => 'An update is available.',
- 'update_apply' => 'Apply',
- 'update_server_not_found' => 'Update server cannot be found. [%s]',
- 'no_update' => 'No update to apply',
- 'update_problem' => 'The update process has encountered an error: %s',
- 'update_finished' => 'Update completed!',
-
- 'auth_reset' => 'Authentication reset',
- 'auth_will_reset' => 'Authentication system will be reset: a form will be used instead of Persona.',
- 'auth_not_persona' => 'Only Persona system can be reset.',
- 'auth_no_password_set' => 'Administrator password hasn’t been set. This feature isn’t available.',
- 'auth_form_set' => 'Form is now your default authentication system.',
- 'auth_form_not_set' => 'A problem occured during authentication system configuration. Please retry later.',
-);
diff --git a/app/i18n/en/admin.php b/app/i18n/en/admin.php
new file mode 100644
index 000000000..d2fcd3e82
--- /dev/null
+++ b/app/i18n/en/admin.php
@@ -0,0 +1,170 @@
+<?php
+
+return array(
+ 'auth' => array(
+ 'allow_anonymous' => 'Allow anonymous reading of the articles of the default user (%s)',
+ 'allow_anonymous_refresh' => 'Allow anonymous refresh of the articles',
+ 'api_enabled' => 'Allow <abbr>API</abbr> access <small>(required for mobile apps)</small>',
+ 'form' => 'Web form (traditional, requires JavaScript)',
+ 'http' => 'HTTP (for advanced users with HTTPS)',
+ 'none' => 'None (dangerous)',
+ 'persona' => 'Mozilla Persona (modern, requires JavaScript)',
+ 'title' => 'Authentication',
+ 'title_reset' => 'Authentication reset',
+ 'token' => 'Authentication token',
+ 'token_help' => 'Allows to access RSS output of the default user without authentication:',
+ 'type' => 'Authentication method',
+ 'unsafe_autologin' => 'Allow unsafe automatic login using the format: ',
+ ),
+ 'check_install' => array(
+ 'cache' => array(
+ 'nok' => 'Check permissions on <em>./data/cache</em> directory. HTTP server must have rights to write into',
+ 'ok' => 'Permissions on cache directory are good.',
+ ),
+ 'categories' => array(
+ 'nok' => 'Category table is bad configured.',
+ 'ok' => 'Category table is ok.',
+ ),
+ 'connection' => array(
+ 'nok' => 'Connection to the database cannot being established.',
+ 'ok' => 'Connection to the database is ok.',
+ ),
+ 'ctype' => array(
+ 'nok' => 'You lack a required library for character type checking (php-ctype).',
+ 'ok' => 'You have the required library for character type checking (ctype).',
+ ),
+ 'curl' => array(
+ 'nok' => 'You lack cURL (php5-curl package).',
+ 'ok' => 'You have cURL extension.',
+ ),
+ 'data' => array(
+ 'nok' => 'Check permissions on <em>./data</em> directory. HTTP server must have rights to write into',
+ 'ok' => 'Permissions on data directory are good.',
+ ),
+ 'database' => 'Database installation',
+ 'dom' => array(
+ 'nok' => 'You lack a required library to browse the DOM (php-xml package).',
+ 'ok' => 'You have the required library to browse the DOM.',
+ ),
+ 'entries' => array(
+ 'nok' => 'Entry table is bad configured.',
+ 'ok' => 'Entry table is ok.',
+ ),
+ 'favicons' => array(
+ 'nok' => 'Check permissions on <em>./data/favicons</em> directory. HTTP server must have rights to write into',
+ 'ok' => 'Permissions on favicons directory are good.',
+ ),
+ 'feeds' => array(
+ 'nok' => 'Feed table is bad configured.',
+ 'ok' => 'Feed table is ok.',
+ ),
+ 'files' => 'File installation',
+ 'json' => array(
+ 'nok' => 'You lack JSON (php5-json package).',
+ 'ok' => 'You have JSON extension.',
+ ),
+ 'minz' => array(
+ 'nok' => 'You lack the Minz framework.',
+ 'ok' => 'You have the Minz framework.',
+ ),
+ 'pcre' => array(
+ 'nok' => 'You lack a required library for regular expressions (php-pcre).',
+ 'ok' => 'You have the required library for regular expressions (PCRE).',
+ ),
+ 'pdo' => array(
+ 'nok' => 'You lack PDO or one of the supported drivers (pdo_mysql, pdo_sqlite).',
+ 'ok' => 'You have PDO and at least one of the supported drivers (pdo_mysql, pdo_sqlite).',
+ ),
+ 'persona' => array(
+ 'nok' => 'Check permissions on <em>./data/persona</em> directory. HTTP server must have rights to write into',
+ 'ok' => 'Permissions on Mozilla Persona directory are good.',
+ ),
+ 'php' => array(
+ '_' => 'PHP installation',
+ 'nok' => 'Your PHP version is %s but FreshRSS requires at least version %s.',
+ 'ok' => 'Your PHP version is %s, which is compatible with FreshRSS.',
+ ),
+ 'tables' => array(
+ 'nok' => 'There is one or more lacking tables in the database.',
+ 'ok' => 'Tables are existing in the database.',
+ ),
+ 'title' => 'Installation checking',
+ 'tokens' => array(
+ 'nok' => 'Check permissions on <em>./data/tokens</em> directory. HTTP server must have rights to write into',
+ 'ok' => 'Permissions on tokens directory are good.',
+ ),
+ 'users' => array(
+ 'nok' => 'Check permissions on <em>./data/users</em> directory. HTTP server must have rights to write into',
+ 'ok' => 'Permissions on users directory are good.',
+ ),
+ 'zip' => array(
+ 'nok' => 'You lack ZIP extension (php5-zip package).',
+ 'ok' => 'You have ZIP extension.',
+ ),
+ ),
+ 'extensions' => array(
+ 'disabled' => 'Disabled',
+ 'empty_list' => 'There is no installed extension',
+ 'enabled' => 'Enabled',
+ 'no_configure_view' => 'This extension cannot be configured.',
+ 'system' => array(
+ '_' => 'System extensions',
+ 'no_rights' => 'System extension (you have no rights on it)',
+ ),
+ 'title' => 'Extensions',
+ 'user' => 'User extensions',
+ ),
+ 'stats' => array(
+ '_' => 'Statistics',
+ 'all_feeds' => 'All feeds',
+ 'category' => 'Category',
+ 'entry_count' => 'Entry count',
+ 'entry_per_category' => 'Entries per category',
+ 'entry_per_day' => 'Entries per day (last 30 days)',
+ 'entry_per_day_of_week' => 'Per day of week (average: %.2f messages)',
+ 'entry_per_hour' => 'Per hour (average: %.2f messages)',
+ 'entry_per_month' => 'Per month (average: %.2f messages)',
+ 'entry_repartition' => 'Entries repartition',
+ 'feed' => 'Feed',
+ 'feed_per_category' => 'Feeds per category',
+ 'idle' => 'Idle feeds',
+ 'main' => 'Main statistics',
+ 'main_stream' => 'Main stream',
+ 'menu' => array(
+ 'idle' => 'Idle feeds',
+ 'main' => 'Main statistics',
+ 'repartition' => 'Articles repartition',
+ ),
+ 'no_idle' => 'There is no idle feed!',
+ 'number_entries' => '%d articles',
+ 'percent_of_total' => '%% of total',
+ 'repartition' => 'Articles repartition',
+ 'status_favorites' => 'Favourites',
+ 'status_read' => 'Read',
+ 'status_total' => 'Total',
+ 'status_unread' => 'Unread',
+ 'title' => 'Statistics',
+ 'top_feed' => 'Top ten feeds',
+ ),
+ 'update' => array(
+ '_' => 'Update system',
+ 'apply' => 'Apply',
+ 'check' => 'Check for new updates',
+ 'current_version' => 'Your current version of FreshRSS is the %s.',
+ 'last' => 'Last verification: %s',
+ 'none' => 'No update to apply',
+ 'title' => 'Update system',
+ ),
+ 'user' => array(
+ 'articles_and_size' => '%s articles (%s)',
+ 'create' => 'Create new user',
+ 'email_persona' => 'Login mail address<br /><small>(for <a href="https://persona.org/" rel="external">Mozilla Persona</a>)</small>',
+ 'language' => 'Language',
+ 'password_form' => 'Password<br /><small>(for the Web-form login method)</small>',
+ 'password_format' => 'At least 7 characters',
+ 'title' => 'Manage users',
+ 'user_list' => 'List of users',
+ 'username' => 'Username',
+ 'users' => 'Users',
+ ),
+);
diff --git a/app/i18n/en/conf.php b/app/i18n/en/conf.php
new file mode 100644
index 000000000..308c45d2c
--- /dev/null
+++ b/app/i18n/en/conf.php
@@ -0,0 +1,169 @@
+<?php
+
+return array(
+ 'archiving' => array(
+ '_' => 'Archiving',
+ 'advanced' => 'Advanced',
+ 'delete_after' => 'Remove articles after',
+ 'help' => 'More options are available in the individual stream settings',
+ 'keep_history_by_feed' => 'Minimum number of articles to keep by feed',
+ 'optimize' => 'Optimize database',
+ 'optimize_help' => 'To do occasionally to reduce the size of the database',
+ 'purge_now' => 'Purge now',
+ 'title' => 'Archiving',
+ 'ttl' => 'Do not automatically refresh more often than',
+ ),
+ 'display' => array(
+ '_' => 'Display',
+ 'icon' => array(
+ 'bottom_line' => 'Bottom line',
+ 'entry' => 'Article icons',
+ 'publication_date' => 'Date of publication',
+ 'related_tags' => 'Related tags',
+ 'sharing' => 'Sharing',
+ 'top_line' => 'Top line',
+ ),
+ 'language' => 'Language',
+ 'notif_html5' => array(
+ 'seconds' => 'seconds (0 means no timeout)',
+ 'timeout' => 'HTML5 notification timeout',
+ ),
+ 'theme' => 'Theme',
+ 'title' => 'Display',
+ 'width' => array(
+ 'content' => 'Content width',
+ 'large' => 'Large',
+ 'medium' => 'Medium',
+ 'no_limit' => 'No limit',
+ 'thin' => 'Thin',
+ ),
+ ),
+ 'query' => array(
+ '_' => 'User queries',
+ 'deprecated' => 'This query is no longer valid. The referenced category or feed has been deleted.',
+ 'filter' => 'Filter applied:',
+ 'get_all' => 'Display all articles',
+ 'get_category' => 'Display "%s" category',
+ 'get_favorite' => 'Display favorite articles',
+ 'get_feed' => 'Display "%s" feed',
+ 'no_filter' => 'No filter',
+ 'none' => 'You haven’t created any user query yet.',
+ 'number' => 'Query n°%d',
+ 'order_asc' => 'Display oldest articles first',
+ 'order_desc' => 'Display newest articles first',
+ 'search' => 'Search for "%s"',
+ 'state_0' => 'Display all articles',
+ 'state_1' => 'Display read articles',
+ 'state_2' => 'Display unread articles',
+ 'state_3' => 'Display all articles',
+ 'state_4' => 'Display favorite articles',
+ 'state_5' => 'Display read favorite articles',
+ 'state_6' => 'Display unread favorite articles',
+ 'state_7' => 'Display favorite articles',
+ 'state_8' => 'Display not favorite articles',
+ 'state_9' => 'Display read not favorite articles',
+ 'state_10' => 'Display unread not favorite articles',
+ 'state_11' => 'Display not favorite articles',
+ 'state_12' => 'Display all articles',
+ 'state_13' => 'Display read articles',
+ 'state_14' => 'Display unread articles',
+ 'state_15' => 'Display all articles',
+ 'title' => 'User queries',
+ ),
+ 'profile' => array(
+ '_' => 'Profile management',
+ 'email_persona' => 'Login mail address<br /><small>(for <a href="https://persona.org/" rel="external">Mozilla Persona</a>)</small>',
+ 'password_api' => 'Password API<br /><small>(e.g., for mobile apps)</small>',
+ 'password_form' => 'Password<br /><small>(for the Web-form login method)</small>',
+ 'password_format' => 'At least 7 characters',
+ 'title' => 'Profile',
+ ),
+ 'reading' => array(
+ '_' => 'Reading',
+ 'after_onread' => 'After “mark all as read”,',
+ 'articles_per_page' => 'Number of articles per page',
+ 'auto_load_more' => 'Load next articles at the page bottom',
+ 'auto_remove_article' => 'Hide articles after reading',
+ 'confirm_enabled' => 'Display a confirmation dialog on “mark all as read” actions',
+ 'display_articles_unfolded' => 'Show articles unfolded by default',
+ 'display_categories_unfolded' => 'Show categories folded by default',
+ 'hide_read_feeds' => 'Hide categories & feeds with no unread article (does not work with “Show all articles” configuration)',
+ 'img_with_lazyload' => 'Use "lazy load" mode to load pictures',
+ 'jump_next' => 'jump to next unread sibling (feed or category)',
+ 'number_divided_when_reader' => 'Divided by 2 in the reading view.',
+ 'read' => array(
+ 'article_open_on_website' => 'when article is opened on its original website',
+ 'article_viewed' => 'when article is viewed',
+ 'scroll' => 'while scrolling',
+ 'upon_reception' => 'upon reception of the article',
+ 'when' => 'Mark article as read…',
+ ),
+ 'show' => array(
+ '_' => 'Articles to display',
+ 'adaptive' => 'Adjust showing',
+ 'all_articles' => 'Show all articles',
+ 'unread' => 'Show only unread',
+ ),
+ 'sort' => array(
+ '_' => 'Sort order',
+ 'newer_first' => 'Newer first',
+ 'older_first' => 'Oldest first',
+ ),
+ 'sticky_post' => 'Stick the article to the top when opened',
+ 'title' => 'Reading',
+ 'view' => array(
+ 'default' => 'Default view',
+ 'global' => 'Global view',
+ 'normal' => 'Normal view',
+ 'reader' => 'Reading view',
+ ),
+ ),
+ 'sharing' => array(
+ '_' => 'Sharing',
+ 'blogotext' => 'Blogotext',
+ 'diaspora' => 'Diaspora*',
+ 'email' => 'Email',
+ 'facebook' => 'Facebook',
+ 'g+' => 'Google+',
+ 'more_information' => 'More information',
+ 'print' => 'Print',
+ 'shaarli' => 'Shaarli',
+ 'share_name' => 'Share name to display',
+ 'share_url' => 'Share URL to use',
+ 'title' => 'Sharing',
+ 'twitter' => 'Twitter',
+ 'wallabag' => 'wallabag',
+ ),
+ 'shortcut' => array(
+ '_' => 'Shortcuts',
+ 'article_action' => 'Article actions',
+ 'auto_share' => 'Share',
+ 'auto_share_help' => 'If there is only one sharing mode, it is used. Else modes are accessible by their number.',
+ 'close_dropdown' => 'Close menus',
+ 'collapse_article' => 'Collapse',
+ 'first_article' => 'Skip to the first article',
+ 'focus_search' => 'Access search box',
+ 'help' => 'Display documentation',
+ 'javascript' => 'JavaScript must be enabled in order to use shortcuts',
+ 'last_article' => 'Skip to the last article',
+ 'load_more' => 'Load more articles',
+ 'mark_read' => 'Mark as read',
+ 'mark_favorite' => 'Mark as favourite',
+ 'navigation' => 'Navigation',
+ 'navigation_help' => 'With the "Shift" modifier, navigation shortcuts apply on feeds.<br/>With the "Alt" modifier, navigation shortcuts apply on categories.',
+ 'next_article' => 'Skip to the next article',
+ 'other_action' => 'Other actions',
+ 'previous_article' => 'Skip to the previous article',
+ 'see_on_website' => 'See on original website',
+ 'shift_for_all_read' => '+ <code>shift</code> to mark all articles as read',
+ 'title' => 'Shortcuts',
+ 'user_filter' => 'Access user filters',
+ 'user_filter_help' => 'If there is only one user filter, it is used. Else filters are accessible by their number.',
+ ),
+ 'user' => array(
+ 'articles_and_size' => '%s articles (%s)',
+ 'current' => 'Current user',
+ 'is_admin' => 'is administrator',
+ 'users' => 'Users',
+ ),
+);
diff --git a/app/i18n/en/feedback.php b/app/i18n/en/feedback.php
new file mode 100644
index 000000000..19af81e5b
--- /dev/null
+++ b/app/i18n/en/feedback.php
@@ -0,0 +1,110 @@
+<?php
+
+return array(
+ 'admin' => array(
+ 'optimization_complete' => 'Optimization complete',
+ ),
+ 'access' => array(
+ 'denied' => 'You don’t have permission to access this page',
+ 'not_found' => 'You are looking for a page which doesn’t exist',
+ ),
+ 'auth' => array(
+ 'form' => array(
+ 'not_set' => 'A problem occured during authentication system configuration. Please retry later.',
+ 'set' => 'Form is now your default authentication system.',
+ ),
+ 'login' => array(
+ 'invalid' => 'Login is invalid',
+ 'success' => 'You are connected',
+ ),
+ 'logout' => array(
+ 'success' => 'You are disconnected',
+ ),
+ 'no_password_set' => 'Administrator password hasn’t been set. This feature isn’t available.',
+ 'not_persona' => 'Only Persona system can be reset.',
+ ),
+ 'conf' => array(
+ 'error' => 'An error occurred during configuration saving',
+ 'query_created' => 'Query "%s" has been created.',
+ 'shortcuts_updated' => 'Shortcuts have been updated',
+ 'updated' => 'Configuration has been updated',
+ ),
+ 'extensions' => array(
+ 'already_enabled' => '%s is already enabled',
+ 'disable' => array(
+ 'ko' => '%s cannot be disabled. <a href="%s">Check FressRSS logs</a> for details.',
+ 'ok' => '%s is now disabled',
+ ),
+ 'enable' => array(
+ 'ko' => '%s cannot be enabled. <a href="%s">Check FressRSS logs</a> for details.',
+ 'ok' => '%s is now enabled',
+ ),
+ 'no_access' => 'You have no access on %s',
+ 'not_enabled' => '%s is not enabled yet',
+ 'not_found' => '%s does not exist',
+ ),
+ 'import_export' => array(
+ 'export_no_zip_extension' => 'Zip extension is not present on your server. Please try to export files one by one.',
+ 'feeds_imported' => 'Your feeds have been imported and will now be updated',
+ 'feeds_imported_with_errors' => 'Your feeds have been imported but some errors occurred',
+ 'file_cannot_be_uploaded' => 'File cannot be uploaded!',
+ 'no_zip_extension' => 'Zip extension is not present on your server.',
+ 'zip_error' => 'An error occured during Zip import.',
+ ),
+ 'sub' => array(
+ 'actualize' => 'Actualize',
+ 'category' => array(
+ 'created' => 'Category %s has been created.',
+ 'deleted' => 'Category has been deleted.',
+ 'emptied' => 'Category has been emptied',
+ 'error' => 'Category cannot be updated',
+ 'name_exists' => 'Category name already exists.',
+ 'no_id' => 'You must precise the id of the category.',
+ 'no_name' => 'Category name cannot be empty.',
+ 'not_delete_default' => 'You cannot delete the default category!',
+ 'not_exist' => 'The category does not exist!',
+ 'over_max' => 'You have reached your limit of categories (%d)',
+ 'updated' => 'Category has been updated.',
+ ),
+ 'feed' => array(
+ 'actualized' => '<em>%s</em> has been updated',
+ 'actualizeds' => 'RSS feeds have been updated',
+ 'added' => 'RSS feed <em>%s</em> has been added',
+ 'already_subscribed' => 'You have already subscribed to <em>%s</em>',
+ 'deleted' => 'Feed has been deleted',
+ 'error' => 'Feed cannot be updated',
+ 'internal_problem' => 'The RSS feed could not be added. <a href="%s">Check FressRSS logs</a> for details.',
+ 'invalid_url' => 'URL <em>%s</em> is invalid',
+ 'marked_read' => 'Feeds have been marked as read',
+ 'n_actualized' => '%d feeds have been updated',
+ 'n_entries_deleted' => '%d articles have been deleted',
+ 'no_refresh' => 'There is no feed to refresh…',
+ 'not_added' => '<em>%s</em> could not be added',
+ 'over_max' => 'You have reached your limit of feeds (%d)',
+ 'updated' => 'Feed has been updated',
+ ),
+ 'purge_completed' => 'Purge completed (%d articles deleted)',
+ ),
+ 'update' => array(
+ 'can_apply' => 'FreshRSS will be now updated to the <strong>version %s</strong>.',
+ 'error' => 'The update process has encountered an error: %s',
+ 'file_is_nok' => 'Check permissions on <em>%s</em> directory. HTTP server must have rights to write into',
+ 'finished' => 'Update completed!',
+ 'none' => 'No update to apply',
+ 'server_not_found' => 'Update server cannot be found. [%s]',
+ ),
+ 'user' => array(
+ 'created' => array(
+ '_' => 'User %s has been created',
+ 'error' => 'User %s cannot be created',
+ ),
+ 'deleted' => array(
+ '_' => 'User %s has been deleted',
+ 'error' => 'User %s cannot be deleted',
+ ),
+ ),
+ 'profile' => array(
+ 'error' => 'Your profile cannot be modified',
+ 'updated' => 'Your profile has been modified',
+ ),
+);
diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php
new file mode 100644
index 000000000..2143822ed
--- /dev/null
+++ b/app/i18n/en/gen.php
@@ -0,0 +1,163 @@
+<?php
+
+return array(
+ 'action' => array(
+ 'actualize' => 'Actualize',
+ 'back_to_rss_feeds' => '← Go back to your RSS feeds',
+ 'cancel' => 'Cancel',
+ 'create' => 'Create',
+ 'disable' => 'Disable',
+ 'empty' => 'Empty',
+ 'enable' => 'Enable',
+ 'export' => 'Export',
+ 'filter' => 'Filtrer',
+ 'import' => 'Import',
+ 'manage' => 'Manage',
+ 'mark_read' => 'Mark as read',
+ 'mark_favorite' => 'Mark as favourite',
+ 'remove' => 'Remove',
+ 'see_website' => 'See website',
+ 'submit' => 'Submit',
+ 'truncate' => 'Delete all articles',
+ ),
+ 'auth' => array(
+ 'keep_logged_in' => 'Keep me logged in <small>(1 month)</small>',
+ 'login' => 'Login',
+ 'login_persona' => 'Login with Persona',
+ 'login_persona_problem' => 'Connection problem with Persona?',
+ 'logout' => 'Logout',
+ 'password' => 'Password',
+ 'reset' => 'Authentication reset',
+ 'username' => 'Username',
+ 'username_admin' => 'Administrator username',
+ 'will_reset' => 'Authentication system will be reset: a form will be used instead of Persona.',
+ ),
+ 'date' => array(
+ 'Apr' => '\\A\\p\\r\\i\\l',
+ 'Aug' => '\\A\\u\\g\\u\\s\\t',
+ 'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r',
+ 'Feb' => '\\F\\e\\b\\r\\u\\a\\r\\y',
+ 'Jan' => '\\J\\a\\n\\u\\a\\r\\y',
+ 'Jul' => '\\J\\u\\l\\y',
+ 'Jun' => '\\J\\u\\n\\e',
+ 'Mar' => '\\M\\a\\r\\c\\h',
+ 'May' => '\\M\\a\\y',
+ 'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',
+ 'Oct' => '\\O\\c\\t\\o\\b\\e\\r',
+ 'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',
+ 'apr' => 'apr',
+ 'april' => 'Apr',
+ 'aug' => 'aug',
+ 'august' => 'Aug',
+ 'before_yesterday' => 'Before yesterday',
+ 'dec' => 'dec',
+ 'december' => 'Dec',
+ 'feb' => 'feb',
+ 'february' => 'Feb',
+ 'format_date' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y',
+ 'format_date_hour' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y \\a\\t H\\:i',
+ 'fri' => 'Fri',
+ 'jan' => 'jan',
+ 'january' => 'Jan',
+ 'jul' => 'jul',
+ 'july' => 'Jul',
+ 'jun' => 'jun',
+ 'june' => 'Jun',
+ 'last_3_month' => 'Last three months',
+ 'last_6_month' => 'Last six months',
+ 'last_month' => 'Last month',
+ 'last_week' => 'Last week',
+ 'last_year' => 'Last year',
+ 'mar' => 'mar',
+ 'march' => 'Mar',
+ 'may' => 'May',
+ 'mon' => 'Mon',
+ 'month' => 'months',
+ 'nov' => 'nov',
+ 'november' => 'Nov',
+ 'oct' => 'oct',
+ 'october' => 'Oct',
+ 'sat' => 'Sat',
+ 'sep' => 'sep',
+ 'september' => 'Sep',
+ 'sun' => 'Sun',
+ 'thu' => 'Thu',
+ 'today' => 'Today',
+ 'tue' => 'Tue',
+ 'wed' => 'Wed',
+ 'yesterday' => 'Yesterday',
+ ),
+ 'freshrss' => array(
+ '_' => 'FreshRSS',
+ 'about' => 'About FreshRSS',
+ ),
+ 'js' => array(
+ 'category_empty' => 'Empty category',
+ 'confirm_action' => 'Are you sure you want to perform this action? It cannot be cancelled!',
+ 'confirm_action_feed_cat' => 'Are you sure you want to perform this action? You will lose related favorites and user queries. It cannot be cancelled!',
+ 'feedback' => array(
+ 'body_new_articles' => 'There are \\d new articles to read on FreshRSS.',
+ 'request_failed' => 'A request has failed, it may have been caused by Internet connection problems.',
+ 'title_new_articles' => 'FreshRSS: new articles!',
+ ),
+ 'new_article' => 'There are new available articles, click to refresh the page.',
+ 'should_be_activated' => 'JavaScript must be enabled',
+ ),
+ 'lang' => array(
+ 'de' => 'Deutsch',
+ 'en' => 'English',
+ 'fr' => 'Français',
+ ),
+ 'menu' => array(
+ 'about' => 'About',
+ 'admin' => 'Administration',
+ 'archiving' => 'Archiving',
+ 'authentication' => 'Authentication',
+ 'check_install' => 'Installation checking',
+ 'configuration' => 'Configuration',
+ 'display' => 'Display',
+ 'extensions' => 'Extensions',
+ 'logs' => 'Logs',
+ 'queries' => 'User queries',
+ 'reading' => 'Reading',
+ 'search' => 'Search words or #tags',
+ 'sharing' => 'Sharing',
+ 'shortcuts' => 'Shortcuts',
+ 'stats' => 'Statistics',
+ 'update' => 'Update',
+ 'user_management' => 'Manage users',
+ 'user_profile' => 'Profile',
+ ),
+ 'pagination' => array(
+ 'first' => 'First',
+ 'last' => 'Last',
+ 'load_more' => 'Load more articles',
+ 'mark_all_read' => 'Mark all as read',
+ 'next' => 'Next',
+ 'nothing_to_load' => 'There are no more articles',
+ 'previous' => 'Previous',
+ ),
+ 'share' => array(
+ 'blogotext' => 'Blogotext',
+ 'diaspora' => 'Diaspora*',
+ 'email' => 'Email',
+ 'facebook' => 'Facebook',
+ 'g+' => 'Google+',
+ 'print' => 'Print',
+ 'shaarli' => 'Shaarli',
+ 'twitter' => 'Twitter',
+ 'wallabag' => 'wallabag',
+ ),
+ 'short' => array(
+ 'attention' => 'Attention!',
+ 'blank_to_disable' => 'Leave blank to disable',
+ 'by_author' => 'By <em>%s</em>',
+ 'by_default' => 'By default',
+ 'damn' => 'Damn!',
+ 'default_category' => 'Uncategorized',
+ 'no' => 'No',
+ 'ok' => 'Ok!',
+ 'or' => 'or',
+ 'yes' => 'Yes',
+ ),
+);
diff --git a/app/i18n/en/index.php b/app/i18n/en/index.php
new file mode 100644
index 000000000..80fa3d950
--- /dev/null
+++ b/app/i18n/en/index.php
@@ -0,0 +1,61 @@
+<?php
+
+return array(
+ 'about' => array(
+ '_' => 'About',
+ 'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',
+ 'bugs_reports' => 'Bugs reports',
+ 'credits' => 'Credits',
+ 'credits_content' => 'Some design elements come from <a href="http://twitter.github.io/bootstrap/">Bootstrap</a> although FreshRSS doesn’t use this framework. <a href="https://git.gnome.org/browse/gnome-icon-theme-symbolic">Icons</a> come from <a href="https://www.gnome.org/">GNOME project</a>. <em>Open Sans</em> font police has been created by <a href="https://www.google.com/webfonts/specimen/Open+Sans">Steve Matteson</a>. Favicons are collected with <a href="https://getfavicon.appspot.com/">getFavicon API</a>. FreshRSS is based on <a href="https://github.com/marienfressinaud/MINZ">Minz</a>, a PHP framework.',
+ 'freshrss_description' => 'FreshRSS is a RSS feeds aggregator to self-host like <a href="http://tontof.net/kriss/feed/">Kriss Feed</a> or <a href="http://projet.idleman.fr/leed/">Leed</a>. It is light and easy to take in hand while being powerful and configurable tool.',
+ 'github' => '<a href="https://github.com/FreshRSS/FreshRSS/issues">on Github</a>',
+ 'license' => 'License',
+ 'project_website' => 'Project website',
+ 'title' => 'About',
+ 'version' => 'Version',
+ 'website' => 'Website',
+ ),
+ 'feed' => array(
+ 'add' => 'You may add some feeds.',
+ 'empty' => 'There is no article to show.',
+ 'rss_of' => 'RSS feed of %s',
+ 'title' => 'Your RSS feeds',
+ 'title_global' => 'Global view',
+ 'title_fav' => 'Your favourites',
+ ),
+ 'log' => array(
+ '_' => 'Logs',
+ 'clear' => 'Clear the logs',
+ 'empty' => 'Log file is empty',
+ 'title' => 'Logs',
+ ),
+ 'menu' => array(
+ 'about' => 'About FreshRSS',
+ 'add_query' => 'Add a query',
+ 'before_one_day' => 'Before one day',
+ 'before_one_week' => 'Before one week',
+ 'favorites' => 'Favourites (%s)',
+ 'global_view' => 'Global view',
+ 'main_stream' => 'Main stream',
+ 'mark_all_read' => 'Mark all as read',
+ 'mark_cat_read' => 'Mark category as read',
+ 'mark_feed_read' => 'Mark feed as read',
+ 'newer_first' => 'Newer first',
+ 'non-starred' => 'Show all but favorites',
+ 'normal_view' => 'Normal view',
+ 'older_first' => 'Oldest first',
+ 'queries' => 'User queries',
+ 'read' => 'Show only read',
+ 'reader_view' => 'Reading view',
+ 'rss_view' => 'RSS feed',
+ 'search_short' => 'Search',
+ 'starred' => 'Show only favorites',
+ 'stats' => 'Statistics',
+ 'subscription' => 'Subscriptions management',
+ 'unread' => 'Show only unread',
+ ),
+ 'share' => 'Share',
+ 'tag' => array(
+ 'related' => 'Related tags',
+ ),
+);
diff --git a/app/i18n/en/install.php b/app/i18n/en/install.php
new file mode 100644
index 000000000..2bc6bd38f
--- /dev/null
+++ b/app/i18n/en/install.php
@@ -0,0 +1,107 @@
+<?php
+
+return array(
+ 'action' => array(
+ 'finish' => 'Complete installation',
+ 'fix_errors_before' => 'Fix errors before skip to the next step.',
+ 'next_step' => 'Go to the next step',
+ ),
+ 'auth' => array(
+ 'email_persona' => 'Login mail address<br /><small>(for <a href="https://persona.org/" rel="external">Mozilla Persona</a>)</small>',
+ 'form' => 'Web form (traditional, requires JavaScript)',
+ 'http' => 'HTTP (for advanced users with HTTPS)',
+ 'none' => 'None (dangerous)',
+ 'password_form' => 'Password<br /><small>(for the Web-form login method)</small>',
+ 'password_format' => 'At least 7 characters',
+ 'persona' => 'Mozilla Persona (modern, requires JavaScript)',
+ 'type' => 'Authentication method',
+ ),
+ 'bdd' => array(
+ '_' => 'Database',
+ 'conf' => array(
+ '_' => 'Database configuration',
+ 'ko' => 'Verify your database information.',
+ 'ok' => 'Database configuration has been saved.',
+ ),
+ 'host' => 'Host',
+ 'prefix' => 'Table prefix',
+ 'password' => 'HTTP password',
+ 'type' => 'Type of database',
+ 'username' => 'HTTP username',
+ ),
+ 'check' => array(
+ '_' => 'Checks',
+ 'cache' => array(
+ 'nok' => 'Check permissions on <em>./data/cache</em> directory. HTTP server must have rights to write into',
+ 'ok' => 'Permissions on cache directory are good.',
+ ),
+ 'ctype' => array(
+ 'nok' => 'You lack a required library for character type checking (php-ctype).',
+ 'ok' => 'You have the required library for character type checking (ctype).',
+ ),
+ 'curl' => array(
+ 'nok' => 'You lack cURL (php5-curl package).',
+ 'ok' => 'You have cURL extension.',
+ ),
+ 'data' => array(
+ 'nok' => 'Check permissions on <em>./data</em> directory. HTTP server must have rights to write into',
+ 'ok' => 'Permissions on data directory are good.',
+ ),
+ 'dom' => array(
+ 'nok' => 'You lack a required library to browse the DOM (php-xml package).',
+ 'ok' => 'You have the required library to browse the DOM.',
+ ),
+ 'favicons' => array(
+ 'nok' => 'Check permissions on <em>./data/favicons</em> directory. HTTP server must have rights to write into',
+ 'ok' => 'Permissions on favicons directory are good.',
+ ),
+ 'http_referer' => array(
+ 'nok' => 'Please check that you are not altering your HTTP REFERER.',
+ 'ok' => 'Your HTTP REFERER is known and corresponds to your server.',
+ ),
+ 'minz' => array(
+ 'nok' => 'You lack the Minz framework.',
+ 'ok' => 'You have the Minz framework.',
+ ),
+ 'pcre' => array(
+ 'nok' => 'You lack a required library for regular expressions (php-pcre).',
+ 'ok' => 'You have the required library for regular expressions (PCRE).',
+ ),
+ 'pdo' => array(
+ 'nok' => 'You lack PDO or one of the supported drivers (pdo_mysql, pdo_sqlite).',
+ 'ok' => 'You have PDO and at least one of the supported drivers (pdo_mysql, pdo_sqlite).',
+ ),
+ 'persona' => array(
+ 'nok' => 'Check permissions on <em>./data/persona</em> directory. HTTP server must have rights to write into',
+ 'ok' => 'Permissions on Mozilla Persona directory are good.',
+ ),
+ 'php' => array(
+ 'nok' => 'Your PHP version is %s but FreshRSS requires at least version %s.',
+ 'ok' => 'Your PHP version is %s, which is compatible with FreshRSS.',
+ ),
+ 'users' => array(
+ 'nok' => 'Check permissions on <em>./data/users</em> directory. HTTP server must have rights to write into',
+ 'ok' => 'Permissions on users directory are good.',
+ ),
+ ),
+ 'conf' => array(
+ '_' => 'General configuration',
+ 'ok' => 'General configuration has been saved.',
+ ),
+ 'congratulations' => 'Congratulations!',
+ 'default_user' => 'Username of the default user <small>(maximum 16 alphanumeric characters)</small>',
+ 'delete_articles_after' => 'Remove articles after',
+ 'fix_errors_before' => 'Fix errors before skip to the next step.',
+ 'javascript_is_better' => 'FreshRSS is more pleasant with JavaScript enabled',
+ 'language' => array(
+ '_' => 'Language',
+ 'choose' => 'Choose a language for FreshRSS',
+ 'defined' => 'Language has been defined.',
+ ),
+ 'not_deleted' => 'Something went wrong; you must delete the file <em>%s</em> manually.',
+ 'ok' => 'The installation process was successful.',
+ 'step' => 'step %d',
+ 'steps' => 'Steps',
+ 'title' => 'Installation · FreshRSS',
+ 'this_is_the_end' => 'This is the end',
+);
diff --git a/app/i18n/en/sub.php b/app/i18n/en/sub.php
new file mode 100644
index 000000000..2b62e4775
--- /dev/null
+++ b/app/i18n/en/sub.php
@@ -0,0 +1,61 @@
+<?php
+
+return array(
+ 'category' => array(
+ '_' => 'Category',
+ 'add' => 'Add a category',
+ 'empty' => 'Empty category',
+ 'new' => 'New category',
+ ),
+ 'feed' => array(
+ 'add' => 'Add a RSS feed',
+ 'advanced' => 'Advanced',
+ 'archiving' => 'Archivage',
+ 'auth' => array(
+ 'configuration' => 'Login',
+ 'help' => 'Connection allows to access HTTP protected RSS feeds',
+ 'http' => 'HTTP Authentication',
+ 'password' => 'HTTP password',
+ 'username' => 'HTTP username',
+ ),
+ 'css_help' => 'Retrieves truncated RSS feeds (attention, requires more time!)',
+ 'css_path' => 'Articles CSS path on original website',
+ 'description' => 'Description',
+ 'empty' => 'This feed is empty. Please verify that it is still maintained.',
+ 'error' => 'This feed has encountered a problem. Please verify that it is always reachable then actualize it.',
+ 'in_main_stream' => 'Show in main stream',
+ 'informations' => 'Information',
+ 'keep_history' => 'Minimum number of articles to keep',
+ 'moved_category_deleted' => 'When you delete a category, their feeds are automatically classified under <em>%s</em>.',
+ 'no_selected' => 'No feed selected.',
+ 'number_entries' => '%d articles',
+ 'stats' => 'Statistics',
+ 'think_to_add' => 'You may add some feeds.',
+ 'title' => 'Title',
+ 'title_add' => 'Add a RSS feed',
+ 'ttl' => 'Do not automatically refresh more often than',
+ 'url' => 'Feed URL',
+ 'validator' => 'Check the validity of the feed',
+ 'website' => 'Website URL',
+ ),
+ 'import_export' => array(
+ 'export' => 'Export',
+ 'export_opml' => 'Export list of feeds (OPML)',
+ 'export_starred' => 'Export your favourites',
+ 'feed_list' => 'List of %s articles',
+ 'file_to_import' => 'File to import<br />(OPML, Json or Zip)',
+ 'file_to_import_no_zip' => 'File to import<br />(OPML or Json)',
+ 'import' => 'Import',
+ 'starred_list' => 'List of favourite articles',
+ 'title' => 'Import / export',
+ ),
+ 'menu' => array(
+ 'bookmark' => 'Subscribe (FreshRSS bookmark)',
+ 'import_export' => 'Import / export',
+ 'subscription_management' => 'Subscriptions management',
+ ),
+ 'title' => array(
+ '_' => 'Subscriptions management',
+ 'feed_management' => 'RSS feeds management',
+ ),
+);
diff --git a/app/i18n/fr.php b/app/i18n/fr.php
deleted file mode 100644
index c72fc3e93..000000000
--- a/app/i18n/fr.php
+++ /dev/null
@@ -1,455 +0,0 @@
-<?php
-
-return array (
- // LAYOUT
- 'login' => 'Connexion',
- 'keep_logged_in' => 'Rester connecté <small>(1 mois)</small>',
- 'login_with_persona' => 'Connexion avec Persona',
- 'login_persona_problem' => 'Problème de connexion à Persona ?',
- 'logout' => 'Déconnexion',
- 'search' => 'Rechercher des mots ou des #tags',
- 'search_short' => 'Rechercher',
-
- 'configuration' => 'Configuration',
- 'users' => 'Utilisateurs',
- 'categories' => 'Catégories',
- 'category' => 'Catégorie',
- 'feed' => 'Flux',
- 'feeds' => 'Flux',
- 'shortcuts' => 'Raccourcis',
- 'queries' => 'Filtres utilisateurs',
- 'query_search' => 'Recherche de "%s"',
- 'query_order_asc' => 'Afficher les articles les plus anciens en premier',
- 'query_order_desc' => 'Afficher les articles les plus récents en premier',
- 'query_get_category' => 'Afficher la catégorie "%s"',
- 'query_get_feed' => 'Afficher le flux "%s"',
- 'query_get_all' => 'Afficher tous les articles',
- 'query_get_favorite' => 'Afficher les articles favoris',
- 'query_state_0' => 'Afficher tous les articles',
- 'query_state_1' => 'Afficher les articles lus',
- 'query_state_2' => 'Afficher les articles non lus',
- 'query_state_3' => 'Afficher tous les articles',
- 'query_state_4' => 'Afficher les articles favoris',
- 'query_state_5' => 'Afficher les articles lus et favoris',
- 'query_state_6' => 'Afficher les articles non lus et favoris',
- 'query_state_7' => 'Afficher les articles favoris',
- 'query_state_8' => 'Afficher les articles non favoris',
- 'query_state_9' => 'Afficher les articles lus et non favoris',
- 'query_state_10' => 'Afficher les articles non lus et non favoris',
- 'query_state_11' => 'Afficher les articles non favoris',
- 'query_state_12' => 'Afficher tous les articles',
- 'query_state_13' => 'Afficher les articles lus',
- 'query_state_14' => 'Afficher les articles non lus',
- 'query_state_15' => 'Afficher tous les articles',
- 'query_number' => 'Filtre n°%d',
- 'add_query' => 'Créer un filtre',
- 'query_created' => 'Le filtre "%s" a bien été créé.',
- 'no_query' => 'Vous n’avez pas encore créé de filtre.',
- 'query_filter' => 'Filtres appliqués :',
- 'no_query_filter' => 'Aucun filtre appliqué',
- 'query_deprecated' => 'Ce filtre n’est plus valide. La catégorie ou le flux concerné a été supprimé.',
- 'about' => 'À propos',
- 'stats' => 'Statistiques',
- 'stats_idle' => 'Flux inactifs',
- 'stats_main' => 'Statistiques principales',
- 'stats_repartition' => 'Répartition des articles',
- 'stats_entry_per_hour' => 'Par heure',
- 'stats_entry_per_day_of_week' => 'Par jour de la semaine',
- 'stats_entry_per_month' => 'Par mois',
- 'stats_percent_of_total' => '%% du total',
-
- 'last_week' => 'Depuis la semaine dernière',
- 'last_month' => 'Depuis le mois dernier',
- 'last_3_month' => 'Depuis les trois derniers mois',
- 'last_6_month' => 'Depuis les six derniers mois',
- 'last_year' => 'Depuis l’année dernière',
-
- 'your_rss_feeds' => 'Vos flux RSS',
- 'add_rss_feed' => 'Ajouter un flux RSS',
- 'no_rss_feed' => 'Aucun flux RSS',
- 'import_export' => 'Importer / exporter',
- 'bookmark' => 'S’abonner (bookmark FreshRSS)',
-
- 'subscription_management' => 'Gestion des abonnements',
- 'main_stream' => 'Flux principal',
- 'all_feeds' => 'Tous les flux',
- 'favorite_feeds' => 'Favoris (%s)',
- 'not_read' => '%d non lu',
- 'not_reads' => '%d non lus',
-
- 'filter' => 'Filtrer',
- 'see_website' => 'Voir le site',
- 'administration' => 'Gérer',
- 'actualize' => 'Actualiser',
-
- 'mark_read' => 'Marquer comme lu',
- 'mark_favorite' => 'Mettre en favori',
- 'mark_all_read' => 'Tout marquer comme lu',
- 'mark_feed_read' => 'Marquer le flux comme lu',
- 'mark_cat_read' => 'Marquer la catégorie comme lue',
- 'before_one_day' => 'Antérieurs à 1 jour',
- 'before_one_week' => 'Antérieurs à 1 semaine',
- 'display' => 'Affichage',
- 'normal_view' => 'Vue normale',
- 'reader_view' => 'Vue lecture',
- 'global_view' => 'Vue globale',
- 'rss_view' => 'Flux RSS',
- 'show_all_articles' => 'Afficher tous les articles',
- 'show_not_reads' => 'Afficher les non lus',
- 'show_adaptive' => 'Adapter l’affichage',
- 'show_read' => 'Afficher les lus',
- 'show_favorite' => 'Afficher les favoris',
- 'show_not_favorite' => 'Afficher tout sauf les favoris',
- 'older_first' => 'Plus anciens en premier',
- 'newer_first' => 'Plus récents en premier',
-
- // Pagination
- 'first' => 'Début',
- 'previous' => 'Précédent',
- 'next' => 'Suivant',
- 'last' => 'Fin',
-
- // CONTROLLERS
- 'article_published_on' => 'Article publié initialement sur <a href="%s">%s</a>',
- 'article_published_on_author' => 'Article publié initialement sur <a href="%s">%s</a> par %s',
-
- 'access_denied' => 'Vous n’avez pas le droit d’accéder à cette page !',
- 'page_not_found' => 'La page que vous cherchez n’existe pas !',
- 'error_occurred' => 'Une erreur est survenue !',
- 'error_occurred_update' => 'Rien n’a été modifié !',
-
- 'default_category' => 'Sans catégorie',
- 'categories_updated' => 'Les catégories ont été mises à jour.',
- 'categories_management' => 'Gestion des catégories',
- 'feed_updated' => 'Le flux a été mis à jour.',
- 'rss_feed_management' => 'Gestion des flux RSS',
- 'configuration_updated' => 'La configuration a été mise à jour.',
- 'sharing_management' => 'Gestion des options de partage',
- 'bad_opml_file' => 'Votre fichier OPML n’est pas valide.',
- 'shortcuts_updated' => 'Les raccourcis ont été mis à jour.',
- 'shortcuts_navigation' => 'Navigation',
- 'shortcuts_navigation_help' => 'Avec le modificateur "Shift", les raccourcis de navigation s’appliquent aux flux.<br/>Avec le modificateur "Alt", les raccourcis de navigation s’appliquent aux catégories.',
- 'shortcuts_article_action' => 'Actions associées à l’article courant',
- 'shortcuts_other_action' => 'Autres actions',
- 'feeds_marked_read' => 'Les flux ont été marqués comme lus.',
- 'updated' => 'Modifications enregistrées.',
-
- 'already_subscribed' => 'Vous êtes déjà abonné à <em>%s</em>',
- 'feed_added' => 'Le flux <em>%s</em> a bien été ajouté.',
- 'feed_not_added' => '<em>%s</em> n’a pas pu être ajouté.',
- 'internal_problem_feed' => 'Le flux ne peut pas être ajouté. <a href="%s">Consulter les logs de FreshRSS</a> pour plus de détails.',
- 'invalid_url' => 'L’url <em>%s</em> est invalide.',
- 'feed_actualized' => '<em>%s</em> a été mis à jour.',
- 'n_feeds_actualized' => '%d flux ont été mis à jour.',
- 'feeds_actualized' => 'Les flux ont été mis à jour.',
- 'no_feed_actualized' => 'Aucun flux n’a pu être mis à jour.',
- 'n_entries_deleted' => '%d articles ont été supprimés.',
- 'feeds_imported_with_errors' => 'Vos flux ont été importés mais des erreurs sont survenues.',
- 'feeds_imported' => 'Vos flux ont été importés et vont maintenant être actualisés.',
- 'category_emptied' => 'La catégorie a été vidée.',
- 'feed_deleted' => 'Le flux a été supprimé.',
- 'feed_validator' => 'Vérifier la valididé du flux',
-
- 'optimization_complete' => 'Optimisation terminée.',
-
- 'your_rss_feeds' => 'Vos flux RSS',
- 'your_favorites' => 'Vos favoris',
- 'public' => 'Public',
- 'invalid_login' => 'L’identifiant est invalide !',
-
- 'file_is_nok' => 'Veuillez vérifier les droits sur le répertoire <em>%s</em>. Le serveur HTTP doit être capable d’écrire dedans.',
-
- // VIEWS
- 'save' => 'Enregistrer',
- 'delete' => 'Supprimer',
- 'cancel' => 'Annuler',
- 'submit' => 'Valider',
-
- 'back_to_rss_feeds' => '← Retour à vos flux RSS',
- 'feeds_moved_category_deleted' => 'Lors de la suppression d’une catégorie, ses flux seront automatiquement classés dans <em>%s</em>.',
- 'category_number' => 'Catégorie n°%d',
- 'ask_empty' => 'Vider ?',
- 'number_feeds' => '%d flux',
- 'can_not_be_deleted' => 'Ne peut pas être supprimée.',
- 'add_category' => 'Ajouter une catégorie',
- 'new_category' => 'Nouvelle catégorie',
-
- 'javascript_for_shortcuts' => 'Le JavaScript doit être activé pour pouvoir profiter des raccourcis.',
- 'javascript_should_be_activated'=> 'Le JavaScript doit être activé.',
- 'shift_for_all_read' => '+ <code>shift</code> pour marquer tous les articles comme lus',
- 'see_on_website' => 'Voir sur le site d’origine',
- 'next_article' => 'Passer à l’article suivant',
- 'last_article' => 'Passer au dernier article',
- 'previous_article' => 'Passer à l’article précédent',
- 'first_article' => 'Passer au premier article',
- 'next_page' => 'Passer à la page suivante',
- 'previous_page' => 'Passer à la page précédente',
- 'collapse_article' => 'Refermer',
- 'auto_share' => 'Partager',
- 'auto_share_help' => 'S’il n’y a qu’un mode de partage, celui ci est utilisé automatiquement. Sinon ils sont accessibles par leur numéro.',
- 'focus_search' => 'Accéder à la recherche',
- 'user_filter' => 'Accéder aux filtres utilisateur',
- 'user_filter_help' => 'S’il n’y a qu’un filtre utilisateur, celui ci est utilisé automatiquement. Sinon ils sont accessibles par leur numéro.',
- 'help' => 'Afficher la documentation',
-
- 'file_to_import' => 'Fichier à importer<br />(OPML, Json ou Zip)',
- 'file_to_import_no_zip' => 'Fichier à importer<br />(OPML ou Json)',
- 'import' => 'Importer',
- 'file_cannot_be_uploaded' => 'Le fichier ne peut pas être téléchargé!',
- 'zip_error' => 'Une erreur est survenue durant l’import du fichier Zip.',
- 'no_zip_extension' => 'L’extension Zip n’est pas présente sur votre serveur.',
- 'export' => 'Exporter',
- 'export_opml' => 'Exporter la liste des flux (OPML)',
- 'export_starred' => 'Exporter les favoris',
- 'export_no_zip_extension' => 'L’extension Zip n’est pas présente sur votre serveur. Veuillez essayer d’exporter les fichiers un par un.',
- 'starred_list' => 'Liste des articles favoris',
- 'feed_list' => 'Liste des articles de %s',
- 'or' => 'ou',
-
- 'informations' => 'Informations',
- 'damn' => 'Arf !',
- 'ok' => 'Ok !',
- 'attention' => 'Attention !',
- 'feed_in_error' => 'Ce flux a rencontré un problème. Veuillez vérifier qu’il est toujours accessible puis actualisez-le.',
- 'feed_empty' => 'Ce flux est vide. Veuillez vérifier qu’il est toujours maintenu.',
- 'feed_description' => 'Description',
- 'website_url' => 'URL du site',
- 'feed_url' => 'URL du flux',
- 'articles' => 'articles',
- 'number_articles' => '%d articles',
- 'by_feed' => 'par flux',
- 'by_default' => 'Par défaut',
- 'keep_history' => 'Nombre minimum d’articles à conserver',
- 'ttl' => 'Ne pas automatiquement rafraîchir plus souvent que',
- 'categorize' => 'Ranger dans une catégorie',
- 'truncate' => 'Supprimer tous les articles',
- 'advanced' => 'Avancé',
- 'show_in_all_flux' => 'Afficher dans le flux principal',
- 'yes' => 'Oui',
- 'no' => 'Non',
- 'css_path_on_website' => 'Sélecteur CSS des articles sur le site d’origine',
- 'retrieve_truncated_feeds' => 'Permet de récupérer les flux tronqués (attention, demande plus de temps !)',
- 'http_authentication' => 'Authentification HTTP',
- 'http_username' => 'Identifiant HTTP',
- 'http_password' => 'Mot de passe HTTP',
- 'blank_to_disable' => 'Laissez vide pour désactiver',
- 'share_name' => 'Nom du partage à afficher',
- 'share_url' => 'URL du partage à utiliser',
- 'not_yet_implemented' => 'Pas encore implémenté',
- 'access_protected_feeds' => 'La connexion permet d’accéder aux flux protégés par une authentification HTTP.',
- 'no_selected_feed' => 'Aucun flux sélectionné.',
- 'think_to_add' => 'Vous pouvez ajouter des flux.',
-
- 'current_user' => 'Utilisateur actuel',
- 'password_form' => 'Mot de passe<br /><small>(pour connexion par formulaire)</small>',
- 'password_api' => 'Mot de passe API<br /><small>(ex. : pour applis mobiles)</small>',
- 'default_user' => 'Nom de l’utilisateur par défaut <small>(16 caractères alphanumériques maximum)</small>',
- 'persona_connection_email' => 'Adresse courriel de connexion<br /><small>(pour <a href="https://persona.org/" rel="external">Mozilla Persona</a>)</small>',
- 'allow_anonymous' => 'Autoriser la lecture anonyme des articles de l’utilisateur par défaut (%s)',
- 'allow_anonymous_refresh' => 'Autoriser le rafraîchissement anonyme des flux',
- 'unsafe_autologin' => 'Autoriser les connexions automatiques non-sûres au format : ',
- 'api_enabled' => 'Autoriser l’accès par <abbr>API</abbr> <small>(nécessaire pour les applis mobiles)</small>',
- 'auth_token' => 'Jeton d’identification',
- 'explain_token' => 'Permet d’accéder à la sortie RSS de l’utilisateur par défaut sans besoin de s’authentifier.<br /><kbd>%s?output=rss&amp;token=%s</kbd>',
- 'login_configuration' => 'Identification',
- 'is_admin' => 'est administrateur',
- 'auth_type' => 'Méthode d’authentification',
- 'auth_none' => 'Aucune (dangereux)',
- 'auth_form' => 'Formulaire (traditionnel, requiert JavaScript)',
- 'http_auth' => 'HTTP (pour utilisateurs avancés avec HTTPS)',
- 'auth_persona' => 'Mozilla Persona (moderne, requiert JavaScript)',
- 'users_list' => 'Liste des utilisateurs',
- 'create_user' => 'Créer un nouvel utilisateur',
- 'username' => 'Nom d’utilisateur',
- 'username_admin' => 'Nom d’utilisateur administrateur',
- 'password' => 'Mot de passe',
- 'create' => 'Créer',
- 'user_created' => 'L’utilisateur %s a été créé.',
- 'user_deleted' => 'L’utilisateur %s a été supprimé.',
-
- 'language' => 'Langue',
- 'month' => 'mois',
- 'archiving_configuration' => 'Archivage',
- 'delete_articles_every' => 'Supprimer les articles après',
- 'purge_now' => 'Purger maintenant',
- 'purge_completed' => 'Purge effectuée (%d articles supprimés).',
- 'archiving_configuration_help' => 'D’autres options sont disponibles dans la configuration individuelle des flux.',
- 'reading_configuration' => 'Lecture',
- 'display_configuration' => 'Affichage',
- 'articles_per_page' => 'Nombre d’articles par page',
- 'number_divided_when_reader' => 'Divisé par 2 dans la vue de lecture.',
- 'default_view' => 'Vue par défaut',
- 'articles_to_display' => 'Articles à afficher',
- 'sort_order' => 'Ordre de tri',
- 'auto_load_more' => 'Charger les articles suivants en bas de page',
- 'display_articles_unfolded' => 'Afficher les articles dépliés par défaut',
- 'display_categories_unfolded' => 'Afficher les catégories pliées par défaut',
- 'hide_read_feeds' => 'Cacher les catégories &amp; flux sans article non-lu (ne fonctionne pas avec la configuration “Afficher tous les articles”)',
- 'after_onread' => 'Après “marquer tout comme lu”,',
- 'jump_next' => 'sauter au prochain voisin non lu (flux ou catégorie)',
- 'article_icons' => 'Icônes d’article',
- 'top_line' => 'Ligne du haut',
- 'bottom_line' => 'Ligne du bas',
- 'html5_notif_timeout' => 'Temps d’affichage de la notification HTML5',
- 'seconds_(0_means_no_timeout)' => 'secondes (0 signifie aucun timeout ) ',
- 'img_with_lazyload' => 'Utiliser le mode “chargement différé” pour les images',
- 'sticky_post' => 'Aligner l’article en haut quand il est ouvert',
- 'reading_confirm' => 'Afficher une confirmation lors des actions “marquer tout comme lu”',
- 'auto_read_when' => 'Marquer un article comme lu…',
- 'article_viewed' => 'lorsque l’article est affiché',
- 'article_open_on_website' => 'lorsque l’article est ouvert sur le site d’origine',
- 'scroll' => 'au défilement de la page',
- 'upon_reception' => 'dès la réception du nouvel article',
- 'your_shaarli' => 'Votre Shaarli',
- 'your_wallabag' => 'Votre wallabag',
- 'your_diaspora_pod' => 'Votre pod Diaspora*',
- 'sharing' => 'Partage',
- 'share' => 'Partager',
- 'by_email' => 'Par courriel',
- 'optimize_bdd' => 'Optimiser la base de données',
- 'optimize_todo_sometimes' => 'À faire de temps en temps pour réduire la taille de la BDD',
- 'theme' => 'Thème',
- 'content_width' => 'Largeur du contenu',
- 'width_thin' => 'Fine',
- 'width_medium' => 'Moyenne',
- 'width_large' => 'Large',
- 'width_no_limit' => 'Pas de limite',
- 'more_information' => 'Plus d’informations',
- 'activate_sharing' => 'Activer le partage',
- 'shaarli' => 'Shaarli',
- 'blogotext' => 'Blogotext',
- 'wallabag' => 'wallabag',
- 'diaspora' => 'Diaspora*',
- 'twitter' => 'Twitter',
- 'g+' => 'Google+',
- 'facebook' => 'Facebook',
- 'email' => 'Courriel',
- 'print' => 'Imprimer',
-
- 'article' => 'Article',
- 'title' => 'Titre',
- 'author' => 'Auteur',
- 'publication_date' => 'Date de publication',
- 'by' => 'par',
-
- 'load_more' => 'Charger plus d’articles',
- 'nothing_to_load' => 'Fin des articles',
-
- 'rss_feeds_of' => 'Flux RSS de %s',
-
- 'refresh' => 'Actualisation',
- 'no_feed_to_refresh' => 'Il n’y a aucun flux à actualiser…',
-
- 'today' => 'Aujourd’hui',
- 'yesterday' => 'Hier',
- 'before_yesterday' => 'À partir d’avant-hier',
- 'new_article' => 'Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.',
- 'by_author' => 'Par <em>%s</em>',
- 'related_tags' => 'Tags associés',
- 'no_feed_to_display' => 'Il n’y a aucun article à afficher.',
-
- 'about_freshrss' => 'À propos de FreshRSS',
- 'project_website' => 'Site du projet',
- 'lead_developer' => 'Développeur principal',
- 'website' => 'Site Internet',
- 'bugs_reports' => 'Rapports de bugs',
- 'github_or_email' => '<a href="https://github.com/marienfressinaud/FreshRSS/issues">sur Github</a> ou <a href="mailto:dev@marienfressinaud.fr">par courriel</a>',
- 'license' => 'Licence',
- 'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',
- 'freshrss_description' => 'FreshRSS est un agrégateur de flux RSS à auto-héberger à l’image de <a href="http://tontof.net/kriss/feed/">Kriss Feed</a> ou <a href="http://projet.idleman.fr/leed/">Leed</a>. Il se veut léger et facile à prendre en main tout en étant un outil puissant et paramétrable.',
- 'credits' => 'Crédits',
- 'credits_content' => 'Des éléments de design sont issus du <a href="http://twitter.github.io/bootstrap/">projet Bootstrap</a> bien que FreshRSS n’utilise pas ce framework. Les <a href="https://git.gnome.org/browse/gnome-icon-theme-symbolic">icônes</a> sont issues du <a href="https://www.gnome.org/">projet GNOME</a>. La police <em>Open Sans</em> utilisée a été créée par <a href="https://www.google.com/webfonts/specimen/Open+Sans">Steve Matteson</a>. Les favicons sont récupérés grâce au site <a href="https://getfavicon.appspot.com/">getFavicon</a>. FreshRSS repose sur <a href="https://github.com/marienfressinaud/MINZ">Minz</a>, un framework PHP.',
- 'version' => 'Version',
-
- 'logs' => 'Logs',
- 'logs_empty' => 'Les logs sont vides.',
- 'clear_logs' => 'Effacer les logs',
-
- 'forbidden_access' => 'L’accès vous est interdit !',
- 'login_required' => 'Accès protégé par mot de passe :',
-
- 'confirm_action' => 'Êtes-vous sûr(e) de vouloir continuer ? Cette action ne peut être annulée !',
- 'confirm_action_feed_cat' => 'Êtes-vous sûr(e) de vouloir continuer ? Vous pourriez perdre les favoris et les filtres associés. Cette action ne peut être annulée !',
- 'notif_title_new_articles' => 'FreshRSS : nouveaux articles !',
- 'notif_body_new_articles' => 'Il y a \d nouveaux articles à lire sur FreshRSS.',
-
- // DATE
- 'january' => 'janvier',
- 'february' => 'février',
- 'march' => 'mars',
- 'april' => 'avril',
- 'may' => 'mai',
- 'june' => 'juin',
- 'july' => 'juillet',
- 'august' => 'août',
- 'september' => 'septembre',
- 'october' => 'octobre',
- 'november' => 'novembre',
- 'december' => 'décembre',
- 'jan' => 'jan.',
- 'feb' => 'fév.',
- 'mar' => 'mar.',
- 'apr' => 'avr.',
- 'may' => 'mai.',
- 'jun' => 'juin',
- 'jul' => 'jui.',
- 'aug' => 'août',
- 'sep' => 'sep.',
- 'oct' => 'oct.',
- 'nov' => 'nov.',
- 'dec' => 'déc.',
- 'sun' => 'dim.',
- 'mon' => 'lun.',
- 'tue' => 'mar.',
- 'wed' => 'mer.',
- 'thu' => 'jeu.',
- 'fri' => 'ven.',
- 'sat' => 'sam.',
- // format spécial pour la fonction date()
- 'Jan' => '\j\a\n\v\i\e\r',
- 'Feb' => '\f\é\v\r\i\e\r',
- 'Mar' => '\m\a\r\s',
- 'Apr' => '\a\v\r\i\l',
- 'May' => '\m\a\i',
- 'Jun' => '\j\u\i\n',
- 'Jul' => '\j\u\i\l\l\e\t',
- 'Aug' => '\a\o\û\t',
- 'Sep' => '\s\e\p\t\e\m\b\r\e',
- 'Oct' => '\o\c\t\o\b\r\e',
- 'Nov' => '\n\o\v\e\m\b\r\e',
- 'Dec' => '\d\é\c\e\m\b\r\e',
- // format pour la fonction date(), %s permet d'indiquer le mois en toutes lettres
- 'format_date' => 'j %s Y',
- 'format_date_hour' => 'j %s Y \à H\:i',
-
- 'status_favorites' => 'favoris',
- 'status_read' => 'lus',
- 'status_unread' => 'non lus',
- 'status_total' => 'total',
-
- 'stats_entry_repartition' => 'Répartition des articles',
- 'stats_entry_per_day' => 'Nombre d’articles par jour (30 derniers jours)',
- 'stats_feed_per_category' => 'Flux par catégorie',
- 'stats_entry_per_category' => 'Articles par catégorie',
- 'stats_top_feed' => 'Les dix plus gros flux',
- 'stats_entry_count' => 'Nombre d’articles',
- 'stats_no_idle' => 'Il n’y a aucun flux inactif !',
-
- 'update' => 'Mise à jour',
- 'update_system' => 'Système de mise à jour',
- 'update_check' => 'Vérifier les mises à jour',
- 'update_last' => 'Dernière vérification : %s',
- 'update_can_apply' => 'Une mise à jour est disponible.',
- 'update_apply' => 'Appliquer la mise à jour',
- 'update_server_not_found' => 'Le serveur de mise à jour n’a pas été trouvé. [%s]',
- 'no_update' => 'Aucune mise à jour à appliquer',
- 'update_problem' => 'La mise à jour a rencontré un problème : %s',
- 'update_finished' => 'La mise à jour est terminée !',
-
- 'auth_reset' => 'Réinitialisation de l’authentification',
- 'auth_will_reset' => 'Le système d’authentification va être réinitialisé : un formulaire sera utilisé à la place de Persona.',
- 'auth_not_persona' => 'Seul le système d’authentification Persona peut être réinitialisé.',
- 'auth_no_password_set' => 'Aucun mot de passe administrateur n’a été précisé. Cette fonctionnalité n’est pas disponible.',
- 'auth_form_set' => 'Le formulaire est désormais votre système d’authentification.',
- 'auth_form_not_set' => 'Un problème est survenu lors de la configuration de votre système d’authentification. Veuillez réessayer plus tard.',
-);
diff --git a/app/i18n/fr/admin.php b/app/i18n/fr/admin.php
new file mode 100644
index 000000000..b740bd0d2
--- /dev/null
+++ b/app/i18n/fr/admin.php
@@ -0,0 +1,170 @@
+<?php
+
+return array(
+ 'auth' => array(
+ 'allow_anonymous' => 'Autoriser la lecture anonyme des articles de l’utilisateur par défaut (%s)',
+ 'allow_anonymous_refresh' => 'Autoriser le rafraîchissement anonyme des flux',
+ 'api_enabled' => 'Autoriser l’accès par <abbr>API</abbr> <small>(nécessaire pour les applis mobiles)</small>',
+ 'form' => 'Formulaire (traditionnel, requiert JavaScript)',
+ 'http' => 'HTTP (pour utilisateurs avancés avec HTTPS)',
+ 'none' => 'Aucune (dangereux)',
+ 'persona' => 'Mozilla Persona (moderne, requiert JavaScript)',
+ 'title' => 'Authentification',
+ 'title_reset' => 'Réinitialisation de l’authentification',
+ 'token' => 'Jeton d’identification',
+ 'token_help' => 'Permet d’accéder à la sortie RSS de l’utilisateur par défaut sans besoin de s’authentifier :',
+ 'type' => 'Méthode d’authentification',
+ 'unsafe_autologin' => 'Autoriser les connexions automatiques non-sûres au format : ',
+ ),
+ 'check_install' => array(
+ 'cache' => array(
+ 'nok' => 'Veuillez vérifier les droits sur le répertoire <em>./data/cache</em>. Le serveur HTTP doit être capable d’écrire dedans',
+ 'ok' => 'Les droits sur le répertoire de cache sont bons.',
+ ),
+ 'categories' => array(
+ 'nok' => 'La table category est mal configurée.',
+ 'ok' => 'La table category est bien configurée.',
+ ),
+ 'connection' => array(
+ 'nok' => 'La connexion à la base de données est impossible.',
+ 'ok' => 'La connexion à la base de données est bonne.',
+ ),
+ 'ctype' => array(
+ 'nok' => 'Il manque une librairie pour la vérification des types de caractères (php-ctype).',
+ 'ok' => 'Vous disposez du nécessaire pour la vérification des types de caractères (ctype).',
+ ),
+ 'curl' => array(
+ 'nok' => 'Vous ne disposez pas de cURL (paquet php5-curl).',
+ 'ok' => 'Vous disposez de cURL.',
+ ),
+ 'data' => array(
+ 'nok' => 'Veuillez vérifier les droits sur le répertoire <em>./data</em>. Le serveur HTTP doit être capable d’écrire dedans',
+ 'ok' => 'Les droits sur le répertoire de data sont bons.',
+ ),
+ 'database' => 'Installation de la base de données',
+ 'dom' => array(
+ 'nok' => 'Il manque une librairie pour parcourir le DOM (paquet php-xml).',
+ 'ok' => 'Vous disposez du nécessaire pour parcourir le DOM.',
+ ),
+ 'entries' => array(
+ 'nok' => 'La table entry est mal configurée.',
+ 'ok' => 'La table entry est bien configurée.',
+ ),
+ 'favicons' => array(
+ 'nok' => 'Veuillez vérifier les droits sur le répertoire <em>./data/favicons</em>. Le serveur HTTP doit être capable d’écrire dedans',
+ 'ok' => 'Les droits sur le répertoire des favicons sont bons.',
+ ),
+ 'feeds' => array(
+ 'nok' => 'La table feed est mal configurée.',
+ 'ok' => 'La table feed est bien configurée.',
+ ),
+ 'files' => 'Installation des fichiers',
+ 'json' => array(
+ 'nok' => 'Vous ne disposez pas de JSON (paquet php5-json).',
+ 'ok' => 'Vous disposez de l\'extension JSON.',
+ ),
+ 'minz' => array(
+ 'nok' => 'Vous ne disposez pas de la librairie Minz.',
+ 'ok' => 'Vous disposez du framework Minz',
+ ),
+ 'pcre' => array(
+ 'nok' => 'Il manque une librairie pour les expressions régulières (php-pcre).',
+ 'ok' => 'Vous disposez du nécessaire pour les expressions régulières (PCRE).',
+ ),
+ 'pdo' => array(
+ 'nok' => 'Vous ne disposez pas de PDO ou d’un des drivers supportés (pdo_mysql, pdo_sqlite).',
+ 'ok' => 'Vous disposez de PDO et d’au moins un des drivers supportés (pdo_mysql, pdo_sqlite).',
+ ),
+ 'persona' => array(
+ 'nok' => 'Veuillez vérifier les droits sur le répertoire <em>./data/persona</em>. Le serveur HTTP doit être capable d’écrire dedans',
+ 'ok' => 'Les droits sur le répertoire de Mozilla Persona sont bons.',
+ ),
+ 'php' => array(
+ '_' => 'Installation de PHP',
+ 'nok' => 'Votre version de PHP est la %s mais FreshRSS requiert au moins la version %s.',
+ 'ok' => 'Votre version de PHP est la %s, qui est compatible avec FreshRSS.',
+ ),
+ 'tables' => array(
+ 'nok' => 'Il manque une ou plusieurs tables en base de données.',
+ 'ok' => 'Les tables sont bien présentes en base de données.',
+ ),
+ 'title' => 'Vérification de l’installation',
+ 'tokens' => array(
+ 'nok' => 'Veuillez vérifier les droits sur le répertoire <em>./data/tokens</em>. Le serveur HTTP doit être capable d’écrire dedans',
+ 'ok' => 'Les droits sur le répertoire des tokens sont bons.',
+ ),
+ 'users' => array(
+ 'nok' => 'Veuillez vérifier les droits sur le répertoire <em>./data/users</em>. Le serveur HTTP doit être capable d’écrire dedans',
+ 'ok' => 'Les droits sur le répertoire des utilisateurs sont bons.',
+ ),
+ 'zip' => array(
+ 'nok' => 'Vous ne disposez pas de l\'extension ZIP (paquet php5-zip).',
+ 'ok' => 'Vous disposez de l\'extension ZIP.',
+ ),
+ ),
+ 'extensions' => array(
+ 'disabled' => 'Désactivée',
+ 'empty_list' => 'Il n’y a aucune extension installée.',
+ 'enabled' => 'Activée',
+ 'no_configure_view' => 'Cette extension ne peut pas être configurée.',
+ 'system' => array(
+ '_' => 'Extensions système',
+ 'no_rights' => 'Extension système (vous n’avez aucun droit dessus)',
+ ),
+ 'title' => 'Extensions',
+ 'user' => 'Extensions utilisateur',
+ ),
+ 'stats' => array(
+ '_' => 'Statistiques',
+ 'all_feeds' => 'Tous les flux',
+ 'category' => 'Catégorie',
+ 'entry_count' => 'Nombre d’articles',
+ 'entry_per_category' => 'Articles par catégorie',
+ 'entry_per_day' => 'Nombre d’articles par jour (30 derniers jours)',
+ 'entry_per_day_of_week' => 'Par jour de la semaine (moyenne : %.2f messages)',
+ 'entry_per_hour' => 'Par heure (moyenne : %.2f messages)',
+ 'entry_per_month' => 'Par mois (moyenne : %.2f messages)',
+ 'entry_repartition' => 'Répartition des articles',
+ 'feed' => 'Flux',
+ 'feed_per_category' => 'Flux par catégorie',
+ 'idle' => 'Flux inactifs',
+ 'main' => 'Statistiques principales',
+ 'main_stream' => 'Flux principal',
+ 'menu' => array(
+ 'idle' => 'Flux inactifs',
+ 'main' => 'Statistiques principales',
+ 'repartition' => 'Répartition des articles',
+ ),
+ 'no_idle' => 'Il n’y a aucun flux inactif !',
+ 'number_entries' => '%d articles',
+ 'percent_of_total' => '%% du total',
+ 'repartition' => 'Répartition des articles',
+ 'status_favorites' => 'favoris',
+ 'status_read' => 'lus',
+ 'status_total' => 'total',
+ 'status_unread' => 'non lus',
+ 'title' => 'Statistiques',
+ 'top_feed' => 'Les dix plus gros flux',
+ ),
+ 'update' => array(
+ '_' => 'Système de mise à jour',
+ 'apply' => 'Appliquer la mise à jour',
+ 'check' => 'Vérifier les mises à jour',
+ 'current_version' => 'Votre version actuelle de FreshRSS est la %s.',
+ 'last' => 'Dernière vérification : %s',
+ 'none' => 'Aucune mise à jour à appliquer',
+ 'title' => 'Système de mise à jour',
+ ),
+ 'user' => array(
+ 'articles_and_size' => '%s articles (%s)',
+ 'create' => 'Créer un nouvel utilisateur',
+ 'email_persona' => 'Adresse courriel de connexion<br /><small>(pour <a href="https://persona.org/" rel="external">Mozilla Persona</a>)</small>',
+ 'language' => 'Langue',
+ 'password_form' => 'Mot de passe<br /><small>(pour connexion par formulaire)</small>',
+ 'password_format' => '7 caractères minimum',
+ 'title' => 'Gestion des utilisateurs',
+ 'user_list' => 'Liste des utilisateurs',
+ 'username' => 'Nom d’utilisateur',
+ 'users' => 'Utilisateurs',
+ ),
+);
diff --git a/app/i18n/fr/conf.php b/app/i18n/fr/conf.php
new file mode 100644
index 000000000..d38445b99
--- /dev/null
+++ b/app/i18n/fr/conf.php
@@ -0,0 +1,169 @@
+<?php
+
+return array(
+ 'archiving' => array(
+ '_' => 'Archivage',
+ 'advanced' => 'Avancé',
+ 'delete_after' => 'Supprimer les articles après',
+ 'help' => 'D’autres options sont disponibles dans la configuration individuelle des flux.',
+ 'keep_history_by_feed' => 'Nombre minimum d’articles à conserver par flux',
+ 'optimize' => 'Optimiser la base de données',
+ 'optimize_help' => 'À faire de temps en temps pour réduire la taille de la BDD',
+ 'purge_now' => 'Purger maintenant',
+ 'title' => 'Archivage',
+ 'ttl' => 'Ne pas automatiquement rafraîchir plus souvent que',
+ ),
+ 'display' => array(
+ '_' => 'Affichage',
+ 'icon' => array(
+ 'bottom_line' => 'Ligne du bas',
+ 'entry' => 'Icônes d’article',
+ 'publication_date' => 'Date de publication',
+ 'related_tags' => 'Tags associés',
+ 'sharing' => 'Partage',
+ 'top_line' => 'Ligne du haut',
+ ),
+ 'language' => 'Langue',
+ 'notif_html5' => array(
+ 'seconds' => 'secondes (0 signifie aucun timeout)',
+ 'timeout' => 'Temps d’affichage de la notification HTML5',
+ ),
+ 'theme' => 'Thème',
+ 'title' => 'Affichage',
+ 'width' => array(
+ 'content' => 'Largeur du contenu',
+ 'large' => 'Large',
+ 'medium' => 'Moyenne',
+ 'no_limit' => 'Pas de limite',
+ 'thin' => 'Fine',
+ ),
+ ),
+ 'query' => array(
+ '_' => 'Filtres utilisateurs',
+ 'deprecated' => 'Ce filtre n’est plus valide. La catégorie ou le flux concerné a été supprimé.',
+ 'filter' => 'Filtres appliqués :',
+ 'get_all' => 'Afficher tous les articles',
+ 'get_category' => 'Afficher la catégorie "%s"',
+ 'get_favorite' => 'Afficher les articles favoris',
+ 'get_feed' => 'Afficher le flux "%s"',
+ 'no_filter' => 'Aucun filtre appliqué',
+ 'none' => 'Vous n’avez pas encore créé de filtre.',
+ 'number' => 'Filtre n°%d',
+ 'order_asc' => 'Afficher les articles les plus anciens en premier',
+ 'order_desc' => 'Afficher les articles les plus récents en premier',
+ 'search' => 'Recherche de "%s"',
+ 'state_0' => 'Afficher tous les articles',
+ 'state_1' => 'Afficher les articles lus',
+ 'state_2' => 'Afficher les articles non lus',
+ 'state_3' => 'Afficher tous les articles',
+ 'state_4' => 'Afficher les articles favoris',
+ 'state_5' => 'Afficher les articles lus et favoris',
+ 'state_6' => 'Afficher les articles non lus et favoris',
+ 'state_7' => 'Afficher les articles favoris',
+ 'state_8' => 'Afficher les articles non favoris',
+ 'state_9' => 'Afficher les articles lus et non favoris',
+ 'state_10' => 'Afficher les articles non lus et non favoris',
+ 'state_11' => 'Afficher les articles non favoris',
+ 'state_12' => 'Afficher tous les articles',
+ 'state_13' => 'Afficher les articles lus',
+ 'state_14' => 'Afficher les articles non lus',
+ 'state_15' => 'Afficher tous les articles',
+ 'title' => 'Filtres utilisateurs',
+ ),
+ 'profile' => array(
+ '_' => 'Gestion du profil',
+ 'email_persona' => 'Adresse courriel de connexion<br /><small>(pour <a href="https://persona.org/" rel="external">Mozilla Persona</a>)</small>',
+ 'password_api' => 'Mot de passe API<br /><small>(ex. : pour applis mobiles)</small>',
+ 'password_form' => 'Mot de passe<br /><small>(pour connexion par formulaire)</small>',
+ 'password_format' => '7 caractères minimum',
+ 'title' => 'Profil',
+ ),
+ 'reading' => array(
+ '_' => 'Lecture',
+ 'after_onread' => 'Après “marquer tout comme lu”,',
+ 'articles_per_page' => 'Nombre d’articles par page',
+ 'auto_load_more' => 'Charger les articles suivants en bas de page',
+ 'auto_remove_article' => 'Cacher les articles après lecture',
+ 'confirm_enabled' => 'Afficher une confirmation lors des actions “marquer tout comme lu”',
+ 'display_articles_unfolded' => 'Afficher les articles dépliés par défaut',
+ 'display_categories_unfolded' => 'Afficher les catégories pliées par défaut',
+ 'hide_read_feeds' => 'Cacher les catégories & flux sans article non-lu (ne fonctionne pas avec la configuration “Afficher tous les articles”)',
+ 'img_with_lazyload' => 'Utiliser le mode “chargement différé” pour les images',
+ 'jump_next' => 'sauter au prochain voisin non lu (flux ou catégorie)',
+ 'number_divided_when_reader' => 'Divisé par 2 dans la vue de lecture.',
+ 'read' => array(
+ 'article_open_on_website' => 'lorsque l’article est ouvert sur le site d’origine',
+ 'article_viewed' => 'lorsque l’article est affiché',
+ 'scroll' => 'au défilement de la page',
+ 'upon_reception' => 'dès la réception du nouvel article',
+ 'when' => 'Marquer un article comme lu…',
+ ),
+ 'show' => array(
+ '_' => 'Articles à afficher',
+ 'adaptive' => 'Adapter l’affichage',
+ 'all_articles' => 'Afficher tous les articles',
+ 'unread' => 'Afficher les non lus',
+ ),
+ 'sort' => array(
+ '_' => 'Ordre de tri',
+ 'newer_first' => 'Plus récents en premier',
+ 'older_first' => 'Plus anciens en premier',
+ ),
+ 'sticky_post' => 'Aligner l’article en haut quand il est ouvert',
+ 'title' => 'Lecture',
+ 'view' => array(
+ 'default' => 'Vue par défaut',
+ 'global' => 'Vue globale',
+ 'normal' => 'Vue normale',
+ 'reader' => 'Vue lecture',
+ ),
+ ),
+ 'sharing' => array(
+ '_' => 'Partage',
+ 'blogotext' => 'Blogotext',
+ 'diaspora' => 'Diaspora*',
+ 'email' => 'Courriel',
+ 'facebook' => 'Facebook',
+ 'g+' => 'Google+',
+ 'more_information' => 'Plus d’informations',
+ 'print' => 'Print',
+ 'shaarli' => 'Shaarli',
+ 'share_name' => 'Nom du partage à afficher',
+ 'share_url' => 'URL du partage à utiliser',
+ 'title' => 'Partage',
+ 'twitter' => 'Twitter',
+ 'wallabag' => 'wallabag',
+ ),
+ 'shortcut' => array(
+ '_' => 'Raccourcis',
+ 'article_action' => 'Actions associées à l’article courant',
+ 'auto_share' => 'Partager',
+ 'auto_share_help' => 'S’il n’y a qu’un mode de partage, celui-ci est utilisé automatiquement. Sinon ils sont accessibles par leur numéro.',
+ 'close_dropdown' => 'Fermer les menus',
+ 'collapse_article' => 'Refermer',
+ 'first_article' => 'Passer au premier article',
+ 'focus_search' => 'Accéder à la recherche',
+ 'help' => 'Afficher la documentation',
+ 'javascript' => 'Le JavaScript doit être activé pour pouvoir profiter des raccourcis.',
+ 'last_article' => 'Passer au dernier article',
+ 'load_more' => 'Charger plus d’articles',
+ 'mark_read' => 'Marquer comme lu',
+ 'mark_favorite' => 'Mettre en favori',
+ 'navigation' => 'Navigation',
+ 'navigation_help' => 'Avec le modificateur "Shift", les raccourcis de navigation s’appliquent aux flux.<br/>Avec le modificateur "Alt", les raccourcis de navigation s’appliquent aux catégories.',
+ 'next_article' => 'Passer à l’article suivant',
+ 'other_action' => 'Autres actions',
+ 'previous_article' => 'Passer à l’article précédent',
+ 'see_on_website' => 'Voir sur le site d’origine',
+ 'shift_for_all_read' => '+ <code>shift</code> pour marquer tous les articles comme lus',
+ 'title' => 'Raccourcis',
+ 'user_filter' => 'Accéder aux filtres utilisateur',
+ 'user_filter_help' => 'S’il n’y a qu’un filtre utilisateur, celui-ci est utilisé automatiquement. Sinon ils sont accessibles par leur numéro.',
+ ),
+ 'user' => array(
+ 'articles_and_size' => '%s articles (%s)',
+ 'current' => 'Utilisateur actuel',
+ 'is_admin' => 'est administrateur',
+ 'users' => 'Utilisateurs',
+ ),
+);
diff --git a/app/i18n/fr/feedback.php b/app/i18n/fr/feedback.php
new file mode 100644
index 000000000..e2364a251
--- /dev/null
+++ b/app/i18n/fr/feedback.php
@@ -0,0 +1,110 @@
+<?php
+
+return array(
+ 'admin' => array(
+ 'optimization_complete' => 'Optimisation terminée.',
+ ),
+ 'access' => array(
+ 'denied' => 'Vous n’avez pas le droit d’accéder à cette page !',
+ 'not_found' => 'La page que vous cherchez n’existe pas !',
+ ),
+ 'auth' => array(
+ 'form' => array(
+ 'not_set' => 'Un problème est survenu lors de la configuration de votre système d’authentification. Veuillez réessayer plus tard.',
+ 'set' => 'Le formulaire est désormais votre système d’authentification.',
+ ),
+ 'login' => array(
+ 'invalid' => 'L’identifiant est invalide',
+ 'success' => 'Vous êtes désormais connecté',
+ ),
+ 'logout' => array(
+ 'success' => 'Vous avez été déconnecté',
+ ),
+ 'no_password_set' => 'Aucun mot de passe administrateur n’a été précisé. Cette fonctionnalité n’est pas disponible.',
+ 'not_persona' => 'Seul le système d’authentification Persona peut être réinitialisé.',
+ ),
+ 'conf' => array(
+ 'error' => 'Une erreur est survenue durant la sauvegarde de la configuration',
+ 'query_created' => 'Le filtre "%s" a bien été créé.',
+ 'shortcuts_updated' => 'Les raccourcis ont été mis à jour.',
+ 'updated' => 'La configuration a été mise à jour',
+ ),
+ 'extensions' => array(
+ 'already_enabled' => '%s est déjà activée',
+ 'disable' => array(
+ 'ko' => '%s ne peut pas être désactivée. <a href="%s">Consulter les logs de FreshRSS</a> pour plus de détails.',
+ 'ok' => '%s est désormais désactivée',
+ ),
+ 'enable' => array(
+ 'ko' => '%s ne peut pas être activée. <a href="%s">Consulter les logs de FreshRSS</a> pour plus de détails.',
+ 'ok' => '%s est désormais activée',
+ ),
+ 'no_access' => 'Vous n’avez aucun accès sur %s',
+ 'not_enabled' => '%s n’est pas encore activée',
+ 'not_found' => '%s n’existe pas',
+ ),
+ 'import_export' => array(
+ 'export_no_zip_extension' => 'L’extension Zip n’est pas présente sur votre serveur. Veuillez essayer d’exporter les fichiers un par un.',
+ 'feeds_imported' => 'Vos flux ont été importés et vont maintenant être actualisés.',
+ 'feeds_imported_with_errors' => 'Vos flux ont été importés mais des erreurs sont survenues.',
+ 'file_cannot_be_uploaded' => 'Le fichier ne peut pas être téléchargé !',
+ 'no_zip_extension' => 'L’extension Zip n’est pas présente sur votre serveur.',
+ 'zip_error' => 'Une erreur est survenue durant l’import du fichier Zip.',
+ ),
+ 'sub' => array(
+ 'actualize' => 'Actualiser',
+ 'category' => array(
+ 'created' => 'La catégorie %s a été créée.',
+ 'deleted' => 'La catégorie a été supprimée.',
+ 'emptied' => 'La catégorie a été vidée.',
+ 'error' => 'La catégorie n’a pas pu être modifiée',
+ 'name_exists' => 'Une catégorie possède déjà ce nom.',
+ 'no_id' => 'Vous devez préciser l’id de la catégorie.',
+ 'no_name' => 'Vous devez préciser un nom pour la catégorie.',
+ 'not_delete_default' => 'Vous ne pouvez pas supprimer la catégorie par défaut !',
+ 'not_exist' => 'Cette catégorie n’existe pas !',
+ 'over_max' => 'Vous avez atteint votre limite de catégories (%d)',
+ 'updated' => 'La catégorie a été mise à jour.',
+ ),
+ 'feed' => array(
+ 'actualized' => '<em>%s</em> a été mis à jour.',
+ 'actualizeds' => 'Les flux ont été mis à jour.',
+ 'added' => 'Le flux <em>%s</em> a bien été ajouté.',
+ 'already_subscribed' => 'Vous êtes déjà abonné à <em>%s</em>',
+ 'deleted' => 'Le flux a été supprimé.',
+ 'error' => 'Une erreur est survenue',
+ 'internal_problem' => 'Le flux ne peut pas être ajouté. <a href="%s">Consulter les logs de FreshRSS</a> pour plus de détails.',
+ 'invalid_url' => 'L’url <em>%s</em> est invalide.',
+ 'marked_read' => 'Les flux ont été marqués comme lus.',
+ 'n_actualized' => '%d flux ont été mis à jour.',
+ 'n_entries_deleted' => '%d articles ont été supprimés.',
+ 'no_refresh' => 'Il n’y a aucun flux à actualiser…',
+ 'not_added' => '<em>%s</em> n’a pas pu être ajouté.',
+ 'over_max' => 'Vous avez atteint votre limite de flux (%d)',
+ 'updated' => 'Le flux a été mis à jour',
+ ),
+ 'purge_completed' => 'Purge effectuée (%d articles supprimés).',
+ ),
+ 'update' => array(
+ 'can_apply' => 'FreshRSS va maintenant être mis à jour vers la <strong>version %s</strong>.',
+ 'error' => 'La mise à jour a rencontré un problème : %s',
+ 'file_is_nok' => 'Veuillez vérifier les droits sur le répertoire <em>%s</em>. Le serveur HTTP doit être capable d’écrire dedans',
+ 'finished' => 'La mise à jour est terminée !',
+ 'none' => 'Aucune mise à jour à appliquer',
+ 'server_not_found' => 'Le serveur de mise à jour n’a pas été trouvé. [%s]',
+ ),
+ 'user' => array(
+ 'created' => array(
+ '_' => 'L’utilisateur %s a été créé.',
+ 'error' => 'L’utilisateur %s ne peut pas être créé.',
+ ),
+ 'deleted' => array(
+ '_' => 'L’utilisateur %s a été supprimé.',
+ 'error' => 'L’utilisateur %s ne peut pas être supprimé.',
+ ),
+ ),
+ 'profile' => array(
+ 'error' => 'Votre profil n’a pas pu être mis à jour',
+ 'updated' => 'Votre profil a été mis à jour',
+ ),
+);
diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php
new file mode 100644
index 000000000..1cfec6969
--- /dev/null
+++ b/app/i18n/fr/gen.php
@@ -0,0 +1,163 @@
+<?php
+
+return array(
+ 'action' => array(
+ 'actualize' => 'Actualiser',
+ 'back_to_rss_feeds' => '← Retour à vos flux RSS',
+ 'cancel' => 'Annuler',
+ 'create' => 'Créer',
+ 'disable' => 'Désactiver',
+ 'empty' => 'Vider',
+ 'enable' => 'Activer',
+ 'export' => 'Exporter',
+ 'filter' => 'Filtrer',
+ 'import' => 'Importer',
+ 'manage' => 'Gérer',
+ 'mark_read' => 'Marquer comme lu',
+ 'mark_favorite' => 'Mettre en favori',
+ 'remove' => 'Supprimer',
+ 'see_website' => 'Voir le site',
+ 'submit' => 'Valider',
+ 'truncate' => 'Supprimer tous les articles',
+ ),
+ 'auth' => array(
+ 'keep_logged_in' => 'Rester connecté <small>(1 mois)</small>',
+ 'login' => 'Connexion',
+ 'login_persona' => 'Connexion avec Persona',
+ 'login_persona_problem' => 'Problème de connexion à Persona ?',
+ 'logout' => 'Déconnexion',
+ 'password' => 'Mot de passe',
+ 'reset' => 'Réinitialisation de l’authentification',
+ 'username' => 'Nom d’utilisateur',
+ 'username_admin' => 'Nom d’utilisateur administrateur',
+ 'will_reset' => 'Le système d’authentification va être réinitialisé : un formulaire sera utilisé à la place de Persona.',
+ ),
+ 'date' => array(
+ 'Apr' => '\\a\\v\\r\\i\\l',
+ 'Aug' => '\\a\\o\\û\\t',
+ 'Dec' => '\\d\\é\\c\\e\\m\\b\\r\\e',
+ 'Feb' => '\\f\\é\\v\\r\\i\\e\\r',
+ 'Jan' => '\\j\\a\\n\\v\\i\\e\\r',
+ 'Jul' => '\\j\\u\\i\\l\\l\\e\\t',
+ 'Jun' => '\\j\\u\\i\\n',
+ 'Mar' => '\\m\\a\\r\\s',
+ 'May' => '\\m\\a\\i',
+ 'Nov' => '\\n\\o\\v\\e\\m\\b\\r\\e',
+ 'Oct' => '\\o\\c\\t\\o\\b\\r\\e',
+ 'Sep' => '\\s\\e\\p\\t\\e\\m\\b\\r\\e',
+ 'apr' => 'avr.',
+ 'april' => 'avril',
+ 'aug' => 'août',
+ 'august' => 'août',
+ 'before_yesterday' => 'À partir d’avant-hier',
+ 'dec' => 'déc.',
+ 'december' => 'décembre',
+ 'feb' => 'fév.',
+ 'february' => 'février',
+ 'format_date' => 'j %s Y',
+ 'format_date_hour' => 'j %s Y \\à H\\:i',
+ 'fri' => 'ven.',
+ 'jan' => 'jan.',
+ 'january' => 'janvier',
+ 'jul' => 'jui.',
+ 'july' => 'juillet',
+ 'jun' => 'juin',
+ 'june' => 'juin',
+ 'last_3_month' => 'Depuis les trois derniers mois',
+ 'last_6_month' => 'Depuis les six derniers mois',
+ 'last_month' => 'Depuis le mois dernier',
+ 'last_week' => 'Depuis la semaine dernière',
+ 'last_year' => 'Depuis l’année dernière',
+ 'mar' => 'mar.',
+ 'march' => 'mars',
+ 'may' => 'mai.',
+ 'mon' => 'lun.',
+ 'month' => 'mois',
+ 'nov' => 'nov.',
+ 'november' => 'novembre',
+ 'oct' => 'oct.',
+ 'october' => 'octobre',
+ 'sat' => 'sam.',
+ 'sep' => 'sep.',
+ 'september' => 'septembre',
+ 'sun' => 'dim.',
+ 'thu' => 'jeu.',
+ 'today' => 'Aujourd’hui',
+ 'tue' => 'mar.',
+ 'wed' => 'mer.',
+ 'yesterday' => 'Hier',
+ ),
+ 'freshrss' => array(
+ '_' => 'FreshRSS',
+ 'about' => 'À propos de FreshRSS',
+ ),
+ 'js' => array(
+ 'category_empty' => 'Catégorie vide',
+ 'confirm_action' => 'Êtes-vous sûr(e) de vouloir continuer ? Cette action ne peut être annulée !',
+ 'confirm_action_feed_cat' => 'Êtes-vous sûr(e) de vouloir continuer ? Vous perdrez les favoris et les filtres associés. Cette action ne peut être annulée !',
+ 'feedback' => array(
+ 'body_new_articles' => 'Il y a \\d nouveaux articles à lire sur FreshRSS.',
+ 'request_failed' => 'Une requête a échoué, cela peut être dû à des problèmes de connexion à Internet.',
+ 'title_new_articles' => 'FreshRSS : nouveaux articles !',
+ ),
+ 'new_article' => 'Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.',
+ 'should_be_activated' => 'Le JavaScript doit être activé.',
+ ),
+ 'lang' => array(
+ 'de' => 'Deutsch',
+ 'en' => 'English',
+ 'fr' => 'Français',
+ ),
+ 'menu' => array(
+ 'about' => 'À propos',
+ 'admin' => 'Administration',
+ 'archiving' => 'Archivage',
+ 'authentication' => 'Authentification',
+ 'check_install' => 'Vérification de l’installation',
+ 'configuration' => 'Configuration',
+ 'display' => 'Affichage',
+ 'extensions' => 'Extensions',
+ 'logs' => 'Logs',
+ 'queries' => 'Filtres utilisateurs',
+ 'reading' => 'Lecture',
+ 'search' => 'Rechercher des mots ou des #tags',
+ 'sharing' => 'Partage',
+ 'shortcuts' => 'Raccourcis',
+ 'stats' => 'Statistiques',
+ 'update' => 'Mise à jour',
+ 'user_management' => 'Gestion des utilisateurs',
+ 'user_profile' => 'Profil',
+ ),
+ 'pagination' => array(
+ 'first' => 'Début',
+ 'last' => 'Fin',
+ 'load_more' => 'Charger plus d’articles',
+ 'mark_all_read' => 'Tout marquer comme lu',
+ 'next' => 'Suivant',
+ 'nothing_to_load' => 'Fin des articles',
+ 'previous' => 'Précédent',
+ ),
+ 'share' => array(
+ 'blogotext' => 'Blogotext',
+ 'diaspora' => 'Diaspora*',
+ 'email' => 'Courriel',
+ 'facebook' => 'Facebook',
+ 'g+' => 'Google+',
+ 'print' => 'Imprimer',
+ 'shaarli' => 'Shaarli',
+ 'twitter' => 'Twitter',
+ 'wallabag' => 'wallabag',
+ ),
+ 'short' => array(
+ 'attention' => 'Attention !',
+ 'blank_to_disable' => 'Laissez vide pour désactiver',
+ 'by_author' => 'Par <em>%s</em>',
+ 'by_default' => 'Par défaut',
+ 'damn' => 'Arf !',
+ 'default_category' => 'Sans catégorie',
+ 'no' => 'Non',
+ 'ok' => 'Ok !',
+ 'or' => 'ou',
+ 'yes' => 'Oui',
+ ),
+);
diff --git a/app/i18n/fr/index.php b/app/i18n/fr/index.php
new file mode 100644
index 000000000..7e028ab92
--- /dev/null
+++ b/app/i18n/fr/index.php
@@ -0,0 +1,61 @@
+<?php
+
+return array(
+ 'about' => array(
+ '_' => 'À propos',
+ 'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',
+ 'bugs_reports' => 'Rapports de bugs',
+ 'credits' => 'Crédits',
+ 'credits_content' => 'Des éléments de design sont issus du <a href="http://twitter.github.io/bootstrap/">projet Bootstrap</a> bien que FreshRSS n’utilise pas ce framework. Les <a href="https://git.gnome.org/browse/gnome-icon-theme-symbolic">icônes</a> sont issues du <a href="https://www.gnome.org/">projet GNOME</a>. La police <em>Open Sans</em> utilisée a été créée par <a href="https://www.google.com/webfonts/specimen/Open+Sans">Steve Matteson</a>. Les favicons sont récupérés grâce au site <a href="https://getfavicon.appspot.com/">getFavicon</a>. FreshRSS repose sur <a href="https://github.com/marienfressinaud/MINZ">Minz</a>, un framework PHP.',
+ 'freshrss_description' => 'FreshRSS est un agrégateur de flux RSS à auto-héberger à l’image de <a href="http://tontof.net/kriss/feed/">Kriss Feed</a> ou <a href="http://projet.idleman.fr/leed/">Leed</a>. Il se veut léger et facile à prendre en main tout en étant un outil puissant et paramétrable.',
+ 'github' => '<a href="https://github.com/FreshRSS/FreshRSS/issues">sur Github</a>',
+ 'license' => 'Licence',
+ 'project_website' => 'Site du projet',
+ 'title' => 'À propos',
+ 'version' => 'Version',
+ 'website' => 'Site Internet',
+ ),
+ 'feed' => array(
+ 'add' => 'Vous pouvez ajouter des flux.',
+ 'empty' => 'Il n’y a aucun article à afficher.',
+ 'rss_of' => 'Flux RSS de %s',
+ 'title' => 'Vos flux RSS',
+ 'title_global' => 'Vue globale',
+ 'title_fav' => 'Vos favoris',
+ ),
+ 'log' => array(
+ '_' => 'Logs',
+ 'clear' => 'Effacer les logs',
+ 'empty' => 'Les logs sont vides.',
+ 'title' => 'Logs',
+ ),
+ 'menu' => array(
+ 'about' => 'À propos de FreshRSS',
+ 'add_query' => 'Créer un filtre',
+ 'before_one_day' => 'Antérieurs à 1 jour',
+ 'before_one_week' => 'Antérieurs à 1 semaine',
+ 'favorites' => 'Favoris (%s)',
+ 'global_view' => 'Vue globale',
+ 'main_stream' => 'Flux principal',
+ 'mark_all_read' => 'Tout marquer comme lu',
+ 'mark_cat_read' => 'Marquer la catégorie comme lue',
+ 'mark_feed_read' => 'Marquer le flux comme lu',
+ 'newer_first' => 'Plus récents en premier',
+ 'non-starred' => 'Afficher tout sauf les favoris',
+ 'normal_view' => 'Vue normale',
+ 'older_first' => 'Plus anciens en premier',
+ 'queries' => 'Filtres utilisateurs',
+ 'read' => 'Afficher les lus',
+ 'reader_view' => 'Vue lecture',
+ 'rss_view' => 'Flux RSS',
+ 'search_short' => 'Rechercher',
+ 'starred' => 'Afficher les favoris',
+ 'stats' => 'Statistiques',
+ 'subscription' => 'Gestion des abonnements',
+ 'unread' => 'Afficher les non lus',
+ ),
+ 'share' => 'Partager',
+ 'tag' => array(
+ 'related' => 'Tags associés',
+ ),
+);
diff --git a/app/i18n/fr/install.php b/app/i18n/fr/install.php
new file mode 100644
index 000000000..245a20c56
--- /dev/null
+++ b/app/i18n/fr/install.php
@@ -0,0 +1,107 @@
+<?php
+
+return array(
+ 'action' => array(
+ 'finish' => 'Terminer l’installation',
+ 'fix_errors_before' => 'Veuillez corriger les erreurs avant de passer à l’étape suivante.',
+ 'next_step' => 'Passer à l’étape suivante',
+ ),
+ 'auth' => array(
+ 'email_persona' => 'Adresse courriel de connexion<br /><small>(pour <a href="https://persona.org/" rel="external">Mozilla Persona</a>)</small>',
+ 'form' => 'Formulaire (traditionnel, requiert JavaScript)',
+ 'http' => 'HTTP (pour utilisateurs avancés avec HTTPS)',
+ 'none' => 'Aucune (dangereux)',
+ 'password_form' => 'Mot de passe<br /><small>(pour connexion par formulaire)</small>',
+ 'password_format' => '7 caractères minimum',
+ 'persona' => 'Mozilla Persona (moderne, requiert JavaScript)',
+ 'type' => 'Méthode d’authentification',
+ ),
+ 'bdd' => array(
+ '_' => 'Base de données',
+ 'conf' => array(
+ '_' => 'Configuration de la base de données',
+ 'ko' => 'Vérifiez les informations d’accès à la base de données.',
+ 'ok' => 'La configuration de la base de données a été enregistrée.',
+ ),
+ 'host' => 'Hôte',
+ 'password' => 'Mot de passe',
+ 'prefix' => 'Préfixe des tables',
+ 'type' => 'Type de base de données',
+ 'username' => 'Nom d’utilisateur',
+ ),
+ 'check' => array(
+ '_' => 'Vérifications',
+ 'cache' => array(
+ 'nok' => 'Veuillez vérifier les droits sur le répertoire <em>./data/cache</em>. Le serveur HTTP doit être capable d’écrire dedans',
+ 'ok' => 'Les droits sur le répertoire de cache sont bons.',
+ ),
+ 'ctype' => array(
+ 'nok' => 'Il manque une librairie pour la vérification des types de caractères (php-ctype).',
+ 'ok' => 'Vous disposez du nécessaire pour la vérification des types de caractères (ctype).',
+ ),
+ 'curl' => array(
+ 'nok' => 'Vous ne disposez pas de cURL (paquet php5-curl).',
+ 'ok' => 'Vous disposez de cURL.',
+ ),
+ 'data' => array(
+ 'nok' => 'Veuillez vérifier les droits sur le répertoire <em>./data</em>. Le serveur HTTP doit être capable d’écrire dedans',
+ 'ok' => 'Les droits sur le répertoire de data sont bons.',
+ ),
+ 'dom' => array(
+ 'nok' => 'Il manque une librairie pour parcourir le DOM (paquet php-xml).',
+ 'ok' => 'Vous disposez du nécessaire pour parcourir le DOM.',
+ ),
+ 'favicons' => array(
+ 'nok' => 'Veuillez vérifier les droits sur le répertoire <em>./data/favicons</em>. Le serveur HTTP doit être capable d’écrire dedans',
+ 'ok' => 'Les droits sur le répertoire des favicons sont bons.',
+ ),
+ 'http_referer' => array(
+ 'nok' => 'Veuillez vérifier que vous ne modifiez pas votre HTTP REFERER.',
+ 'ok' => 'Le HTTP REFERER est connu et semble correspondre à votre serveur.',
+ ),
+ 'minz' => array(
+ 'nok' => 'Vous ne disposez pas de la librairie Minz.',
+ 'ok' => 'Vous disposez du framework Minz',
+ ),
+ 'pcre' => array(
+ 'nok' => 'Il manque une librairie pour les expressions régulières (php-pcre).',
+ 'ok' => 'Vous disposez du nécessaire pour les expressions régulières (PCRE).',
+ ),
+ 'pdo' => array(
+ 'nok' => 'Vous ne disposez pas de PDO ou d’un des drivers supportés (pdo_mysql, pdo_sqlite).',
+ 'ok' => 'Vous disposez de PDO et d’au moins un des drivers supportés (pdo_mysql, pdo_sqlite).',
+ ),
+ 'persona' => array(
+ 'nok' => 'Veuillez vérifier les droits sur le répertoire <em>./data/persona</em>. Le serveur HTTP doit être capable d’écrire dedans',
+ 'ok' => 'Les droits sur le répertoire de Mozilla Persona sont bons.',
+ ),
+ 'php' => array(
+ 'nok' => 'Votre version de PHP est la %s mais FreshRSS requiert au moins la version %s.',
+ 'ok' => 'Votre version de PHP est la %s, qui est compatible avec FreshRSS.',
+ ),
+ 'users' => array(
+ 'nok' => 'Veuillez vérifier les droits sur le répertoire <em>./data/users</em>. Le serveur HTTP doit être capable d’écrire dedans',
+ 'ok' => 'Les droits sur le répertoire des utilisateurs sont bons.',
+ ),
+ ),
+ 'conf' => array(
+ '_' => 'Configuration générale',
+ 'ok' => 'La configuration générale a été enregistrée.',
+ ),
+ 'congratulations' => 'Félicitations !',
+ 'default_user' => 'Nom de l’utilisateur par défaut <small>(16 caractères alphanumériques maximum)</small>',
+ 'delete_articles_after' => 'Supprimer les articles après',
+ 'fix_errors_before' => 'Veuillez corriger les erreurs avant de passer à l’étape suivante.',
+ 'javascript_is_better' => 'FreshRSS est plus agréable à utiliser avec JavaScript activé',
+ 'language' => array(
+ '_' => 'Langue',
+ 'choose' => 'Choisissez la langue pour FreshRSS',
+ 'defined' => 'La langue a bien été définie.',
+ ),
+ 'not_deleted' => 'Quelque chose s’est mal passé, vous devez supprimer le fichier <em>%s</em> à la main.',
+ 'ok' => 'L’installation s’est bien passée.',
+ 'step' => 'étape %d',
+ 'steps' => 'Étapes',
+ 'title' => 'Installation · FreshRSS',
+ 'this_is_the_end' => 'This is the end',
+);
diff --git a/app/i18n/fr/sub.php b/app/i18n/fr/sub.php
new file mode 100644
index 000000000..a3f7c4d6d
--- /dev/null
+++ b/app/i18n/fr/sub.php
@@ -0,0 +1,61 @@
+<?php
+
+return array(
+ 'category' => array(
+ '_' => 'Catégorie',
+ 'add' => 'Ajouter une catégorie',
+ 'empty' => 'Catégorie vide',
+ 'new' => 'Nouvelle catégorie',
+ ),
+ 'feed' => array(
+ 'add' => 'Ajouter un flux RSS',
+ 'advanced' => 'Avancé',
+ 'archiving' => 'Archivage',
+ 'auth' => array(
+ 'configuration' => 'Identification',
+ 'help' => 'La connexion permet d’accéder aux flux protégés par une authentification HTTP.',
+ 'http' => 'Authentification HTTP',
+ 'password' => 'Mot de passe HTTP',
+ 'username' => 'Identifiant HTTP',
+ ),
+ 'css_help' => 'Permet de récupérer les flux tronqués (attention, demande plus de temps !)',
+ 'css_path' => 'Sélecteur CSS des articles sur le site d’origine',
+ 'description' => 'Description',
+ 'empty' => 'Ce flux est vide. Veuillez vérifier qu’il est toujours maintenu.',
+ 'error' => 'Ce flux a rencontré un problème. Veuillez vérifier qu’il est toujours accessible puis actualisez-le.',
+ 'in_main_stream' => 'Afficher dans le flux principal',
+ 'informations' => 'Informations',
+ 'keep_history' => 'Nombre minimum d’articles à conserver',
+ 'moved_category_deleted' => 'Lors de la suppression d’une catégorie, ses flux seront automatiquement classés dans <em>%s</em>.',
+ 'no_selected' => 'Aucun flux sélectionné.',
+ 'number_entries' => '%d articles',
+ 'stats' => 'Statistiques',
+ 'think_to_add' => 'Vous pouvez ajouter des flux.',
+ 'title' => 'Titre',
+ 'title_add' => 'Ajouter un flux RSS',
+ 'ttl' => 'Ne pas automatiquement rafraîchir plus souvent que',
+ 'url' => 'URL du flux',
+ 'validator' => 'Vérifier la valididé du flux',
+ 'website' => 'URL du site',
+ ),
+ 'import_export' => array(
+ 'export' => 'Exporter',
+ 'export_opml' => 'Exporter la liste des flux (OPML)',
+ 'export_starred' => 'Exporter les favoris',
+ 'feed_list' => 'Liste des articles de %s',
+ 'file_to_import' => 'Fichier à importer<br />(OPML, Json ou Zip)',
+ 'file_to_import_no_zip' => 'Fichier à importer<br />(OPML ou Json)',
+ 'import' => 'Importer',
+ 'starred_list' => 'Liste des articles favoris',
+ 'title' => 'Importer / exporter',
+ ),
+ 'menu' => array(
+ 'bookmark' => 'S’abonner (bookmark FreshRSS)',
+ 'import_export' => 'Importer / exporter',
+ 'subscription_management' => 'Gestion des abonnements',
+ ),
+ 'title' => array(
+ '_' => 'Gestion des abonnements',
+ 'feed_management' => 'Gestion des flux RSS',
+ ),
+);
diff --git a/app/i18n/install.en.php b/app/i18n/install.en.php
deleted file mode 100644
index c422de90f..000000000
--- a/app/i18n/install.en.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-return array (
- 'freshrss_installation' => 'Installation · FreshRSS',
- 'freshrss' => 'FreshRSS',
- 'installation_step' => 'Installation — step %d · FreshRSS',
- 'steps' => 'Steps',
- 'checks' => 'Checks',
- 'general_configuration' => 'General configuration',
- 'bdd_configuration' => 'Database configuration',
- 'bdd_type' => 'Type of database',
- 'version_update' => 'Update',
- 'this_is_the_end' => 'This is the end',
-
- 'ok' => 'Ok!',
- 'congratulations' => 'Congratulations!',
- 'attention' => 'Attention!',
- 'damn' => 'Damn!',
- 'oops' => 'Oops!',
- 'next_step' => 'Go to the next step',
-
- 'language_defined' => 'Language has been defined.',
- 'choose_language' => 'Choose a language for FreshRSS',
-
- 'javascript_is_better' => 'FreshRSS is more pleasant with JavaScript enabled',
- 'php_is_ok' => 'Your PHP version is %s, which is compatible with FreshRSS',
- 'php_is_nok' => 'Your PHP version is %s but FreshRSS requires at least version %s',
- 'minz_is_ok' => 'You have the Minz framework',
- 'minz_is_nok' => 'You lack the Minz framework. You should execute <em>build.sh</em> script or <a href="https://github.com/marienfressinaud/MINZ">download it on Github</a> and install in <em>%s</em> directory the content of its <em>/lib</em> directory.',
- 'curl_is_ok' => 'You have version %s of cURL',
- 'curl_is_nok' => 'You lack cURL (php5-curl package)',
- 'pdo_is_ok' => 'You have PDO and at least one of the supported drivers (pdo_mysql, pdo_sqlite)',
- 'pdo_is_nok' => 'You lack PDO or one of the supported drivers (pdo_mysql, pdo_sqlite)',
- 'dom_is_ok' => 'You have the required library to browse the DOM',
- 'dom_is_nok' => 'You lack a required library to browse the DOM (php-xml package)',
- 'pcre_is_ok' => 'You have the required library for regular expressions (PCRE)',
- 'pcre_is_nok' => 'You lack a required library for regular expressions (php-pcre)',
- 'ctype_is_ok' => 'You have the required library for character type checking (ctype)',
- 'ctype_is_nok' => 'You lack a required library for character type checking (php-ctype)',
- 'cache_is_ok' => 'Permissions on cache directory are good',
- 'log_is_ok' => 'Permissions on logs directory are good',
- 'favicons_is_ok' => 'Permissions on favicons directory are good',
- 'data_is_ok' => 'Permissions on data directory are good',
- 'persona_is_ok' => 'Permissions on Mozilla Persona directory are good',
- 'file_is_nok' => 'Check permissions on <em>%s</em> directory. HTTP server must have rights to write into',
- 'http_referer_is_ok' => 'Your HTTP REFERER is known and corresponds to your server.',
- 'http_referer_is_nok' => 'Please check that you are not altering your HTTP REFERER.',
- 'fix_errors_before' => 'Fix errors before skip to the next step.',
-
- 'general_conf_is_ok' => 'General configuration has been saved.',
- 'random_string' => 'Random string',
- 'change_value' => 'You should change this value by any other',
- 'base_url' => 'Base URL',
- 'do_not_change_if_doubt' => 'Don’t change if you doubt about it',
-
- 'bdd_conf_is_ok' => 'Database configuration has been saved.',
- 'bdd_conf_is_ko' => 'Verify your database information.',
- 'host' => 'Host',
- 'bdd' => 'Database',
- 'prefix' => 'Table prefix',
-
- 'update_start' => 'Start update process',
- 'update_long' => 'This can take a long time, depending on the size of your database. You may have to wait for this page to time out (~5 minutes) and then refresh this page.',
- 'update_end' => 'Update process is completed, now you can go to the final step.',
-
-
- 'installation_is_ok' => 'The installation process was successful.<br />The final step will now attempt to delete any file and database backup created during the update process.<br />You may choose to skip this step by deleting <kbd>./data/do-install.txt</kbd> manually.',
- 'finish_installation' => 'Complete installation',
- 'install_not_deleted' => 'Something went wrong; you must delete the file <em>%s</em> manually.',
-);
diff --git a/app/i18n/install.fr.php b/app/i18n/install.fr.php
deleted file mode 100644
index 785c02459..000000000
--- a/app/i18n/install.fr.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-return array (
- 'freshrss_installation' => 'Installation · FreshRSS',
- 'freshrss' => 'FreshRSS',
- 'installation_step' => 'Installation — étape %d · FreshRSS',
- 'steps' => 'Étapes',
- 'checks' => 'Vérifications',
- 'general_configuration' => 'Configuration générale',
- 'bdd_configuration' => 'Base de données',
- 'bdd_type' => 'Type de base de données',
- 'version_update' => 'Mise à jour',
- 'this_is_the_end' => 'This is the end',
-
- 'ok' => 'Ok !',
- 'congratulations' => 'Félicitations !',
- 'attention' => 'Attention !',
- 'damn' => 'Arf !',
- 'oops' => 'Oups !',
- 'next_step' => 'Passer à l’étape suivante',
-
- 'language_defined' => 'La langue a bien été définie.',
- 'choose_language' => 'Choisissez la langue pour FreshRSS',
-
- 'javascript_is_better' => 'FreshRSS est plus agréable à utiliser avec JavaScript activé',
- 'php_is_ok' => 'Votre version de PHP est la %s, qui est compatible avec FreshRSS',
- 'php_is_nok' => 'Votre version de PHP est la %s mais FreshRSS requiert au moins la version %s',
- 'minz_is_ok' => 'Vous disposez du framework Minz',
- 'minz_is_nok' => 'Vous ne disposez pas de la librairie Minz. Vous devriez exécuter le script <em>build.sh</em> ou bien <a href="https://github.com/marienfressinaud/MINZ">la télécharger sur Github</a> et installer dans le répertoire <em>%s</em> le contenu de son répertoire <em>/lib</em>.',
- 'curl_is_ok' => 'Vous disposez de cURL dans sa version %s',
- 'curl_is_nok' => 'Vous ne disposez pas de cURL (paquet php5-curl)',
- 'pdo_is_ok' => 'Vous disposez de PDO et d’au moins un des drivers supportés (pdo_mysql, pdo_sqlite)',
- 'pdo_is_nok' => 'Vous ne disposez pas de PDO ou d’un des drivers supportés (pdo_mysql, pdo_sqlite)',
- 'dom_is_ok' => 'Vous disposez du nécessaire pour parcourir le DOM',
- 'dom_is_nok' => 'Il manque une librairie pour parcourir le DOM (paquet php-xml)',
- 'pcre_is_ok' => 'Vous disposez du nécessaire pour les expressions régulières (PCRE)',
- 'pcre_is_nok' => 'Il manque une librairie pour les expressions régulières (php-pcre)',
- 'ctype_is_ok' => 'Vous disposez du nécessaire pour la vérification des types de caractères (ctype)',
- 'ctype_is_nok' => 'Il manque une librairie pour la vérification des types de caractères (php-ctype)',
- 'cache_is_ok' => 'Les droits sur le répertoire de cache sont bons',
- 'log_is_ok' => 'Les droits sur le répertoire des logs sont bons',
- 'favicons_is_ok' => 'Les droits sur le répertoire des favicons sont bons',
- 'data_is_ok' => 'Les droits sur le répertoire de data sont bons',
- 'persona_is_ok' => 'Les droits sur le répertoire de Mozilla Persona sont bons',
- 'file_is_nok' => 'Veuillez vérifier les droits sur le répertoire <em>%s</em>. Le serveur HTTP doit être capable d’écrire dedans',
- 'http_referer_is_ok' => 'Le HTTP REFERER est connu et semble correspondre à votre serveur.',
- 'http_referer_is_nok' => 'Veuillez vérifier que vous ne modifiez pas votre HTTP REFERER.',
- 'fix_errors_before' => 'Veuillez corriger les erreurs avant de passer à l’étape suivante.',
-
- 'general_conf_is_ok' => 'La configuration générale a été enregistrée.',
- 'random_string' => 'Chaîne aléatoire',
- 'change_value' => 'Vous devriez changer cette valeur par n’importe quelle autre',
- 'base_url' => 'Base de l’URL',
- 'do_not_change_if_doubt' => 'Laissez tel quel dans le doute',
-
- 'bdd_conf_is_ok' => 'La configuration de la base de données a été enregistrée.',
- 'bdd_conf_is_ko' => 'Vérifiez les informations d’accès à la base de données.',
- 'host' => 'Hôte',
- 'bdd' => 'Base de données',
- 'prefix' => 'Préfixe des tables',
-
- 'update_start' => 'Lancer la mise à jour',
- 'update_long' => 'Ce processus peut prendre longtemps, selon la taille de votre base de données. Vous aurez peut-être à attendre que cette page dépasse son temps maximum d’exécution (~5 minutes) puis à la recharger.',
- 'update_end' => 'La mise à jour est terminée, vous pouvez maintenant passer à l’étape finale.',
-
- 'installation_is_ok' => 'L’installation s’est bien passée.<br />La dernière étape va maintenant tenter de supprimer les fichiers ainsi que d’éventuelles copies de base de données créés durant le processus de mise à jour.<br />Vous pouvez choisir de sauter cette étape en supprimant <kbd>./data/do-install.txt</kbd> manuellement.',
- 'finish_installation' => 'Terminer l’installation',
- 'install_not_deleted' => 'Quelque chose s’est mal passé, vous devez supprimer le fichier <em>%s</em> à la main.',
-);