From b8fd3caf8306e8616fcb2f2c0add95b74c2ec024 Mon Sep 17 00:00:00 2001 From: Alexis Degrugillier Date: Sat, 14 Feb 2015 11:00:26 -0500 Subject: Harmonize share configuration view. Before, for shares that don't need options, only a button to remove it was visible. It was source of confusion for users. I changed the look of those shares by using the same layout as others (minus the help). As there is no configuration possible for the url, the field is disabled but it is possible to change the name of the share. See #787 --- app/i18n/de/gen.php | 1 + app/i18n/en/gen.php | 1 + app/i18n/fr/gen.php | 1 + 3 files changed, 3 insertions(+) (limited to 'app/i18n') diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index f3479ed53..3170b29c2 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -156,6 +156,7 @@ return array( 'damn' => 'Verdammt!', 'default_category' => 'Unkategorisiert', 'no' => 'Nein', + 'not_applicable' => 'N/A', 'ok' => 'OK!', 'or' => 'oder', 'yes' => 'Ja', diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 2143822ed..420e73f36 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -156,6 +156,7 @@ return array( 'damn' => 'Damn!', 'default_category' => 'Uncategorized', 'no' => 'No', + 'not_applicable' => 'N/A', 'ok' => 'Ok!', 'or' => 'or', 'yes' => 'Yes', diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 1cfec6969..ae946ce0c 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -156,6 +156,7 @@ return array( 'damn' => 'Arf !', 'default_category' => 'Sans catégorie', 'no' => 'Non', + 'not_applicable' => 'N/A', 'ok' => 'Ok !', 'or' => 'ou', 'yes' => 'Oui', -- cgit v1.2.3 From 58bf976f6923b5ad9c6e8e57a0daa06ec05462f4 Mon Sep 17 00:00:00 2001 From: Alexis Degrugillier Date: Tue, 17 Feb 2015 21:05:28 -0500 Subject: Change translation I change the translation for the 3 languages. German has to be checked since I used Google translate to get the translation. --- app/i18n/de/gen.php | 2 +- app/i18n/en/gen.php | 2 +- app/i18n/fr/gen.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index 3170b29c2..1b30a5be4 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -156,7 +156,7 @@ return array( 'damn' => 'Verdammt!', 'default_category' => 'Unkategorisiert', 'no' => 'Nein', - 'not_applicable' => 'N/A', + 'not_applicable' => 'Nicht verfügbar', 'ok' => 'OK!', 'or' => 'oder', 'yes' => 'Ja', diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 420e73f36..fdca01a43 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -156,7 +156,7 @@ return array( 'damn' => 'Damn!', 'default_category' => 'Uncategorized', 'no' => 'No', - 'not_applicable' => 'N/A', + 'not_applicable' => 'Not available', 'ok' => 'Ok!', 'or' => 'or', 'yes' => 'Yes', diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index ae946ce0c..48fc4a7e9 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -156,7 +156,7 @@ return array( 'damn' => 'Arf !', 'default_category' => 'Sans catégorie', 'no' => 'Non', - 'not_applicable' => 'N/A', + 'not_applicable' => 'Non disponible', 'ok' => 'Ok !', 'or' => 'ou', 'yes' => 'Oui', -- cgit v1.2.3 From 4744a2a2d82f2b18df70b37f8cff5043dde12770 Mon Sep 17 00:00:00 2001 From: Tets Date: Thu, 26 Mar 2015 09:27:23 +0100 Subject: Added Czech translation --- app/i18n/cz/admin.php | 170 +++++++++++++++++++++++++++++++++++++++++++++++ app/i18n/cz/conf.php | 169 ++++++++++++++++++++++++++++++++++++++++++++++ app/i18n/cz/feedback.php | 110 ++++++++++++++++++++++++++++++ app/i18n/cz/gen.php | 164 +++++++++++++++++++++++++++++++++++++++++++++ app/i18n/cz/index.php | 61 +++++++++++++++++ app/i18n/cz/install.php | 107 +++++++++++++++++++++++++++++ app/i18n/cz/sub.php | 61 +++++++++++++++++ 7 files changed, 842 insertions(+) create mode 100644 app/i18n/cz/admin.php create mode 100644 app/i18n/cz/conf.php create mode 100644 app/i18n/cz/feedback.php create mode 100644 app/i18n/cz/gen.php create mode 100644 app/i18n/cz/index.php create mode 100644 app/i18n/cz/install.php create mode 100644 app/i18n/cz/sub.php (limited to 'app/i18n') diff --git a/app/i18n/cz/admin.php b/app/i18n/cz/admin.php new file mode 100644 index 000000000..b9ef707cf --- /dev/null +++ b/app/i18n/cz/admin.php @@ -0,0 +1,170 @@ + array( + 'allow_anonymous' => 'Umožnit anonymně číst články výchozího uživatele (%s)', + 'allow_anonymous_refresh' => 'Umožnit anonymní obnovení článků', + 'api_enabled' => 'Povolit přístup k API (vyžadováno mobilními aplikacemi)', + 'form' => 'Webový formulář (tradiční, vyžaduje JavaScript)', + 'http' => 'HTTP (pro pokročilé uživatele s HTTPS)', + 'none' => 'Žádný (nebezpečné)', + 'persona' => 'Mozilla Persona (moderní, vyžaduje JavaScript)', + 'title' => 'Přihlášení', + 'title_reset' => 'Reset přihlášení', + 'token' => 'Authentizační token', + 'token_help' => 'Umožňuje přístup k RSS kanálu článků výchozího uživatele bez přihlášení:', + 'type' => 'Způsob přihlášení', + 'unsafe_autologin' => 'Povolit nebezpečné automatické přihlášení přes: ', + ), + 'check_install' => array( + 'cache' => array( + 'nok' => 'Zkontrolujte oprávnění adresáře ./data/cache. HTTP server musí mít do tohoto adresáře práva zápisu', + 'ok' => 'Oprávnění adresáře cache jsou v pořádku.', + ), + 'categories' => array( + 'nok' => 'Tabulka kategorií je nastavena špatně.', + 'ok' => 'Tabulka kategorií je v pořádku.', + ), + 'connection' => array( + 'nok' => 'Nelze navázat spojení s databází.', + 'ok' => 'Připojení k databázi je v pořádku.', + ), + 'ctype' => array( + 'nok' => 'Nemáte požadovanou knihovnu pro ověřování znaků (php-ctype).', + 'ok' => 'Máte požadovanou knihovnu pro ověřování znaků (ctype).', + ), + 'curl' => array( + 'nok' => 'Nemáte cURL (balíček php5-curl).', + 'ok' => 'Máte rozšíření cURL.', + ), + 'data' => array( + 'nok' => 'Zkontrolujte oprávnění adresáře ./data. HTTP server musí mít do tohoto adresáře práva zápisu', + 'ok' => 'Oprávnění adresáře data jsou v pořádku.', + ), + 'database' => 'Instalace databáze', + 'dom' => array( + 'nok' => 'Nemáte požadovanou knihovnu pro procházení DOM (balíček php-xml).', + 'ok' => 'Máte požadovanou knihovnu pro procházení DOM.', + ), + 'entries' => array( + 'nok' => 'Tabulka článků je nastavena špatně.', + 'ok' => 'Tabulka kategorií je v pořádku.', + ), + 'favicons' => array( + 'nok' => 'Zkontrolujte oprávnění adresáře ./data/favicons. HTTP server musí mít do tohoto adresáře práva zápisu', + 'ok' => 'Oprávnění adresáře favicons jsou v pořádku.', + ), + 'feeds' => array( + 'nok' => 'Tabulka kanálů je nastavena špatně.', + 'ok' => 'Tabulka kanálů je v pořádku.', + ), + 'files' => 'Instalace souborů', + 'json' => array( + 'nok' => 'Nemáte JSON (balíček php5-json).', + 'ok' => 'Máte rozšíření JSON.', + ), + 'minz' => array( + 'nok' => 'Nemáte framework Minz.', + 'ok' => 'Máte framework Minz.', + ), + 'pcre' => array( + 'nok' => 'Nemáte požadovanou knihovnu pro regulární výrazy (php-pcre).', + 'ok' => 'Máte požadovanou knihovnu pro regulární výrazy (PCRE).', + ), + 'pdo' => array( + 'nok' => 'Nemáte PDO nebo některý z podporovaných ovladačů (pdo_mysql, pdo_sqlite).', + 'ok' => 'Máte PDO a alespoň jeden z podporovaných ovladačů (pdo_mysql, pdo_sqlite).', + ), + 'persona' => array( + 'nok' => 'Zkontrolujte oprávnění adresáře ./data/persona. HTTP server musí mít do tohoto adresáře práva zápisu', + 'ok' => 'Oprávnění adresáře Mozilla Persona jsou v pořádku.', + ), + 'php' => array( + '_' => 'PHP instalace', + 'nok' => 'Vaše verze PHP je %s, ale FreshRSS vyžaduje alespoň verzi %s.', + 'ok' => 'Vaše verze PHP je %s a je kompatibilní s FreshRSS.', + ), + 'tables' => array( + 'nok' => 'V databázi chybí jedna nevo více tabulek.', + 'ok' => 'V databázi jsou všechny tabulky.', + ), + 'title' => 'Kontrola instalace', + 'tokens' => array( + 'nok' => 'Zkontrolujte oprávnění adresáře ./data/tokens. HTTP server musí mít do tohoto adresáře práva zápisu', + 'ok' => 'Oprávnění adresáře tokens jsou v pořádku.', + ), + 'users' => array( + 'nok' => 'Zkontrolujte oprávnění adresáře ./data/users. HTTP server musí mít do tohoto adresáře práva zápisu', + 'ok' => 'Oprávnění adresáře users jsou v pořádku.', + ), + 'zip' => array( + 'nok' => 'Nemáte rozšíření ZIP (balíček php5-zip).', + 'ok' => 'Máte rozšíření ZIP.', + ), + ), + 'extensions' => array( + 'disabled' => 'Vypnuto', + 'empty_list' => 'Není naistalováno žádné rozšíření', + 'enabled' => 'Zapnuto', + 'no_configure_view' => 'Toto rozšíření nemá žádné možnosti nastavení.', + 'system' => array( + '_' => 'Systémová rozšíření', + 'no_rights' => 'Systémová rozšíření (na ně nemáte oprávnění)', + ), + 'title' => 'Rozšíření', + 'user' => 'Uživatelská rozšíření', + ), + 'stats' => array( + '_' => 'Statistika', + 'all_feeds' => 'Všechny kanály', + 'category' => 'Kategorie', + 'entry_count' => 'Počet článků', + 'entry_per_category' => 'Článků na kategorii', + 'entry_per_day' => 'Článků za den (posledních 30 dní)', + 'entry_per_day_of_week' => 'Za den v týdnu (průměr: %.2f zprávy)', + 'entry_per_hour' => 'Za hodinu (průměr: %.2f zprávy)', + 'entry_per_month' => 'Za měsíc (průměr: %.2f zprávy)', + 'entry_repartition' => 'Rozdělení článků', + 'feed' => 'Kanál', + 'feed_per_category' => 'Článků na kategorii', + 'idle' => 'Neaktivní kanály', + 'main' => 'Přehled', + 'main_stream' => 'Všechny kanály', + 'menu' => array( + 'idle' => 'Neaktivní kanály', + 'main' => 'Přehled', + 'repartition' => 'Rozdělení článků', + ), + 'no_idle' => 'Žádné neaktivní kanály!', + 'number_entries' => '%d článků', + 'percent_of_total' => '%% ze všech', + 'repartition' => 'Rozdělení článků', + 'status_favorites' => 'Oblíbené', + 'status_read' => 'Přečtené', + 'status_total' => 'Celkem', + 'status_unread' => 'Nepřečtené', + 'title' => 'Statistika', + 'top_feed' => 'Top ten kanálů', + ), + 'update' => array( + '_' => 'Aktualizace systému', + 'apply' => 'Použít', + 'check' => 'Zkontrolovat aktualizace', + 'current_version' => 'Vaše instalace FreshRSS je verze %s.', + 'last' => 'Poslední kontrola: %s', + 'none' => 'Žádné nové aktualizace', + 'title' => 'Aktualizovat systém', + ), + 'user' => array( + 'articles_and_size' => '%s článků (%s)', + 'create' => 'Vytvořit nového uživatele', + 'email_persona' => 'Email pro přihlášení
(pro Mozilla Persona)', + 'language' => 'Jazyk', + 'password_form' => 'Heslo
(pro přihlášení webovým formulářem)', + 'password_format' => 'Alespoň 7 znaků', + 'title' => 'Správa uživatelů', + 'user_list' => 'Seznam uživatelů', + 'username' => 'Přihlašovací jméno', + 'users' => 'Uživatelé', + ), +); diff --git a/app/i18n/cz/conf.php b/app/i18n/cz/conf.php new file mode 100644 index 000000000..29fb1e4d4 --- /dev/null +++ b/app/i18n/cz/conf.php @@ -0,0 +1,169 @@ + array( + '_' => 'Archivace', + 'advanced' => 'Pokročilé', + 'delete_after' => 'Smazat články starší než', + 'help' => 'Více možností je dostupných v nastavení jednotlivých kanálů', + 'keep_history_by_feed' => 'Zachovat tento minimální počet článků v každém kanálu', + 'optimize' => 'Optimalizovat databázi', + 'optimize_help' => 'Občasná údržba zmenší velikost databáze', + 'purge_now' => 'Vyčistit nyní', + 'title' => 'Archivace', + 'ttl' => 'Neaktualizovat častěji než', + ), + 'display' => array( + '_' => 'Zobrazení', + 'icon' => array( + 'bottom_line' => 'Spodní řádek', + 'entry' => 'Ikony článků', + 'publication_date' => 'Datum vydání', + 'related_tags' => 'Související tagy', + 'sharing' => 'Sdílení', + 'top_line' => 'Horní řádek', + ), + 'language' => 'Jazyk', + 'notif_html5' => array( + 'seconds' => 'sekund (0 znamená žádný timeout)', + 'timeout' => 'Timeout HTML5 notifikací', + ), + 'theme' => 'Vzhled', + 'title' => 'Zobrazení', + 'width' => array( + 'content' => 'Šířka obsahu', + 'large' => 'Velká', + 'medium' => 'Střední', + 'no_limit' => 'Bez limitu', + 'thin' => 'Tenká', + ), + ), + 'query' => array( + '_' => 'Uživatelské dotazy', + 'deprecated' => 'Tento dotaz již není platný. Odkazovaná kategorie nebo kanál byly smazány.', + 'filter' => 'Filtr aplikován:', + 'get_all' => 'Zobrazit všechny články', + 'get_category' => 'Zobrazit "%s" kategorii', + 'get_favorite' => 'Zobrazit oblíbené články', + 'get_feed' => 'Zobrazit "%s" článkek', + 'no_filter' => 'Zrušit filtr', + 'none' => 'Ještě jste nevytvořil žádný uživatelský dotaz.', + 'number' => 'Dotaz n°%d', + 'order_asc' => 'Zobrazit nejdříve nejstarší články', + 'order_desc' => 'Zobrazit nejdříve nejnovější články', + 'search' => 'Hledat "%s"', + 'state_0' => 'Zobrazit všechny články', + 'state_1' => 'Zobrazit přečtené články', + 'state_2' => 'Zobrazit nepřečtené články', + 'state_3' => 'Zobrazit všechny články', + 'state_4' => 'Zobrazit oblíbené články', + 'state_5' => 'Zobrazit oblíbené přečtené články', + 'state_6' => 'Zobrazit oblíbené nepřečtené články', + 'state_7' => 'Zobrazit oblíbené články', + 'state_8' => 'Zobrazit všechny články vyjma oblíbených', + 'state_9' => 'Zobrazit všechny přečtené články vyjma oblíbených', + 'state_10' => 'Zobrazit všechny nepřečtené články vyjma oblíbených', + 'state_11' => 'Zobrazit všechny články vyjma oblíbených', + 'state_12' => 'Zobrazit všechny články', + 'state_13' => 'Zobrazit přečtené články', + 'state_14' => 'Zobrazit nepřečtené články', + 'state_15' => 'Zobrazit všechny články', + 'title' => 'Uživatelské dotazy', + ), + 'profile' => array( + '_' => 'Správa profilu', + 'email_persona' => 'Email pro přihlášení
(pro Mozilla Persona)', + 'password_api' => 'Password API
(tzn. pro mobilní aplikace)', + 'password_form' => 'Heslo
(pro přihlášení webovým formulářem)', + 'password_format' => 'Alespoň 7 znaků', + 'title' => 'Profil', + ), + 'reading' => array( + '_' => 'Čtení', + 'after_onread' => 'Po “označit vše jako přečtené”,', + 'articles_per_page' => 'Počet článků na stranu', + 'auto_load_more' => 'Načítat další články dole na stránce', + 'auto_remove_article' => 'Po přečtení články schovat', + 'confirm_enabled' => 'Vyžadovat potvrzení pro akci “označit vše jako přečtené”', + 'display_articles_unfolded' => 'Ve výchozím stavu zobrazovat články otevřené', + 'display_categories_unfolded' => 'Ve výchozím stavu zobrazovat kategorie zavřené', + 'hide_read_feeds' => 'Schovat kategorie a kanály s nulovým počtem nepřečtených článků (nefunguje s nastavením “Zobrazit všechny články”)', + 'img_with_lazyload' => 'Použít "lazy load" mód pro načítaní obrázků', + 'jump_next' => 'skočit na další nepřečtený (kanál nebo kategorii)', + 'number_divided_when_reader' => 'V režimu “Čtení” děleno dvěma.', + 'read' => array( + 'article_open_on_website' => 'když je otevřen původní web s článkem', + 'article_viewed' => 'během čtení článku', + 'scroll' => 'během skrolování', + 'upon_reception' => 'po načtení článku', + 'when' => 'Označit článek jako přečtený…', + ), + 'show' => array( + '_' => 'Počet zobrazených článků', + 'adaptive' => 'Vyberte zobrazení', + 'all_articles' => 'Zobrazit všechny články', + 'unread' => 'Zobrazit jen nepřečtené', + ), + 'sort' => array( + '_' => 'Řazení', + 'newer_first' => 'Nejdříve nejnovější', + 'older_first' => 'Nejdříve nejstarší', + ), + 'sticky_post' => 'Při otevření posunout článek nahoru', + 'title' => 'Čtení', + 'view' => array( + 'default' => 'Výchozí', + 'global' => 'Přehled', + 'normal' => 'Normální', + 'reader' => 'Čtení', + ), + ), + 'sharing' => array( + '_' => 'Sdílení', + 'blogotext' => 'Blogotext', + 'diaspora' => 'Diaspora*', + 'email' => 'Email', + 'facebook' => 'Facebook', + 'g+' => 'Google+', + 'more_information' => 'Více informací', + 'print' => 'Tisk', + 'shaarli' => 'Shaarli', + 'share_name' => 'Jméno pro zobrazení', + 'share_url' => 'Jakou URL použít pro sdílení', + 'title' => 'Sdílení', + 'twitter' => 'Twitter', + 'wallabag' => 'wallabag', + ), + 'shortcut' => array( + '_' => 'Zkratky', + 'article_action' => 'Články - akce', + 'auto_share' => 'Sdílet', + 'auto_share_help' => 'Je-li nastavena pouze jedna možnost sdílení, bude použita. Další možnosti jsou dostupné pomocí jejich čísla.', + 'close_dropdown' => 'Zavřít menu', + 'collapse_article' => 'Srolovat', + 'first_article' => 'Skočit na první článek', + 'focus_search' => 'Hledání', + 'help' => 'Zobrazit documentaci', + 'javascript' => 'Pro použití zkratek musí být povolen JavaScript', + 'last_article' => 'Skočit na poslední článek', + 'load_more' => 'Načíst více článků', + 'mark_read' => 'Označit jako přečtené', + 'mark_favorite' => 'Označit jako oblíbené', + 'navigation' => 'Navigace', + 'navigation_help' => 'Pomocí přepínače "Shift" fungují navigační zkratky v rámci kanálů.
Pomocí přepínače "Alt" fungují v rámci kategorií.', + 'next_article' => 'Skočit na další článek', + 'other_action' => 'Ostatní akce', + 'previous_article' => 'Skočit na předchozí článek', + 'see_on_website' => 'Navštívit původní webovou stránku', + 'shift_for_all_read' => '+ shift označí vše jako přečtené', + 'title' => 'Zkratky', + 'user_filter' => 'Aplikovat uživatelské filtry', + 'user_filter_help' => 'Je-li nastaven pouze jeden filtr, bude použit. Další filtry jsou dostupné pomocí jejich čísla.', + ), + 'user' => array( + 'articles_and_size' => '%s článků (%s)', + 'current' => 'Aktuální uživatel', + 'is_admin' => 'je administrátor', + 'users' => 'Uživatelé', + ), +); diff --git a/app/i18n/cz/feedback.php b/app/i18n/cz/feedback.php new file mode 100644 index 000000000..52ff029ef --- /dev/null +++ b/app/i18n/cz/feedback.php @@ -0,0 +1,110 @@ + array( + 'optimization_complete' => 'Optimalizace dokončena', + ), + 'access' => array( + 'denied' => 'Nemáte oprávnění přistupovat na tuto stránku', + 'not_found' => 'Tato stránka neexistuje', + ), + 'auth' => array( + 'form' => array( + 'not_set' => 'Nastal problém s konfigurací přihlašovacího systému. Zkuste to prosím později.', + 'set' => 'Webové formulář je nyní výchozí přihlašovací systém.', + ), + 'login' => array( + 'invalid' => 'Login není platný', + 'success' => 'Jste přihlášen', + ), + 'logout' => array( + 'success' => 'Jste odhlášen', + ), + 'no_password_set' => 'Heslo administrátora nebylo nastaveno. Tato funkce není k dispozici.', + 'not_persona' => 'Resetovat lze pouze systém Persona.', + ), + 'conf' => array( + 'error' => 'Během ukládání nastavení došlo k chybě', + 'query_created' => 'Dotaz "%s" byl vytvořen.', + 'shortcuts_updated' => 'Zkratky byly aktualizovány', + 'updated' => 'Nastavení bylo aktualizováno', + ), + 'extensions' => array( + 'already_enabled' => '%s je již zapnut', + 'disable' => array( + 'ko' => '%s nelze vypnout. Pro více detailů zkontrolujte logy FressRSS.', + 'ok' => '%s je nyní vypnut', + ), + 'enable' => array( + 'ko' => '%s nelze zapnout. Pro více detailů zkontrolujte logy FressRSS.', + 'ok' => '%s je nyní zapnut', + ), + 'no_access' => 'Nemáte přístup k %s', + 'not_enabled' => '%s není ještě zapnut', + 'not_found' => '%s neexistuje', + ), + 'import_export' => array( + 'export_no_zip_extension' => 'Na serveru není naistalována podpora zip. Zkuste prosím exportovat soubory jeden po druhém.', + 'feeds_imported' => 'Vaše kanály byly naimportovány a nyní budou aktualizovány', + 'feeds_imported_with_errors' => 'Vaše kanály byly naimportovány, došlo ale k nějakým chybám', + 'file_cannot_be_uploaded' => 'Soubor nelze nahrát!', + 'no_zip_extension' => 'Na serveru není naistalována podpora zip.', + 'zip_error' => 'Během importu zip souboru došlo k chybě.', + ), + 'sub' => array( + 'actualize' => 'Aktualizovat', + 'category' => array( + 'created' => 'Kategorie %s byla vytvořena.', + 'deleted' => 'Kategorie byla smazána.', + 'emptied' => 'Kategorie byla vyprázdněna', + 'error' => 'Kategorii nelze aktualizovat', + 'name_exists' => 'Název kategorie již existuje.', + 'no_id' => 'Musíte upřesnit id kategorie.', + 'no_name' => 'Název kategorie nemůže být prázdný.', + 'not_delete_default' => 'Nelze smazat výchozí kategorii!', + 'not_exist' => 'Tato kategorie neexistuje!', + 'over_max' => 'Dosáhl jste maximálního počtu kategorií (%d)', + 'updated' => 'Kategorie byla aktualizována.', + ), + 'feed' => array( + 'actualized' => '%s bylo aktualizováno', + 'actualizeds' => 'RSS kanály byly aktualizovány', + 'added' => 'RSS kanál %s byl přidán', + 'already_subscribed' => 'Již jste přihlášen k odběru %s', + 'deleted' => 'Kanál byl smazán', + 'error' => 'Kanál nelze aktualizovat', + 'internal_problem' => 'RSS kanál nelze přidat. Pro detaily zkontrolujte logy FressRSS.', + 'invalid_url' => 'URL %s není platné', + 'marked_read' => 'Kanály byly označeny jako přečtené', + 'n_actualized' => '%d kanálů bylo aktualizováno', + 'n_entries_deleted' => '%d článků bylo smazáno', + 'no_refresh' => 'Nelze obnovit žádné kanály…', + 'not_added' => '%s nemůže být přidán', + 'over_max' => 'Dosáhl jste maximálního počtu kanálů (%d)', + 'updated' => 'Kanál byl aktualizován', + ), + 'purge_completed' => 'Vyprázdněno (smazáno %d článků)', + ), + 'update' => array( + 'can_apply' => 'FreshRSS bude nyní upgradováno na verzi %s.', + 'error' => 'Během upgrade došlo k chybě: %s', + 'file_is_nok' => 'Zkontrolujte oprávnění adresáře %s. HTTP server musí mít do tohoto adresáře práva zápisu', + 'finished' => 'Upgrade hotov!', + 'none' => 'Novější verze není k dispozici', + 'server_not_found' => 'Nelze nalézt server s instalačním souborem. [%s]', + ), + 'user' => array( + 'created' => array( + '_' => 'Uživatel %s byl vytvořen', + 'error' => 'Uživatele %s nelze vytvořit', + ), + 'deleted' => array( + '_' => 'Uživatel %s byl smazán', + 'error' => 'Uživatele %s nelze smazat', + ), + ), + 'profile' => array( + 'error' => 'Váš profil nelze změnit', + 'updated' => 'Váš profil byl změněn', + ), +); diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php new file mode 100644 index 000000000..7c333a9c8 --- /dev/null +++ b/app/i18n/cz/gen.php @@ -0,0 +1,164 @@ + array( + 'actualize' => 'Aktualizovat', + 'back_to_rss_feeds' => '← Zpět na seznam RSS kanálů', + 'cancel' => 'Zrušit', + 'create' => 'Vytvořit', + 'disable' => 'Zakázat', + 'empty' => 'Vyprázdnit', + 'enable' => 'Povolit', + 'export' => 'Export', + 'filter' => 'Filtrovat', + 'import' => 'Import', + 'manage' => 'Spravovat', + 'mark_read' => 'Označit jako přečtené', + 'mark_favorite' => 'Označit jako oblíbené', + 'remove' => 'Odstranit', + 'see_website' => 'Navštívit WWW stránku', + 'submit' => 'Odeslat', + 'truncate' => 'Smazat všechny články', + ), + 'auth' => array( + 'keep_logged_in' => 'Zapamatovat přihlášení (1 měsíc)', + 'login' => 'Login', + 'login_persona' => 'Přihlášení pomocí Persona', + 'login_persona_problem' => 'Problém s připojením k Persona?', + 'logout' => 'Odhlášení', + 'password' => 'Heslo', + 'reset' => 'Reset přihlášení', + 'username' => 'Uživatel', + 'username_admin' => 'Název administrátorského účtu', + 'will_reset' => 'Přihlašovací systém bude vyresetován: místo sytému Persona bude použito přihlášení formulářem.', + ), + 'date' => array( + 'Apr' => '\\D\\u\\b\\e\\n', + 'Aug' => '\\S\\r\\p\\e\\n', + 'Dec' => '\\P\\r\\o\\s\\i\\n\\e\\c', + 'Feb' => '\\Ú\\n\\o\\r', + 'Jan' => '\\L\\e\\d\\e\\n', + 'Jul' => '\\Č\\e\\r\\v\\e\\n\\e\\c', + 'Jun' => '\\Č\\e\\r\\v\\e\\n', + 'Mar' => '\\B\\ř\\e\\z\\e\\n', + 'May' => '\\K\\v\\ě\\t\\e\\n', + 'Nov' => '\\L\\i\\s\\t\\o\\p\\a\\d', + 'Oct' => '\\Ř\\í\\j\\e\\n', + 'Sep' => '\\Z\\á\\ř\\í', + 'apr' => 'dub', + 'april' => 'Dub', + 'aug' => 'srp', + 'august' => 'Srp', + 'before_yesterday' => 'Předevčírem', + 'dec' => 'pro', + 'december' => 'Pro', + 'feb' => 'úno', + 'february' => 'Úno', + 'format_date' => 'j\\. %s Y', + 'format_date_hour' => 'j\\. %s Y \\v H\\:i', + 'fri' => 'Pá', + 'jan' => 'led', + 'january' => 'Led', + 'jul' => 'čvn', + 'july' => 'Čvn', + 'jun' => 'čer', + 'june' => 'Čer', + 'last_3_month' => 'Minulé tři měsíce', + 'last_6_month' => 'Minulých šest měsíců', + 'last_month' => 'Minulý měsíc', + 'last_week' => 'Minulý týden', + 'last_year' => 'Minulý rok', + 'mar' => 'bře', + 'march' => 'Bře', + 'may' => 'Kvě', + 'mon' => 'Po', + 'month' => 'měsíce', + 'nov' => 'lis', + 'november' => 'Lis', + 'oct' => 'říj', + 'october' => 'Říj', + 'sat' => 'So', + 'sep' => 'zář', + 'september' => 'Zář', + 'sun' => 'Ne', + 'thu' => 'Čt', + 'today' => 'Dnes', + 'tue' => 'Út', + 'wed' => 'St', + 'yesterday' => 'Včera', + ), + 'freshrss' => array( + '_' => 'FreshRSS', + 'about' => 'O FreshRSS', + ), + 'js' => array( + 'category_empty' => 'Prázdná kategorie', + 'confirm_action' => 'Jste si jist, že chcete provést tuto akci? Změny nelze vrátit zpět!', + 'confirm_action_feed_cat' => 'Jste si jist, že chcete provést tuto akci? Přijdete o související oblíbené položky a uživatelské dotazy. Změny nelze vrátit zpět!', + 'feedback' => array( + 'body_new_articles' => 'Je \\d nových článků k přečtení v FreshRSS.', + 'request_failed' => 'Požadavek selhal, což může být způsobeno problémy s připojení k internetu.', + 'title_new_articles' => 'FreshRSS: nové články!', + ), + 'new_article' => 'Jsou k dispozici nové články, stránku obnovíte kliknutím zde.', + 'should_be_activated' => 'JavaScript musí být povolen', + ), + 'lang' => array( + 'de' => 'Deutsch', + 'en' => 'English', + 'fr' => 'Français', + 'cz' => 'Čeština', + ), + 'menu' => array( + 'about' => 'O aplikaci', + 'admin' => 'Administrace', + 'archiving' => 'Archivace', + 'authentication' => 'Přihlášení', + 'check_install' => 'Ověření instalace', + 'configuration' => 'Nastavení', + 'display' => 'Zobrazení', + 'extensions' => 'Rozšíření', + 'logs' => 'Logy', + 'queries' => 'Uživatelské dotazy', + 'reading' => 'Čtení', + 'search' => 'Hledat výraz nebo #tagy', + 'sharing' => 'Sdílení', + 'shortcuts' => 'Zkratky', + 'stats' => 'Statistika', + 'update' => 'Aktualizace', + 'user_management' => 'Správa uživatelů', + 'user_profile' => 'Profil', + ), + 'pagination' => array( + 'first' => 'První', + 'last' => 'Poslední', + 'load_more' => 'Načíst více článků', + 'mark_all_read' => 'Označit vše jako přečtené', + 'next' => 'Další', + 'nothing_to_load' => 'Žádné nové články', + 'previous' => 'Předchozí', + ), + 'share' => array( + 'blogotext' => 'Blogotext', + 'diaspora' => 'Diaspora*', + 'email' => 'Email', + 'facebook' => 'Facebook', + 'g+' => 'Google+', + 'print' => 'Tisk', + 'shaarli' => 'Shaarli', + 'twitter' => 'Twitter', + 'wallabag' => 'wallabag', + ), + 'short' => array( + 'attention' => 'Upozornění!', + 'blank_to_disable' => 'Zakázat - ponechte prázdné', + 'by_author' => 'Od %s', + 'by_default' => 'Výchozí', + 'damn' => 'Sakra!', + 'default_category' => 'Nezařazeno', + 'no' => 'Ne', + 'ok' => 'Ok!', + 'or' => 'nebo', + 'yes' => 'Ano', + ), +); diff --git a/app/i18n/cz/index.php b/app/i18n/cz/index.php new file mode 100644 index 000000000..5691d12af --- /dev/null +++ b/app/i18n/cz/index.php @@ -0,0 +1,61 @@ + array( + '_' => 'O FreshRSS', + 'agpl3' => 'AGPL 3', + 'bugs_reports' => 'Hlášení chyb', + 'credits' => 'Poděkování', + 'credits_content' => 'Některé designové prvky pocházejí z Bootstrap, FreshRSS ale tuto platformu nevyužívá. Ikony pocházejí z GNOME projektu. Font Open Sans vytvořil Steve Matteson. Favicony jsou shromažďovány pomocí getFavicon API. FreshRSS je založen na PHP framework Minz.', + 'freshrss_description' => 'FreshRSS je čtečka RSS kanálů určená k provozu na vlastním serveru, podobná Kriss Feed nebo Leed. Je to nenáročný a jednoduchý, zároveň ale mocný a konfigurovatelný nástroj.', + 'github' => 'na Github', + 'license' => 'Licence', + 'project_website' => 'Stránka projektu', + 'title' => 'O FreshRSS', + 'version' => 'Verze', + 'website' => 'Webové stránka', + ), + 'feed' => array( + 'add' => 'Můžete přidat kanály.', + 'empty' => 'Žádné články k zobrazení.', + 'rss_of' => 'RSS kanál %s', + 'title' => 'RSS kanály', + 'title_global' => 'Přehled', + 'title_fav' => 'Oblíbené', + ), + 'log' => array( + '_' => 'Logy', + 'clear' => 'Vymazat logy', + 'empty' => 'Log je prázdný', + 'title' => 'Logy', + ), + 'menu' => array( + 'about' => 'O FreshRSS', + 'add_query' => 'Vytvořit dotaz', + 'before_one_day' => 'Den nazpět', + 'before_one_week' => 'Před týdnem', + 'favorites' => 'Oblíbené (%s)', + 'global_view' => 'Přehled', + 'main_stream' => 'Všechny kanály', + 'mark_all_read' => 'Označit vše jako přečtené', + 'mark_cat_read' => 'Označit kategorii jako přečtenou', + 'mark_feed_read' => 'Označit kanál jako přečtený', + 'newer_first' => 'Nové nejdříve', + 'non-starred' => 'Zobrazit vše vyjma oblíbených', + 'normal_view' => 'Normální', + 'older_first' => 'Nejstarší nejdříve', + 'queries' => 'Uživatelské dotazy', + 'read' => 'Zobrazovat přečtené', + 'reader_view' => 'Čtení', + 'rss_view' => 'RSS kanál', + 'search_short' => 'Hledat', + 'starred' => 'Zobrazit oblíbené', + 'stats' => 'Statistika', + 'subscription' => 'Správa subskripcí', + 'unread' => 'Zobrazovat nepřečtené', + ), + 'share' => 'Sdílet', + 'tag' => array( + 'related' => 'Související tagy', + ), +); diff --git a/app/i18n/cz/install.php b/app/i18n/cz/install.php new file mode 100644 index 000000000..53257c84f --- /dev/null +++ b/app/i18n/cz/install.php @@ -0,0 +1,107 @@ + array( + 'finish' => 'Dokončit instalaci', + 'fix_errors_before' => 'Chyby prosím před přechodem na další krok opravte.', + 'next_step' => 'Přejít na další krok', + ), + 'auth' => array( + 'email_persona' => 'Email pro přihlášení
(pro Mozilla Persona)', + 'form' => 'Webový formulář (tradiční, vyžaduje JavaScript)', + 'http' => 'HTTP (pro pokročilé uživatele s HTTPS)', + 'none' => 'Žádný (nebezpečné)', + 'password_form' => 'Heslo
(pro přihlášení webovým formulářem)', + 'password_format' => 'Alespoň 7 znaků', + 'persona' => 'Mozilla Persona (moderní, vyžaduje JavaScript)', + 'type' => 'Způsob přihlášení', + ), + 'bdd' => array( + '_' => 'Databáze', + 'conf' => array( + '_' => 'Nastavení databáze', + 'ko' => 'Ověřte informace o databázi.', + 'ok' => 'Nastavení databáze bylo uloženo.', + ), + 'host' => 'Hostitel', + 'prefix' => 'Prefix tabulky', + 'password' => 'Heslo', + 'type' => 'Typ databáze', + 'username' => 'Uživatel', + ), + 'check' => array( + '_' => 'Kontrola', + 'cache' => array( + 'nok' => 'Zkontrolujte oprávnění adresáře ./data/cache. HTTP server musí mít do tohoto adresáře práva zápisu', + 'ok' => 'Oprávnění adresáře cache jsou v pořádku.', + ), + 'ctype' => array( + 'nok' => 'Není nainstalována požadovaná knihovna pro ověřování znaků (php-ctype).', + 'ok' => 'Je nainstalována požadovaná knihovna pro ověřování znaků (ctype).', + ), + 'curl' => array( + 'nok' => 'Nemáte cURL (balíček php5-curl).', + 'ok' => 'Máte rozšíření cURL.', + ), + 'data' => array( + 'nok' => 'Zkontrolujte oprávnění adresáře ./data. HTTP server musí mít do tohoto adresáře práva zápisu', + 'ok' => 'Oprávnění adresáře data jsou v pořádku.', + ), + 'dom' => array( + 'nok' => 'Nemáte požadovanou knihovnu pro procházení DOM (balíček php-xml).', + 'ok' => 'Máte požadovanou knihovnu pro procházení DOM.', + ), + 'favicons' => array( + 'nok' => 'Zkontrolujte oprávnění adresáře ./data/favicons. HTTP server musí mít do tohoto adresáře práva zápisu', + 'ok' => 'Oprávnění adresáře favicons jsou v pořádku.', + ), + 'http_referer' => array( + 'nok' => 'Zkontrolujte prosím že neměníte HTTP REFERER.', + 'ok' => 'Váš HTTP REFERER je znám a odpovídá Vašemu serveru.', + ), + 'minz' => array( + 'nok' => 'Nemáte framework Minz.', + 'ok' => 'Máte framework Minz.', + ), + 'pcre' => array( + 'nok' => 'Nemáte požadovanou knihovnu pro regulární výrazy (php-pcre).', + 'ok' => 'Máte požadovanou knihovnu pro regulární výrazy (PCRE).', + ), + 'pdo' => array( + 'nok' => 'Nemáte PDO nebo některý z podporovaných ovladačů (pdo_mysql, pdo_sqlite).', + 'ok' => 'Máte PDO a alespoň jeden z podporovaných ovladačů (pdo_mysql, pdo_sqlite).', + ), + 'persona' => array( + 'nok' => 'Zkontrolujte oprávnění adresáře ./data/persona. HTTP server musí mít do tohoto adresáře práva zápisu', + 'ok' => 'Oprávnění adresáře Mozilla Persona jsou v pořádku.', + ), + 'php' => array( + 'nok' => 'Vaše verze PHP je %s, ale FreshRSS vyžaduje alespoň verzi %s.', + 'ok' => 'Vaše verze PHP je %s a je kompatibilní s FreshRSS.', + ), + 'users' => array( + 'nok' => 'Zkontrolujte oprávnění adresáře ./data/users. HTTP server musí mít do tohoto adresáře práva zápisu', + 'ok' => 'Oprávnění adresáře users jsou v pořádku.', + ), + ), + 'conf' => array( + '_' => 'Obecná nastavení', + 'ok' => 'Nastavení bylo uloženo.', + ), + 'congratulations' => 'Gratulujeme!', + 'default_user' => 'Jméno výchozího uživatele (maximálně 16 alfanumerických znaků)', + 'delete_articles_after' => 'Smazat články starší než', + 'fix_errors_before' => 'Chyby prosím před přechodem na další krok opravte.', + 'javascript_is_better' => 'Práce s FreshRSS je příjemnější se zapnutým JavaScriptem', + 'language' => array( + '_' => 'Jazyk', + 'choose' => 'Vyberte jazyk FreshRSS', + 'defined' => 'Jazyk byl nastaven.', + ), + 'not_deleted' => 'Nastala chyba, soubor %s musíte smazat ručně.', + 'ok' => 'Instalace byla úspěšná.', + 'step' => 'krok %d', + 'steps' => 'Kroky', + 'title' => 'Instalace · FreshRSS', + 'this_is_the_end' => 'Konec', +); diff --git a/app/i18n/cz/sub.php b/app/i18n/cz/sub.php new file mode 100644 index 000000000..d7ff63fe9 --- /dev/null +++ b/app/i18n/cz/sub.php @@ -0,0 +1,61 @@ + array( + '_' => 'Kategorie', + 'add' => 'Přidat kategorii', + 'empty' => 'Vyprázdit kategorii', + 'new' => 'Nová kategorie', + ), + 'feed' => array( + 'add' => 'Přidat RSS kanál', + 'advanced' => 'Pokročilé', + 'archiving' => 'Archivace', + 'auth' => array( + 'configuration' => 'Přihlášení', + 'help' => 'Umožní přístup k RSS kanálům chráneným HTTP autentizací', + 'http' => 'HTTP přihlášení', + 'password' => 'Heslo', + 'username' => 'Přihlašovací jméno', + ), + 'css_help' => 'Stáhne zkrácenou verzi RSS kanálů (pozor, náročnější na čas!)', + 'css_path' => 'Původní CSS soubor článku z webových stránek', + 'description' => 'Popis', + 'empty' => 'Kanál je prazdný. Ověřte prosím zda je ještě autorem udržován.', + 'error' => 'Vyskytl se problém s kanálem. Ověřte že je vždy dostupný, prosím, a poté jej aktualizujte.', + 'in_main_stream' => 'Zobrazit ve “Všechny kanály”', + 'informations' => 'Informace', + 'keep_history' => 'Zachovat tento minimální počet článků', + 'moved_category_deleted' => 'Po smazání kategorie budou v ní obsažené kanály automaticky přesunuty do %s.', + 'no_selected' => 'Nejsou označeny žádné kanály.', + 'number_entries' => '%d článků', + 'stats' => 'Statistika', + 'think_to_add' => 'Můžete přidat kanály.', + 'title' => 'Název', + 'title_add' => 'Přidat RSS kanál', + 'ttl' => 'Neobnovovat častěji než', + 'url' => 'URL kanálu', + 'validator' => 'Zkontrolovat platnost kanálu', + 'website' => 'URL webové stránky', + ), + 'import_export' => array( + 'export' => 'Export', + 'export_opml' => 'Exportovat seznam kanálů (OPML)', + 'export_starred' => 'Exportovat oblíbené', + 'feed_list' => 'Seznam %s článků', + 'file_to_import' => 'Soubor k importu
(OPML, Json nebo Zip)', + 'file_to_import_no_zip' => 'Soubor k importu
(OPML nebo Json)', + 'import' => 'Import', + 'starred_list' => 'Seznam oblíbených článků', + 'title' => 'Import / export', + ), + 'menu' => array( + 'bookmark' => 'Přihlásit (FreshRSS bookmark)', + 'import_export' => 'Import / export', + 'subscription_management' => 'Správa subskripcí', + ), + 'title' => array( + '_' => 'Správa subskripcí', + 'feed_management' => 'Správa RSS kanálů', + ), +); -- cgit v1.2.3 From 6283fe99b2ded06d05d01c595a1d067010b4b886 Mon Sep 17 00:00:00 2001 From: Tets Date: Fri, 27 Mar 2015 08:13:34 +0100 Subject: Added Czech to the list in other languages in gen.php --- app/i18n/de/gen.php | 1 + app/i18n/en/gen.php | 1 + app/i18n/fr/gen.php | 1 + 3 files changed, 3 insertions(+) (limited to 'app/i18n') diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index 1b30a5be4..8970d5003 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -104,6 +104,7 @@ return array( 'should_be_activated' => 'JavaScript muss aktiviert sein', ), 'lang' => array( + 'cz' => 'Čeština', 'de' => 'Deutsch', 'en' => 'English', 'fr' => 'Français', diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index fdca01a43..b02b9f0f2 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -104,6 +104,7 @@ return array( 'should_be_activated' => 'JavaScript must be enabled', ), 'lang' => array( + 'cz' => 'Čeština', 'de' => 'Deutsch', 'en' => 'English', 'fr' => 'Français', diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 48fc4a7e9..c81e57bf7 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -104,6 +104,7 @@ return array( 'should_be_activated' => 'Le JavaScript doit être activé.', ), 'lang' => array( + 'cz' => 'Čeština', 'de' => 'Deutsch', 'en' => 'English', 'fr' => 'Français', -- cgit v1.2.3 From 0d0c6b7493161d350ca2eb1d4c45c0c70cfcbb92 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 10 May 2015 14:04:12 +0200 Subject: Moved updated/unread option from global to user https://github.com/FreshRSS/FreshRSS/issues/798 --- app/Controllers/configureController.php | 1 + app/Controllers/feedController.php | 2 +- app/Models/ConfigurationSetter.php | 4 ++++ app/i18n/de/conf.php | 1 + app/i18n/en/conf.php | 1 + app/i18n/fr/conf.php | 1 + app/views/configure/reading.phtml | 9 +++++++++ data/config.default.php | 4 ---- data/users/_/config.default.php | 5 +++++ 9 files changed, 23 insertions(+), 5 deletions(-) (limited to 'app/i18n') diff --git a/app/Controllers/configureController.php b/app/Controllers/configureController.php index fc92aa0c2..248a3edcc 100755 --- a/app/Controllers/configureController.php +++ b/app/Controllers/configureController.php @@ -112,6 +112,7 @@ class FreshRSS_configure_Controller extends Minz_ActionController { FreshRSS_Context::$user_conf->sticky_post = Minz_Request::param('sticky_post', false); FreshRSS_Context::$user_conf->reading_confirm = Minz_Request::param('reading_confirm', false); FreshRSS_Context::$user_conf->auto_remove_article = Minz_Request::param('auto_remove_article', false); + FreshRSS_Context::$user_conf->mark_updated_article_unread = Minz_Request::param('mark_updated_article_unread', false); FreshRSS_Context::$user_conf->sort_order = Minz_Request::param('sort_order', 'DESC'); FreshRSS_Context::$user_conf->mark_when = array( 'article' => Minz_Request::param('mark_open_article', false), diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php index 03f438888..a36a38ce2 100755 --- a/app/Controllers/feedController.php +++ b/app/Controllers/feedController.php @@ -343,7 +343,7 @@ class FreshRSS_feed_Controller extends Minz_ActionController { Minz_Log::debug('Entry with GUID `' . $entry->guid() . '` updated in feed ' . $feed->id() . ', old hash ' . $existingHash . ', new hash ' . $entry->hash()); //TODO: Make an updated/is_read policy by feed, in addition to the global one. - $entry->_isRead(FreshRSS_Context::$system_conf->mark_updated_article_unread ? false : null); //Change is_read according to policy. + $entry->_isRead(FreshRSS_Context::$user_conf->mark_updated_article_unread ? false : null); //Change is_read according to policy. if (!$entryDAO->hasTransaction()) { $entryDAO->beginTransaction(); } diff --git a/app/Models/ConfigurationSetter.php b/app/Models/ConfigurationSetter.php index 7f433239c..4bd29ecb0 100644 --- a/app/Models/ConfigurationSetter.php +++ b/app/Models/ConfigurationSetter.php @@ -189,6 +189,10 @@ class FreshRSS_ConfigurationSetter { $data['auto_remove_article'] = $this->handleBool($value); } + private function _mark_updated_article_unread(&$data, $value) { + $data['mark_updated_article_unread'] = $this->handleBool($value); + } + private function _display_categories(&$data, $value) { $data['display_categories'] = $this->handleBool($value); } diff --git a/app/i18n/de/conf.php b/app/i18n/de/conf.php index 64c2c0945..df2c07d49 100644 --- a/app/i18n/de/conf.php +++ b/app/i18n/de/conf.php @@ -84,6 +84,7 @@ return array( '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', + 'mark_updated_article_unread' => 'Markieren Sie aktualisierte Artikel als ungelesen', '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', diff --git a/app/i18n/en/conf.php b/app/i18n/en/conf.php index 308c45d2c..683781696 100644 --- a/app/i18n/en/conf.php +++ b/app/i18n/en/conf.php @@ -84,6 +84,7 @@ return array( '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', + 'mark_updated_article_unread' => 'Mark updated articles as unread', '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', diff --git a/app/i18n/fr/conf.php b/app/i18n/fr/conf.php index d38445b99..87f9be290 100644 --- a/app/i18n/fr/conf.php +++ b/app/i18n/fr/conf.php @@ -84,6 +84,7 @@ return array( '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', + 'mark_updated_article_unread' => 'Marquer les articles mis à jour comme non-lus', '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', diff --git a/app/views/configure/reading.phtml b/app/views/configure/reading.phtml index 8b123afa8..1b7a101df 100644 --- a/app/views/configure/reading.phtml +++ b/app/views/configure/reading.phtml @@ -125,6 +125,15 @@ +
+
+ +
+
+
diff --git a/data/config.default.php b/data/config.default.php index dc947f154..8be203d36 100644 --- a/data/config.default.php +++ b/data/config.default.php @@ -55,10 +55,6 @@ return array( # SimplePie, which is retrieving RSS feeds via HTTP requests. 'simplepie_syslog_enabled' => true, - # In the case an article has changed (e.g. updated content): - # Set to `true` to mark it unread, or `false` to leave it as-is. - 'mark_updated_article_unread' => false, - 'limits' => array( # Duration in seconds of the SimplePie cache, diff --git a/data/users/_/config.default.php b/data/users/_/config.default.php index 6d3f73a13..bf74ca1de 100644 --- a/data/users/_/config.default.php +++ b/data/users/_/config.default.php @@ -22,6 +22,11 @@ return array ( 'sticky_post' => true, 'reading_confirm' => false, 'auto_remove_article' => false, + + # In the case an article has changed (e.g. updated content): + # Set to `true` to mark it unread, or `false` to leave it as-is. + 'mark_updated_article_unread' => false, + 'sort_order' => 'DESC', 'anon_access' => false, 'mark_when' => array ( -- cgit v1.2.3 From ead849dbe3717966dff50e55d6bf849dafde87b7 Mon Sep 17 00:00:00 2001 From: Tets Date: Mon, 11 May 2015 10:20:17 +0200 Subject: Czech translation --- app/i18n/cz/feedback.php | 2 +- app/i18n/cz/sub.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/cz/feedback.php b/app/i18n/cz/feedback.php index 52ff029ef..b75a4a15a 100644 --- a/app/i18n/cz/feedback.php +++ b/app/i18n/cz/feedback.php @@ -11,7 +11,7 @@ return array( 'auth' => array( 'form' => array( 'not_set' => 'Nastal problém s konfigurací přihlašovacího systému. Zkuste to prosím později.', - 'set' => 'Webové formulář je nyní výchozí přihlašovací systém.', + 'set' => 'Webový formulář je nyní výchozí přihlašovací systém.', ), 'login' => array( 'invalid' => 'Login není platný', diff --git a/app/i18n/cz/sub.php b/app/i18n/cz/sub.php index d7ff63fe9..78712506c 100644 --- a/app/i18n/cz/sub.php +++ b/app/i18n/cz/sub.php @@ -21,7 +21,7 @@ return array( 'css_help' => 'Stáhne zkrácenou verzi RSS kanálů (pozor, náročnější na čas!)', 'css_path' => 'Původní CSS soubor článku z webových stránek', 'description' => 'Popis', - 'empty' => 'Kanál je prazdný. Ověřte prosím zda je ještě autorem udržován.', + 'empty' => 'Kanál je prázdný. Ověřte prosím zda je ještě autorem udržován.', 'error' => 'Vyskytl se problém s kanálem. Ověřte že je vždy dostupný, prosím, a poté jej aktualizujte.', 'in_main_stream' => 'Zobrazit ve “Všechny kanály”', 'informations' => 'Informace', -- cgit v1.2.3 From 3adab4b70fab858048bd68ed72e71676c4d5badf Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 16 May 2015 13:05:43 +0200 Subject: More PubSubHubbub https://github.com/FreshRSS/FreshRSS/issues/312 Show whether PubSubHubbub is enabled in the Web interface of feed configuration. When PubSubHubbub is used, do not pull refresh so often (hard-coded to max once per 24h for now). Improved logic for lease renewal, and some detection of lease problems. Updated read-me and changelog. --- CHANGELOG | 9 ++++++ README.fr.md | 22 +++++++------- README.md | 34 ++++++++++----------- app/Controllers/feedController.php | 36 ++++++++++++++-------- app/Models/Feed.php | 59 +++++++++++++++++++++++++++++++------ app/i18n/cz/conf.php | 1 + app/i18n/cz/sub.php | 1 + app/i18n/de/sub.php | 1 + app/i18n/en/sub.php | 1 + app/i18n/fr/sub.php | 1 + app/views/helpers/feed/update.phtml | 8 +++++ data/users/_/config.default.php | 2 +- p/api/pshb.php | 8 +++-- 13 files changed, 128 insertions(+), 55 deletions(-) (limited to 'app/i18n') diff --git a/CHANGELOG b/CHANGELOG index d1b49d339..f3559ccc4 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,15 @@ ## 2015-xx-xx FreshRSS 1.1.1 (beta) +* Features + * Support for PubSubHubbub for instant notifications from compatible Web sites. + * New option to detect and mark updated articles as unread. + * Support for internationalized domain name (IDN). +* Misc. + * Improved logic for automatic deletion of old articles. + * Attempt to better handle encoded titles. + + ## 2015-01-31 FreshRSS 1.0.0 / 1.1.0 (beta) * UI diff --git a/README.fr.md b/README.fr.md index 6c77ccf51..1110eb8e5 100644 --- a/README.fr.md +++ b/README.fr.md @@ -6,6 +6,7 @@ FreshRSS est un agrégateur de flux RSS à auto-héberger à l’image de [Leed] Il se veut léger et facile à prendre en main tout en étant un outil puissant et paramétrable. Il permet de gérer plusieurs utilisateurs, et dispose d’un mode de lecture anonyme. +Il supporte [PubSubHubbub](https://code.google.com/p/pubsubhubbub/) pour des notifications instantanées depuis les sites compatibles. * Site officiel : http://freshrss.org * Démo : http://demo.freshrss.org/ @@ -14,28 +15,25 @@ Il permet de gérer plusieurs utilisateurs, et dispose d’un mode de lecture an ![Logo de FreshRSS](http://marienfressinaud.fr/data/images/freshrss/freshrss_title.png) # Note sur les branches -**Ce logiciel est encore en développement !** Veuillez vous assurer d'utiliser la branche qui vous correspond : +**Ce logiciel est en développement permanent !** Veuillez vous assurer d'utiliser la branche qui vous correspond : * Utilisez [la branche master](https://github.com/FreshRSS/FreshRSS/tree/master/) si vous visez la stabilité. * [La branche beta](https://github.com/FreshRSS/FreshRSS/tree/beta) est celle par défaut : les nouveautés y sont ajoutées environ tous les mois. -* Pour les développeurs et ceux qui savent ce qu'ils font, [la branche dev](https://github.com/FreshRSS/FreshRSS/tree/dev) vous ouvre les bras ! +* Pour les développeurs et ceux qui veulent aider à tester les toutes dernières fonctionnalités, [la branche dev](https://github.com/FreshRSS/FreshRSS/tree/dev) vous ouvre les bras ! # Disclaimer -Cette application a été développée pour s’adapter à des besoins personnels et non professionnels. -Je ne garantis en aucun cas la sécurité de celle-ci, ni son bon fonctionnement. -Je m’engage néanmoins à répondre dans la mesure du possible aux demandes d’évolution si celles-ci me semblent justifiées. -Privilégiez pour cela des demandes sur GitHub -(https://github.com/FreshRSS/FreshRSS/issues). +Cette application a été développée pour s’adapter principalement à des besoins personnels, et aucune garantie n'est fournie. +Les demandes de fonctionnalités, rapports de bugs, et autres contributions sont les bienvenues. Privilégiez pour cela des [demandes sur GitHub](https://github.com/FreshRSS/FreshRSS/issues). -# Pré-requis +# Prérequis * Serveur modeste, par exemple sous Linux ou Windows * Fonctionne même sur un Raspberry Pi avec des temps de réponse < 1s (testé sur 150 flux, 22k articles, soit 32Mo de données partiellement compressées) * Serveur Web Apache2 (recommandé), ou nginx, lighttpd (non testé sur les autres) * PHP 5.2.1+ (PHP 5.3.7+ recommandé) - * Requis : [PDO_MySQL](http://php.net/pdo-mysql) ou [PDO_SQLite](http://php.net/pdo-sqlite), [cURL](http://php.net/curl), [GMP](http://php.net/gmp) (pour accès API sur platformes < 64 bits), [IDN](http://php.net/intl.idn) (pour les noms de domaines internationalisés) + * Requis : [PDO_MySQL](http://php.net/pdo-mysql) ou [PDO_SQLite](http://php.net/pdo-sqlite), [cURL](http://php.net/curl), [GMP](http://php.net/gmp) (pour accès API sur plateformes < 64 bits), [IDN](http://php.net/intl.idn) (pour les noms de domaines internationalisés) * Recommandés : [JSON](http://php.net/json), [mbstring](http://php.net/mbstring), [zlib](http://php.net/zlib), [Zip](http://php.net/zip) * MySQL 5.0.3+ (recommandé) ou SQLite 3.7.4+ -* Un navigateur Web récent tel Firefox 4+, Chrome, Opera, Safari, Internet Explorer 9+ +* Un navigateur Web récent tel Firefox, Chrome, Opera, Safari. [Internet Explorer ne fonctionne plus, mais ce sera corrigé](https://github.com/FreshRSS/FreshRSS/issues/772). * Fonctionne aussi sur mobile ![Capture d’écran de FreshRSS](http://marienfressinaud.fr/data/images/freshrss/freshrss_default-design.png) @@ -63,7 +61,7 @@ C’est une bonne idée d’utiliser le même utilisateur que votre serveur Web Par exemple, pour exécuter le script toutes les heures : ``` -7 * * * * php /chemin/vers/FreshRSS/app/actualize_script.php > /tmp/FreshRSS.log 2>&1 +7 * * * * php /votre-chemin/FreshRSS/app/actualize_script.php > /tmp/FreshRSS.log 2>&1 ``` # Conseils @@ -75,7 +73,7 @@ Par exemple, pour exécuter le script toutes les heures : # Sauvegarde * Il faut conserver vos fichiers `./data/config.php` ainsi que `./data/*_user.php` et éventuellement `./data/persona/` * Vous pouvez exporter votre liste de flux depuis FreshRSS au format OPML -* Pour sauvegarder les articles eux-même, vous pouvez utiliser [phpMyAdmin](http://www.phpmyadmin.net) ou les outils de MySQL : +* Pour sauvegarder les articles eux-mêmes, vous pouvez utiliser [phpMyAdmin](http://www.phpmyadmin.net) ou les outils de MySQL : ```bash mysqldump -u utilisateur -p --databases freshrss > freshrss.sql diff --git a/README.md b/README.md index 089bbd780..4430560fe 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,12 @@ * [Version française](README.fr.md) # FreshRSS -FreshRSS is a self-hosted RSS feed agregator like [Leed](http://projet.idleman.fr/leed/) or [Kriss Feed](http://tontof.net/kriss/feed/). +FreshRSS is a self-hosted RSS feed aggregator such as [Leed](http://projet.idleman.fr/leed/) or [Kriss Feed](http://tontof.net/kriss/feed/). -It is at the same time light-weight, easy to work with, powerful and customizable. +It is at the same time lightweight, easy to work with, powerful and customizable. It is a multi-user application with an anonymous reading mode. +It supports [PubSubHubbub](https://code.google.com/p/pubsubhubbub/) for instant notifications from compatible Web sites. * Official website: http://freshrss.org * Demo: http://demo.freshrss.org/ @@ -14,28 +15,25 @@ It is a multi-user application with an anonymous reading mode. ![FreshRSS logo](http://marienfressinaud.fr/data/images/freshrss/freshrss_title.png) # Note on branches -**This application is still in development!** Please use the branch that suits your needs: +**This application is under continuous development!** Please use the branch that suits your needs: * Use [the master branch](https://github.com/FreshRSS/FreshRSS/tree/master/) if you need a stable version. * [The beta branch](https://github.com/FreshRSS/FreshRSS/tree/beta) is the default branch: new features are added on a monthly basis. -* For developers and tech savvy persons, [the dev branch](https://github.com/FreshRSS/FreshRSS/tree/dev) is waiting for you! +* For developers and tech savvy persons willing to help testing the latest features, [the dev branch](https://github.com/FreshRSS/FreshRSS/tree/dev) is waiting for you! # Disclaimer -This application was developed to fulfill personal needs not professional needs. -There is no guarantee neither on its security nor its proper functioning. -If there is feature requests which I think are good for the project, I'll do my best to include them. -The best way is to open issues on GitHub -(https://github.com/FreshRSS/FreshRSS/issues). +This application was developed to fulfil personal needs primarily, and comes with absolutely no warranty. +Feature requests, bug reports, and other contributions are welcome. The best way is to [open issues on GitHub](https://github.com/FreshRSS/FreshRSS/issues). # Requirements * Light server running Linux or Windows * It even works on Raspberry Pi with response time under a second (tested with 150 feeds, 22k articles, or 32Mo of compressed data) -* A web server: Apache2 (recommanded), nginx, lighttpd (not tested on others) -* PHP 5.2.1+ (PHP 5.3.7+ recommanded) +* A web server: Apache2 (recommended), nginx, lighttpd (not tested on others) +* PHP 5.2.1+ (PHP 5.3.7+ recommended) * Required extensions: [PDO_MySQL](http://php.net/pdo-mysql) or [PDO_SQLite](http://php.net/pdo-sqlite), [cURL](http://php.net/curl), [GMP](http://php.net/gmp) (for API access on platforms < 64 bits), [IDN](http://php.net/intl.idn) (for Internationalized Domain Names) - * Recommanded extensions : [JSON](http://php.net/json), [mbstring](http://php.net/mbstring), [zlib](http://php.net/zlib), [Zip](http://php.net/zip) -* MySQL 5.0.3+ (recommanded) or SQLite 3.7.4+ -* A recent browser like Firefox 4+, Chrome, Opera, Safari, Internet Explorer 9+ + * Recommended extensions: [JSON](http://php.net/json), [mbstring](http://php.net/mbstring), [zlib](http://php.net/zlib), [Zip](http://php.net/zip) +* MySQL 5.0.3+ (recommended) or SQLite 3.7.4+ +* A recent browser like Firefox, Chrome, Opera, Safari. [Internet Explorer currently not supported, but support will come back](https://github.com/FreshRSS/FreshRSS/issues/772). * Works on mobile ![FreshRSS screenshot](http://marienfressinaud.fr/data/images/freshrss/freshrss_default-design.png) @@ -45,7 +43,7 @@ The best way is to open issues on GitHub 2. Dump the application on your server (expose only the `./p/` folder) 3. Add write access on `./data/` folder to the webserver user 4. Access FreshRSS with your browser and follow the installation process -5. Every thing should be working :) If you encounter any problem, feel free to contact me. +5. Everything should be working :) If you encounter any problem, feel free to contact me. 6. Advanced configuration settings can be seen in [config.php](./data/config.default.php). # Access control @@ -59,18 +57,18 @@ It is needed for the multi-user mode to limit access to FreshRSS. You can: # Automatic feed update * You can add a Cron job to launch the update script. Check the Cron documentation related to your distribution ([Debian/Ubuntu](https://help.ubuntu.com/community/CronHowto), [Red Hat/Fedora](https://fedoraproject.org/wiki/Administration_Guide_Draft/Cron), [Slackware](http://docs.slackware.com/fr:slackbook:process_control?#cron), [Gentoo](https://wiki.gentoo.org/wiki/Cron), [Arch Linux](https://wiki.archlinux.org/index.php/Cron)…). -It’s a good idea to use the web server user . +It’s a good idea to use the Web server user. For example, if you want to run the script every hour: ``` -7 * * * * php /chemin/vers/FreshRSS/app/actualize_script.php > /tmp/FreshRSS.log 2>&1 +7 * * * * php /your-path/FreshRSS/app/actualize_script.php > /tmp/FreshRSS.log 2>&1 ``` # Advices * For a better security, expose only the `./p/` folder on the web. * Be aware that the `./data/` folder contains all personal data, so it is a bad idea to expose it. * The `./constants.php` file defines access to application folder. If you want to customize your installation, every thing happens here. -* If you encounter any problem, logs are accessibles from the interface or manually in `./data/log/*.log` files. +* If you encounter any problem, logs are accessible from the interface or manually in `./data/log/*.log` files. # Backup * You need to keep `./data/config.php`, `./data/*_user.php` and `./data/persona/` files diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php index ab73879d0..dfdf0dc16 100755 --- a/app/Controllers/feedController.php +++ b/app/Controllers/feedController.php @@ -268,7 +268,7 @@ class FreshRSS_feed_Controller extends Minz_ActionController { * If id and url are not specified, all the feeds are actualized. But if force is * false, process stops at 10 feeds to avoid time execution problem. */ - public function actualizeAction($simplePie = null) { + public function actualizeAction($simplePiePush = null) { @set_time_limit(300); $feedDAO = FreshRSS_Factory::createFeedDao(); @@ -295,10 +295,16 @@ class FreshRSS_feed_Controller extends Minz_ActionController { // Calculate date of oldest entries we accept in DB. $nb_month_old = max(FreshRSS_Context::$user_conf->old_entries, 1); $date_min = time() - (3600 * 24 * 30 * $nb_month_old); + $pshbMinAge = time() - (3600 * 24); //TODO: Make a configuration. $updated_feeds = 0; $is_read = FreshRSS_Context::$user_conf->mark_when['reception'] ? 1 : 0; foreach ($feeds as $feed) { + $pubSubHubbubEnabled = $feed->pubSubHubbubEnabled(); + if ((!$simplePiePush) && (!$id) && (!$force) && $pubSubHubbubEnabled && ($feed->lastUpdate() > $pshbMinAge)) { + continue; //When PubSubHubbub is used, do not pull refresh so often + } + if (!$feed->lock()) { Minz_Log::notice('Feed already being actualized: ' . $feed->url()); continue; @@ -306,8 +312,8 @@ class FreshRSS_feed_Controller extends Minz_ActionController { $url = $feed->url(); //For detection of HTTP 301 try { - if ($simplePie) { - $feed->loadEntries($simplePie); //Used by PubSubHubbub + if ($simplePiePush) { + $feed->loadEntries($simplePiePush); //Used by PubSubHubbub } else { $feed->load(false); } @@ -374,6 +380,14 @@ class FreshRSS_feed_Controller extends Minz_ActionController { continue; } + if ($pubSubHubbubEnabled && !$simplePiePush) { //We use push, but have discovered an article by pull! + $text = 'An article was discovered by pull although we use PubSubHubbub!: Feed ' . $url . ' GUID ' . $entry->guid(); + file_put_contents(USERS_PATH . '/_/log_pshb.txt', date('c') . "\t" . $text . "\n", FILE_APPEND); + Minz_Log::warning($text); + $pubSubHubbubEnabled = false; + $feed->pubSubHubbubEnabled(false); //To force the renewal of our lease + } + if (!$entryDAO->hasTransaction()) { $entryDAO->beginTransaction(); } @@ -423,15 +437,13 @@ class FreshRSS_feed_Controller extends Minz_ActionController { $feedDAO->updateFeed($feed->id(), array('url' => $feed->url())); } - if ($simplePie === null) { - $feed->faviconPrepare(); - if (in_array($feed->url(), array('http://push-pub.appspot.com/feed'))) { //TODO: Remove white-list after testing - Minz_Log::debug('PubSubHubbub match ' . $feed->url()); - if ($feed->pubSubHubbubPrepare()) { - Minz_Log::notice('PubSubHubbub subscribe ' . $feed->url()); - if (!$feed->pubSubHubbubSubscribe(true)) { //Subscribe - Minz_Log::warning('Error while PubSubHubbub subscribing to ' . $feed->url()); - } + $feed->faviconPrepare(); + if (in_array($feed->url(), array('http://push-pub.appspot.com/feed'))) { //TODO: Remove white-list after testing + Minz_Log::debug('PubSubHubbub match ' . $feed->url()); + if ($feed->pubSubHubbubPrepare()) { + Minz_Log::notice('PubSubHubbub subscribe ' . $feed->url()); + if (!$feed->pubSubHubbubSubscribe(true)) { //Subscribe + Minz_Log::warning('Error while PubSubHubbub subscribing to ' . $feed->url()); } } } diff --git a/app/Models/Feed.php b/app/Models/Feed.php index d2b552265..7bc60dfc9 100644 --- a/app/Models/Feed.php +++ b/app/Models/Feed.php @@ -104,6 +104,16 @@ class FreshRSS_Feed extends Minz_Model { public function ttl() { return $this->ttl; } + // public function ttlExpire() { + // $ttl = $this->ttl; + // if ($ttl == -2) { //Default + // $ttl = FreshRSS_Context::$user_conf->ttl_default; + // } + // if ($ttl == -1) { //Never + // $ttl = 64000000; //~2 years. Good enough for PubSubHubbub logic + // } + // return $this->lastUpdate + $ttl; + // } public function nbEntries() { if ($this->nbEntries < 0) { $feedDAO = FreshRSS_Factory::createFeedDao(); @@ -349,18 +359,42 @@ class FreshRSS_Feed extends Minz_Model { // + function pubSubHubbubEnabled($keep = true) { + $url = $this->selfUrl ? $this->selfUrl : $this->url; + $hubFilename = PSHB_PATH . '/feeds/' . base64url_encode($url) . '/!hub.json'; + if ($hubFile = @file_get_contents($hubFilename)) { + $hubJson = json_decode($hubFile, true); + if (!$keep) { + $hubJson['lease_end'] = time() - 60; + file_put_contents($hubFilename, json_encode($hubJson)); + file_put_contents(USERS_PATH . '/_/log_pshb.txt', date('c') . "\t" + . 'Force expire lease for ' . $url . "\n", FILE_APPEND); + } elseif ($hubJson && (empty($hubJson['lease_end']) || $hubJson['lease_end'] > time())) { + return true; + } + } + return false; + } + function pubSubHubbubPrepare() { $key = ''; if (FreshRSS_Context::$system_conf->base_url && $this->hubUrl && $this->selfUrl) { $path = PSHB_PATH . '/feeds/' . base64url_encode($this->selfUrl); - if ($hubFile = @file_get_contents($path . '/!hub.json')) { + $hubFilename = $path . '/!hub.json'; + if ($hubFile = @file_get_contents($hubFilename)) { $hubJson = json_decode($hubFile, true); if (!$hubJson || empty($hubJson['key']) || !ctype_xdigit($hubJson['key'])) { - Minz_Log::warning('Invalid JSON for PubSubHubbub: ' . $this->url); + $text = 'Invalid JSON for PubSubHubbub: ' . $this->url; + Minz_Log::warning($text); + file_put_contents(USERS_PATH . '/_/log_pshb.txt', date('c') . "\t" . $text . "\n", FILE_APPEND); return false; } - if (empty($hubJson['lease_end']) || $hubJson['lease_end'] <= time()) { - Minz_Log::warning('PubSubHubbub lease expired: ' . $this->url); + if (empty($hubJson['lease_end']) || ($hubJson['lease_end'] <= (time() + (3600 * 24)))) { //TODO: Make a better policy + $text = 'PubSubHubbub lease ends at ' + . date('c', empty($hubJson['lease_end']) ? time() : $hubJson['lease_end']) + . ' and needs renewal: ' . $this->url; + Minz_Log::warning($text); + file_put_contents(USERS_PATH . '/_/log_pshb.txt', date('c') . "\t" . $text . "\n", FILE_APPEND); $key = $hubJson['key']; //To renew our lease } } else { @@ -370,12 +404,12 @@ class FreshRSS_Feed extends Minz_Model { 'hub' => $this->hubUrl, 'key' => $key, ); - file_put_contents($path . '/!hub.json', json_encode($hubJson)); + file_put_contents($hubFilename, json_encode($hubJson)); @mkdir(PSHB_PATH . '/keys/'); file_put_contents(PSHB_PATH . '/keys/' . $key . '.txt', base64url_encode($this->selfUrl)); - Minz_Log::debug('PubSubHubbub prepared for ' . $this->url); - file_put_contents(USERS_PATH . '/_/log_pshb.txt', date('c') . "\t" . - 'PubSubHubbub prepared for ' . $this->url . "\n", FILE_APPEND); + $text = 'PubSubHubbub prepared for ' . $this->url; + Minz_Log::debug($text); + file_put_contents(USERS_PATH . '/_/log_pshb.txt', date('c') . "\t" . $text . "\n", FILE_APPEND); } $currentUser = Minz_Session::param('currentUser'); if (ctype_alnum($currentUser) && !file_exists($path . '/' . $currentUser . '.txt')) { @@ -388,7 +422,8 @@ class FreshRSS_Feed extends Minz_Model { //Parameter true to subscribe, false to unsubscribe. function pubSubHubbubSubscribe($state) { if (FreshRSS_Context::$system_conf->base_url && $this->hubUrl && $this->selfUrl) { - $hubFile = @file_get_contents(PSHB_PATH . '/feeds/' . base64url_encode($this->selfUrl) . '/!hub.json'); + $hubFilename = PSHB_PATH . '/feeds/' . base64url_encode($this->selfUrl) . '/!hub.json'; + $hubFile = @file_get_contents($hubFilename); if ($hubFile === false) { Minz_Log::warning('JSON not found for PubSubHubbub: ' . $this->url); return false; @@ -421,6 +456,12 @@ class FreshRSS_Feed extends Minz_Model { file_put_contents(USERS_PATH . '/_/log_pshb.txt', date('c') . "\t" . 'PubSubHubbub ' . ($state ? 'subscribe' : 'unsubscribe') . ' to ' . $this->selfUrl . ' with callback ' . $callbackUrl . ': ' . $info['http_code'] . ' ' . $response . "\n", FILE_APPEND); + + if (!$state) { //unsubscribe + $hubJson['lease_end'] = time() - 60; + file_put_contents($hubFilename, json_encode($hubJson)); + } + return substr($info['http_code'], 0, 1) == '2'; } return false; diff --git a/app/i18n/cz/conf.php b/app/i18n/cz/conf.php index 29fb1e4d4..9518df66d 100644 --- a/app/i18n/cz/conf.php +++ b/app/i18n/cz/conf.php @@ -84,6 +84,7 @@ return array( 'articles_per_page' => 'Počet článků na stranu', 'auto_load_more' => 'Načítat další články dole na stránce', 'auto_remove_article' => 'Po přečtení články schovat', + 'mark_updated_article_unread' => 'Označte aktualizované položky jako nepřečtené', 'confirm_enabled' => 'Vyžadovat potvrzení pro akci “označit vše jako přečtené”', 'display_articles_unfolded' => 'Ve výchozím stavu zobrazovat články otevřené', 'display_categories_unfolded' => 'Ve výchozím stavu zobrazovat kategorie zavřené', diff --git a/app/i18n/cz/sub.php b/app/i18n/cz/sub.php index 78712506c..cea0541e3 100644 --- a/app/i18n/cz/sub.php +++ b/app/i18n/cz/sub.php @@ -37,6 +37,7 @@ return array( 'url' => 'URL kanálu', 'validator' => 'Zkontrolovat platnost kanálu', 'website' => 'URL webové stránky', + 'pubsubhubbub' => 'Okamžité oznámení s PubSubHubbub', ), 'import_export' => array( 'export' => 'Export', diff --git a/app/i18n/de/sub.php b/app/i18n/de/sub.php index 0479b8f46..7433bd61c 100644 --- a/app/i18n/de/sub.php +++ b/app/i18n/de/sub.php @@ -37,6 +37,7 @@ return array( 'url' => 'Feed-URL', 'validator' => 'Überprüfen Sie die Gültigkeit des Feeds', 'website' => 'Webseiten-URL', + 'pubsubhubbub' => 'Sofortige Benachrichtigung mit PubSubHubbub', ), 'import_export' => array( 'export' => 'Exportieren', diff --git a/app/i18n/en/sub.php b/app/i18n/en/sub.php index 2b62e4775..d8b5ced04 100644 --- a/app/i18n/en/sub.php +++ b/app/i18n/en/sub.php @@ -37,6 +37,7 @@ return array( 'url' => 'Feed URL', 'validator' => 'Check the validity of the feed', 'website' => 'Website URL', + 'pubsubhubbub' => 'Instant notification with PubSubHubbub', ), 'import_export' => array( 'export' => 'Export', diff --git a/app/i18n/fr/sub.php b/app/i18n/fr/sub.php index a3f7c4d6d..0a1a03e41 100644 --- a/app/i18n/fr/sub.php +++ b/app/i18n/fr/sub.php @@ -37,6 +37,7 @@ return array( 'url' => 'URL du flux', 'validator' => 'Vérifier la valididé du flux', 'website' => 'URL du site', + 'pubsubhubbub' => 'Notification instantanée par PubSubHubbub', ), 'import_export' => array( 'export' => 'Exporter', diff --git a/app/views/helpers/feed/update.phtml b/app/views/helpers/feed/update.phtml index 0b08d036c..b2cf9f93c 100644 --- a/app/views/helpers/feed/update.phtml +++ b/app/views/helpers/feed/update.phtml @@ -126,6 +126,14 @@ ?>
+
+ +
+ +
+
diff --git a/data/users/_/config.default.php b/data/users/_/config.default.php index bf74ca1de..8f8ff528c 100644 --- a/data/users/_/config.default.php +++ b/data/users/_/config.default.php @@ -25,7 +25,7 @@ return array ( # In the case an article has changed (e.g. updated content): # Set to `true` to mark it unread, or `false` to leave it as-is. - 'mark_updated_article_unread' => false, + 'mark_updated_article_unread' => false, //TODO: -1 => ignore, 0 => update, 1 => update and mark as unread 'sort_order' => 'DESC', 'anon_access' => false, diff --git a/p/api/pshb.php b/p/api/pshb.php index 6280c04ac..2f7f48cd8 100644 --- a/p/api/pshb.php +++ b/p/api/pshb.php @@ -57,8 +57,10 @@ if (!empty($_REQUEST['hub_mode']) && $_REQUEST['hub_mode'] === 'subscribe') { $leaseSeconds = empty($_REQUEST['hub_lease_seconds']) ? 0 : intval($_REQUEST['hub_lease_seconds']); if ($leaseSeconds > 60) { $hubJson['lease_end'] = time() + $leaseSeconds; - file_put_contents('./!hub.json', json_encode($hubJson)); + } else { + unset($hubJson['lease_end']); } + file_put_contents('./!hub.json', json_encode($hubJson)); exit(isset($_REQUEST['hub_challenge']) ? $_REQUEST['hub_challenge'] : ''); } @@ -84,7 +86,7 @@ $self = isset($links[0]) ? $links[0] : null; if ($self !== base64url_decode($canonical64)) { //header('HTTP/1.1 422 Unprocessable Entity'); - logMe('Warning: Self URL ' . $self . ' does not match registered canonical URL!: ' . base64url_decode($canonical64)); + logMe('Warning: Self URL [' . $self . '] does not match registered canonical URL!: ' . base64url_decode($canonical64)); //die('Self URL does not match registered canonical URL!'); $self = base64url_decode($canonical64); } @@ -120,5 +122,5 @@ if ($nb === 0) { die('Nobody is subscribed to this feed anymore after all!'); } -logMe($self . ' done: ' . $nb); +logMe('PubSubHubbub ' . $self . ' done: ' . $nb); exit('Done: ' . $nb . "\n"); -- cgit v1.2.3 From 9fe8a7c62dcd815065983613991f000b17444f5c Mon Sep 17 00:00:00 2001 From: thomasE1993 Date: Fri, 15 May 2015 20:09:58 +0200 Subject: Update admin.php --- app/i18n/de/admin.php | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/de/admin.php b/app/i18n/de/admin.php index bcd0fcc61..8550805ee 100644 --- a/app/i18n/de/admin.php +++ b/app/i18n/de/admin.php @@ -19,15 +19,15 @@ return array( 'check_install' => array( 'cache' => array( 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses ./data/cache. Der HTTP-Server muss Schreibrechte besitzen.', - 'ok' => 'Berechtigungen des Verzeichnisses ./data/cache sind in Ordnung.', + 'ok' => 'Die Berechtigungen des Verzeichnisses ./data/cache sind in Ordnung.', ), 'categories' => array( 'nok' => 'Die Tabelle category ist schlecht konfiguriert.', - 'ok' => 'Die Tabelle category ist in Ordnung.', + 'ok' => 'Die Tabelle category ist korrekt konfiguriert.', ), 'connection' => array( 'nok' => 'Verbindung zur Datenbank kann nicht aufgebaut werden.', - 'ok' => 'Verbindung zur Datenbank ist in Ordnung.', + 'ok' => 'Verbindung zur Datenbank konnte aufgebaut werden.', ), 'ctype' => array( 'nok' => 'Ihnen fehlt eine benötigte Bibliothek für die Überprüfung von Zeichentypen (php-ctype).', @@ -39,7 +39,7 @@ return array( ), 'data' => array( 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses ./data. Der HTTP-Server muss Schreibrechte besitzen.', - 'ok' => 'Berechtigungen des Verzeichnisses ./data sind in Ordnung.', + 'ok' => 'Die Berechtigungen des Verzeichnisses ./data sind in Ordnung.', ), 'database' => 'Datenbank-Installation', 'dom' => array( @@ -48,19 +48,19 @@ return array( ), 'entries' => array( 'nok' => 'Die Tabelle entry ist schlecht konfiguriert.', - 'ok' => 'Die Tabelle entry ist in Ordnung.', + 'ok' => 'Die Tabelle entry ist korrekt konfiguriert.', ), 'favicons' => array( 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses ./data/favicons. Der HTTP-Server muss Schreibrechte besitzen.', - 'ok' => 'Berechtigungen des Verzeichnisses ./data/favicons sind in Ordnung.', + 'ok' => 'Die Berechtigungen des Verzeichnisses ./data/favicons sind in Ordnung.', ), 'feeds' => array( 'nok' => 'Die Tabelle feed ist schlecht konfiguriert.', - 'ok' => 'Die Tabelle feed ist in Ordnung.', + 'ok' => 'Die Tabelle feed ist korrekt konfiguriert.', ), 'files' => 'Datei-Installation', 'json' => array( - 'nok' => 'Ihnen fehlt JSON (Paket php5-json).', + 'nok' => 'Ihnen fehlt die JSON-Erweiterung (Paket php5-json).', 'ok' => 'Sie haben die JSON-Erweiterung.', ), 'minz' => array( @@ -77,7 +77,7 @@ return array( ), 'persona' => array( 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses ./data/persona. Der HTTP-Server muss Schreibrechte besitzen.', - 'ok' => 'Berechtigungen des Verzeichnisses ./data/persona sind in Ordnung.', + 'ok' => 'Die Berechtigungen des Verzeichnisses ./data/persona sind in Ordnung.', ), 'php' => array( '_' => 'PHP-Installation', @@ -91,11 +91,11 @@ return array( 'title' => 'Installationsüberprüfung', 'tokens' => array( 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses ./data/tokens. Der HTTP-Server muss Schreibrechte besitzen.', - 'ok' => 'Berechtigungen des Verzeichnisses ./data/tokens sind in Ordnung.', + 'ok' => 'Die Berechtigungen des Verzeichnisses ./data/tokens sind in Ordnung.', ), 'users' => array( 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses ./data/users. Der HTTP-Server muss Schreibrechte besitzen.', - 'ok' => 'Berechtigungen des Verzeichnisses ./data/users sind in Ordnung.', + 'ok' => 'Die Berechtigungen des Verzeichnisses ./data/users sind in Ordnung.', ), 'zip' => array( 'nok' => 'Ihnen fehlt die ZIP-Erweiterung (Paket php5-zip).', @@ -120,22 +120,22 @@ return array( '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' => 'Einträge pro Tag (letzten 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', + 'idle' => 'Inkative Feeds', 'main' => 'Haupt-Statistiken', 'main_stream' => 'Haupt-Feeds', 'menu' => array( - 'idle' => 'Untätige Feeds', + 'idle' => 'Inkative Feeds', 'main' => 'Haupt-Statistiken', 'repartition' => 'Artikel-Verteilung', ), - 'no_idle' => 'Es gibt keinen untätigen Feed!', + 'no_idle' => 'Es gibt keinen inaktiven Feed!', 'number_entries' => '%d Artikel', 'percent_of_total' => '%% Gesamt', 'repartition' => 'Artikel-Verteilung', @@ -152,7 +152,7 @@ return array( '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', + 'none' => 'Keine ausstehende Aktualisierung', 'title' => 'System aktualisieren', ), 'user' => array( -- cgit v1.2.3 From bd21838bd0edd0169c583d25a475f9eea7636333 Mon Sep 17 00:00:00 2001 From: thomasE1993 Date: Fri, 15 May 2015 20:18:24 +0200 Subject: Update conf.php --- app/i18n/de/conf.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/de/conf.php b/app/i18n/de/conf.php index df2c07d49..4a0a77ddd 100644 --- a/app/i18n/de/conf.php +++ b/app/i18n/de/conf.php @@ -5,8 +5,8 @@ return 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', + 'help' => 'Weitere Optionen sind in den Einstellungen der individuellen Feeds verfügbar.', + 'keep_history_by_feed' => 'Minimale Anzahl an Artikeln, die pro Feed behalten werden', 'optimize' => 'Datenbank optimieren', 'optimize_help' => 'Sollte gelegentlich durchgeführt werden, um die Größe der Datenbank zu reduzieren.', 'purge_now' => 'Jetzt bereinigen', @@ -32,10 +32,10 @@ return array( 'title' => 'Anzeige', 'width' => array( 'content' => 'Inhaltsbreite', - 'large' => 'Weit', + 'large' => 'Gross', 'medium' => 'Mittel', 'no_limit' => 'Keine Begrenzung', - 'thin' => 'Schmal', + 'thin' => 'Klein', ), ), 'query' => array( @@ -136,14 +136,14 @@ return array( 'wallabag' => 'wallabag', ), 'shortcut' => array( - '_' => 'Tastaturkürzel', + '_' => 'Tastenkombination', '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', + 'collapse_article' => 'Einklappen', 'first_article' => 'Zum ersten Artikel springen', - 'focus_search' => 'Auf Suchfeld zugreifen', + 'focus_search' => 'Auf das Suchfeld zugreifen', 'help' => 'Dokumentation anzeigen', 'javascript' => 'JavaScript muss aktiviert sein, um Tastaturkürzel benutzen zu können', 'last_article' => 'Zum letzten Artikel springen', @@ -151,13 +151,13 @@ return array( 'mark_read' => 'Als gelesen markieren', 'mark_favorite' => 'Als Favorit markieren', 'navigation' => 'Navigation', - 'navigation_help' => 'Mit der "Umschalttaste" finden die Tastaturkürzel auf Feeds Anwendung.
Mit der "Alt-Taste" finden die Tastaturkürzel auf Kategorien Anwendung.', + 'navigation_help' => 'Mit der "Umschalttaste" finden die Tastenkombination auf Feeds Anwendung.
Mit der "Alt-Taste" finden die Tastenkombination 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' => '+ Umschalttaste, um alle Artikel als gelesen zu markieren.', - 'title' => 'Tastaturkürzel', + 'title' => 'Tastenkombination', '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.', ), -- cgit v1.2.3 From 70f0fc8d614ae49aa21ef9f1ce1b3f06e294512f Mon Sep 17 00:00:00 2001 From: thomasE1993 Date: Sat, 16 May 2015 18:52:08 +0200 Subject: Update feedback.php --- app/i18n/de/feedback.php | 60 ++++++++++++++++++++++++------------------------ 1 file changed, 30 insertions(+), 30 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/de/feedback.php b/app/i18n/de/feedback.php index 48f8b74f5..4c15aadc3 100644 --- a/app/i18n/de/feedback.php +++ b/app/i18n/de/feedback.php @@ -15,19 +15,19 @@ return array( ), 'login' => array( 'invalid' => 'Anmeldung ist ungültig', - 'success' => 'Sie sind verbunden', + 'success' => 'Sie sind angemeldet', ), 'logout' => array( - 'success' => 'Sie sind getrennt', + 'success' => 'Sie sind abgemeldet', ), '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', + 'error' => 'Während der 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', + 'shortcuts_updated' => 'Die Tastenkombinationen sind aktualisiert worden', + 'updated' => 'Die Konfiguration ist aktualisiert worden', ), 'extensions' => array( 'already_enabled' => '%s ist bereits aktiviert', @@ -44,44 +44,44 @@ return array( '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.', + 'export_no_zip_extension' => 'Die Zip-Erweiterung fehlt auf Ihrem Server. Bitte versuchen Sie die 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!', + 'file_cannot_be_uploaded' => 'Die 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.', + 'created' => 'Die Kategorie %s ist erstellt worden.', + 'deleted' => 'Die Kategorie ist gelöscht worden.', + 'emptied' => 'Die Kategorie ist geleert worden.', + 'error' => 'Die Kategorie kann nicht aktualisiert werden', + 'name_exists' => 'Der Kategorie-Name existiert bereits.', 'no_id' => 'Sie müssen die ID der Kategorie präzisieren.', - 'no_name' => 'Kategorie-Name kann nicht leer sein.', + 'no_name' => 'Der 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.', + 'over_max' => 'Sie haben Ihre Kategorien-Limite erreicht (%d)', + 'updated' => 'Die Kategorie ist aktualisiert worden.', ), 'feed' => array( 'actualized' => '%s ist aktualisiert worden', - 'actualizeds' => 'RSS-Feeds sind aktualisiert worden', - 'added' => 'RSS-Feed %s ist hinzugefügt worden', + 'actualizeds' => 'Die RSS-Feeds sind aktualisiert worden', + 'added' => 'Der RSS-Feed %s ist hinzugefügt worden', 'already_subscribed' => 'Sie haben %s bereits abonniert', - 'deleted' => 'Feed ist gelöscht worden', - 'error' => 'Feed kann nicht aktualisiert werden', + 'deleted' => 'Der Feed ist gelöscht worden', + 'error' => 'Der Feed kann nicht aktualisiert werden', 'internal_problem' => 'Der RSS-Feed konnte nicht hinzugefügt werden. Für Details prüfen Sie die FressRSS-Protokolle.', - 'invalid_url' => 'URL %s 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', + 'invalid_url' => 'Die URL %s ist ungültig', + 'marked_read' => 'Die Feeds sind als gelesen markiert worden', + 'n_actualized' => 'Die %d Feeds sind aktualisiert worden', + 'n_entries_deleted' => 'Die %d Artikel sind gelöscht worden', 'no_refresh' => 'Es gibt keinen Feed zum Aktualisieren…', 'not_added' => '%s konnte nicht hinzugefügt werden', - 'over_max' => 'Sie haben Ihr Feeds-Limit erreicht (%d)', - 'updated' => 'Feed ist aktualisiert worden', + 'over_max' => 'Sie haben Ihre Feeds-Limite erreicht (%d)', + 'updated' => 'Der Feed ist aktualisiert worden', ), 'purge_completed' => 'Bereinigung abgeschlossen (%d Artikel gelöscht)', ), @@ -91,16 +91,16 @@ return array( 'file_is_nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses %s. Der HTTP-Server muss Schreibrechte besitzen', 'finished' => 'Aktualisierung abgeschlossen!', 'none' => 'Keine Aktualisierung zum Anwenden', - 'server_not_found' => 'Aktualisierungs-Server kann nicht gefunden werden. [%s]', + 'server_not_found' => 'Der Aktualisierungs-Server kann nicht gefunden werden. [%s]', ), 'user' => array( 'created' => array( - '_' => 'Benutzer %s ist erstellt worden', - 'error' => 'Benutzer %s kann nicht erstellt werden', + '_' => 'Der Benutzer %s ist erstellt worden', + 'error' => 'Der Benutzer %s kann nicht erstellt werden', ), 'deleted' => array( - '_' => 'Benutzer %s ist gelöscht worden', - 'error' => 'Benutzer %s kann nicht gelöscht werden', + '_' => 'Der Benutzer %s ist gelöscht worden', + 'error' => 'Der Benutzer %s kann nicht gelöscht werden', ), ), 'profile' => array( -- cgit v1.2.3 From 7c6ce30f59295d06ad7fc7f6c3e935d058836877 Mon Sep 17 00:00:00 2001 From: thomasE1993 Date: Sat, 16 May 2015 18:54:23 +0200 Subject: Update gen.php --- app/i18n/de/gen.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index 8970d5003..f24a52c2e 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -49,7 +49,7 @@ return array( 'april' => 'April', 'aug' => 'Aug', 'august' => 'August', - 'before_yesterday' => 'Vor gestern', + 'before_yesterday' => 'Vor vorgestern', 'dec' => 'Dez', 'december' => 'Dezember', 'feb' => 'Feb', @@ -93,7 +93,7 @@ return array( ), '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' => 'Sind Sie sicher, dass Sie diese Aktion durchführen wollen? Diese Aktion 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.', -- cgit v1.2.3 From 450cc2d66f55817f85090ab742ebc351df9cbc43 Mon Sep 17 00:00:00 2001 From: thomasE1993 Date: Sat, 16 May 2015 18:55:31 +0200 Subject: Update index.php --- app/i18n/de/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/de/index.php b/app/i18n/de/index.php index 3449de87d..04798cdce 100644 --- a/app/i18n/de/index.php +++ b/app/i18n/de/index.php @@ -17,7 +17,7 @@ return array( ), 'feed' => array( 'add' => 'Sie können Feeds hinzufügen.', - 'empty' => 'Es gibt keinen Artikel zum Zeigen.', + 'empty' => 'Es gibt keinen Artikel zum Anzeigen.', 'rss_of' => 'RSS-Feed von %s', 'title' => 'Ihre RSS-Feeds', 'title_global' => 'Globale Ansicht', -- cgit v1.2.3 From fe2f6c74b9b2f5ed0f4c3f57b4bf2828e38e1f6a Mon Sep 17 00:00:00 2001 From: thomasE1993 Date: Sat, 16 May 2015 18:58:57 +0200 Subject: Update install.php --- app/i18n/de/install.php | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/de/install.php b/app/i18n/de/install.php index e9267bbbd..a5899bb52 100644 --- a/app/i18n/de/install.php +++ b/app/i18n/de/install.php @@ -3,8 +3,8 @@ 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', + 'fix_errors_before' => 'Bitte Fehler korrigieren, bevor zum nächsten Schritt gesprungen wird.', + 'next_step' => 'Zum nächsten Schritt springen', ), 'auth' => array( 'email_persona' => 'Anmelde-E-Mail-Adresse
(für Mozilla Persona)', @@ -33,7 +33,7 @@ return array( '_' => 'Überprüfungen', 'cache' => array( 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses ./data/cache. Der HTTP-Server muss Schreibrechte besitzen.', - 'ok' => 'Berechtigungen des Verzeichnisses ./data/cache sind in Ordnung.', + 'ok' => 'Die Berechtigungen des Verzeichnisses ./data/cache sind in Ordnung.', ), 'ctype' => array( 'nok' => 'Ihnen fehlt eine benötigte Bibliothek für die Überprüfung von Zeichentypen (php-ctype).', @@ -45,7 +45,7 @@ return array( ), 'data' => array( 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses ./data. Der HTTP-Server muss Schreibrechte besitzen.', - 'ok' => 'Berechtigungen des Verzeichnisses ./data sind in Ordnung.', + 'ok' => 'Die Berechtigungen des Verzeichnisses ./data sind in Ordnung.', ), 'dom' => array( 'nok' => 'Ihnen fehlt eine benötigte Bibliothek um DOM zu durchstöbern (Paket php-xml).', @@ -53,7 +53,7 @@ return array( ), 'favicons' => array( 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses ./data/favicons. Der HTTP-Server muss Schreibrechte besitzen.', - 'ok' => 'Berechtigungen des Verzeichnisses ./data/favicons sind in Ordnung.', + 'ok' => 'Die Berechtigungen des Verzeichnisses ./data/favicons sind in Ordnung.', ), 'http_referer' => array( 'nok' => 'Bitte stellen Sie sicher, dass Sie Ihren HTTP REFERER nicht abändern.', @@ -73,7 +73,7 @@ return array( ), 'persona' => array( 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses ./data/persona. Der HTTP-Server muss Schreibrechte besitzen.', - 'ok' => 'Berechtigungen des Verzeichnisses ./data/persona sind in Ordnung.', + 'ok' => 'Die Berechtigungen des Verzeichnisses ./data/persona sind in Ordnung.', ), 'php' => array( 'nok' => 'Ihre PHP-Version ist %s aber FreshRSS benötigt mindestens Version %s.', @@ -81,22 +81,22 @@ return array( ), 'users' => array( 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses ./data/users. Der HTTP-Server muss Schreibrechte besitzen.', - 'ok' => 'Berechtigungen des Verzeichnisses ./data/users sind in Ordnung.', + 'ok' => 'Die Berechtigungen des Verzeichnisses ./data/users sind in Ordnung.', ), ), 'conf' => array( '_' => 'Allgemeine Konfiguration', - 'ok' => 'Allgemeine Konfiguration ist gespeichert worden.', + 'ok' => 'Die allgemeine Konfiguration ist gespeichert worden.', ), 'congratulations' => 'Glückwunsch!', 'default_user' => 'Nutzername des Standardbenutzers (maximal 16 alphanumerische Zeichen)', 'delete_articles_after' => 'Entferne Artikel nach', - 'fix_errors_before' => 'Fehler korrigieren, bevor zum nächsten Schritt gesprungen wird.', + 'fix_errors_before' => 'Bitte den 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.', + 'defined' => 'Die Sprache ist festgelegt worden.', ), 'not_deleted' => 'Etwas ist schiefgelaufen; Sie müssen die Datei %s manuell löschen.', 'ok' => 'Der Installationsvorgang war erfolgreich.', -- cgit v1.2.3 From 044c4428062ea215c9fe2f46fb47078854048e61 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 16 May 2015 19:36:42 +0200 Subject: i18n: German Completed cherry-pick of https://github.com/FreshRSS/FreshRSS/pull/832 + corrections --- app/i18n/de/admin.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/de/admin.php b/app/i18n/de/admin.php index 8550805ee..c0cbf6787 100644 --- a/app/i18n/de/admin.php +++ b/app/i18n/de/admin.php @@ -127,11 +127,11 @@ return array( 'entry_repartition' => 'Einträge-Verteilung', 'feed' => 'Feed', 'feed_per_category' => 'Feeds pro Kategorie', - 'idle' => 'Inkative Feeds', + 'idle' => 'Inaktive Feeds', 'main' => 'Haupt-Statistiken', 'main_stream' => 'Haupt-Feeds', 'menu' => array( - 'idle' => 'Inkative Feeds', + 'idle' => 'Inaktive Feeds', 'main' => 'Haupt-Statistiken', 'repartition' => 'Artikel-Verteilung', ), -- cgit v1.2.3 From d3af903301ce2b59d2720e94727945cf9ff31a40 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 16 May 2015 21:47:26 +0200 Subject: i18n: German PubSubHubbub https://github.com/FreshRSS/FreshRSS/pull/831/files#r30463016 https://github.com/FreshRSS/FreshRSS/issues/312 --- app/i18n/de/sub.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/de/sub.php b/app/i18n/de/sub.php index 7433bd61c..0f05a5635 100644 --- a/app/i18n/de/sub.php +++ b/app/i18n/de/sub.php @@ -37,7 +37,7 @@ return array( 'url' => 'Feed-URL', 'validator' => 'Überprüfen Sie die Gültigkeit des Feeds', 'website' => 'Webseiten-URL', - 'pubsubhubbub' => 'Sofortige Benachrichtigung mit PubSubHubbub', + 'pubsubhubbub' => 'Sofortbenachrichtigung mit PubSubHubbub', ), 'import_export' => array( 'export' => 'Exportieren', -- cgit v1.2.3 From 6985a73f1c2f9ca774d50f5b4aa3a5f4742e1faf Mon Sep 17 00:00:00 2001 From: Alwaysin Date: Sat, 16 May 2015 23:37:28 +0200 Subject: Typo fix --- app/i18n/en/gen.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index b02b9f0f2..013c3495d 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -10,7 +10,7 @@ return array( 'empty' => 'Empty', 'enable' => 'Enable', 'export' => 'Export', - 'filter' => 'Filtrer', + 'filter' => 'Filter', 'import' => 'Import', 'manage' => 'Manage', 'mark_read' => 'Mark as read', -- cgit v1.2.3 From 6d31c60976f2cf8ca8adab7cb64a3d67f1ac6a00 Mon Sep 17 00:00:00 2001 From: Alwaysin Date: Sun, 17 May 2015 01:18:49 +0200 Subject: Language fix --- app/i18n/en/admin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/en/admin.php b/app/i18n/en/admin.php index d2fcd3e82..155384afd 100644 --- a/app/i18n/en/admin.php +++ b/app/i18n/en/admin.php @@ -12,7 +12,7 @@ return array( 'title' => 'Authentication', 'title_reset' => 'Authentication reset', 'token' => 'Authentication token', - 'token_help' => 'Allows to access RSS output of the default user without authentication:', + 'token_help' => 'Allows access to RSS output of the default user without authentication:', 'type' => 'Authentication method', 'unsafe_autologin' => 'Allow unsafe automatic login using the format: ', ), -- cgit v1.2.3 From 35cdb89eed82ec7458b85cc734d384bdada111a3 Mon Sep 17 00:00:00 2001 From: Alwaysin Date: Sun, 17 May 2015 01:30:35 +0200 Subject: Language fix + en_GB standardisation --- app/i18n/en/feedback.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/en/feedback.php b/app/i18n/en/feedback.php index 19af81e5b..c9189c0d0 100644 --- a/app/i18n/en/feedback.php +++ b/app/i18n/en/feedback.php @@ -2,7 +2,7 @@ return array( 'admin' => array( - 'optimization_complete' => 'Optimization complete', + 'optimization_complete' => 'Optimisation complete', ), 'access' => array( 'denied' => 'You don’t have permission to access this page', @@ -52,7 +52,7 @@ return array( 'zip_error' => 'An error occured during Zip import.', ), 'sub' => array( - 'actualize' => 'Actualize', + 'actualize' => 'Actualise', 'category' => array( 'created' => 'Category %s has been created.', 'deleted' => 'Category has been deleted.', @@ -86,7 +86,7 @@ return array( 'purge_completed' => 'Purge completed (%d articles deleted)', ), 'update' => array( - 'can_apply' => 'FreshRSS will be now updated to the version %s.', + 'can_apply' => 'FreshRSS will now be updated to the version %s.', 'error' => 'The update process has encountered an error: %s', 'file_is_nok' => 'Check permissions on %s directory. HTTP server must have rights to write into', 'finished' => 'Update completed!', -- cgit v1.2.3 From af166f6c5344d727744e08d22f605cc57ec618f8 Mon Sep 17 00:00:00 2001 From: Alwaysin Date: Sun, 17 May 2015 01:33:43 +0200 Subject: Language fix --- app/i18n/en/install.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/en/install.php b/app/i18n/en/install.php index 2bc6bd38f..742c73313 100644 --- a/app/i18n/en/install.php +++ b/app/i18n/en/install.php @@ -3,11 +3,11 @@ return array( 'action' => array( 'finish' => 'Complete installation', - 'fix_errors_before' => 'Fix errors before skip to the next step.', + 'fix_errors_before' => 'Please fix errors before before skipping to the next step.', 'next_step' => 'Go to the next step', ), 'auth' => array( - 'email_persona' => 'Login mail address
(for Mozilla Persona)', + 'email_persona' => 'Login email address
(for Mozilla Persona)', 'form' => 'Web form (traditional, requires JavaScript)', 'http' => 'HTTP (for advanced users with HTTPS)', 'none' => 'None (dangerous)', @@ -91,7 +91,7 @@ return array( 'congratulations' => 'Congratulations!', 'default_user' => 'Username of the default user (maximum 16 alphanumeric characters)', 'delete_articles_after' => 'Remove articles after', - 'fix_errors_before' => 'Fix errors before skip to the next step.', + 'fix_errors_before' => 'Please fix errors before before skipping to the next step.', 'javascript_is_better' => 'FreshRSS is more pleasant with JavaScript enabled', 'language' => array( '_' => 'Language', -- cgit v1.2.3 From cad42ea55f8f974899328bed74cf2b9d7fffe4a2 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 17 May 2015 12:32:46 +0200 Subject: i18n: en-GB revert https://github.com/FreshRSS/FreshRSS/commit/af166f6c5344d727744e08d22f605cc57ec618f8#commitcomment-11229341 --- app/i18n/en/install.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/en/install.php b/app/i18n/en/install.php index 742c73313..d4137309a 100644 --- a/app/i18n/en/install.php +++ b/app/i18n/en/install.php @@ -3,7 +3,7 @@ return array( 'action' => array( 'finish' => 'Complete installation', - 'fix_errors_before' => 'Please fix errors before before skipping to the next step.', + 'fix_errors_before' => 'Please fix errors before skipping to the next step.', 'next_step' => 'Go to the next step', ), 'auth' => array( @@ -91,7 +91,7 @@ return array( 'congratulations' => 'Congratulations!', 'default_user' => 'Username of the default user (maximum 16 alphanumeric characters)', 'delete_articles_after' => 'Remove articles after', - 'fix_errors_before' => 'Please fix errors before before skipping to the next step.', + 'fix_errors_before' => 'Please fix errors before skipping to the next step.', 'javascript_is_better' => 'FreshRSS is more pleasant with JavaScript enabled', 'language' => array( '_' => 'Language', -- cgit v1.2.3 From 265f09f25726102249ff3819ae810f85dee2849f Mon Sep 17 00:00:00 2001 From: Alwaysin Date: Mon, 18 May 2015 09:02:28 +0200 Subject: Language fix --- app/i18n/en/gen.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 013c3495d..6e47e0921 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -150,7 +150,7 @@ return array( 'wallabag' => 'wallabag', ), 'short' => array( - 'attention' => 'Attention!', + 'attention' => 'Warning!', 'blank_to_disable' => 'Leave blank to disable', 'by_author' => 'By %s', 'by_default' => 'By default', -- cgit v1.2.3 From 6263ecef2fde84aa317ccd4d0b784ac6c2ad2295 Mon Sep 17 00:00:00 2001 From: Alwaysin Date: Mon, 18 May 2015 09:06:37 +0200 Subject: Language fix --- app/i18n/en/conf.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/en/conf.php b/app/i18n/en/conf.php index 683781696..42a06906d 100644 --- a/app/i18n/en/conf.php +++ b/app/i18n/en/conf.php @@ -5,9 +5,9 @@ return array( '_' => 'Archiving', 'advanced' => 'Advanced', 'delete_after' => 'Remove articles after', - 'help' => 'More options are available in the individual stream settings', + 'help' => 'More options are available in the individual feed settings', 'keep_history_by_feed' => 'Minimum number of articles to keep by feed', - 'optimize' => 'Optimize database', + 'optimize' => 'Optimise database', 'optimize_help' => 'To do occasionally to reduce the size of the database', 'purge_now' => 'Purge now', 'title' => 'Archiving', @@ -72,7 +72,7 @@ return array( ), 'profile' => array( '_' => 'Profile management', - 'email_persona' => 'Login mail address
(for Mozilla Persona)', + 'email_persona' => 'Login email address
(for Mozilla Persona)', 'password_api' => 'Password API
(e.g., for mobile apps)', 'password_form' => 'Password
(for the Web-form login method)', 'password_format' => 'At least 7 characters', -- cgit v1.2.3 From 7524811c963d4e90df60ef9b3ebdae62e4da3e60 Mon Sep 17 00:00:00 2001 From: Alwaysin Date: Mon, 18 May 2015 09:09:28 +0200 Subject: Language fix --- app/i18n/en/sub.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/en/sub.php b/app/i18n/en/sub.php index 2b62e4775..8fe150bb2 100644 --- a/app/i18n/en/sub.php +++ b/app/i18n/en/sub.php @@ -18,7 +18,7 @@ return array( 'password' => 'HTTP password', 'username' => 'HTTP username', ), - 'css_help' => 'Retrieves truncated RSS feeds (attention, requires more time!)', + 'css_help' => 'Retrieves truncated RSS feeds (caution, 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.', @@ -26,7 +26,7 @@ return array( '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 %s.', + 'moved_category_deleted' => 'When you delete a category, its feeds are automatically classified under %s.', 'no_selected' => 'No feed selected.', 'number_entries' => '%d articles', 'stats' => 'Statistics', -- cgit v1.2.3 From 5cb3d017ab893f1e99df5cfd373e47df88f53960 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Mon, 29 Jun 2015 20:46:51 +0200 Subject: Orthographe validité MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/i18n/fr/sub.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/fr/sub.php b/app/i18n/fr/sub.php index 0a1a03e41..e3631eb8b 100644 --- a/app/i18n/fr/sub.php +++ b/app/i18n/fr/sub.php @@ -35,7 +35,7 @@ return array( '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', + 'validator' => 'Vérifier la validité du flux', 'website' => 'URL du site', 'pubsubhubbub' => 'Notification instantanée par PubSubHubbub', ), -- cgit v1.2.3 From 2c8b4f5a502cb387f5eccfcc38aa7434bd75637a Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Mon, 20 Jul 2015 16:27:10 +0200 Subject: Add translations TODO: german and czech translations See https://github.com/FreshRSS/FreshRSS/issues/909 --- app/i18n/cz/install.php | 3 +++ app/i18n/de/install.php | 3 +++ app/i18n/en/install.php | 3 +++ app/i18n/fr/install.php | 3 +++ app/install.php | 2 +- 5 files changed, 13 insertions(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/cz/install.php b/app/i18n/cz/install.php index 53257c84f..5f84d1cac 100644 --- a/app/i18n/cz/install.php +++ b/app/i18n/cz/install.php @@ -4,7 +4,9 @@ return array( 'action' => array( 'finish' => 'Dokončit instalaci', 'fix_errors_before' => 'Chyby prosím před přechodem na další krok opravte.', + 'keep_install' => 'Keep previous installation', // TODO: translate 'next_step' => 'Přejít na další krok', + 'reinstall' => 'Reinstall FreshRSS', // TODO: translate ), 'auth' => array( 'email_persona' => 'Email pro přihlášení
(pro Mozilla Persona)', @@ -31,6 +33,7 @@ return array( ), 'check' => array( '_' => 'Kontrola', + 'already_installed' => 'We have detected that FreshRSS is already installed!', // TODO: translate 'cache' => array( 'nok' => 'Zkontrolujte oprávnění adresáře ./data/cache. HTTP server musí mít do tohoto adresáře práva zápisu', 'ok' => 'Oprávnění adresáře cache jsou v pořádku.', diff --git a/app/i18n/de/install.php b/app/i18n/de/install.php index a5899bb52..6d937a638 100644 --- a/app/i18n/de/install.php +++ b/app/i18n/de/install.php @@ -4,7 +4,9 @@ return array( 'action' => array( 'finish' => 'Installation fertigstellen', 'fix_errors_before' => 'Bitte Fehler korrigieren, bevor zum nächsten Schritt gesprungen wird.', + 'keep_install' => 'Keep previous installation', // TODO: translate 'next_step' => 'Zum nächsten Schritt springen', + 'reinstall' => 'Reinstall FreshRSS', // TODO: translate ), 'auth' => array( 'email_persona' => 'Anmelde-E-Mail-Adresse
(für Mozilla Persona)', @@ -31,6 +33,7 @@ return array( ), 'check' => array( '_' => 'Überprüfungen', + 'already_installed' => 'We have detected that FreshRSS is already installed!', // TODO: translate 'cache' => array( 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses ./data/cache. Der HTTP-Server muss Schreibrechte besitzen.', 'ok' => 'Die Berechtigungen des Verzeichnisses ./data/cache sind in Ordnung.', diff --git a/app/i18n/en/install.php b/app/i18n/en/install.php index d4137309a..80488ca4a 100644 --- a/app/i18n/en/install.php +++ b/app/i18n/en/install.php @@ -4,7 +4,9 @@ return array( 'action' => array( 'finish' => 'Complete installation', 'fix_errors_before' => 'Please fix errors before skipping to the next step.', + 'keep_install' => 'Keep previous installation', 'next_step' => 'Go to the next step', + 'reinstall' => 'Reinstall FreshRSS', ), 'auth' => array( 'email_persona' => 'Login email address
(for Mozilla Persona)', @@ -31,6 +33,7 @@ return array( ), 'check' => array( '_' => 'Checks', + 'already_installed' => 'We have detected that FreshRSS is already installed!', 'cache' => array( 'nok' => 'Check permissions on ./data/cache directory. HTTP server must have rights to write into', 'ok' => 'Permissions on cache directory are good.', diff --git a/app/i18n/fr/install.php b/app/i18n/fr/install.php index 245a20c56..6eca90458 100644 --- a/app/i18n/fr/install.php +++ b/app/i18n/fr/install.php @@ -4,7 +4,9 @@ return array( 'action' => array( 'finish' => 'Terminer l’installation', 'fix_errors_before' => 'Veuillez corriger les erreurs avant de passer à l’étape suivante.', + 'keep_install' => 'Garder l’ancienne configuration', 'next_step' => 'Passer à l’étape suivante', + 'reinstall' => 'Réinstaller FreshRSS', ), 'auth' => array( 'email_persona' => 'Adresse courriel de connexion
(pour Mozilla Persona)', @@ -31,6 +33,7 @@ return array( ), 'check' => array( '_' => 'Vérifications', + 'already_installed' => 'FreshRSS semble avoir déjà été installé !', 'cache' => array( 'nok' => 'Veuillez vérifier les droits sur le répertoire ./data/cache. Le serveur HTTP doit être capable d’écrire dedans', 'ok' => 'Les droits sur le répertoire de cache sont bons.', diff --git a/app/install.php b/app/install.php index 208bef0e9..61d2f5df9 100644 --- a/app/install.php +++ b/app/install.php @@ -605,7 +605,7 @@ function printStep1() { -

+

-- cgit v1.2.3 From 3c35cdd7b7e8353d10cd299e19a23e528ad51280 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Mon, 20 Jul 2015 19:07:33 +0200 Subject: Add translations for confirmation (installation) See https://github.com/FreshRSS/FreshRSS/issues/909 --- app/i18n/cz/install.php | 3 +++ app/i18n/de/install.php | 3 +++ app/i18n/en/install.php | 3 +++ app/i18n/fr/install.php | 3 +++ 4 files changed, 12 insertions(+) (limited to 'app/i18n') diff --git a/app/i18n/cz/install.php b/app/i18n/cz/install.php index 5f84d1cac..cca717513 100644 --- a/app/i18n/cz/install.php +++ b/app/i18n/cz/install.php @@ -96,6 +96,9 @@ return array( 'delete_articles_after' => 'Smazat články starší než', 'fix_errors_before' => 'Chyby prosím před přechodem na další krok opravte.', 'javascript_is_better' => 'Práce s FreshRSS je příjemnější se zapnutým JavaScriptem', + 'js' => array( + 'confirm_reinstall' => 'You will lose your previous configuration by reinstalling FreshRSS. Are you sure you want to continue?', // TODO: translate + ), 'language' => array( '_' => 'Jazyk', 'choose' => 'Vyberte jazyk FreshRSS', diff --git a/app/i18n/de/install.php b/app/i18n/de/install.php index 6d937a638..222c65b32 100644 --- a/app/i18n/de/install.php +++ b/app/i18n/de/install.php @@ -96,6 +96,9 @@ return array( 'delete_articles_after' => 'Entferne Artikel nach', 'fix_errors_before' => 'Bitte den Fehler korrigieren, bevor zum nächsten Schritt gesprungen wird.', 'javascript_is_better' => 'FreshRSS ist ansprechender mit aktiviertem JavaScript', + 'js' => array( + 'confirm_reinstall' => 'You will lose your previous configuration by reinstalling FreshRSS. Are you sure you want to continue?', // TODO: translate + ), 'language' => array( '_' => 'Sprache', 'choose' => 'Wählen Sie eine Sprache für FreshRSS', diff --git a/app/i18n/en/install.php b/app/i18n/en/install.php index 80488ca4a..b94fbc299 100644 --- a/app/i18n/en/install.php +++ b/app/i18n/en/install.php @@ -96,6 +96,9 @@ return array( 'delete_articles_after' => 'Remove articles after', 'fix_errors_before' => 'Please fix errors before skipping to the next step.', 'javascript_is_better' => 'FreshRSS is more pleasant with JavaScript enabled', + 'js' => array( + 'confirm_reinstall' => 'You will lose your previous configuration by reinstalling FreshRSS. Are you sure you want to continue?', + ), 'language' => array( '_' => 'Language', 'choose' => 'Choose a language for FreshRSS', diff --git a/app/i18n/fr/install.php b/app/i18n/fr/install.php index 6eca90458..0401e1bbd 100644 --- a/app/i18n/fr/install.php +++ b/app/i18n/fr/install.php @@ -96,6 +96,9 @@ return array( '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é', + 'js' => array( + 'confirm_reinstall' => 'Réinstaller FreshRSS vous fera perdre la configuration précédente. Êtes-vous sûr de vouloir continuer ?', + ), 'language' => array( '_' => 'Langue', 'choose' => 'Choisissez la langue pour FreshRSS', -- cgit v1.2.3 From de2e221aca0639c45cfe30f049ec71a493b17a5c Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Wed, 22 Jul 2015 22:04:33 +0200 Subject: Fix translations See https://github.com/FreshRSS/FreshRSS/issues/679 --- app/i18n/cz/admin.php | 7 +++++++ app/i18n/cz/conf.php | 4 ++++ app/i18n/cz/gen.php | 5 +++++ app/i18n/de/admin.php | 7 +++++++ app/i18n/de/conf.php | 4 ++++ app/i18n/de/gen.php | 5 +++++ app/i18n/en/admin.php | 7 +++++++ app/i18n/en/conf.php | 4 ++++ app/i18n/en/gen.php | 5 +++++ app/i18n/fr/admin.php | 7 +++++++ app/i18n/fr/conf.php | 4 ++++ app/i18n/fr/gen.php | 5 +++++ app/views/auth/formLogin.phtml | 2 +- app/views/auth/personaLogin.phtml | 2 +- app/views/auth/register.phtml | 4 +--- app/views/user/manage.phtml | 5 ++++- 16 files changed, 71 insertions(+), 6 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/cz/admin.php b/app/i18n/cz/admin.php index b9ef707cf..bfa67573e 100644 --- a/app/i18n/cz/admin.php +++ b/app/i18n/cz/admin.php @@ -160,8 +160,15 @@ return array( 'create' => 'Vytvořit nového uživatele', 'email_persona' => 'Email pro přihlášení
(pro Mozilla Persona)', 'language' => 'Jazyk', + 'number' => 'There is %d account created yet', // TODO: translate + 'numbers' => 'There are %d accounts created yet', // TODO: translate 'password_form' => 'Heslo
(pro přihlášení webovým formulářem)', 'password_format' => 'Alespoň 7 znaků', + 'registration' => array( + 'allow' => 'Allow account creation', // TODO: translate + 'help' => '0 means that there is no account limit', // TODO: translate + 'number' => 'Max number of accounts', // TODO: translate + ), 'title' => 'Správa uživatelů', 'user_list' => 'Seznam uživatelů', 'username' => 'Přihlašovací jméno', diff --git a/app/i18n/cz/conf.php b/app/i18n/cz/conf.php index 9518df66d..859eeac89 100644 --- a/app/i18n/cz/conf.php +++ b/app/i18n/cz/conf.php @@ -72,6 +72,10 @@ return array( ), 'profile' => array( '_' => 'Správa profilu', + 'delete' => array( + '_' => 'Account deletion', // TODO: translate + 'warn' => 'Your account and all the related data will be deleted.', // TODO: translate + ), 'email_persona' => 'Email pro přihlášení
(pro Mozilla Persona)', 'password_api' => 'Password API
(tzn. pro mobilní aplikace)', 'password_form' => 'Heslo
(pro přihlášení webovým formulářem)', diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index 7c333a9c8..13e0db261 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -21,12 +21,17 @@ return array( 'truncate' => 'Smazat všechny články', ), 'auth' => array( + 'email' => 'Email', 'keep_logged_in' => 'Zapamatovat přihlášení (1 měsíc)', 'login' => 'Login', 'login_persona' => 'Přihlášení pomocí Persona', 'login_persona_problem' => 'Problém s připojením k Persona?', 'logout' => 'Odhlášení', 'password' => 'Heslo', + 'registration' => array( + '_' => 'New account', // TODO: translate + 'ask' => 'Create an account?', // TODO: translate + ), 'reset' => 'Reset přihlášení', 'username' => 'Uživatel', 'username_admin' => 'Název administrátorského účtu', diff --git a/app/i18n/de/admin.php b/app/i18n/de/admin.php index c0cbf6787..667f7af8d 100644 --- a/app/i18n/de/admin.php +++ b/app/i18n/de/admin.php @@ -160,8 +160,15 @@ return array( 'create' => 'Neuen Benutzer erstellen', 'email_persona' => 'Anmelde-E-Mail-Adresse
(für Mozilla Persona)', 'language' => 'Sprache', + 'number' => 'There is %d account created yet', // TODO: translate + 'numbers' => 'There are %d accounts created yet', // TODO: translate 'password_form' => 'Passwort
(für die Anmeldemethode per Webformular)', 'password_format' => 'mindestens 7 Zeichen', + 'registration' => array( + 'allow' => 'Allow account creation', // TODO: translate + 'help' => '0 means that there is no account limit', // TODO: translate + 'number' => 'Max number of accounts', // TODO: translate + ), 'title' => 'Benutzer verwalten', 'user_list' => 'Liste der Benutzer', 'username' => 'Nutzername', diff --git a/app/i18n/de/conf.php b/app/i18n/de/conf.php index 4a0a77ddd..5313ec3fd 100644 --- a/app/i18n/de/conf.php +++ b/app/i18n/de/conf.php @@ -72,6 +72,10 @@ return array( ), 'profile' => array( '_' => 'Profil-Verwaltung', + 'delete' => array( + '_' => 'Account deletion', // TODO: translate + 'warn' => 'Your account and all the related data will be deleted.', // TODO: translate + ), 'email_persona' => 'Anmelde-E-Mail-Adresse
(für Mozilla Persona)', 'password_api' => 'Passwort-API
(z. B. für mobile Anwendungen)', 'password_form' => 'Passwort
(für die Anmeldemethode per Webformular)', diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index f24a52c2e..9682a4a21 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -21,12 +21,17 @@ return array( 'truncate' => 'Alle Artikel löschen', ), 'auth' => array( + 'email' => 'E-Mail-Adresse', 'keep_logged_in' => 'Eingeloggt bleiben (1 Monat)', 'login' => 'Anmelden', 'login_persona' => 'Anmelden mit Persona', 'login_persona_problem' => 'Verbindungsproblem mit Persona?', 'logout' => 'Abmelden', 'password' => 'Passwort', + 'registration' => array( + '_' => 'New account', // TODO: translate + 'ask' => 'Create an account?', // TODO: translate + ), 'reset' => 'Zurücksetzen der Authentifizierung', 'username' => 'Nutzername', 'username_admin' => 'Administrator-Nutzername', diff --git a/app/i18n/en/admin.php b/app/i18n/en/admin.php index 155384afd..aeea61631 100644 --- a/app/i18n/en/admin.php +++ b/app/i18n/en/admin.php @@ -160,8 +160,15 @@ return array( 'create' => 'Create new user', 'email_persona' => 'Login mail address
(for Mozilla Persona)', 'language' => 'Language', + 'number' => 'There is %d account created yet', + 'numbers' => 'There are %d accounts created yet', 'password_form' => 'Password
(for the Web-form login method)', 'password_format' => 'At least 7 characters', + 'registration' => array( + 'allow' => 'Allow account creation', + 'help' => '0 means that there is no account limit', + 'number' => 'Max number of accounts', + ), 'title' => 'Manage users', 'user_list' => 'List of users', 'username' => 'Username', diff --git a/app/i18n/en/conf.php b/app/i18n/en/conf.php index 42a06906d..69162932f 100644 --- a/app/i18n/en/conf.php +++ b/app/i18n/en/conf.php @@ -72,6 +72,10 @@ return array( ), 'profile' => array( '_' => 'Profile management', + 'delete' => array( + '_' => 'Account deletion', + 'warn' => 'Your account and all the related data will be deleted.', + ), 'email_persona' => 'Login email address
(for Mozilla Persona)', 'password_api' => 'Password API
(e.g., for mobile apps)', 'password_form' => 'Password
(for the Web-form login method)', diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 6e47e0921..ac55a1a3b 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -21,12 +21,17 @@ return array( 'truncate' => 'Delete all articles', ), 'auth' => array( + 'email' => 'Email address', 'keep_logged_in' => 'Keep me logged in (1 month)', 'login' => 'Login', 'login_persona' => 'Login with Persona', 'login_persona_problem' => 'Connection problem with Persona?', 'logout' => 'Logout', 'password' => 'Password', + 'registration' => array( + '_' => 'New account', + 'ask' => 'Create an account?', + ), 'reset' => 'Authentication reset', 'username' => 'Username', 'username_admin' => 'Administrator username', diff --git a/app/i18n/fr/admin.php b/app/i18n/fr/admin.php index b740bd0d2..01e0cb3c7 100644 --- a/app/i18n/fr/admin.php +++ b/app/i18n/fr/admin.php @@ -160,8 +160,15 @@ return array( 'create' => 'Créer un nouvel utilisateur', 'email_persona' => 'Adresse courriel de connexion
(pour Mozilla Persona)', 'language' => 'Langue', + 'number' => '%d compte a déjà été créé', + 'numbers' => '%d comptes ont déjà été créés', 'password_form' => 'Mot de passe
(pour connexion par formulaire)', 'password_format' => '7 caractères minimum', + 'registration' => array( + 'allow' => 'Autoriser la création de comptes', + 'help' => 'Un chiffre de 0 signifie que l’on peut créer un nombre infini de comptes', + 'number' => 'Nombre max de comptes', + ), 'title' => 'Gestion des utilisateurs', 'user_list' => 'Liste des utilisateurs', 'username' => 'Nom d’utilisateur', diff --git a/app/i18n/fr/conf.php b/app/i18n/fr/conf.php index 87f9be290..6193b7a01 100644 --- a/app/i18n/fr/conf.php +++ b/app/i18n/fr/conf.php @@ -72,6 +72,10 @@ return array( ), 'profile' => array( '_' => 'Gestion du profil', + 'delete' => array( + '_' => 'Suppression du compte', + 'warn' => 'Le compte et toutes les données associées vont être supprimées.', + ), 'email_persona' => 'Adresse courriel de connexion
(pour Mozilla Persona)', 'password_api' => 'Mot de passe API
(ex. : pour applis mobiles)', 'password_form' => 'Mot de passe
(pour connexion par formulaire)', diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index c81e57bf7..3336b6a03 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -21,12 +21,17 @@ return array( 'truncate' => 'Supprimer tous les articles', ), 'auth' => array( + 'email' => 'Adresse courriel', 'keep_logged_in' => 'Rester connecté (1 mois)', 'login' => 'Connexion', 'login_persona' => 'Connexion avec Persona', 'login_persona_problem' => 'Problème de connexion à Persona ?', 'logout' => 'Déconnexion', 'password' => 'Mot de passe', + 'registration' => array( + '_' => 'Nouveau compte', + 'ask' => 'Créer un compte ?', + ), 'reset' => 'Réinitialisation de l’authentification', 'username' => 'Nom d’utilisateur', 'username_admin' => 'Nom d’utilisateur administrateur', diff --git a/app/views/auth/formLogin.phtml b/app/views/auth/formLogin.phtml index 3a6053065..b0083944f 100644 --- a/app/views/auth/formLogin.phtml +++ b/app/views/auth/formLogin.phtml @@ -2,7 +2,7 @@

- + diff --git a/app/views/auth/personaLogin.phtml b/app/views/auth/personaLogin.phtml index 91349a67e..c6d738bf6 100644 --- a/app/views/auth/personaLogin.phtml +++ b/app/views/auth/personaLogin.phtml @@ -3,7 +3,7 @@

- +

diff --git a/app/views/auth/register.phtml b/app/views/auth/register.phtml index 96c91f411..ada654b15 100644 --- a/app/views/auth/register.phtml +++ b/app/views/auth/register.phtml @@ -1,12 +1,10 @@

-

+

diff --git a/app/views/user/manage.phtml b/app/views/user/manage.phtml index 61b296528..3d3bc3ddf 100644 --- a/app/views/user/manage.phtml +++ b/app/views/user/manage.phtml @@ -16,7 +16,10 @@
- + 1 ? 'admin.user.numbers' : 'admin.user.number', $number); + ?>
-- cgit v1.2.3 From 669c41114f60a5a31253bed766f52e1840e00599 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Wed, 22 Jul 2015 22:28:21 +0200 Subject: Show indications for username and password formats See https://github.com/FreshRSS/FreshRSS/issues/679 --- app/i18n/cz/gen.php | 12 +++++++++--- app/i18n/de/gen.php | 12 +++++++++--- app/i18n/en/gen.php | 12 +++++++++--- app/i18n/fr/gen.php | 12 +++++++++--- app/views/auth/register.phtml | 9 ++------- app/views/auth/reset.phtml | 2 +- 6 files changed, 39 insertions(+), 20 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index 13e0db261..a89bf6b49 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -27,14 +27,20 @@ return array( 'login_persona' => 'Přihlášení pomocí Persona', 'login_persona_problem' => 'Problém s připojením k Persona?', 'logout' => 'Odhlášení', - 'password' => 'Heslo', + 'password' => array( + '_' => 'Heslo', + 'format' => 'Alespoň 7 znaků', + ), 'registration' => array( '_' => 'New account', // TODO: translate 'ask' => 'Create an account?', // TODO: translate ), 'reset' => 'Reset přihlášení', - 'username' => 'Uživatel', - 'username_admin' => 'Název administrátorského účtu', + 'username' => array( + '_' => 'Uživatel', + 'admin' => 'Název administrátorského účtu', + 'format' => 'maximálně 16 alfanumerických znaků', + ), 'will_reset' => 'Přihlašovací systém bude vyresetován: místo sytému Persona bude použito přihlášení formulářem.', ), 'date' => array( diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index 9682a4a21..d6fcfe1e4 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -27,14 +27,20 @@ return array( 'login_persona' => 'Anmelden mit Persona', 'login_persona_problem' => 'Verbindungsproblem mit Persona?', 'logout' => 'Abmelden', - 'password' => 'Passwort', + 'password' => array( + '_' => 'Passwort', + 'format' => 'mindestens 7 Zeichen', + ), 'registration' => array( '_' => 'New account', // TODO: translate 'ask' => 'Create an account?', // TODO: translate ), 'reset' => 'Zurücksetzen der Authentifizierung', - 'username' => 'Nutzername', - 'username_admin' => 'Administrator-Nutzername', + 'username' => array( + '_' => 'Nutzername', + 'admin' => 'Administrator-Nutzername', + 'format' => 'maximal 16 alphanumerische Zeichen', + ), 'will_reset' => 'Authentifikationssystem wird zurückgesetzt: ein Formular wird anstelle von Persona benutzt.', ), 'date' => array( diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index ac55a1a3b..063322cbf 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -27,14 +27,20 @@ return array( 'login_persona' => 'Login with Persona', 'login_persona_problem' => 'Connection problem with Persona?', 'logout' => 'Logout', - 'password' => 'Password', + 'password' => array( + '_' => 'Password', + 'format' => 'At least 7 characters', + ), 'registration' => array( '_' => 'New account', 'ask' => 'Create an account?', ), 'reset' => 'Authentication reset', - 'username' => 'Username', - 'username_admin' => 'Administrator username', + 'username' => array( + '_' => 'Username', + 'admin' => 'Administrator username', + 'format' => 'maximum 16 alphanumeric characters', + ), 'will_reset' => 'Authentication system will be reset: a form will be used instead of Persona.', ), 'date' => array( diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 3336b6a03..5abc7a27b 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -27,14 +27,20 @@ return array( 'login_persona' => 'Connexion avec Persona', 'login_persona_problem' => 'Problème de connexion à Persona ?', 'logout' => 'Déconnexion', - 'password' => 'Mot de passe', + 'password' => array( + '_' => 'Mot de passe', + 'format' => '7 caractères minimum', + ), 'registration' => array( '_' => 'Nouveau compte', 'ask' => 'Créer un compte ?', ), 'reset' => 'Réinitialisation de l’authentification', - 'username' => 'Nom d’utilisateur', - 'username_admin' => 'Nom d’utilisateur administrateur', + 'username' => array( + '_' => 'Nom d’utilisateur', + 'admin' => 'Nom d’utilisateur administrateur', + 'format' => '16 caractères alphanumériques maximum', + ), 'will_reset' => 'Le système d’authentification va être réinitialisé : un formulaire sera utilisé à la place de Persona.', ), 'date' => array( diff --git a/app/views/auth/register.phtml b/app/views/auth/register.phtml index ada654b15..306679601 100644 --- a/app/views/auth/register.phtml +++ b/app/views/auth/register.phtml @@ -1,19 +1,14 @@ -

- +
- +
diff --git a/app/views/auth/reset.phtml b/app/views/auth/reset.phtml index 6e9816ad3..9c820c7c8 100644 --- a/app/views/auth/reset.phtml +++ b/app/views/auth/reset.phtml @@ -16,7 +16,7 @@

- +
-- cgit v1.2.3 From f0a1b26584787e173c8c9cd1a5fea27bb3044f1c Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Wed, 22 Jul 2015 23:06:46 +0200 Subject: Add title to the account creation page See https://github.com/FreshRSS/FreshRSS/issues/679 --- app/Controllers/authController.php | 2 ++ app/i18n/cz/gen.php | 1 + app/i18n/de/gen.php | 1 + app/i18n/en/gen.php | 1 + app/i18n/fr/gen.php | 1 + 5 files changed, 6 insertions(+) (limited to 'app/i18n') diff --git a/app/Controllers/authController.php b/app/Controllers/authController.php index 223282afb..aff184263 100644 --- a/app/Controllers/authController.php +++ b/app/Controllers/authController.php @@ -354,5 +354,7 @@ class FreshRSS_auth_Controller extends Minz_ActionController { if (max_registrations_reached()) { Minz_Error::error(403); } + + Minz_View::prependTitle(_t('gen.auth.registration.title') . ' · '); } } diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index a89bf6b49..53127998f 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -34,6 +34,7 @@ return array( 'registration' => array( '_' => 'New account', // TODO: translate 'ask' => 'Create an account?', // TODO: translate + 'title' => 'Account creation', // TODO: translate ), 'reset' => 'Reset přihlášení', 'username' => array( diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index d6fcfe1e4..f8f4823a6 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -34,6 +34,7 @@ return array( 'registration' => array( '_' => 'New account', // TODO: translate 'ask' => 'Create an account?', // TODO: translate + 'title' => 'Account creation', // TODO: translate ), 'reset' => 'Zurücksetzen der Authentifizierung', 'username' => array( diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 063322cbf..1feb8d6ac 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -34,6 +34,7 @@ return array( 'registration' => array( '_' => 'New account', 'ask' => 'Create an account?', + 'title' => 'Account creation', ), 'reset' => 'Authentication reset', 'username' => array( diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 5abc7a27b..67d278be4 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -34,6 +34,7 @@ return array( 'registration' => array( '_' => 'Nouveau compte', 'ask' => 'Créer un compte ?', + 'title' => 'Création de compte', ), 'reset' => 'Réinitialisation de l’authentification', 'username' => array( -- cgit v1.2.3 From 1ad36c420e774d6f66b6a7ecf5b37ed1103ea464 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Wed, 22 Jul 2015 23:27:22 +0200 Subject: Fix translations for feedback See https://github.com/FreshRSS/FreshRSS/issues/679 --- app/i18n/cz/feedback.php | 1 + app/i18n/de/feedback.php | 1 + app/i18n/en/feedback.php | 1 + app/i18n/fr/feedback.php | 1 + 4 files changed, 4 insertions(+) (limited to 'app/i18n') diff --git a/app/i18n/cz/feedback.php b/app/i18n/cz/feedback.php index b75a4a15a..cf2ee518c 100644 --- a/app/i18n/cz/feedback.php +++ b/app/i18n/cz/feedback.php @@ -102,6 +102,7 @@ return array( '_' => 'Uživatel %s byl smazán', 'error' => 'Uživatele %s nelze smazat', ), + 'set_registration' => 'The maximum amount of accounts has been updated.', // TODO: translate ), 'profile' => array( 'error' => 'Váš profil nelze změnit', diff --git a/app/i18n/de/feedback.php b/app/i18n/de/feedback.php index 4c15aadc3..61a7d9d61 100644 --- a/app/i18n/de/feedback.php +++ b/app/i18n/de/feedback.php @@ -102,6 +102,7 @@ return array( '_' => 'Der Benutzer %s ist gelöscht worden', 'error' => 'Der Benutzer %s kann nicht gelöscht werden', ), + 'set_registration' => 'The maximum amount of accounts has been updated.', // TODO: translate ), 'profile' => array( 'error' => 'Ihr Profil kann nicht geändert werden', diff --git a/app/i18n/en/feedback.php b/app/i18n/en/feedback.php index c9189c0d0..c9f73dc1d 100644 --- a/app/i18n/en/feedback.php +++ b/app/i18n/en/feedback.php @@ -102,6 +102,7 @@ return array( '_' => 'User %s has been deleted', 'error' => 'User %s cannot be deleted', ), + 'set_registration' => 'The maximum amount of accounts has been updated.', ), 'profile' => array( 'error' => 'Your profile cannot be modified', diff --git a/app/i18n/fr/feedback.php b/app/i18n/fr/feedback.php index e2364a251..99c193d28 100644 --- a/app/i18n/fr/feedback.php +++ b/app/i18n/fr/feedback.php @@ -102,6 +102,7 @@ return array( '_' => 'L’utilisateur %s a été supprimé.', 'error' => 'L’utilisateur %s ne peut pas être supprimé.', ), + 'set_registration' => 'Le nombre maximal de comptes a été mis à jour.', ), 'profile' => array( 'error' => 'Votre profil n’a pas pu être mis à jour', -- cgit v1.2.3 From d1c1a6358072eb3ce8bd55c9f9e813aa8a7c4b5b Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Wed, 29 Jul 2015 22:43:50 +0200 Subject: Add translations for German and Czech Fix https://github.com/FreshRSS/FreshRSS/issues/930 --- app/i18n/cz/admin.php | 10 +++++----- app/i18n/cz/conf.php | 4 ++-- app/i18n/cz/feedback.php | 2 +- app/i18n/cz/gen.php | 6 +++--- app/i18n/cz/install.php | 8 ++++---- app/i18n/de/admin.php | 10 +++++----- app/i18n/de/conf.php | 4 ++-- app/i18n/de/feedback.php | 2 +- app/i18n/de/gen.php | 6 +++--- app/i18n/de/install.php | 8 ++++---- 10 files changed, 30 insertions(+), 30 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/cz/admin.php b/app/i18n/cz/admin.php index bfa67573e..4ca56cc37 100644 --- a/app/i18n/cz/admin.php +++ b/app/i18n/cz/admin.php @@ -160,14 +160,14 @@ return array( 'create' => 'Vytvořit nového uživatele', 'email_persona' => 'Email pro přihlášení
(pro Mozilla Persona)', 'language' => 'Jazyk', - 'number' => 'There is %d account created yet', // TODO: translate - 'numbers' => 'There are %d accounts created yet', // TODO: translate + 'number' => 'Zatím je vytvořen %d účet', + 'numbers' => 'Zatím je vytvořeno %d účtů', 'password_form' => 'Heslo
(pro přihlášení webovým formulářem)', 'password_format' => 'Alespoň 7 znaků', 'registration' => array( - 'allow' => 'Allow account creation', // TODO: translate - 'help' => '0 means that there is no account limit', // TODO: translate - 'number' => 'Max number of accounts', // TODO: translate + 'allow' => 'Povolit vytváření účtů', + 'help' => '0 znamená žádná omezení účtu', + 'number' => 'Maximální počet účtů', ), 'title' => 'Správa uživatelů', 'user_list' => 'Seznam uživatelů', diff --git a/app/i18n/cz/conf.php b/app/i18n/cz/conf.php index 859eeac89..823ab1ea3 100644 --- a/app/i18n/cz/conf.php +++ b/app/i18n/cz/conf.php @@ -73,8 +73,8 @@ return array( 'profile' => array( '_' => 'Správa profilu', 'delete' => array( - '_' => 'Account deletion', // TODO: translate - 'warn' => 'Your account and all the related data will be deleted.', // TODO: translate + '_' => 'Smazání účtu', + 'warn' => 'Váš účet bude smazán spolu se všemi souvisejícími daty', ), 'email_persona' => 'Email pro přihlášení
(pro Mozilla Persona)', 'password_api' => 'Password API
(tzn. pro mobilní aplikace)', diff --git a/app/i18n/cz/feedback.php b/app/i18n/cz/feedback.php index cf2ee518c..5ba64b938 100644 --- a/app/i18n/cz/feedback.php +++ b/app/i18n/cz/feedback.php @@ -102,7 +102,7 @@ return array( '_' => 'Uživatel %s byl smazán', 'error' => 'Uživatele %s nelze smazat', ), - 'set_registration' => 'The maximum amount of accounts has been updated.', // TODO: translate + 'set_registration' => 'Maximální počet účtů byl změněn', ), 'profile' => array( 'error' => 'Váš profil nelze změnit', diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index 53127998f..138def772 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -32,9 +32,9 @@ return array( 'format' => 'Alespoň 7 znaků', ), 'registration' => array( - '_' => 'New account', // TODO: translate - 'ask' => 'Create an account?', // TODO: translate - 'title' => 'Account creation', // TODO: translate + '_' => 'Nový účet', + 'ask' => 'Vytvořit účet?', + 'title' => 'Vytvoření účtu', ), 'reset' => 'Reset přihlášení', 'username' => array( diff --git a/app/i18n/cz/install.php b/app/i18n/cz/install.php index cca717513..a8bc62909 100644 --- a/app/i18n/cz/install.php +++ b/app/i18n/cz/install.php @@ -4,9 +4,9 @@ return array( 'action' => array( 'finish' => 'Dokončit instalaci', 'fix_errors_before' => 'Chyby prosím před přechodem na další krok opravte.', - 'keep_install' => 'Keep previous installation', // TODO: translate + 'keep_install' => 'Zachovat předchozí instalaci', 'next_step' => 'Přejít na další krok', - 'reinstall' => 'Reinstall FreshRSS', // TODO: translate + 'reinstall' => 'Reinstalovat FreshRSS', ), 'auth' => array( 'email_persona' => 'Email pro přihlášení
(pro Mozilla Persona)', @@ -33,7 +33,7 @@ return array( ), 'check' => array( '_' => 'Kontrola', - 'already_installed' => 'We have detected that FreshRSS is already installed!', // TODO: translate + 'already_installed' => 'Zjistili jsme, že FreshRSS je již nainstalován!', 'cache' => array( 'nok' => 'Zkontrolujte oprávnění adresáře ./data/cache. HTTP server musí mít do tohoto adresáře práva zápisu', 'ok' => 'Oprávnění adresáře cache jsou v pořádku.', @@ -97,7 +97,7 @@ return array( 'fix_errors_before' => 'Chyby prosím před přechodem na další krok opravte.', 'javascript_is_better' => 'Práce s FreshRSS je příjemnější se zapnutým JavaScriptem', 'js' => array( - 'confirm_reinstall' => 'You will lose your previous configuration by reinstalling FreshRSS. Are you sure you want to continue?', // TODO: translate + 'confirm_reinstall' => 'Reinstalací FreshRSS ztratíte předchozí konfiguraci. Opravdu chcete pokračovat?', ), 'language' => array( '_' => 'Jazyk', diff --git a/app/i18n/de/admin.php b/app/i18n/de/admin.php index 667f7af8d..68dcc2ebf 100644 --- a/app/i18n/de/admin.php +++ b/app/i18n/de/admin.php @@ -160,14 +160,14 @@ return array( 'create' => 'Neuen Benutzer erstellen', 'email_persona' => 'Anmelde-E-Mail-Adresse
(für Mozilla Persona)', 'language' => 'Sprache', - 'number' => 'There is %d account created yet', // TODO: translate - 'numbers' => 'There are %d accounts created yet', // TODO: translate + 'number' => 'Es wurde bis jetzt %d Account erstellt', + 'numbers' => 'Es wurden bis jetzt %d Accounts erstellt', 'password_form' => 'Passwort
(für die Anmeldemethode per Webformular)', 'password_format' => 'mindestens 7 Zeichen', 'registration' => array( - 'allow' => 'Allow account creation', // TODO: translate - 'help' => '0 means that there is no account limit', // TODO: translate - 'number' => 'Max number of accounts', // TODO: translate + 'allow' => 'Erlaube die Accounterstellung', + 'help' => '0 meint, dass es kein Account Limit gibt', + 'number' => 'Maximale Anzahl von Accounts', ), 'title' => 'Benutzer verwalten', 'user_list' => 'Liste der Benutzer', diff --git a/app/i18n/de/conf.php b/app/i18n/de/conf.php index 5313ec3fd..c1a762f12 100644 --- a/app/i18n/de/conf.php +++ b/app/i18n/de/conf.php @@ -73,8 +73,8 @@ return array( 'profile' => array( '_' => 'Profil-Verwaltung', 'delete' => array( - '_' => 'Account deletion', // TODO: translate - 'warn' => 'Your account and all the related data will be deleted.', // TODO: translate + '_' => 'Accountlöschung', + 'warn' => 'Dein Account und alle damit bezogenen Daten werden gelöscht.', ), 'email_persona' => 'Anmelde-E-Mail-Adresse
(für Mozilla Persona)', 'password_api' => 'Passwort-API
(z. B. für mobile Anwendungen)', diff --git a/app/i18n/de/feedback.php b/app/i18n/de/feedback.php index 61a7d9d61..e92dacfe9 100644 --- a/app/i18n/de/feedback.php +++ b/app/i18n/de/feedback.php @@ -102,7 +102,7 @@ return array( '_' => 'Der Benutzer %s ist gelöscht worden', 'error' => 'Der Benutzer %s kann nicht gelöscht werden', ), - 'set_registration' => 'The maximum amount of accounts has been updated.', // TODO: translate + 'set_registration' => 'Die maximale Anzahl von Accounts wurde aktualisiert.', ), 'profile' => array( 'error' => 'Ihr Profil kann nicht geändert werden', diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index f8f4823a6..de2d846c5 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -32,9 +32,9 @@ return array( 'format' => 'mindestens 7 Zeichen', ), 'registration' => array( - '_' => 'New account', // TODO: translate - 'ask' => 'Create an account?', // TODO: translate - 'title' => 'Account creation', // TODO: translate + '_' => 'Neuer Account', + 'ask' => 'Erstelle einen Account?', + 'title' => 'Accounterstellung', ), 'reset' => 'Zurücksetzen der Authentifizierung', 'username' => array( diff --git a/app/i18n/de/install.php b/app/i18n/de/install.php index 222c65b32..286272e71 100644 --- a/app/i18n/de/install.php +++ b/app/i18n/de/install.php @@ -4,9 +4,9 @@ return array( 'action' => array( 'finish' => 'Installation fertigstellen', 'fix_errors_before' => 'Bitte Fehler korrigieren, bevor zum nächsten Schritt gesprungen wird.', - 'keep_install' => 'Keep previous installation', // TODO: translate + 'keep_install' => 'Vorherige Installation beibehalten (Daten)', 'next_step' => 'Zum nächsten Schritt springen', - 'reinstall' => 'Reinstall FreshRSS', // TODO: translate + 'reinstall' => 'Neuinstallation von FreshRSS', ), 'auth' => array( 'email_persona' => 'Anmelde-E-Mail-Adresse
(für Mozilla Persona)', @@ -33,7 +33,7 @@ return array( ), 'check' => array( '_' => 'Überprüfungen', - 'already_installed' => 'We have detected that FreshRSS is already installed!', // TODO: translate + 'already_installed' => 'Wir haben festgestellt, dass FreshRSS bereits installiert wurde!', 'cache' => array( 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses ./data/cache. Der HTTP-Server muss Schreibrechte besitzen.', 'ok' => 'Die Berechtigungen des Verzeichnisses ./data/cache sind in Ordnung.', @@ -97,7 +97,7 @@ return array( 'fix_errors_before' => 'Bitte den Fehler korrigieren, bevor zum nächsten Schritt gesprungen wird.', 'javascript_is_better' => 'FreshRSS ist ansprechender mit aktiviertem JavaScript', 'js' => array( - 'confirm_reinstall' => 'You will lose your previous configuration by reinstalling FreshRSS. Are you sure you want to continue?', // TODO: translate + 'confirm_reinstall' => 'Du wirst deine vorherige Konfiguration (Daten) verlieren FreshRSS. Bist du sicher, dass du fortfahren willst?', ), 'language' => array( '_' => 'Sprache', -- cgit v1.2.3 From 390f2ce5f09b41f91f6328eb9370eb7d68839eff Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Tue, 18 Aug 2015 19:58:09 +0200 Subject: i18n: Dutch https://github.com/FreshRSS/FreshRSS/issues/949 https://github.com/Wanabo/FreshRSS-Dutch-translation --- app/i18n/nl/admin.php | 177 +++++++++++++++++++++++++++++++++++++++++++++++ app/i18n/nl/conf.php | 170 +++++++++++++++++++++++++++++++++++++++++++++ app/i18n/nl/feedback.php | 110 +++++++++++++++++++++++++++++ app/i18n/nl/gen.php | 166 ++++++++++++++++++++++++++++++++++++++++++++ app/i18n/nl/index.php | 61 ++++++++++++++++ app/i18n/nl/install.php | 107 ++++++++++++++++++++++++++++ app/i18n/nl/sub.php | 62 +++++++++++++++++ 7 files changed, 853 insertions(+) create mode 100644 app/i18n/nl/admin.php create mode 100644 app/i18n/nl/conf.php create mode 100644 app/i18n/nl/feedback.php create mode 100644 app/i18n/nl/gen.php create mode 100644 app/i18n/nl/index.php create mode 100644 app/i18n/nl/install.php create mode 100644 app/i18n/nl/sub.php (limited to 'app/i18n') diff --git a/app/i18n/nl/admin.php b/app/i18n/nl/admin.php new file mode 100644 index 000000000..5c6a14fda --- /dev/null +++ b/app/i18n/nl/admin.php @@ -0,0 +1,177 @@ + array( + 'allow_anonymous' => 'Sta bezoekers toe om artikelen te lezen van de standaard gebruiker (%s)', + 'allow_anonymous_refresh' => 'Sta bezoekers toe om de artikelen te vernieuwen', + 'api_enabled' => 'Sta API toegang toe (nodig voor mobiele apps)', + 'form' => 'Web formulier (traditioneel, benodigd JavaScript)', + 'http' => 'HTTP (voor geavanceerde gebruikers met HTTPS)', + 'none' => 'Geen (gevaarlijk)', + 'persona' => 'Mozilla Persona (modern, benodigd JavaScript)', + 'title' => 'Authenticatie', + 'title_reset' => 'Authenticatie terugzetten', + 'token' => 'Authenticatie teken', + 'token_help' => 'Sta toegang toe tot de RSS uitvoer van de standaard gebruiker zonder authenticatie:', + 'type' => 'Authenticatie methode', + 'unsafe_autologin' => 'Sta onveilige automatische log in toe met het volgende formaat: ', + ), + 'check_install' => array( + 'cache' => array( + 'nok' => 'Controleer de permissies van de ./data/cache map. HTTP server moet rechten hebben om hierin te schrijven', + 'ok' => 'Permissies van de cache map zijn goed.', + ), + 'categories' => array( + 'nok' => 'Categorie tabel is slecht geconfigureerd.', + 'ok' => 'Categorie tabel is ok.', + ), + 'connection' => array( + 'nok' => 'Verbinding met de database kan niet worden gemaakt.', + 'ok' => 'Verbinding met de database is ok.', + ), + 'ctype' => array( + 'nok' => 'U mist de benodigde bibliotheek voor character type checking (php-ctype).', + 'ok' => 'U hebt de benodigde bibliotheek voor character type checking (ctype).', + ), + 'curl' => array( + 'nok' => 'U mist de cURL (php5-curl package).', + 'ok' => 'U hebt de cURL uitbreiding.', + ), + 'data' => array( + 'nok' => 'Controleer de permissies op de ./data map. HTTP server moet rechten hebben om hierin te schrijven', + 'ok' => 'Permissies op de data map zijn goed.', + ), + 'database' => 'Database installatie', + 'dom' => array( + 'nok' => 'U mist de benodigde bibliotheek voor het bladeren van DOM (php-xml package).', + 'ok' => 'U hebt de benodigde bibliotheek voor het bladeren van DOM.', + ), + 'entries' => array( + 'nok' => 'Invoer tabel is slecht geconfigureerd.', + 'ok' => 'Invoer tabel is ok.', + ), + 'favicons' => array( + 'nok' => 'Controleer de permissies op de ./data/favicons map. HTTP server moet rechten hebben om hierin te schrijven', + 'ok' => 'Permissies op de favicons map zijn goed.', + ), + 'feeds' => array( + 'nok' => 'Feed tabel is slecht geconfigureerd.', + 'ok' => 'Feed tabel is ok.', + ), + 'files' => 'Bestanden installatie', + 'json' => array( + 'nok' => 'U mist JSON (php5-json package).', + 'ok' => 'U hebt JSON uitbreiding.', + ), + 'minz' => array( + 'nok' => 'U mist Minz framework.', + 'ok' => 'U hebt Minz framework.', + ), + 'pcre' => array( + 'nok' => 'U mist de benodigde bibliotheek voor regular expressions (php-pcre).', + 'ok' => 'U hebt de benodigde bibliotheek voor regular expressions (PCRE).', + ), + 'pdo' => array( + 'nok' => 'U mist PDO of een van de ondersteunde drivers (pdo_mysql, pdo_sqlite).', + 'ok' => 'U hebt PDO en ten minste één van de ondersteunde drivers (pdo_mysql, pdo_sqlite).', + ), + 'persona' => array( + 'nok' => 'Controleer de permissies op de ./data/persona map. HTTP server moet rechten hebben om hierin te schrijven', + 'ok' => 'Permissies op de Mozilla Persona map zijn goed.', + ), + 'php' => array( + '_' => 'PHP installatie', + 'nok' => 'Uw PHP versie is %s maar FreshRSS benodigd tenminste versie %s.', + 'ok' => 'Uw PHP versie is %s, welke compatibel is met FreshRSS.', + ), + 'tables' => array( + 'nok' => 'Er zijn één of meer ontbrekende tabellen in de database.', + 'ok' => 'Alle tabellen zijn aanwezig in de database.', + ), + 'title' => 'Installatie controle', + 'tokens' => array( + 'nok' => 'Controleer de permissies op de ./data/tokens map. HTTP server moet rechten hebben om hierin te schrijven', + 'ok' => 'Permissies op de tokens map zijn goed.', + ), + 'users' => array( + 'nok' => 'Controleer de permissies op de ./data/users map. HTTP server moet rechten hebben om hierin te schrijven', + 'ok' => 'Permissies op de users map zijn goed.', + ), + 'zip' => array( + 'nok' => 'U mist ZIP uitbreiding (php5-zip package).', + 'ok' => 'U hebt ZIP uitbreiding.', + ), + ), + 'extensions' => array( + 'disabled' => 'Uitgeschakeld', + 'empty_list' => 'Er zijn geïnstalleerde uitbreidingen', + 'enabled' => 'Ingeschakeld', + 'no_configure_view' => 'Deze uitbreiding kan niet worden geconfigureerd.', + 'system' => array( + '_' => 'Systeem uitbreidingen', + 'no_rights' => 'Systeem uitbreidingen (U hebt hier geen rechten op)', + ), + 'title' => 'Uitbreidingen', + 'user' => 'Gebruikers uitbreidingen', + ), + 'stats' => array( + '_' => 'Statistieken', + 'all_feeds' => 'Alle feeds', + 'category' => 'Categorie', + 'entry_count' => 'Invoer aantallen', + 'entry_per_category' => 'Aantallen per categorie', + 'entry_per_day' => 'Aantallen per day (laatste 30 dagen)', + 'entry_per_day_of_week' => 'Per dag of week (gemiddeld: %.2f berichten)', + 'entry_per_hour' => 'Per uur (gemiddeld: %.2f berichten)', + 'entry_per_month' => 'Per maand (gemiddeld: %.2f berichten)', + 'entry_repartition' => 'Invoer verdeling', + 'feed' => 'Feed', + 'feed_per_category' => 'Feeds per categorie', + 'idle' => 'Gepauzeerde feeds', + 'main' => 'Hoofd statistieken', + 'main_stream' => 'Overzicht', + 'menu' => array( + 'idle' => 'Gepauzeerde feeds', + 'main' => 'Hoofd statistieken', + 'repartition' => 'Artikelen verdeling', + ), + 'no_idle' => 'Er is geen gepauzeerde feed!', + 'number_entries' => '%d artikelen', + 'percent_of_total' => '%% van totaal', + 'repartition' => 'Artikelen verdeling', + 'status_favorites' => 'Favorieten', + 'status_read' => 'Gelezen', + 'status_total' => 'Totaal', + 'status_unread' => 'Ongelezen', + 'title' => 'Statistieken', + 'top_feed' => 'Top tien feeds', + ), + 'update' => array( + '_' => 'Versie controle', + 'apply' => 'Toepassen', + 'check' => 'Controleer op nieuwe versies', + 'current_version' => 'Uw huidige versie van FreshRSS is %s.', + 'last' => 'Laatste controle: %s', + 'none' => 'Geen nieuwe versie om toe te passen', + 'title' => 'Vernieuw systeem', + ), + 'user' => array( + 'articles_and_size' => '%s artikelen (%s)', + 'create' => 'Creëer nieuwe gebruiker', + 'email_persona' => 'Log in mail adres
(voor Mozilla Persona)', + 'language' => 'Taal', + 'number' => 'Er is %d accounts gemaakt', + 'numbers' => 'Er zijn %d accounts gemaakt', + 'password_form' => 'Wachtwoord
(voor de Web-formulier log in methode)', + 'password_format' => 'Ten minste 7 tekens', + 'registration' => array( + 'allow' => 'Sta het maken van nieuwe accounts toe', + 'help' => '0 betekent dat er geen account limiet is', + 'number' => 'Max aantal van accounts', + ), + 'title' => 'Beheer gebruikers', + 'user_list' => 'Lijst van gebruikers ', + 'username' => 'Gebruikers naam', + 'users' => 'Gebruikers', + ), +); diff --git a/app/i18n/nl/conf.php b/app/i18n/nl/conf.php new file mode 100644 index 000000000..16ad336a9 --- /dev/null +++ b/app/i18n/nl/conf.php @@ -0,0 +1,170 @@ + array( + '_' => 'Archivering', + 'advanced' => 'Geavanceerd', + 'delete_after' => 'Verwijder artikelen na', + 'help' => 'Meer opties zijn beschikbaar in de persoonlijke stroom instellingen', + 'keep_history_by_feed' => 'Minimum aantal te behouden artikelen in de feed', + 'optimize' => 'Optimaliseer database', + 'optimize_help' => 'Doe dit zo af en toe om de omvang van de database te verkleinen', + 'purge_now' => 'Schoon nu op', + 'title' => 'Archivering', + 'ttl' => 'Vernieuw niet automatisch meer dan', + ), + 'display' => array( + '_' => 'Opmaak', + 'icon' => array( + 'bottom_line' => 'Onderaan', + 'entry' => 'Artikel pictogrammen', + 'publication_date' => 'Publicatie datum', + 'related_tags' => 'Gerelateerde labels', + 'sharing' => 'Delen', + 'top_line' => 'Bovenaan', + ), + 'language' => 'Taal', + 'notif_html5' => array( + 'seconds' => 'seconden (0 betekent geen stop)', + 'timeout' => 'HTML5 notificatie stop', + ), + 'theme' => 'Thema', + 'title' => 'Opmaak', + 'width' => array( + 'content' => 'Content width', + 'large' => 'Breed', + 'medium' => 'Normaal', + 'no_limit' => 'Geen limiet', + 'thin' => 'Smal', + ), + ), + 'query' => array( + '_' => 'Gebruikers queries (informatie aanvragen)', + 'deprecated' => 'Deze query (informatie aanvraag) is niet langer geldig. De bedoelde categorie of feed is al verwijderd.', + 'filter' => 'Filter toegepast:', + 'get_all' => 'Toon alle artikelen', + 'get_category' => 'Toon "%s" categorie', + 'get_favorite' => 'Toon favoriete artikelen', + 'get_feed' => 'Toon "%s" feed', + 'no_filter' => 'Geen filter', + 'none' => 'U hebt nog geen gebruikers query aangemaakt..', + 'number' => 'Query n°%d', + 'order_asc' => 'Toon oudste artikelen eerst', + 'order_desc' => 'Toon nieuwste artikelen eerst', + 'search' => 'Zoek naar "%s"', + 'state_0' => 'Toon alle artikelen', + 'state_1' => 'Toon gelezen artikelen', + 'state_2' => 'Toon ongelezen artikelen', + 'state_3' => 'Toon alle artikelen', + 'state_4' => 'Toon favoriete artikelen', + 'state_5' => 'Toon gelezen favoriete artikelen', + 'state_6' => 'Toon ongelezen favoriete artikelen', + 'state_7' => 'Toon favoriete artikelen', + 'state_8' => 'Toon niet favoriete artikelen', + 'state_9' => 'Toon gelezen niet favoriete artikelen', + 'state_10' => 'Toon ongelezen niet favoriete artikelen', + 'state_11' => 'Toon niet favoriete artikelen', + 'state_12' => 'Toon alle artikelen', + 'state_13' => 'Toon gelezen artikelen', + 'state_14' => 'Toon ongelezen artikelen', + 'state_15' => 'Toon alle artikelen', + 'title' => 'Gebruikers queries', + ), + 'profile' => array( + '_' => 'Profiel beheer', + 'email_persona' => 'Log in mail adres
(voor Mozilla Persona)', + 'password_api' => 'Wachtwoord API
(e.g., voor mobiele apps)', + 'password_form' => 'Wachtwoord
(voor de Web-formulier log in methode)', + 'password_format' => 'Ten minste 7 tekens', + 'title' => 'Profiel', + ), + 'reading' => array( + '_' => 'Lezen', + 'after_onread' => 'Na “markeer alles als gelezen”,', + 'articles_per_page' => 'Aantal artikelen per pagina', + 'auto_load_more' => 'Laad volgende artikel onderaan de pagina', + 'auto_remove_article' => 'Verberg artikel na lezen', + 'confirm_enabled' => 'Toon een bevestigings dialoog op “markeer alles als gelezen” acties', + 'display_articles_unfolded' => 'Toon artikelen uitgeklapt als standaard', + 'display_categories_unfolded' => 'Toon categoriën ingeklapt als standaard', + 'hide_read_feeds' => 'Verberg categoriën en feeds zonder ongelezen artikelen (werkt niet met “Toon alle artikelen” configuratie)', + 'img_with_lazyload' => 'Gebruik "lazy load" methode om afbeeldingen te laden', + 'jump_next' => 'Ga naar volgende ongelezen (feed of categorie)', + 'mark_updated_article_unread' => 'Markeer vernieuwd artikel als ongelezen', + 'number_divided_when_reader' => 'Gedeeld door 2 in de lees modus.', + 'read' => array( + 'article_open_on_website' => 'Als het artikel is geopend op de originele website', + 'article_viewed' => 'Als het artikel is bekeken', + 'scroll' => 'Tijdens scrollen', + 'upon_reception' => 'Tijdens ontvangst van het artikel', + 'when' => 'Markeer artikel als gelezen…', + ), + 'show' => array( + '_' => 'Artikelen om te tonen', + 'adaptive' => 'Pas weergave aan', + 'all_articles' => 'Bekijk alle artikelen', + 'unread' => 'Bekijk alleen ongelezen', + ), + 'sort' => array( + '_' => 'Sorteer volgorde', + 'newer_first' => 'Nieuwste eerst', + 'older_first' => 'Oudste eerst', + ), + 'sticky_post' => 'Koppel artikel aan de bovenkant als het geopend wordt', + 'title' => 'Lees modus', + 'view' => array( + 'default' => 'Standaard weergave', + 'global' => 'Globale weergave', + 'normal' => 'Normale weergave', + 'reader' => 'Lees weergave', + ), + ), + 'sharing' => array( + '_' => 'Delen', + 'blogotext' => 'Blogotext', + 'diaspora' => 'Diaspora*', + 'email' => 'Email', + 'facebook' => 'Facebook', + 'g+' => 'Google+', + 'more_information' => 'Meer informatie', + 'print' => 'Afdrukken', + 'shaarli' => 'Shaarli', + 'share_name' => 'Gedeelde naam om weer te geven', + 'share_url' => 'Deel URL voor gebruik', + 'title' => 'Delen', + 'twitter' => 'Twitter', + 'wallabag' => 'wallabag', + ), + 'shortcut' => array( + '_' => 'Shortcuts', + 'article_action' => 'Artikel acties', + 'auto_share' => 'Delen', + 'auto_share_help' => 'Als er slechts één deel methode i, dan wordt deze gebruikt. Anders zijn ze toegankelijk met hun nummer.', + 'close_dropdown' => 'Sluit menu', + 'collapse_article' => 'Inklappen', + 'first_article' => 'Spring naar eerste artikel', + 'focus_search' => 'Toegang zoek venster', + 'help' => 'Toon documentatie', + 'javascript' => 'JavaScript moet geactiveerd zijn om verwijzingen te gebruiken', + 'last_article' => 'Spring naar laatste artikel', + 'load_more' => 'Laad meer artikelen', + 'mark_read' => 'Markeer als gelezen', + 'mark_favorite' => 'Markeer als favoriet', + 'navigation' => 'Navigatie', + 'navigation_help' => 'Met de "Shift" toets, kunt u navigatie verwijzingen voor feeds gebruiken.
Met de "Alt" toets, kunt u navigatie verwijzingen voor categoriën gebruiken.', + 'next_article' => 'Spring naar volgende artikel', + 'other_action' => 'Andere acties', + 'previous_article' => 'Spring naar vorige artikel', + 'see_on_website' => 'Bekijk op originale website', + 'shift_for_all_read' => '+ shift om alle artikelen als gelezen te markeren', + 'title' => 'Verwijzingen', + 'user_filter' => 'Toegang gebruikers filters', + 'user_filter_help' => 'Als er slechts één gebruikers filter s, dan wordt deze gebruikt. Anders zijn ze toegankelijk met hun nummer.', + ), + 'user' => array( + 'articles_and_size' => '%s artikelen (%s)', + 'current' => 'Huidige gebruiker', + 'is_admin' => 'is administrateur', + 'users' => 'Gebruikers', + ), +); diff --git a/app/i18n/nl/feedback.php b/app/i18n/nl/feedback.php new file mode 100644 index 000000000..2bc5cb665 --- /dev/null +++ b/app/i18n/nl/feedback.php @@ -0,0 +1,110 @@ + array( + 'optimization_complete' => 'Optimalisatie compleet', + ), + 'access' => array( + 'denied' => 'U hebt geen rechten om deze pagina te bekijken.', + 'not_found' => 'Deze pagina bestaat niet', + ), + 'auth' => array( + 'form' => array( + 'not_set' => 'Een probleem is opgetreden tijdens de controle van de systeem configuratie. Probeer het later nog eens.', + 'set' => 'Formulier is nu uw standaard authenticatie systeem.', + ), + 'login' => array( + 'invalid' => 'Log in is ongeldig', + 'success' => 'U bent ingelogd', + ), + 'logout' => array( + 'success' => 'U bent uitgelogd', + ), + 'no_password_set' => 'Administrateur wachtwoord is niet ingesteld. Deze mogelijkheid is niet beschikbaar.', + 'not_persona' => 'Alleen Persona systeem kan worden gereset.', + ), + 'conf' => array( + 'error' => 'Er is een fout opgetreden tijdens het opslaan van de configuratie', + 'query_created' => 'Query "%s" is gemaakt.', + 'shortcuts_updated' => 'Verwijzingen zijn vernieuwd', + 'updated' => 'Configuratie is vernieuwd', + ), + 'extensions' => array( + 'already_enabled' => '%s is al ingeschakeld', + 'disable' => array( + 'ko' => '%s kan niet worden uitgeschakeld. Controleer FressRSS log bestanden voor details.', + 'ok' => '%s is nu uitgeschakeld', + ), + 'enable' => array( + 'ko' => '%s kan niet worden ingeschakeld. Controleer FressRSS log bestanden voor details.', + 'ok' => '%s is nn ingeschakeld', + ), + 'no_access' => 'U hebt geen toegang voor %s', + 'not_enabled' => '%s is nog niet ingeschakeld', + 'not_found' => '%s bestaat niet', + ), + 'import_export' => array( + 'export_no_zip_extension' => 'Zip uitbreiding is niet aanwezig op uw server. Exporteer a.u.b. uw bestanden één voor één.', + 'feeds_imported' => 'Uw feeds zijn geimporteerd en worden nu vernieuwd', + 'feeds_imported_with_errors' => 'Uw feeds zijn geimporteerd maar er zijn enige fouten opgetreden', + 'file_cannot_be_uploaded' => 'Bestand kan niet worden verzonden!', + 'no_zip_extension' => 'Zip uitbreiding is niet aanwezig op uw server.', + 'zip_error' => 'Er is een fout opgetreden tijdens het imporeren van het Zip bestand.', + ), + 'sub' => array( + 'actualize' => 'Actualiseren', + 'category' => array( + 'created' => 'Categorie %s is gemaakt.', + 'deleted' => 'Categorie is verwijderd.', + 'emptied' => 'Categorie is leeg gemaakt', + 'error' => 'Categorie kan niet worden vernieuwd', + 'name_exists' => 'Categorie naam bestaat al.', + 'no_id' => 'U moet de id specificeren of de categorie.', + 'no_name' => 'Categorie naam mag niet leeg zijn.', + 'not_delete_default' => 'U kunt de standaard categorie niet verwijderen!', + 'not_exist' => 'De categorie bestaat niet!', + 'over_max' => 'U hebt het maximale aantal categoriën bereikt (%d)', + 'updated' => 'Categorie is vernieuwd.', + ), + 'feed' => array( + 'actualized' => '%s is vernieuwd', + 'actualizeds' => 'RSS feeds zijn vernieuwd', + 'added' => 'RSS feed %s is toegevoegd', + 'already_subscribed' => 'U bent al geabonneerd op %s', + 'deleted' => 'Feed is verwijderd', + 'error' => 'Feed kan niet worden vernieuwd', + 'internal_problem' => 'De RSS feed kon niet worden toegevoegd. Controleer FressRSS log bestanden voor details.', + 'invalid_url' => 'URL %s is ongeldig', + 'marked_read' => 'Feeds zijn gemarkeerd als gelezen', + 'n_actualized' => '%d feeds zijn vernieuwd', + 'n_entries_deleted' => '%d artikelen zijn verwijderd', + 'no_refresh' => 'Er is geen feed om te vernieuwen…', + 'not_added' => '%s kon niet worden toegevoegd', + 'over_max' => 'U hebt het maximale aantal feeds bereikt(%d)', + 'updated' => 'Feed is vernieuwd', + ), + 'purge_completed' => 'Opschonen klaar (%d artikelen verwijderd)', + ), + 'update' => array( + 'can_apply' => 'FreshRSS word nu vernieud naar versie %s.', + 'error' => 'Het vernieuwingsproces kwam een fout tegen: %s', + 'file_is_nok' => 'Controleer permissies op %s map. HTTP server moet rechten hebben om er in te schrijven', + 'finished' => 'Vernieuwing compleet!', + 'none' => 'Geen vernieuwing om toe te passen', + 'server_not_found' => 'Vernieuwings server kan niet worden gevonden. [%s]', + ), + 'user' => array( + 'created' => array( + '_' => 'Gebruiker %s is aangemaakt', + 'error' => 'Gebruiker %s kan niet worden aangemaakt', + ), + 'deleted' => array( + '_' => 'Gebruiker %s is verwijderd', + 'error' => 'Gebruiker %s kan niet worden verwijderd', + ), + ), + 'profile' => array( + 'error' => 'Uw profiel kan niet worden aangepast', + 'updated' => 'Uw profiel is aangepast', + ), +); diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php new file mode 100644 index 000000000..9d7a868dd --- /dev/null +++ b/app/i18n/nl/gen.php @@ -0,0 +1,166 @@ + array( + 'actualize' => 'Actualiseren', + 'back_to_rss_feeds' => '← Ga terug naar je RSS feeds', + 'cancel' => 'Annuleren', + 'create' => 'Opslaan', + 'disable' => 'Uitzetten', + 'empty' => 'Leeg', + 'enable' => 'Aanzetten', + 'export' => 'Exporteren', + 'filter' => 'Filteren', + 'import' => 'Importeren', + 'manage' => 'Beheren', + 'mark_read' => 'Markeer als gelezen', + 'mark_favorite' => 'Markeer als favoriet', + 'remove' => 'Verwijder', + 'see_website' => 'Bekijk website', + 'submit' => 'Opslaan', + 'truncate' => 'Verwijder alle artikelen', + ), + 'auth' => array( + 'keep_logged_in' => 'Ingelogd blijven voor (1 maand)', + 'login' => 'Log in', + 'login_persona' => 'Login met Persona', + 'login_persona_problem' => 'Connectiviteits problemen met Persona?', + 'logout' => 'Log uit', + 'password' => 'Wachtwoord', + 'reset' => 'Authenticatie reset', + 'username' => 'Gebruikersnaam', + 'username_admin' => 'Administrator gebruikersnaam', + 'will_reset' => 'Het authenticatie system zal worden gereset: een formulier zal worden gebruikt in plaats van Persona.', + ), + 'date' => array( + 'Apr' => '\\A\\p\\r\\i\\l', + 'Aug' => '\\A\\u\\g\\u\\s\\t\\u\\s', + 'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r', + 'Feb' => '\\F\\e\\b\\r\\u\\a\\r\\i', + 'Jan' => '\\J\\a\\n\\u\\a\\r\\i', + 'Jul' => '\\J\\u\\l\\i', + 'Jun' => '\\J\\u\\n\\i', + 'Mar' => '\\M\\a\\a\\r\\t', + 'May' => '\\M\\e\\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' => 'Apr', + 'aug' => 'aug', + 'august' => 'Aug', + 'before_yesterday' => 'Ouder', + 'dec' => 'dec', + 'december' => 'Dec', + 'feb' => 'feb', + 'february' => 'Feb', +// 'format_date' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y', + 'format_date' => 'j %s Y', // European date format +// 'format_date_hour' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y \\a\\t H\\:i', + 'format_date_hour' => 'j %s Y \\o\\m H\\:i', // European date format + 'fri' => 'Vr', + 'jan' => 'jan', + 'january' => 'Jan', + 'jul' => 'jul', + 'july' => 'Jul', + 'jun' => 'jun', + 'june' => 'Jun', + 'last_3_month' => 'Laatste drie maanden', + 'last_6_month' => 'Laatste zes maanden', + 'last_month' => 'Vorige maand', + 'last_week' => 'Vorige week', + 'last_year' => 'Vorig jaar', + 'mar' => 'mar', + 'march' => 'Mar', + 'may' => 'Mei', + 'mon' => 'Ma', + 'month' => 'maanden', + 'nov' => 'nov', + 'november' => 'Nov', + 'oct' => 'okt', + 'october' => 'Okt', + 'sat' => 'Za', + 'sep' => 'sep', + 'september' => 'Sep', + 'sun' => 'Zo', + 'thu' => 'Do', + 'today' => 'Vandaag', + 'tue' => 'Di', + 'wed' => 'Wo', + 'yesterday' => 'Gisteren', + ), + 'freshrss' => array( + '_' => 'FreshRSS', + 'about' => 'Over FreshRSS', + ), + 'js' => array( + 'category_empty' => 'Lege categorie', + 'confirm_action' => 'Weet u zeker dat u dit wilt doen? Het kan niet ongedaan worden gemaakt!', + 'confirm_action_feed_cat' => 'Weet u zeker dat u dit wilt doen? U verliest alle gereleteerde favorieten en gebruikers informatie. Het kan niet ongedaan worden gemaakt!', + 'feedback' => array( + 'body_new_articles' => 'Er zijn \\d nieuwe artikelen om te lezen op FreshRSS.', + 'request_failed' => 'Een opdracht is mislukt, mogelijk door Internet verbindings problemen.', + 'title_new_articles' => 'FreshRSS: nieuwe artikelen!', + ), + 'new_article' => 'Er zijn nieuwe artikelen beschikbaar, klik om de pagina te vernieuwen.', + 'should_be_activated' => 'JavaScript moet aan staan', + ), + 'lang' => array( + 'de' => 'Deutsch', + 'en' => 'English', + 'fr' => 'Français', + 'nl' => 'Nederlands', + ), + 'menu' => array( + 'about' => 'Over', + 'admin' => 'Administratie', + 'archiving' => 'Archiveren', + 'authentication' => 'Authenticatie', + 'check_install' => 'Installatie controle', + 'configuration' => 'Configuratie', + 'display' => 'Opmaak', + 'extensions' => 'Uitbreidingen', + 'logs' => 'Log boeken', + 'queries' => 'Gebruikers informatie', + 'reading' => 'Lezen', + 'search' => 'Zoek woorden of #labels', + 'sharing' => 'Delen', + 'shortcuts' => 'Snelle toegang', + 'stats' => 'Statistieken', + 'update' => 'Versie controle', + 'user_management' => 'Beheer gebruikers', + 'user_profile' => 'Profiel', + ), + 'pagination' => array( + 'first' => 'Eerste', + 'last' => 'Laatste', + 'load_more' => 'Laad meer artikelen', + 'mark_all_read' => 'Markeer alle als gelezen', + 'next' => 'Volgende', + 'nothing_to_load' => 'Er zijn geen artikelen meer', + 'previous' => 'Vorige', + ), + 'share' => array( + 'blogotext' => 'Blogotext', + 'diaspora' => 'Diaspora*', + 'email' => 'Email', + 'facebook' => 'Facebook', + 'g+' => 'Google+', + 'print' => 'Print', + 'shaarli' => 'Shaarli', + 'twitter' => 'Twitter', + 'wallabag' => 'wallabag', + ), + 'short' => array( + 'attention' => 'Attentie!', + 'blank_to_disable' => 'Laat leeg om uit te zetten', + 'by_author' => 'Door %s', + 'by_default' => 'Door standaard', + 'damn' => 'Potverdorie!', + 'default_category' => 'Niet ingedeeld', + 'no' => 'Nee', + 'ok' => 'Ok!', + 'or' => 'of', + 'yes' => 'Ja', + ), +); diff --git a/app/i18n/nl/index.php b/app/i18n/nl/index.php new file mode 100644 index 000000000..df6a064e4 --- /dev/null +++ b/app/i18n/nl/index.php @@ -0,0 +1,61 @@ + array( + '_' => 'Over', + 'agpl3' => 'AGPL 3', + 'bugs_reports' => 'Rapporteer fouten', + 'credits' => 'Waarderingen', + 'credits_content' => 'Sommige ontwerp elementen komen van Bootstrap alhoewel FreshRSS dit raamwerk niet gebruikt. Pictogrammen komen van het GNOME project. De Open Sans font police is gemaakt door Steve Matteson. Favicons zijn verzameld met de getFavicon API. FreshRSS is gebaseerd op Minz, een PHP raamwerk. Nederlandse vertaling door Wanabo, NieuwsKop.be. Link naar de Nederlandse vertaling, FreshRSS-Dutch-translation.', + 'freshrss_description' => 'FreshRSS is een RSS feed aggregator om zelf te hosten zoals Kriss Feed of Leed. Het gebruikt weinig systeembronnen en is makkelijk te administreren terwijl het een krachtig en makkelijk te configureren programma is.', + 'github' => 'op Github', + 'license' => 'License', + 'project_website' => 'Project website', + 'title' => 'Over', + 'version' => 'Versie', + 'website' => 'Website', + ), + 'feed' => array( + 'add' => 'U kunt wat feeds toevoegen.', + 'empty' => 'Er is geen artikel om te laten zien.', + 'rss_of' => 'RSS feed van %s', + 'title' => 'Overzicht RSS feeds', + 'title_global' => 'Globale weergave', + 'title_fav' => 'Uw favorieten', + ), + 'log' => array( + '_' => 'Log bestanden', + 'clear' => 'Leeg de log bestanden', + 'empty' => 'Log bestand is leeg', + 'title' => 'Log bestanden', + ), + 'menu' => array( + 'about' => 'Over FreshRSS', + 'add_query' => 'Voeg een query toe', + 'before_one_day' => 'Ouder als een dag', + 'before_one_week' => 'Ouder als een week', + 'favorites' => 'Favorieten (%s)', + 'global_view' => 'Globale weergave', + 'main_stream' => 'Overzicht', + 'mark_all_read' => 'Markeer alles als gelezen', + 'mark_cat_read' => 'Markeer categorie als gelezen', + 'mark_feed_read' => 'Markeer feed als gelezen', + 'newer_first' => 'Nieuwste eerst', + 'non-starred' => 'Laat alles zien behalve favorieten', + 'normal_view' => 'Normale weergave', + 'older_first' => 'Oudste eerst', + 'queries' => 'Gebruikers queries', + 'read' => 'Laat alleen gelezen zien', + 'reader_view' => 'Lees modus', + 'rss_view' => 'RSS feed', + 'search_short' => 'Zoeken', + 'starred' => 'Laat alleen favorieten zien', + 'stats' => 'Statistieken', + 'subscription' => 'Abonnementen beheer', + 'unread' => 'Laat alleen ongelezen zien', + ), + 'share' => 'Delen', + 'tag' => array( + 'related' => 'Verwante labels', + ), +); diff --git a/app/i18n/nl/install.php b/app/i18n/nl/install.php new file mode 100644 index 000000000..c00966caa --- /dev/null +++ b/app/i18n/nl/install.php @@ -0,0 +1,107 @@ + array( + 'finish' => 'Completeer installatie', + 'fix_errors_before' => 'Repareer de fouten alvorens naar de volgende stap te gaan.', + 'next_step' => 'Ga naar de volgende stap', + ), + 'auth' => array( + 'email_persona' => 'Log in mail adres
(voor Mozilla Persona)', + 'form' => 'Web formulier (traditioneel, benodigd JavaScript)', + 'http' => 'HTTP (voor geavanceerde gebruikers met HTTPS)', + 'none' => 'Geen (gevaarlijk)', + 'password_form' => 'Wachtwoord
(voor de Web-formulier log in methode)', + 'password_format' => 'Tenminste 7 tekens', + 'persona' => 'Mozilla Persona (modern, benodigd JavaScript)', + 'type' => 'Authenticatie methode', + ), + 'bdd' => array( + '_' => 'Database', + 'conf' => array( + '_' => 'Database configuratie', + 'ko' => 'Controleer uw database informatie.', + 'ok' => 'Database configuratie is opgeslagen.', + ), + 'host' => 'Host', + 'prefix' => 'Tabel voorvoegsel', + 'password' => 'HTTP wachtwoord', + 'type' => 'Type database', + 'username' => 'HTTP gebruikersnaam', + ), + 'check' => array( + '_' => 'Controles', + 'cache' => array( + 'nok' => 'Controleer permissies van de ./data/cache map. HTTP server moet rechten hebben om er in te kunnen schrijven', + 'ok' => 'Permissies van de cache map zijn goed.', + ), + 'ctype' => array( + 'nok' => 'U mist een benodigde bibliotheek voor character type checking (php-ctype).', + 'ok' => 'U hebt de benodigde bibliotheek voor character type checking (ctype).', + ), + 'curl' => array( + 'nok' => 'U mist cURL (php5-curl package).', + 'ok' => 'U hebt de cURL uitbreiding.', + ), + 'data' => array( + 'nok' => 'Controleer permissies van de ./data map. HTTP server moet rechten hebben om er in te kunnen schrijven', + 'ok' => 'Permissies van de data map zijn goed.', + ), + 'dom' => array( + 'nok' => 'U mist een benodigde bibliotheek om te bladeren in de DOM (php-xml package).', + 'ok' => 'U hebt de benodigde bibliotheek om te bladeren in de DOM.', + ), + 'favicons' => array( + 'nok' => 'Controleer permissies van de ./data/favicons map. HTTP server moet rechten hebben om er in te kunnen schrijven', + 'ok' => 'Permissies van de favicons map zijn goed.', + ), + 'http_referer' => array( + 'nok' => 'Controleer a.u.b. dat u niet uw HTTP REFERER wijzigd.', + 'ok' => 'Uw HTTP REFERER is bekend en komt overeen met uw server.', + ), + 'minz' => array( + 'nok' => 'U mist het Minz framework.', + 'ok' => 'U hebt het Minz framework.', + ), + 'pcre' => array( + 'nok' => 'U mist een benodigde bibliotheek voor regular expressions (php-pcre).', + 'ok' => 'U hebt de benodigde bibliotheek voor regular expressions (PCRE).', + ), + 'pdo' => array( + 'nok' => 'U mist PDO of één van de ondersteunde (pdo_mysql, pdo_sqlite).', + 'ok' => 'U hebt PDO en ten minste één van de ondersteunde drivers (pdo_mysql, pdo_sqlite).', + ), + 'persona' => array( + 'nok' => 'Controleer permissies van de ./data/persona map. HTTP server moet rechten hebben om er in te kunnen schrijven', + 'ok' => 'Permissies van de Mozilla Persona map zijn goed.', + ), + 'php' => array( + 'nok' => 'Uw PHP versie is %s maar FreshRSS benodigd tenminste versie %s.', + 'ok' => 'Uw PHP versie is %s, welke compatibel is met FreshRSS.', + ), + 'users' => array( + 'nok' => 'Controleer permissies van de ./data/users map. HTTP server moet rechten hebben om er in te kunnen schrijven', + 'ok' => 'Permissies van de users map zijn goed.', + ), + ), + 'conf' => array( + '_' => 'Algemene configuratie', + 'ok' => 'Algemene configuratie is opgeslagen.', + ), + 'congratulations' => 'Gefeliciteerd!', + 'default_user' => 'Gebruikersnaam van de standaard gebruiker (maximaal 16 alphanumerieke tekens)', + 'delete_articles_after' => 'Verwijder artikelen na', + 'fix_errors_before' => 'Repareer fouten alvorens U naar de volgende stap gaat.', + 'javascript_is_better' => 'FreshRSS werkt beter JavaScript ingeschakeld', + 'language' => array( + '_' => 'Taal', + 'choose' => 'Kies een taal voor FreshRSS', + 'defined' => 'Taal is bepaald.', + ), + 'not_deleted' => 'Er ging iets fout! U moet het bestand %s handmatig verwijderen.', + 'ok' => 'De installatie procedure is geslaagd.', + 'step' => 'stap %d', + 'steps' => 'Stappen', + 'title' => 'Installatie · FreshRSS', + 'this_is_the_end' => 'Dit is het einde', +); diff --git a/app/i18n/nl/sub.php b/app/i18n/nl/sub.php new file mode 100644 index 000000000..159a58b27 --- /dev/null +++ b/app/i18n/nl/sub.php @@ -0,0 +1,62 @@ + array( + '_' => 'Categorie', + 'add' => 'Voeg categorie toe', + 'empty' => 'Lege categorie', + 'new' => 'Nieuwe categorie', + ), + 'feed' => array( + 'add' => 'Voeg een RSS feed toe', + 'advanced' => 'Geavanceerd', + 'archiving' => 'Archiveren', + 'auth' => array( + 'configuration' => 'Log in', + 'help' => 'Verbinding toestaan toegang te krijgen tot HTTP beveiligde RSS feeds', + 'http' => 'HTTP Authenticatie', + 'password' => 'HTTP wachtwoord', + 'username' => 'HTTP gebruikers naam', + ), + 'css_help' => 'Haalt verstoorde RSS feeds op (attentie, heeft meer tijd nodig!)', + 'css_path' => 'Artikelen CSS pad op originele website', + 'description' => 'Omschrijving', + 'empty' => 'Deze feed is leeg. Controleer of deze nog actueel is.', + 'error' => 'Deze feed heeft problemen. Verifieer a.u.b het doeladres en actualiseer het.', + 'in_main_stream' => 'Zichtbaar in het overzicht', + 'informations' => 'Informatie', + 'keep_history' => 'Minimum aantal artikelen om te houden', + 'moved_category_deleted' => 'Als u een categorie verwijderd, worden de feeds automatisch geclassificeerd onder %s.', + 'no_selected' => 'Geen feed geselecteerd.', + 'number_entries' => '%d artikelen', + 'pubsubhubbub' => 'Directe notificaties met PubSubHubbub', + 'stats' => 'Statistieken', + 'think_to_add' => 'Voeg wat feeds toe.', + 'title' => 'Titel', + 'title_add' => 'Voeg een RSS feed toe', + 'ttl' => 'Vernieuw automatisch niet vaker dan', + 'url' => 'Feed URL', + 'validator' => 'Controleer de geldigheid van de feed', + 'website' => 'Website URL', + ), + 'import_export' => array( + 'export' => 'Exporteer', + 'export_opml' => 'Exporteer lijst van feeds (OPML)', + 'export_starred' => 'Exporteer je fovorieten', + 'feed_list' => 'Lijst van %s artikelen', + 'file_to_import' => 'Bestand om te importeren
(OPML, Json of Zip)', + 'file_to_import_no_zip' => 'Bestand om te importeren
(OPML of Json)', + 'import' => 'Importeer', + 'starred_list' => 'Lijst van favoriete artikelen', + 'title' => 'Importeren / exporteren', + ), + 'menu' => array( + 'bookmark' => 'Abonneer (FreshRSS bladwijzer)', + 'import_export' => 'Importeer / exporteer', + 'subscription_management' => 'Abonnementen beheer', + ), + 'title' => array( + '_' => 'Abonnementen beheer', + 'feed_management' => 'RSS feed beheer', + ), +); -- cgit v1.2.3 From 501e3312101893b147767c9f3a36c947869d6580 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Fri, 21 Aug 2015 13:35:46 +0200 Subject: Reference other languages https://github.com/FreshRSS/FreshRSS/issues/949 https://github.com/FreshRSS/FreshRSS/pull/950 --- app/i18n/cz/gen.php | 3 ++- app/i18n/de/gen.php | 1 + app/i18n/en/gen.php | 1 + app/i18n/fr/gen.php | 1 + app/i18n/nl/gen.php | 1 + 5 files changed, 6 insertions(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index 53127998f..2094d6a60 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -116,10 +116,11 @@ return array( 'should_be_activated' => 'JavaScript musí být povolen', ), 'lang' => array( + 'cz' => 'Čeština', 'de' => 'Deutsch', 'en' => 'English', 'fr' => 'Français', - 'cz' => 'Čeština', + 'nl' => 'Nederlands', ), 'menu' => array( 'about' => 'O aplikaci', diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index f8f4823a6..fd9ee3f62 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -120,6 +120,7 @@ return array( 'de' => 'Deutsch', 'en' => 'English', 'fr' => 'Français', + 'nl' => 'Nederlands', ), 'menu' => array( 'about' => 'Über', diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 1feb8d6ac..484911444 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -120,6 +120,7 @@ return array( 'de' => 'Deutsch', 'en' => 'English', 'fr' => 'Français', + 'nl' => 'Nederlands', ), 'menu' => array( 'about' => 'About', diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 67d278be4..2a2fffe3e 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -120,6 +120,7 @@ return array( 'de' => 'Deutsch', 'en' => 'English', 'fr' => 'Français', + 'nl' => 'Nederlands', ), 'menu' => array( 'about' => 'À propos', diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index 9d7a868dd..8680bef11 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -106,6 +106,7 @@ return array( 'should_be_activated' => 'JavaScript moet aan staan', ), 'lang' => array( + 'cz' => 'Čeština', 'de' => 'Deutsch', 'en' => 'English', 'fr' => 'Français', -- cgit v1.2.3 From b3ae9407aca2223000c4f3a5b56648382de8ef48 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Fri, 21 Aug 2015 16:26:33 +0200 Subject: i18n nl: content width https://github.com/FreshRSS/FreshRSS/pull/950#issuecomment-133429503 --- app/i18n/nl/conf.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/nl/conf.php b/app/i18n/nl/conf.php index 16ad336a9..effc9dce2 100644 --- a/app/i18n/nl/conf.php +++ b/app/i18n/nl/conf.php @@ -31,7 +31,7 @@ return array( 'theme' => 'Thema', 'title' => 'Opmaak', 'width' => array( - 'content' => 'Content width', + 'content' => 'Inhoud breedte', 'large' => 'Breed', 'medium' => 'Normaal', 'no_limit' => 'Geen limiet', -- cgit v1.2.3 From b33004c38145d4f4c0d2532e3832743b8ad5ba27 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Fri, 21 Aug 2015 18:07:18 +0200 Subject: i18n nl: update Merge changes from https://github.com/Wanabo/FreshRSS-Dutch-translation https://github.com/FreshRSS/FreshRSS/issues/949 --- app/i18n/nl/conf.php | 4 ++++ app/i18n/nl/feedback.php | 1 + app/i18n/nl/gen.php | 27 +++++++++++++++++++-------- app/i18n/nl/install.php | 6 ++++++ 4 files changed, 30 insertions(+), 8 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/nl/conf.php b/app/i18n/nl/conf.php index effc9dce2..9b0aff793 100644 --- a/app/i18n/nl/conf.php +++ b/app/i18n/nl/conf.php @@ -72,6 +72,10 @@ return array( ), 'profile' => array( '_' => 'Profiel beheer', + 'delete' => array( + '_' => 'Account verwijderen', + 'warn' => 'Uw account en alle gerelateerde gegvens worden verwijderd.', + ), 'email_persona' => 'Log in mail adres
(voor Mozilla Persona)', 'password_api' => 'Wachtwoord API
(e.g., voor mobiele apps)', 'password_form' => 'Wachtwoord
(voor de Web-formulier log in methode)', diff --git a/app/i18n/nl/feedback.php b/app/i18n/nl/feedback.php index 2bc5cb665..54d84f7d6 100644 --- a/app/i18n/nl/feedback.php +++ b/app/i18n/nl/feedback.php @@ -102,6 +102,7 @@ return array( '_' => 'Gebruiker %s is verwijderd', 'error' => 'Gebruiker %s kan niet worden verwijderd', ), + 'set_registration' => 'Het maximale aantal accounts is vernieuwd.', ), 'profile' => array( 'error' => 'Uw profiel kan niet worden aangepast', diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index 8680bef11..ed57669a1 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -21,15 +21,27 @@ return array( 'truncate' => 'Verwijder alle artikelen', ), 'auth' => array( + 'email' => 'Email adres', 'keep_logged_in' => 'Ingelogd blijven voor (1 maand)', 'login' => 'Log in', 'login_persona' => 'Login met Persona', - 'login_persona_problem' => 'Connectiviteits problemen met Persona?', + 'login_persona_problem' => 'Connectiviteits problemen met Persona', 'logout' => 'Log uit', - 'password' => 'Wachtwoord', + 'password' => array( + '_' => 'Wachtwoord', + 'format' => 'Ten minste 7 tekens', + ), + 'registration' => array( + '_' => 'Nieuw account', + 'ask' => 'Maak een account?', + 'title' => 'Account maken', + ), 'reset' => 'Authenticatie reset', - 'username' => 'Gebruikersnaam', - 'username_admin' => 'Administrator gebruikersnaam', + 'username' => array( + '_' => 'Gebruikersnaam', + 'admin' => 'Administrator gebruikersnaam', + 'format' => 'maximaal 16 alphanumerieke tekens', + ), 'will_reset' => 'Het authenticatie system zal worden gereset: een formulier zal worden gebruikt in plaats van Persona.', ), 'date' => array( @@ -54,10 +66,8 @@ return array( 'december' => 'Dec', 'feb' => 'feb', 'february' => 'Feb', -// 'format_date' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y', - 'format_date' => 'j %s Y', // European date format -// 'format_date_hour' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y \\a\\t H\\:i', - 'format_date_hour' => 'j %s Y \\o\\m H\\:i', // European date format + 'format_date' => 'j %s Y', //<-- European date format // 'format_date' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y', + 'format_date_hour' => 'j %s Y \\o\\m H\\:i', //<-- European date format // 'format_date_hour' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y \\a\\t H\\:i', 'fri' => 'Vr', 'jan' => 'jan', 'january' => 'Jan', @@ -160,6 +170,7 @@ return array( 'damn' => 'Potverdorie!', 'default_category' => 'Niet ingedeeld', 'no' => 'Nee', + 'not_applicable' => 'Niet aanwezig', 'ok' => 'Ok!', 'or' => 'of', 'yes' => 'Ja', diff --git a/app/i18n/nl/install.php b/app/i18n/nl/install.php index c00966caa..e788261ea 100644 --- a/app/i18n/nl/install.php +++ b/app/i18n/nl/install.php @@ -4,7 +4,9 @@ return array( 'action' => array( 'finish' => 'Completeer installatie', 'fix_errors_before' => 'Repareer de fouten alvorens naar de volgende stap te gaan.', + 'keep_install' => 'Behoud de vorige installatie', 'next_step' => 'Ga naar de volgende stap', + 'reinstall' => 'Installeer FreshRSS opnieuw', ), 'auth' => array( 'email_persona' => 'Log in mail adres
(voor Mozilla Persona)', @@ -31,6 +33,7 @@ return array( ), 'check' => array( '_' => 'Controles', + 'already_installed' => 'We hebben geconstateerd dat FreshRSS al is geïnstallerd!', 'cache' => array( 'nok' => 'Controleer permissies van de ./data/cache map. HTTP server moet rechten hebben om er in te kunnen schrijven', 'ok' => 'Permissies van de cache map zijn goed.', @@ -93,6 +96,9 @@ return array( 'delete_articles_after' => 'Verwijder artikelen na', 'fix_errors_before' => 'Repareer fouten alvorens U naar de volgende stap gaat.', 'javascript_is_better' => 'FreshRSS werkt beter JavaScript ingeschakeld', + 'js' => array( + 'confirm_reinstall' => 'U verliest uw vorige configuratie door FreshRSS opnieuw te installeren. Weet u zeker dat u verder wilt gaan?', + ), 'language' => array( '_' => 'Taal', 'choose' => 'Kies een taal voor FreshRSS', -- cgit v1.2.3 From 269c6b88c4486a0ae1a92df65578ee6ab6f0bbca Mon Sep 17 00:00:00 2001 From: Alexis Degrugillier Date: Sat, 22 Aug 2015 09:33:58 -0400 Subject: Add a system configuration page It allows to modify system configuration from the interface. At the moment, only limits are modifiable. The user limit was removed from the user page and added here along with categories and feeds limits. --- app/Controllers/configureController.php | 33 +++++++++++++++++++++++ app/Controllers/userController.php | 24 ----------------- app/i18n/cz/admin.php | 14 ++++++---- app/i18n/cz/feedback.php | 1 - app/i18n/cz/gen.php | 1 + app/i18n/de/admin.php | 14 ++++++---- app/i18n/de/feedback.php | 1 - app/i18n/de/gen.php | 1 + app/i18n/en/admin.php | 14 ++++++---- app/i18n/en/feedback.php | 1 - app/i18n/en/gen.php | 1 + app/i18n/fr/admin.php | 14 ++++++---- app/i18n/fr/feedback.php | 1 - app/i18n/fr/gen.php | 1 + app/layout/aside_configure.phtml | 3 +++ app/layout/header.phtml | 1 + app/views/configure/system.phtml | 47 +++++++++++++++++++++++++++++++++ app/views/user/manage.phtml | 28 -------------------- 18 files changed, 124 insertions(+), 76 deletions(-) create mode 100644 app/views/configure/system.phtml (limited to 'app/i18n') diff --git a/app/Controllers/configureController.php b/app/Controllers/configureController.php index 248a3edcc..7a4d0ecd7 100755 --- a/app/Controllers/configureController.php +++ b/app/Controllers/configureController.php @@ -293,4 +293,37 @@ class FreshRSS_configure_Controller extends Minz_ActionController { Minz_Request::good(_t('feedback.conf.query_created', $query['name']), array('c' => 'configure', 'a' => 'queries')); } + + /** + * This action handles the system configuration page. + * + * It displays the system configuration page. + * If this action is reach through a POST request, it stores all new + * configuration values then sends a notification to the user. + * + * The options available on the page are: + * - user limit (default: 1) + * - user category limit (default: 16384) + * - user feed limit (default: 16384) + */ + public function systemAction() { + if (!FreshRSS_Auth::hasAccess('admin')) { + Minz_Error::error(403); + } + if (Minz_Request::isPost()) { + $limits = FreshRSS_Context::$system_conf->limits; + $limits['max_registrations'] = Minz_Request::param('max-registrations', 1); + $limits['max_feeds'] = Minz_Request::param('max-feeds', 16384); + $limits['max_categories'] = Minz_Request::param('max-categories', 16384); + FreshRSS_Context::$system_conf->limits = $limits; + FreshRSS_Context::$system_conf->save(); + + invalidateHttpCache(); + + Minz_Session::_param('notification', array( + 'type' => 'good', + 'content' => _t('feedback.conf.updated') + )); + } + } } diff --git a/app/Controllers/userController.php b/app/Controllers/userController.php index 428cd145d..1c7d621f1 100644 --- a/app/Controllers/userController.php +++ b/app/Controllers/userController.php @@ -272,28 +272,4 @@ class FreshRSS_user_Controller extends Minz_ActionController { Minz_Request::forward($redirect_url, true); } - - /** - * This action updates the max number of registrations. - * - * Request parameter is: - * - max-registrations (int >= 0) - */ - public function setRegistrationAction() { - if (Minz_Request::isPost() && FreshRSS_Auth::hasAccess('admin')) { - $limits = FreshRSS_Context::$system_conf->limits; - $limits['max_registrations'] = Minz_Request::param('max-registrations', 1); - FreshRSS_Context::$system_conf->limits = $limits; - FreshRSS_Context::$system_conf->save(); - - invalidateHttpCache(); - - Minz_Session::_param('notification', array( - 'type' => 'good', - 'content' => _t('feedback.user.set_registration') - )); - } - - Minz_Request::forward(array('c' => 'user', 'a' => 'manage'), true); - } } diff --git a/app/i18n/cz/admin.php b/app/i18n/cz/admin.php index 4ca56cc37..92c300709 100644 --- a/app/i18n/cz/admin.php +++ b/app/i18n/cz/admin.php @@ -146,6 +146,15 @@ return array( 'title' => 'Statistika', 'top_feed' => 'Top ten kanálů', ), + 'system' => array( + '_' => 'System configuration', + 'max-categories' => 'Categories per user limit', + 'max-feeds' => 'Feeds per user limit', + 'registration' => array( + 'help' => '0 znamená žádná omezení účtu', + 'number' => 'Maximální počet účtů', + ), + ), 'update' => array( '_' => 'Aktualizace systému', 'apply' => 'Použít', @@ -164,11 +173,6 @@ return array( 'numbers' => 'Zatím je vytvořeno %d účtů', 'password_form' => 'Heslo
(pro přihlášení webovým formulářem)', 'password_format' => 'Alespoň 7 znaků', - 'registration' => array( - 'allow' => 'Povolit vytváření účtů', - 'help' => '0 znamená žádná omezení účtu', - 'number' => 'Maximální počet účtů', - ), 'title' => 'Správa uživatelů', 'user_list' => 'Seznam uživatelů', 'username' => 'Přihlašovací jméno', diff --git a/app/i18n/cz/feedback.php b/app/i18n/cz/feedback.php index 5ba64b938..b75a4a15a 100644 --- a/app/i18n/cz/feedback.php +++ b/app/i18n/cz/feedback.php @@ -102,7 +102,6 @@ return array( '_' => 'Uživatel %s byl smazán', 'error' => 'Uživatele %s nelze smazat', ), - 'set_registration' => 'Maximální počet účtů byl změněn', ), 'profile' => array( 'error' => 'Váš profil nelze změnit', diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index 138def772..436e4f0c2 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -137,6 +137,7 @@ return array( 'sharing' => 'Sdílení', 'shortcuts' => 'Zkratky', 'stats' => 'Statistika', + 'system' => 'System configuration', 'update' => 'Aktualizace', 'user_management' => 'Správa uživatelů', 'user_profile' => 'Profil', diff --git a/app/i18n/de/admin.php b/app/i18n/de/admin.php index 68dcc2ebf..365f065af 100644 --- a/app/i18n/de/admin.php +++ b/app/i18n/de/admin.php @@ -146,6 +146,15 @@ return array( 'title' => 'Statistiken', 'top_feed' => 'Top 10-Feeds', ), + 'system' => array( + '_' => 'System configuration', + 'max-categories' => 'Categories per user limit', + 'max-feeds' => 'Feeds per user limit', + 'registration' => array( + 'help' => '0 meint, dass es kein Account Limit gibt', + 'number' => 'Maximale Anzahl von Accounts', + ), + ), 'update' => array( '_' => 'System aktualisieren', 'apply' => 'Anwenden', @@ -164,11 +173,6 @@ return array( 'numbers' => 'Es wurden bis jetzt %d Accounts erstellt', 'password_form' => 'Passwort
(für die Anmeldemethode per Webformular)', 'password_format' => 'mindestens 7 Zeichen', - 'registration' => array( - 'allow' => 'Erlaube die Accounterstellung', - 'help' => '0 meint, dass es kein Account Limit gibt', - 'number' => 'Maximale Anzahl von Accounts', - ), 'title' => 'Benutzer verwalten', 'user_list' => 'Liste der Benutzer', 'username' => 'Nutzername', diff --git a/app/i18n/de/feedback.php b/app/i18n/de/feedback.php index e92dacfe9..4c15aadc3 100644 --- a/app/i18n/de/feedback.php +++ b/app/i18n/de/feedback.php @@ -102,7 +102,6 @@ return array( '_' => 'Der Benutzer %s ist gelöscht worden', 'error' => 'Der Benutzer %s kann nicht gelöscht werden', ), - 'set_registration' => 'Die maximale Anzahl von Accounts wurde aktualisiert.', ), 'profile' => array( 'error' => 'Ihr Profil kann nicht geändert werden', diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index de2d846c5..f3450abc0 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -137,6 +137,7 @@ return array( 'sharing' => 'Teilen', 'shortcuts' => 'Tastaturkürzel', 'stats' => 'Statistiken', + 'system' => 'System configuration', 'update' => 'Aktualisieren', 'user_management' => 'Benutzer verwalten', 'user_profile' => 'Profil', diff --git a/app/i18n/en/admin.php b/app/i18n/en/admin.php index aeea61631..ad9038203 100644 --- a/app/i18n/en/admin.php +++ b/app/i18n/en/admin.php @@ -146,6 +146,15 @@ return array( 'title' => 'Statistics', 'top_feed' => 'Top ten feeds', ), + 'system' => array( + '_' => 'System configuration', + 'max-categories' => 'Categories per user limit', + 'max-feeds' => 'Feeds per user limit', + 'registration' => array( + 'help' => '0 means that there is no account limit', + 'number' => 'Max number of accounts', + ), + ), 'update' => array( '_' => 'Update system', 'apply' => 'Apply', @@ -164,11 +173,6 @@ return array( 'numbers' => 'There are %d accounts created yet', 'password_form' => 'Password
(for the Web-form login method)', 'password_format' => 'At least 7 characters', - 'registration' => array( - 'allow' => 'Allow account creation', - 'help' => '0 means that there is no account limit', - 'number' => 'Max number of accounts', - ), 'title' => 'Manage users', 'user_list' => 'List of users', 'username' => 'Username', diff --git a/app/i18n/en/feedback.php b/app/i18n/en/feedback.php index c9f73dc1d..c9189c0d0 100644 --- a/app/i18n/en/feedback.php +++ b/app/i18n/en/feedback.php @@ -102,7 +102,6 @@ return array( '_' => 'User %s has been deleted', 'error' => 'User %s cannot be deleted', ), - 'set_registration' => 'The maximum amount of accounts has been updated.', ), 'profile' => array( 'error' => 'Your profile cannot be modified', diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 1feb8d6ac..9aef45768 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -137,6 +137,7 @@ return array( 'sharing' => 'Sharing', 'shortcuts' => 'Shortcuts', 'stats' => 'Statistics', + 'system' => 'System configuration', 'update' => 'Update', 'user_management' => 'Manage users', 'user_profile' => 'Profile', diff --git a/app/i18n/fr/admin.php b/app/i18n/fr/admin.php index 01e0cb3c7..44e013c2f 100644 --- a/app/i18n/fr/admin.php +++ b/app/i18n/fr/admin.php @@ -146,6 +146,15 @@ return array( 'title' => 'Statistiques', 'top_feed' => 'Les dix plus gros flux', ), + 'system' => array( + '_' => 'Configuration du système', + 'max-categories' => 'Limite de catégories par utilisateur', + 'max-feeds' => 'Limite de flux par utilisateur', + 'registration' => array( + 'help' => 'Un chiffre de 0 signifie que l’on peut créer un nombre infini de comptes', + 'number' => 'Nombre max de comptes', + ), + ), 'update' => array( '_' => 'Système de mise à jour', 'apply' => 'Appliquer la mise à jour', @@ -164,11 +173,6 @@ return array( 'numbers' => '%d comptes ont déjà été créés', 'password_form' => 'Mot de passe
(pour connexion par formulaire)', 'password_format' => '7 caractères minimum', - 'registration' => array( - 'allow' => 'Autoriser la création de comptes', - 'help' => 'Un chiffre de 0 signifie que l’on peut créer un nombre infini de comptes', - 'number' => 'Nombre max de comptes', - ), 'title' => 'Gestion des utilisateurs', 'user_list' => 'Liste des utilisateurs', 'username' => 'Nom d’utilisateur', diff --git a/app/i18n/fr/feedback.php b/app/i18n/fr/feedback.php index 99c193d28..e2364a251 100644 --- a/app/i18n/fr/feedback.php +++ b/app/i18n/fr/feedback.php @@ -102,7 +102,6 @@ return array( '_' => 'L’utilisateur %s a été supprimé.', 'error' => 'L’utilisateur %s ne peut pas être supprimé.', ), - 'set_registration' => 'Le nombre maximal de comptes a été mis à jour.', ), 'profile' => array( 'error' => 'Votre profil n’a pas pu être mis à jour', diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 67d278be4..9df5b6f05 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -137,6 +137,7 @@ return array( 'sharing' => 'Partage', 'shortcuts' => 'Raccourcis', 'stats' => 'Statistiques', + 'system' => 'Configuration du système', 'update' => 'Mise à jour', 'user_management' => 'Gestion des utilisateurs', 'user_profile' => 'Profil', diff --git a/app/layout/aside_configure.phtml b/app/layout/aside_configure.phtml index 7567a8206..d956ec21f 100644 --- a/app/layout/aside_configure.phtml +++ b/app/layout/aside_configure.phtml @@ -27,6 +27,9 @@ +
  • + +
  • diff --git a/app/layout/header.phtml b/app/layout/header.phtml index 41a63a565..238c664b0 100644 --- a/app/layout/header.phtml +++ b/app/layout/header.phtml @@ -67,6 +67,7 @@ if (FreshRSS_Auth::accessNeedsAction()) {
  • +
  • diff --git a/app/views/configure/system.phtml b/app/views/configure/system.phtml new file mode 100644 index 000000000..cbedc511b --- /dev/null +++ b/app/views/configure/system.phtml @@ -0,0 +1,47 @@ +partial('aside_configure'); ?> + +
    + + + + + +
    + +
    + + +
    +
    + +
    +
    + 1 ? 'admin.user.numbers' : 'admin.user.number', $number); + ?> +
    +
    + +
    + +
    + +
    +
    + +
    + +
    + +
    +
    + +
    +
    + + +
    +
    + +
    \ No newline at end of file diff --git a/app/views/user/manage.phtml b/app/views/user/manage.phtml index 3d3bc3ddf..fe1b6618b 100644 --- a/app/views/user/manage.phtml +++ b/app/views/user/manage.phtml @@ -3,34 +3,6 @@
    -
    - - -
    - -
    - - -
    -
    - -
    -
    - 1 ? 'admin.user.numbers' : 'admin.user.number', $number); - ?> -
    -
    - -
    -
    - - -
    -
    -
    -
    -- cgit v1.2.3 From fac236a04151af2b65b39fdd8f5169ef5abbf16e Mon Sep 17 00:00:00 2001 From: Alexis Degrugillier Date: Mon, 24 Aug 2015 18:30:25 -0400 Subject: Add todo comments for translation --- app/i18n/cz/admin.php | 6 +++--- app/i18n/cz/gen.php | 2 +- app/i18n/de/admin.php | 6 +++--- app/i18n/de/gen.php | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/cz/admin.php b/app/i18n/cz/admin.php index 92c300709..6c9156335 100644 --- a/app/i18n/cz/admin.php +++ b/app/i18n/cz/admin.php @@ -147,9 +147,9 @@ return array( 'top_feed' => 'Top ten kanálů', ), 'system' => array( - '_' => 'System configuration', - 'max-categories' => 'Categories per user limit', - 'max-feeds' => 'Feeds per user limit', + '_' => 'System configuration', // @todo translate + 'max-categories' => 'Categories per user limit', // @todo translate + 'max-feeds' => 'Feeds per user limit', // @todo translate 'registration' => array( 'help' => '0 znamená žádná omezení účtu', 'number' => 'Maximální počet účtů', diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index 436e4f0c2..0883cb669 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -137,7 +137,7 @@ return array( 'sharing' => 'Sdílení', 'shortcuts' => 'Zkratky', 'stats' => 'Statistika', - 'system' => 'System configuration', + 'system' => 'System configuration',// @todo translate 'update' => 'Aktualizace', 'user_management' => 'Správa uživatelů', 'user_profile' => 'Profil', diff --git a/app/i18n/de/admin.php b/app/i18n/de/admin.php index 365f065af..26d0bcd36 100644 --- a/app/i18n/de/admin.php +++ b/app/i18n/de/admin.php @@ -147,9 +147,9 @@ return array( 'top_feed' => 'Top 10-Feeds', ), 'system' => array( - '_' => 'System configuration', - 'max-categories' => 'Categories per user limit', - 'max-feeds' => 'Feeds per user limit', + '_' => 'System configuration', // @todo translate + 'max-categories' => 'Categories per user limit', // @todo translate + 'max-feeds' => 'Feeds per user limit', // @todo translate 'registration' => array( 'help' => '0 meint, dass es kein Account Limit gibt', 'number' => 'Maximale Anzahl von Accounts', diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index f3450abc0..1f06e156f 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -137,7 +137,7 @@ return array( 'sharing' => 'Teilen', 'shortcuts' => 'Tastaturkürzel', 'stats' => 'Statistiken', - 'system' => 'System configuration', + 'system' => 'System configuration',// @todo translate 'update' => 'Aktualisieren', 'user_management' => 'Benutzer verwalten', 'user_profile' => 'Profil', -- cgit v1.2.3 From d396dd71524694766bde852834be15f477ceaf3e Mon Sep 17 00:00:00 2001 From: Alexis Degrugillier Date: Mon, 24 Aug 2015 18:41:57 -0400 Subject: Add instance name in system configuration page --- app/Controllers/configureController.php | 1 + app/i18n/cz/admin.php | 1 + app/i18n/de/admin.php | 1 + app/i18n/en/admin.php | 1 + app/i18n/fr/admin.php | 1 + app/views/configure/system.phtml | 7 +++++++ 6 files changed, 12 insertions(+) (limited to 'app/i18n') diff --git a/app/Controllers/configureController.php b/app/Controllers/configureController.php index 7a4d0ecd7..0dc7ceab2 100755 --- a/app/Controllers/configureController.php +++ b/app/Controllers/configureController.php @@ -316,6 +316,7 @@ class FreshRSS_configure_Controller extends Minz_ActionController { $limits['max_feeds'] = Minz_Request::param('max-feeds', 16384); $limits['max_categories'] = Minz_Request::param('max-categories', 16384); FreshRSS_Context::$system_conf->limits = $limits; + FreshRSS_Context::$system_conf->title = Minz_Request::param('instance-name', 'FreshRSS'); FreshRSS_Context::$system_conf->save(); invalidateHttpCache(); diff --git a/app/i18n/cz/admin.php b/app/i18n/cz/admin.php index 6c9156335..e1fa5d141 100644 --- a/app/i18n/cz/admin.php +++ b/app/i18n/cz/admin.php @@ -148,6 +148,7 @@ return array( ), 'system' => array( '_' => 'System configuration', // @todo translate + 'instance-name' => 'Instance name', // @todo translate 'max-categories' => 'Categories per user limit', // @todo translate 'max-feeds' => 'Feeds per user limit', // @todo translate 'registration' => array( diff --git a/app/i18n/de/admin.php b/app/i18n/de/admin.php index 26d0bcd36..395b51acf 100644 --- a/app/i18n/de/admin.php +++ b/app/i18n/de/admin.php @@ -148,6 +148,7 @@ return array( ), 'system' => array( '_' => 'System configuration', // @todo translate + 'instance-name' => 'Instance name', // @todo translate 'max-categories' => 'Categories per user limit', // @todo translate 'max-feeds' => 'Feeds per user limit', // @todo translate 'registration' => array( diff --git a/app/i18n/en/admin.php b/app/i18n/en/admin.php index ad9038203..6edb38cf0 100644 --- a/app/i18n/en/admin.php +++ b/app/i18n/en/admin.php @@ -148,6 +148,7 @@ return array( ), 'system' => array( '_' => 'System configuration', + 'instance-name' => 'Instance name', 'max-categories' => 'Categories per user limit', 'max-feeds' => 'Feeds per user limit', 'registration' => array( diff --git a/app/i18n/fr/admin.php b/app/i18n/fr/admin.php index 44e013c2f..e73622577 100644 --- a/app/i18n/fr/admin.php +++ b/app/i18n/fr/admin.php @@ -148,6 +148,7 @@ return array( ), 'system' => array( '_' => 'Configuration du système', + 'instance-name' => 'Nom de l’instance', 'max-categories' => 'Limite de catégories par utilisateur', 'max-feeds' => 'Limite de flux par utilisateur', 'registration' => array( diff --git a/app/views/configure/system.phtml b/app/views/configure/system.phtml index 9c9813729..9406c34d6 100644 --- a/app/views/configure/system.phtml +++ b/app/views/configure/system.phtml @@ -6,6 +6,13 @@ +
    + +
    + +
    +
    +
    -- cgit v1.2.3 From 5a2bc9261ca5104022ce64e00d0384791b0443d1 Mon Sep 17 00:00:00 2001 From: Marcus Rohrmoser Date: Thu, 10 Sep 2015 09:52:24 +0200 Subject: fixed misleading i18n wording bug. --- app/i18n/de/install.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/de/install.php b/app/i18n/de/install.php index 286272e71..9bada0869 100644 --- a/app/i18n/de/install.php +++ b/app/i18n/de/install.php @@ -27,9 +27,9 @@ return array( ), 'host' => 'Host', 'prefix' => 'Tabellen-Präfix', - 'password' => 'HTTP-Password', + 'password' => 'SQL-Password', 'type' => 'Datenbank-Typ', - 'username' => 'HTTP-Nutzername', + 'username' => 'SQL-Nutzername', ), 'check' => array( '_' => 'Überprüfungen', -- cgit v1.2.3 From 468015dad6a76700f1e3e304c497e08e6636d1a2 Mon Sep 17 00:00:00 2001 From: Alexis Degrugillier Date: Wed, 14 Oct 2015 01:11:31 -0400 Subject: Add Movim share See #992 --- app/i18n/cz/gen.php | 1 + app/i18n/de/gen.php | 1 + app/i18n/en/gen.php | 1 + app/i18n/fr/gen.php | 1 + app/i18n/nl/gen.php | 1 + data/shares.php | 6 ++++++ 6 files changed, 11 insertions(+) (limited to 'app/i18n') diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index d3e93c0a1..cbcc1f8fa 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -158,6 +158,7 @@ return array( 'email' => 'Email', 'facebook' => 'Facebook', 'g+' => 'Google+', + 'movim' => 'Movim', 'print' => 'Tisk', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index 38beb5016..d2d8e78e6 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -158,6 +158,7 @@ return array( 'email' => 'E-Mail', 'facebook' => 'Facebook', 'g+' => 'Google+', + 'movim' => 'Movim', 'print' => 'Drucken', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index b71af91f1..1ae9c60a2 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -158,6 +158,7 @@ return array( 'email' => 'Email', 'facebook' => 'Facebook', 'g+' => 'Google+', + 'movim' => 'Movim', 'print' => 'Print', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index f09c73ca1..b2d36c9d6 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -158,6 +158,7 @@ return array( 'email' => 'Courriel', 'facebook' => 'Facebook', 'g+' => 'Google+', + 'movim' => 'Movim', 'print' => 'Imprimer', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index ed57669a1..10b665791 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -157,6 +157,7 @@ return array( 'email' => 'Email', 'facebook' => 'Facebook', 'g+' => 'Google+', + 'movim' => 'Movim', 'print' => 'Print', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', diff --git a/data/shares.php b/data/shares.php index 6e0e9ea0c..b3df54188 100644 --- a/data/shares.php +++ b/data/shares.php @@ -44,6 +44,12 @@ return array( 'help' => 'https://diasporafoundation.org/', 'form' => 'advanced', ), + 'movim' => array( + 'url' => '~URL~/index.php/share?url=~LINK~', + 'transform' => array('rawurlencode'), + 'help' => 'https://github.com/edhelas/movim', + 'form' => 'advanced', + ), 'twitter' => array( 'url' => 'https://twitter.com/share?url=~LINK~&text=~TITLE~', 'transform' => array('rawurlencode'), -- cgit v1.2.3 From 9fa74af0dad6334bd650d420aaf8ead6b68ddef6 Mon Sep 17 00:00:00 2001 From: Marco Date: Sat, 24 Oct 2015 15:10:14 +0200 Subject: Create conf.php --- app/i18n/it/conf.php | 174 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 app/i18n/it/conf.php (limited to 'app/i18n') diff --git a/app/i18n/it/conf.php b/app/i18n/it/conf.php new file mode 100644 index 000000000..b757b3210 --- /dev/null +++ b/app/i18n/it/conf.php @@ -0,0 +1,174 @@ + array( + '_' => 'Archiviazione', + 'advanced' => 'Avanzate', + 'delete_after' => 'Rimuovi articoli dopo', + 'help' => 'Altre opzioni sono disponibili nelle impostazioni dei singoli feed', + 'keep_history_by_feed' => 'Numero minimo di articoli da mantenere per feed', + 'optimize' => 'Ottimizza database', + 'optimize_help' => 'Da fare occasionalmente per ridurre le dimensioni del database', + 'purge_now' => 'Cancella ora', + 'title' => 'Archiviazione', + 'ttl' => 'Non effettuare aggiornamenti per più di', + ), + 'display' => array( + '_' => 'Visualizzazione', + 'icon' => array( + 'bottom_line' => 'Barra in fondo', + 'entry' => 'Icone degli articoli', + 'publication_date' => 'Data di pubblicazione', + 'related_tags' => 'Tags correlati', + 'sharing' => 'Condivisione', + 'top_line' => 'Barra in alto', + ), + 'language' => 'Lingua', + 'notif_html5' => array( + 'seconds' => 'secondi (0 significa nessun timeout)', + 'timeout' => 'Notifica timeout HTML5', + ), + 'theme' => 'Tema', + 'title' => 'Visualizzazione', + 'width' => array( + 'content' => 'Larghezza contenuto', + 'large' => 'Largo', + 'medium' => 'Medio', + 'no_limit' => 'Nessun limite', + 'thin' => 'Stretto', + ), + ), + 'query' => array( + '_' => 'Ricerche personali', + 'deprecated' => 'Questa query non è più valida. La categoria o il feed di riferimento non stati cancellati.', + 'filter' => 'Filtro applicato:', + 'get_all' => 'Mostra tutti gli articoli', + 'get_category' => 'Mostra la categoria "%s" ', + 'get_favorite' => 'Mostra articoli preferiti', + 'get_feed' => 'Mostra feed "%s" ', + 'no_filter' => 'Nessun filtro', + 'none' => 'Non hai creato nessuna ricerca personale.', + 'number' => 'Ricerca n°%d', + 'order_asc' => 'Mostra prima gli articoli più vecchi', + 'order_desc' => 'Mostra prima gli articoli più nuovi', + 'search' => 'Cerca per "%s"', + 'state_0' => 'Mostra tutti gli articoli', + 'state_1' => 'Mostra gli articoli letti', + 'state_2' => 'Mostra gli articoli non letti', + 'state_3' => 'Mostra tutti gli articoli', + 'state_4' => 'Mostra gli articoli preferiti', + 'state_5' => 'Mostra gli articoli preferiti letti', + 'state_6' => 'Mostra gli articoli preferiti non letti', + 'state_7' => 'Mostra gli articoli preferiti', + 'state_8' => 'Non mostrare gli articoli preferiti', + 'state_9' => 'Mostra gli articoli letti non preferiti', + 'state_10' => 'Mostra gli articoli non letti e non preferiti', + 'state_11' => 'Non mostrare gli articoli preferiti', + 'state_12' => 'Mostra tutti gli articoli', + 'state_13' => 'Mostra gli articoli letti', + 'state_14' => 'Mostra gli articoli non letti', + 'state_15' => 'Mostra tutti gli articoli', + 'title' => 'Ricerche personali', + ), + 'profile' => array( + '_' => 'Gestione profili', + 'delete' => array( + '_' => 'Cancellazione account', + 'warn' => 'Il tuo account e tutti i dati associati saranno cancellati.', + ), + 'email_persona' => 'Indirizzo email
    (Login Mozilla Persona)', + 'password_api' => 'Password API
    (e.g., per applicazioni mobili)', + 'password_form' => 'Password
    (per il login classico)', + 'password_format' => 'Almeno 7 caratteri', + 'title' => 'Profilo', + ), + 'reading' => array( + '_' => 'Lettura', + 'after_onread' => 'Dopo “segna tutto come letto”,', + 'articles_per_page' => 'Numero di articoli per pagina', + 'auto_load_more' => 'Carica articoli successivi a fondo pagina', + 'auto_remove_article' => 'Nascondi articoli dopo la lettura', + 'mark_updated_article_unread' => 'Segna articoli aggiornati come non letti', + 'confirm_enabled' => 'Mostra una conferma per “segna tutto come letto”', + 'display_articles_unfolded' => 'Mostra articoli aperti di predefinito', + 'display_categories_unfolded' => 'Mostra categorie aperte di predefinito', + 'hide_read_feeds' => 'Nascondi categorie e feeds con articoli già letti (non funziona se “Mostra tutti gli articoli” è selezionato)', + 'img_with_lazyload' => 'Usa la modalità "caricamento ritardato" per le immagini', + 'jump_next' => 'Salta al successivo feed o categoria non letto', + 'number_divided_when_reader' => 'Diviso 2 nella modalità di lettura.', + 'read' => array( + 'article_open_on_website' => 'Quando un articolo è aperto nel suo sito di origine', + 'article_viewed' => 'Quando un articolo viene letto', + 'scroll' => 'Scorrendo la pagina', + 'upon_reception' => 'Alla ricezione del contenuto', + 'when' => 'Segna articoli come letti…', + ), + 'show' => array( + '_' => 'Articoli da visualizzare', + 'adaptive' => 'Adatta visualizzazione', + 'all_articles' => 'Mostra tutti gli articoli', + 'unread' => 'Mostra solo non letti', + ), + 'sort' => array( + '_' => 'Ordinamento', + 'newer_first' => 'Prima i più recenti', + 'older_first' => 'Prima i più vecchi', + ), + 'sticky_post' => 'Blocca il contenuto a inizio pagina quando aperto', + 'title' => 'Lettura', + 'view' => array( + 'default' => 'Visualizzazione predefinita', + 'global' => 'Vista globale per categorie', + 'normal' => 'Vista elenco', + 'reader' => 'Modalità di lettura', + ), + ), + 'sharing' => array( + '_' => 'Condivisione', + 'blogotext' => 'Blogotext', + 'diaspora' => 'Diaspora*', + 'email' => 'Email', + 'facebook' => 'Facebook', + 'g+' => 'Google+', + 'more_information' => 'Ulteriori informazioni', + 'print' => 'Stampa', + 'shaarli' => 'Shaarli', + 'share_name' => 'Nome condivisione', + 'share_url' => 'URL condivisione', + 'title' => 'Condividi', + 'twitter' => 'Twitter', + 'wallabag' => 'wallabag', + ), + 'shortcut' => array( + '_' => 'Comandi tastiera', + 'article_action' => 'Azioni sugli articoli', + 'auto_share' => 'Condividi', + 'auto_share_help' => 'Se è presente un solo servizio di condivisione verrà usato quello, altrimenti usare anche il numero associato.', + 'close_dropdown' => 'Chiudi menù', + 'collapse_article' => 'Collassa articoli', + 'first_article' => 'Salta al primo articolo', + 'focus_search' => 'Modulo di ricerca', + 'help' => 'Mostra documentazione', + 'javascript' => 'JavaScript deve essere abilitato per poter usare i comandi da tastiera', + 'last_article' => 'Salta all ultimo articolo', + 'load_more' => 'Carica altri articoli', + 'mark_read' => 'Segna come letto', + 'mark_favorite' => 'Segna come preferito', + 'navigation' => 'Navigazione', + 'navigation_help' => 'Con il tasto "Shift" i comandi di navigazione verranno applicati ai feeds.
    Con il tasto "Alt" i comandi di navigazione verranno applicati alle categorie.', + 'next_article' => 'Salta al contenuto successivo', + 'other_action' => 'Altre azioni', + 'previous_article' => 'Salta al contenuto precedente', + 'see_on_website' => 'Vai al sito fonte', + 'shift_for_all_read' => '+ shift per segnare tutti gli articoli come letti', + 'title' => 'Comandi da tastiera', + 'user_filter' => 'Accedi alle ricerche personali', + 'user_filter_help' => 'Se è presente una sola ricerca personale verrà usata quella, altrimenti usare anche il numero associato.', + ), + 'user' => array( + 'articles_and_size' => '%s articoli (%s)', + 'current' => 'Utente connesso', + 'is_admin' => 'è amministratore', + 'users' => 'Utenti', + ), +); -- cgit v1.2.3 From a22bca1aaa1c7989e16d55b8dc4ad2c8f932a72a Mon Sep 17 00:00:00 2001 From: Marco Date: Sat, 24 Oct 2015 15:11:08 +0200 Subject: Create admin.php --- app/i18n/it/admin.php | 182 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 app/i18n/it/admin.php (limited to 'app/i18n') diff --git a/app/i18n/it/admin.php b/app/i18n/it/admin.php new file mode 100644 index 000000000..cb9a55c0b --- /dev/null +++ b/app/i18n/it/admin.php @@ -0,0 +1,182 @@ + array( + 'allow_anonymous' => 'Consenti la lettura agli utenti anonimi degli articoli dell utente predefinito (%s)', + 'allow_anonymous_refresh' => 'Consenti agli utenti anonimi di aggiornare gli articoli', + 'api_enabled' => 'Consenti le API di accesso (richiesto per le app mobili)', + 'form' => 'Web form (tradizionale, richiede JavaScript)', + 'http' => 'HTTP (per gli utenti avanzati con HTTPS)', + 'none' => 'Nessuno (pericoloso)', + 'persona' => 'Mozilla Persona (moderno, richiede JavaScript)', + 'title' => 'Autenticazione', + 'title_reset' => 'Reset autenticazione', + 'token' => 'Token di autenticazione', + 'token_help' => 'Consenti accesso agli RSS dell utente predefinito senza autenticazione:', + 'type' => 'Metodo di autenticazione', + 'unsafe_autologin' => 'Consenti accesso automatico non sicuro usando il formato: ', + ), + 'check_install' => array( + 'cache' => array( + 'nok' => 'Verifica i permessi sulla cartella ./data/cache. Il server HTTP deve avere i permessi per scriverci dentro', + 'ok' => 'I permessi sulla cartella della cache sono corretti.', + ), + 'categories' => array( + 'nok' => 'La tabella delle categorie ha una configurazione errata.', + 'ok' => 'Tabella delle categorie OK.', + ), + 'connection' => array( + 'nok' => 'La connessione al database non può essere stabilita.', + 'ok' => 'Connessione al database OK', + ), + 'ctype' => array( + 'nok' => 'Manca una libreria richiesta per il controllo dei caratteri (php-ctype).', + 'ok' => 'Libreria richiesta per il controllo dei caratteri presente (ctype).', + ), + 'curl' => array( + 'nok' => 'Manca il supporto per cURL (pacchetto php5-curl).', + 'ok' => 'Estensione cURL presente.', + ), + 'data' => array( + 'nok' => 'Verifica i permessi sulla cartella ./data. Il server HTTP deve avere i permessi per scriverci dentro', + 'ok' => 'I permessi sulla cartella data sono corretti.', + ), + 'database' => 'Installazione database', + 'dom' => array( + 'nok' => 'Manca una libreria richiesta per leggere DOM (pacchetto php-xml).', + 'ok' => 'Libreria richiesta per leggere DOM presente.', + ), + 'entries' => array( + 'nok' => 'La tabella Entry ha una configurazione errata.', + 'ok' => 'Tabella Entry OK.', + ), + 'favicons' => array( + 'nok' => 'Verifica i permessi sulla cartella ./data/favicons. Il server HTTP deve avere i permessi per scriverci dentro', + 'ok' => 'I permessi sulla cartella favicons sono corretti.', + ), + 'feeds' => array( + 'nok' => 'La tabella Feed ha una configurazione errata.', + 'ok' => 'Tabella Feed OK.', + ), + 'files' => 'Installazione files', + 'json' => array( + 'nok' => 'Manca il supoorto a JSON (pacchetto php5-json).', + 'ok' => 'Estensione JSON presente.', + ), + 'minz' => array( + 'nok' => 'Manca il framework Minz.', + 'ok' => 'Framework Minz presente.', + ), + 'pcre' => array( + 'nok' => 'Manca una libreria richiesta per le regular expressions (php-pcre).', + 'ok' => 'Libreria richiesta per le regular expressions presente (PCRE).', + ), + 'pdo' => array( + 'nok' => 'Manca PDO o uno degli altri driver supportati (pdo_mysql, pdo_sqlite).', + 'ok' => 'PDO e altri driver supportati (pdo_mysql, pdo_sqlite).', + ), + 'persona' => array( + 'nok' => 'Verifica i permessi sulla cartella ./data/persona. Il server HTTP deve avere i permessi per scriverci dentro', + 'ok' => 'I permessi sulla cartella Mozilla Persona sono corretti.', + ), + 'php' => array( + '_' => 'Installazione PHP', + 'nok' => 'Versione PHP %s FreshRSS richiede almeno la versione %s.', + 'ok' => 'Versione PHP %s, compatibile con FreshRSS.', + ), + 'tables' => array( + 'nok' => 'Rilevate tabelle mancanti nel database.', + 'ok' => 'Tutte le tabelle sono presenti nel database.', + ), + 'title' => 'Verifica installazione', + 'tokens' => array( + 'nok' => 'Verifica i permessi sulla cartella ./data/tokens. Il server HTTP deve avere i permessi per scriverci dentro', + 'ok' => 'I permessi sulla cartella tokens sono corretti.', + ), + 'users' => array( + 'nok' => 'Verifica i permessi sulla cartella ./data/users. Il server HTTP deve avere i permessi per scriverci dentro', + 'ok' => 'I permessi sulla cartella users sono corretti.', + ), + 'zip' => array( + 'nok' => 'Manca estensione ZIP (pacchetto php5-zip).', + 'ok' => 'Estensione ZIP presente.', + ), + ), + 'extensions' => array( + 'disabled' => 'Disabilitata', + 'empty_list' => 'Non ci sono estensioni installate', + 'enabled' => 'Abilitata', + 'no_configure_view' => 'Questa estensioni non può essere configurata.', + 'system' => array( + '_' => 'Estensioni di sistema', + 'no_rights' => 'Estensione di sistema (non hai i permessi su questo tipo)', + ), + 'title' => 'Estensioni', + 'user' => 'Estensioni utente', + ), + 'stats' => array( + '_' => 'Statistiche', + 'all_feeds' => 'Tutti i feeds', + 'category' => 'Categoria', + 'entry_count' => 'Articoli', + 'entry_per_category' => 'Articoli per categoria', + 'entry_per_day' => 'Articoli per giorno (ultimi 30 giorni)', + 'entry_per_day_of_week' => 'Per giorno della settimana (media: %.2f articoli)', + 'entry_per_hour' => 'Per ora (media: %.2f articoli)', + 'entry_per_month' => 'Per mese (media: %.2f articoli)', + 'entry_repartition' => 'Ripartizione contenuti', + 'feed' => 'Feed', + 'feed_per_category' => 'Feeds per categoria', + 'idle' => 'Feeds non aggiornati', + 'main' => 'Statistiche principali', + 'main_stream' => 'Flusso principale', + 'menu' => array( + 'idle' => 'Feeds non aggiornati', + 'main' => 'Statistiche principali', + 'repartition' => 'Ripartizione articoli', + ), + 'no_idle' => 'Non ci sono feed non aggiornati', + 'number_entries' => '%d articoli', + 'percent_of_total' => '%% del totale', + 'repartition' => 'Ripartizione articoli', + 'status_favorites' => 'Preferiti', + 'status_read' => 'Letti', + 'status_total' => 'Totale', + 'status_unread' => 'Non letti', + 'title' => 'Statistiche', + 'top_feed' => 'I migliori 10 feeds', + ), + 'system' => array( + '_' => 'Configurazione di sistema', + 'instance-name' => 'Nome istanza', + 'max-categories' => 'Limite categorie per utente', + 'max-feeds' => 'Limite feeds per utente', + 'registration' => array( + 'help' => '0 significa che non esiste limite sui profili', + 'number' => 'Numero massimo di profili', + ), + ), + 'update' => array( + '_' => 'Aggiornamento sistema', + 'apply' => 'Applica', + 'check' => 'Controlla la presenza di nuovi aggiornamenti', + 'current_version' => 'FreshRSS versione %s.', + 'last' => 'Ultima verifica: %s', + 'none' => 'Nessun aggiornamento da applicare', + 'title' => 'Aggiorna sistema', + ), + 'user' => array( + 'articles_and_size' => '%s articoli (%s)', + 'create' => 'Crea nuovo utente', + 'email_persona' => 'Indirizzo mail
    (Login Mozilla Persona)', + 'language' => 'Lingua', + 'number' => ' %d profilo utente creato', + 'numbers' => 'Sono presenti %d profili utente', + 'password_form' => 'Password
    (per il login classico)', + 'password_format' => 'Almeno 7 caratteri', + 'title' => 'Gestione utenti', + 'user_list' => 'Lista utenti', + 'username' => 'Nome utente', + 'users' => 'Utenti', + ), +); -- cgit v1.2.3 From fb085db9e333cad910e8be56cdb274d988245477 Mon Sep 17 00:00:00 2001 From: Marco Date: Sat, 24 Oct 2015 15:11:26 +0200 Subject: Create install.php --- app/i18n/it/install.php | 114 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 app/i18n/it/install.php (limited to 'app/i18n') diff --git a/app/i18n/it/install.php b/app/i18n/it/install.php new file mode 100644 index 000000000..3ad22c5e9 --- /dev/null +++ b/app/i18n/it/install.php @@ -0,0 +1,114 @@ + array( + 'finish' => 'Installazione completata', + 'fix_errors_before' => 'Per favore correggi gli errori prima di passare al passaggio successivo.', + 'keep_install' => 'Mantieni installazione precedente', + 'next_step' => 'Vai al prossimo passaggio', + 'reinstall' => 'Reinstalla FreshRSS', + ), + 'auth' => array( + 'email_persona' => 'Indirizzo mail
    (per Mozilla Persona)', + 'form' => 'Web form (tradizionale, richiede JavaScript)', + 'http' => 'HTTP (per gli utenti avanzati con HTTPS)', + 'none' => 'Nessuno (pericoloso)', + 'password_form' => 'Password
    (per il login tramite Web-form tradizionale)', + 'password_format' => 'Almeno 7 caratteri', + 'persona' => 'Mozilla Persona (moderno, richiede JavaScript)', + 'type' => 'Metodo di autenticazione', + ), + 'bdd' => array( + '_' => 'Database', + 'conf' => array( + '_' => 'Configurazione database', + 'ko' => 'Verifica le informazioni del database.', + 'ok' => 'Le configurazioni del database sono state salvate.', + ), + 'host' => 'Host', + 'prefix' => 'Prefisso tabella', + 'password' => 'HTTP password', + 'type' => 'Tipo di database', + 'username' => 'HTTP username', + ), + 'check' => array( + '_' => 'Controlli', + 'already_installed' => 'FreshRSS risulta già installato!', + 'cache' => array( + 'nok' => 'Verifica i permessi sulla cartella ./data/cache. Il server HTTP deve avere i permessi per scriverci dentro', + 'ok' => 'I permessi sulla cartella della cache sono corretti.', + ), + 'ctype' => array( + 'nok' => 'Manca una libreria richiesta per il controllo dei caratteri (php-ctype).', + 'ok' => 'Libreria richiesta per il controllo dei caratteri presente (ctype).', + ), + 'curl' => array( + 'nok' => 'Manca il supporto per cURL (pacchetto php5-curl).', + 'ok' => 'Estensione cURL presente.', + ), + 'data' => array( + 'nok' => 'Verifica i permessi sulla cartella ./data. Il server HTTP deve avere i permessi per scriverci dentro', + 'ok' => 'I permessi sulla cartella data sono corretti.', + ), + 'dom' => array( + 'nok' => 'Manca una libreria richiesta per leggere DOM (pacchetto php-xml).', + 'ok' => 'Libreria richiesta per leggere DOM presente.', + ), + 'favicons' => array( + 'nok' => 'Verifica i permessi sulla cartella ./data/favicons. Il server HTTP deve avere i permessi per scriverci dentro', + 'ok' => 'I permessi sulla cartella favicons sono corretti.', + ), + 'http_referer' => array( + 'nok' => 'Per favore verifica che non stai alterando il tuo HTTP REFERER.', + 'ok' => 'Il tuo HTTP REFERER riconosciuto corrisponde al tuo server.', + ), + 'minz' => array( + 'nok' => 'Manca il framework Minz.', + 'ok' => 'Framework Minz presente.', + ), + 'pcre' => array( + 'nok' => 'Manca una libreria richiesta per le regular expressions (php-pcre).', + 'ok' => 'Libreria richiesta per le regular expressions presente (PCRE).', + ), + 'pdo' => array( + 'nok' => 'Manca PDO o uno degli altri driver supportati (pdo_mysql, pdo_sqlite).', + 'ok' => 'PDO e altri driver supportati (pdo_mysql, pdo_sqlite).', + ), + 'persona' => array( + 'nok' => 'Verifica i permessi sulla cartella ./data/persona. Il server HTTP deve avere i permessi per scriverci dentro', + 'ok' => 'I permessi sulla cartella Mozilla Persona sono corretti.', + ), + 'php' => array( + '_' => 'Installazione PHP', + 'nok' => 'Versione di PHP %s FreshRSS richiede almeno la versione %s.', + 'ok' => 'Versione di PHP %s, compatibile con FreshRSS.', + ), + 'users' => array( + 'nok' => 'Verifica i permessi sulla cartella ./data/users. Il server HTTP deve avere i permessi per scriverci dentro', + 'ok' => 'I permessi sulla cartella users sono corretti.', + ), + ), + 'conf' => array( + '_' => 'Configurazioni generali', + 'ok' => 'Configurazioni generali salvate.', + ), + 'congratulations' => 'Congratulazione!', + 'default_user' => 'Username utente predefinito (massimo 16 caratteri alfanumerici)', + 'delete_articles_after' => 'Rimuovi articoli dopo', + 'fix_errors_before' => 'Per favore correggi gli errori prima di passare al passaggio successivo.', + 'javascript_is_better' => 'FreshRSS funziona meglio con JavaScript abilitato', + 'js' => array( + 'confirm_reinstall' => 'Reinstallando FreshRSS perderai la configurazione precedente. Sei sicuro di voler procedere?', + ), + 'language' => array( + '_' => 'Lingua', + 'choose' => 'Seleziona la lingua per FreshRSS', + 'defined' => 'Lingua impostata.', + ), + 'not_deleted' => 'Qualcosa non ha funzionato; devi cancellare il file %s manualmente.', + 'ok' => 'Processo di installazione terminato con successo.', + 'step' => 'Passaggio %d', + 'steps' => 'Passaggi', + 'title' => 'Installazione · FreshRSS', + 'this_is_the_end' => 'Fine', +); -- cgit v1.2.3 From 07b252ad4380bad10614660264773608a5378fb6 Mon Sep 17 00:00:00 2001 From: Marco Date: Sat, 24 Oct 2015 15:11:50 +0200 Subject: Create feedback.php --- app/i18n/it/feedback.php | 110 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 app/i18n/it/feedback.php (limited to 'app/i18n') diff --git a/app/i18n/it/feedback.php b/app/i18n/it/feedback.php new file mode 100644 index 000000000..caf1cd2b4 --- /dev/null +++ b/app/i18n/it/feedback.php @@ -0,0 +1,110 @@ + array( + 'optimization_complete' => 'Ottimizzazione completata', + ), + 'access' => array( + 'denied' => 'Non hai i permessi per accedere a questa pagina', + 'not_found' => 'Pagina non disponibile', + ), + 'auth' => array( + 'form' => array( + 'not_set' => 'Si è verificato un problema alla configurazione del sistema di autenticazione. Per favore riprova più tardi.', + 'set' => 'Sistema di autenticazione tramite Form impostato come predefinito.', + ), + 'login' => array( + 'invalid' => 'Autenticazione non valida', + 'success' => 'Autenticazione effettuata', + ), + 'logout' => array( + 'success' => 'Disconnessione effettuata', + ), + 'no_password_set' => 'Password di amministrazione non impostata. Opzione non disponibile.', + 'not_persona' => 'Solo il sistema Mozilla Persona può essere resettato.', + ), + 'conf' => array( + 'error' => 'Si è verificato un errore durante il salvataggio della configurazione', + 'query_created' => 'Ricerca "%s" creata.', + 'shortcuts_updated' => 'Collegamenti tastiera aggiornati', + 'updated' => 'Configurazione aggiornata', + ), + 'extensions' => array( + 'already_enabled' => '%s è già abilitata', + 'disable' => array( + 'ko' => '%s non può essere disabilitata. Verifica i logs per dettagli.', + 'ok' => '%s è disabilitata', + ), + 'enable' => array( + 'ko' => '%s non può essere abilitata. Verifica i logs per dettagli.', + 'ok' => '%s è ora abilitata', + ), + 'no_access' => 'Accesso negato a %s', + 'not_enabled' => '%s non abilitato', + 'not_found' => '%s non disponibile', + ), + 'import_export' => array( + 'export_no_zip_extension' => 'Estensione Zip non presente sul server. Per favore esporta i files singolarmente.', + 'feeds_imported' => 'I tuoi feed sono stati importati e saranno aggiornati', + 'feeds_imported_with_errors' => 'I tuoi feeds sono stati importati ma si sono verificati alcuni errori', + 'file_cannot_be_uploaded' => 'Il file non può essere caricato!', + 'no_zip_extension' => 'Estensione Zip non presente sul server.', + 'zip_error' => 'Si è verificato un errore importando il file Zip', + ), + 'sub' => array( + 'actualize' => 'Aggiorna', + 'category' => array( + 'created' => 'Categoria %s creata.', + 'deleted' => 'Categoria cancellata', + 'emptied' => 'Categoria svuotata', + 'error' => 'Categoria non aggiornata', + 'name_exists' => 'Categoria già esistente.', + 'no_id' => 'Categoria senza ID.', + 'no_name' => 'Il nome della categoria non può essere lasciato vuoto.', + 'not_delete_default' => 'Non puoi cancellare la categoria predefinita!', + 'not_exist' => 'La categoria non esite!', + 'over_max' => 'Hai raggiunto il numero limite di categorie (%d)', + 'updated' => 'Categoria aggiornata.', + ), + 'feed' => array( + 'actualized' => '%s aggiornato', + 'actualizeds' => 'RSS feeds aggiornati', + 'added' => 'RSS feed %s aggiunti', + 'already_subscribed' => 'Hai già sottoscritto %s', + 'deleted' => 'Feed cancellato', + 'error' => 'Feed non aggiornato', + 'internal_problem' => 'RSS feed non aggiunto. Verifica i logs per dettagli.', + 'invalid_url' => 'URL %s non valido', + 'marked_read' => 'Feeds segnati come letti', + 'n_actualized' => '%d feeds aggiornati', + 'n_entries_deleted' => '%d articoli cancellati', + 'no_refresh' => 'Nessun aggiornamento disponibile…', + 'not_added' => '%s non può essere aggiunto', + 'over_max' => 'Hai raggiunto il numero limite di feed (%d)', + 'updated' => 'Feed aggiornato', + ), + 'purge_completed' => 'Svecchiamento completato (%d articoli cancellati)', + ), + 'update' => array( + 'can_apply' => 'FreshRSS verrà aggiornato alla versione %s.', + 'error' => 'Il processo di aggiornamento ha riscontrato il seguente errore: %s', + 'file_is_nok' => 'Verifica i permessi della cartella %s. Il server HTTP deve avere i permessi per la scrittura ', + 'finished' => 'Aggiornamento completato con successo!', + 'none' => 'Nessun aggiornamento disponibile', + 'server_not_found' => 'Server per aggiornamento non disponibile. [%s]', + ), + 'user' => array( + 'created' => array( + '_' => 'Utente %s creato', + 'error' => 'Errore nella creazione utente %s ', + ), + 'deleted' => array( + '_' => 'Utente %s cancellato', + 'error' => 'Utente %s non cancellato', + ), + ), + 'profile' => array( + 'error' => 'Il tuo profilo non può essere modificato', + 'updated' => 'Il tuo profilo è stato modificato', + ), +); -- cgit v1.2.3 From 78a7586e205cae03e5468561d3a4a1b0012557dd Mon Sep 17 00:00:00 2001 From: Marco Date: Sat, 24 Oct 2015 15:12:14 +0200 Subject: Create gen.php --- app/i18n/it/gen.php | 180 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 app/i18n/it/gen.php (limited to 'app/i18n') diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php new file mode 100644 index 000000000..eb545b8cf --- /dev/null +++ b/app/i18n/it/gen.php @@ -0,0 +1,180 @@ + array( + 'actualize' => 'Aggiorna', + 'back_to_rss_feeds' => '← Indietro', + 'cancel' => 'Annulla', + 'create' => 'Crea', + 'disable' => 'Disabilita', + 'empty' => 'Vuoto', + 'enable' => 'Abilita', + 'export' => 'Esporta', + 'filter' => 'Filtra', + 'import' => 'Importa', + 'manage' => 'Gestisci', + 'mark_read' => 'Segna come letto', + 'mark_favorite' => 'Segna come preferito', + 'remove' => 'Rimuovi', + 'see_website' => 'Vai al sito', + 'submit' => 'Conferma', + 'truncate' => 'Cancella tutti gli articoli', + ), + 'auth' => array( + 'email' => 'Indirizzo email', + 'keep_logged_in' => 'Ricorda i dati (1 mese)', + 'login' => 'Accedi', + 'login_persona' => 'Accedi con Mozilla Persona', + 'login_persona_problem' => 'Problemi di connessione con Mozilla Persona?', + 'logout' => 'Esci', + 'password' => array( + '_' => 'Password', + 'format' => 'almeno 7 caratteri', + ), + 'registration' => array( + '_' => 'Nuovo profilo', + 'ask' => 'Vuoi creare un nuovo profilo?', + 'title' => 'Creazione profilo', + ), + 'reset' => 'Reset autenticazione', + 'username' => array( + '_' => 'Username', + 'admin' => 'Username amministratore', + 'format' => 'massimo 16 caratteri alfanumerici', + ), + 'will_reset' => 'Il sistema di autenticazione verrà resettato: un form verrà usato per Mozilla Persona.', + ), + 'date' => array( + 'Apr' => '\\A\\p\\r\\i\\l\\e', + 'Aug' => '\\A\\g\\o\\s\\t\\o', + 'Dec' => '\\D\\i\\c\\e\\m\\b\\r\\e', + 'Feb' => '\\F\\e\\b\\b\\r\\a\\i\\o', + 'Jan' => '\\G\\e\\n\\u\\a\\i\\o', + 'Jul' => '\\L\\u\\g\\l\\i\\o', + 'Jun' => '\\G\\i\\u\\g\\n\\o', + 'Mar' => '\\M\\a\\r\\z\\o', + 'May' => '\\M\\a\\g\\g\\i\\o', + 'Nov' => '\\N\\o\\v\\e\\m\\b\\r\\e', + 'Oct' => '\\O\\t\\t\\o\\b\\r\\e', + 'Sep' => '\\S\\e\\t\\t\\e\\m\\b\\r\\e', + 'apr' => 'apr', + 'april' => 'Apr', + 'aug' => 'aug', + 'august' => 'Aug', + 'before_yesterday' => 'Meno recenti', + 'dec' => 'dec', + 'december' => 'Dec', + 'feb' => 'feb', + 'february' => 'Feb', + 'format_date' => 'j\\ %s Y', + 'format_date_hour' => 'j\\ %s Y \\o\\r\\e H\\:i', + 'fri' => 'Fri', + 'jan' => 'jan', + 'january' => 'Jan', + 'jul' => 'jul', + 'july' => 'Jul', + 'jun' => 'jun', + 'june' => 'Jun', + 'last_3_month' => 'Ultimi 3 mesi', + 'last_6_month' => 'Ultimi 6 mesi', + 'last_month' => 'Ultimo mese', + 'last_week' => 'Ultima settimana', + 'last_year' => 'Ultimo anno', + 'mar' => 'mar', + 'march' => 'Mar', + 'may' => 'May', + 'mon' => 'Mon', + 'month' => 'mesi', + 'nov' => 'nov', + 'november' => 'Nov', + 'oct' => 'oct', + 'october' => 'Oct', + 'sat' => 'Sat', + 'sep' => 'sep', + 'september' => 'Sep', + 'sun' => 'Sun', + 'thu' => 'Thu', + 'today' => 'Oggi', + 'tue' => 'Tue', + 'wed' => 'Wed', + 'yesterday' => 'Ieri', + ), + 'freshrss' => array( + '_' => 'Feed RSS Reader', + 'about' => 'Informazioni', + ), + 'js' => array( + 'category_empty' => 'Categoria vuota', + 'confirm_action' => 'Sei sicuro di voler continuare?', + 'confirm_action_feed_cat' => 'Sei sicuro di voler continuare? Verranno persi i preferiti e le ricerche utente correlate!', + 'feedback' => array( + 'body_new_articles' => 'Ci sono \\d nuovi articoli da leggere.', + 'request_failed' => 'Richiesta fallita, probabilmente a causa di problemi di connessione', + 'title_new_articles' => 'Feed RSS Reader: nuovi articoli!', + ), + 'new_article' => 'Sono disponibili nuovi articoli, clicca qui per caricarli.', + 'should_be_activated' => 'JavaScript deve essere abilitato', + ), + 'lang' => array( + 'cz' => 'Čeština', + 'de' => 'Deutsch', + 'en' => 'English', + 'fr' => 'Français', + 'it' => 'Italiano', + 'nl' => 'Nederlands', + ), + 'menu' => array( + 'about' => 'Informazioni', + 'admin' => 'Amministrazione', + 'archiving' => 'Archiviazione', + 'authentication' => 'Autenticazione', + 'check_install' => 'Installazione', + 'configuration' => 'Configurazione', + 'display' => 'Visualizzazione', + 'extensions' => 'Estensioni', + 'logs' => 'Logs', + 'queries' => 'Ricerche personali', + 'reading' => 'Lettura', + 'search' => 'Ricerca parole o #tags', + 'sharing' => 'Condivisione', + 'shortcuts' => 'Comandi tastiera', + 'stats' => 'Statistiche', + 'system' => 'Configurazione sistema', + 'update' => 'Aggiornamento', + 'user_management' => 'Gestione utenti', + 'user_profile' => 'Profilo', + ), + 'pagination' => array( + 'first' => 'Prima', + 'last' => 'Ultima', + 'load_more' => 'Carica altri articoli', + 'mark_all_read' => 'Segna tutto come letto', + 'next' => 'Successiva', + 'nothing_to_load' => 'Non ci sono altri articoli', + 'previous' => 'Precedente', + ), + 'share' => array( + 'blogotext' => 'Blogotext', + 'diaspora' => 'Diaspora*', + 'email' => 'Email', + 'facebook' => 'Facebook', + 'g+' => 'Google+', + 'print' => 'Stampa', + 'shaarli' => 'Shaarli', + 'twitter' => 'Twitter', + 'wallabag' => 'wallabag', + ), + 'short' => array( + 'attention' => 'Attenzione!', + 'blank_to_disable' => 'Lascia vuoto per disabilitare', + 'by_author' => 'di %s', + 'by_default' => 'predefinito', + 'damn' => 'Ops!', + 'default_category' => 'Senza categoria', + 'no' => 'No', + 'not_applicable' => 'Non disponibile', + 'ok' => 'OK!', + 'or' => 'o', + 'yes' => 'Si', + ), +); -- cgit v1.2.3 From 30fe1a152175ad01c8748fb767f42f1eda117b33 Mon Sep 17 00:00:00 2001 From: Marco Date: Sat, 24 Oct 2015 15:12:33 +0200 Subject: Create index.php --- app/i18n/it/index.php | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 app/i18n/it/index.php (limited to 'app/i18n') diff --git a/app/i18n/it/index.php b/app/i18n/it/index.php new file mode 100644 index 000000000..584b044b1 --- /dev/null +++ b/app/i18n/it/index.php @@ -0,0 +1,61 @@ + array( + '_' => 'Informazioni', + 'agpl3' => 'AGPL 3', + 'bugs_reports' => 'Bugs', + 'credits' => 'Crediti', + 'credits_content' => 'Alcuni elementi di design provengono da Bootstrap sebbene FreshRSS non usi questo framework. Le icone provengono dal progetto GNOME. Il carattere Open Sans è stato creato da Steve Matteson. Le Favicons vengono estratte con le API getFavicon. FreshRSS è basato su Minz, un framework PHP.', + 'freshrss_description' => 'FreshRSS è un aggregatore di feeds RSS da installare sul proprio host come Kriss Feed o Leed. Leggero e facile da mantenere pur essendo molto configurabile e potente.', + 'github' => 'su Github', + 'license' => 'Licenza', + 'project_website' => 'Sito del progetto', + 'title' => 'Informazioni', + 'version' => 'Versione', + 'website' => 'Sito', + ), + 'feed' => array( + 'add' => 'Aggiungi un Feed RSS', + 'empty' => 'Non ci sono articoli da mostrare.', + 'rss_of' => 'RSS feed di %s', + 'title' => 'RSS feeds', + 'title_global' => 'Vista globale per categorie', + 'title_fav' => 'Preferiti', + ), + 'log' => array( + '_' => 'Logs', + 'clear' => 'Svuota logs', + 'empty' => 'File di log vuoto', + 'title' => 'Logs', + ), + 'menu' => array( + 'about' => 'Informazioni', + 'add_query' => 'Aggiungi ricerca', + 'before_one_day' => 'Giorno precedente', + 'before_one_week' => 'Settimana precedente', + 'favorites' => 'Preferiti (%s)', + 'global_view' => 'Vista globale per categorie', + 'main_stream' => 'Flusso principale', + 'mark_all_read' => 'Segna tutto come letto', + 'mark_cat_read' => 'Segna la categoria come letta', + 'mark_feed_read' => 'Segna il feed come letto', + 'newer_first' => 'Mostra prima i recenti', + 'non-starred' => 'Escludi preferiti', + 'normal_view' => 'Vista elenco', + 'older_first' => 'Ordina per meno recenti', + 'queries' => 'Chiavi di ricerca', + 'read' => 'Mostra solo letti', + 'reader_view' => 'Modalità di lettura', + 'rss_view' => 'RSS feed', + 'search_short' => 'Cerca', + 'starred' => 'Mostra solo preferiti', + 'stats' => 'Statistiche', + 'subscription' => 'Gestione sottoscrizioni', + 'unread' => 'Mostra solo non letti', + ), + 'share' => 'Condividi', + 'tag' => array( + 'related' => 'Tags correlati', + ), +); -- cgit v1.2.3 From 64953e6b5cb8ec287bcb9f28882bdb2d338bfebd Mon Sep 17 00:00:00 2001 From: Marco Date: Sat, 24 Oct 2015 15:12:51 +0200 Subject: Create sub.php --- app/i18n/it/sub.php | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 app/i18n/it/sub.php (limited to 'app/i18n') diff --git a/app/i18n/it/sub.php b/app/i18n/it/sub.php new file mode 100644 index 000000000..dfcee2ce3 --- /dev/null +++ b/app/i18n/it/sub.php @@ -0,0 +1,62 @@ + array( + '_' => 'Categoria', + 'add' => 'Aggiungi una categoria', + 'empty' => 'Categoria vuota', + 'new' => 'Nuova categoria', + ), + 'feed' => array( + 'add' => 'Aggiungi un Feed RSS', + 'advanced' => 'Avanzate', + 'archiving' => 'Archiviazione', + 'auth' => array( + 'configuration' => 'Autenticazione', + 'help' => 'Accesso per feeds protetti', + 'http' => 'Autenticazione HTTP', + 'password' => 'HTTP password', + 'username' => 'HTTP username', + ), + 'css_help' => 'In caso di RSS feeds troncati (attenzione, richiede molto tempo!)', + 'css_path' => 'Percorso del foglio di stile CSS del sito di origine', + 'description' => 'Descrizione', + 'empty' => 'Questo feed non contiene articoli. Per favore verifica il sito direttamente.', + 'error' => 'Questo feed ha generato un errore. Per favore verifica se ancora disponibile.', + 'in_main_stream' => 'Mostra in homepage', + 'informations' => 'Informazioni', + 'keep_history' => 'Numero minimo di articoli da mantenere', + 'moved_category_deleted' => 'Cancellando una categoria i feed al suo interno verranno classificati automaticamente come %s.', + 'no_selected' => 'Nessun feed selezionato.', + 'number_entries' => '%d articoli', + 'stats' => 'Statistiche', + 'think_to_add' => 'Aggiungi feed.', + 'title' => 'Titolo', + 'title_add' => 'Aggiungi RSS feed', + 'ttl' => 'Non aggiornare automaticamente piu di', + 'url' => 'Feed URL', + 'validator' => 'Controlla la validita del feed ', + 'website' => 'URL del sito', + 'pubsubhubbub' => 'Notifica istantanea con PubSubHubbub', + ), + 'import_export' => array( + 'export' => 'Esporta', + 'export_opml' => 'Esporta tutta la lista dei feed (OPML)', + 'export_starred' => 'Esporta i tuoi preferiti', + 'feed_list' => 'Elenco di %s articoli', + 'file_to_import' => 'File da importare
    (OPML, Json o Zip)', + 'file_to_import_no_zip' => 'File da importare
    (OPML o Json)', + 'import' => 'Importa', + 'starred_list' => 'Elenco articoli preferiti', + 'title' => 'Importa / esporta', + ), + 'menu' => array( + 'bookmark' => 'Bookmark (trascina nei preferiti)', + 'import_export' => 'Importa / esporta', + 'subscription_management' => 'Gestione sottoscrizioni', + ), + 'title' => array( + '_' => 'Gestione sottoscrizioni', + 'feed_management' => 'Gestione RSS feeds', + ), +); -- cgit v1.2.3 From 7be1dde4e09676b87493e0124d43c82a2de3bc7f Mon Sep 17 00:00:00 2001 From: Marco Date: Sat, 24 Oct 2015 15:36:17 +0200 Subject: Update gen.php --- app/i18n/cz/gen.php | 1 + 1 file changed, 1 insertion(+) (limited to 'app/i18n') diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index d3e93c0a1..f549eaaea 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -120,6 +120,7 @@ return array( 'de' => 'Deutsch', 'en' => 'English', 'fr' => 'Français', + 'it' => 'Italian', 'nl' => 'Nederlands', ), 'menu' => array( -- cgit v1.2.3 From 0a0ae09d02db2da8cf83e848feea999e9148a9fc Mon Sep 17 00:00:00 2001 From: Marco Date: Sat, 24 Oct 2015 15:36:37 +0200 Subject: Update gen.php --- app/i18n/de/gen.php | 1 + 1 file changed, 1 insertion(+) (limited to 'app/i18n') diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index 38beb5016..50eaed1c5 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -120,6 +120,7 @@ return array( 'de' => 'Deutsch', 'en' => 'English', 'fr' => 'Français', + 'it' => 'Italian', 'nl' => 'Nederlands', ), 'menu' => array( -- cgit v1.2.3 From 89965d656c2f56fb6adc9d7440eae6b9ca04b7d9 Mon Sep 17 00:00:00 2001 From: Marco Date: Sat, 24 Oct 2015 15:37:02 +0200 Subject: Update gen.php --- app/i18n/en/gen.php | 1 + 1 file changed, 1 insertion(+) (limited to 'app/i18n') diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index b71af91f1..785ab0279 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -120,6 +120,7 @@ return array( 'de' => 'Deutsch', 'en' => 'English', 'fr' => 'Français', + 'it' => 'Italian', 'nl' => 'Nederlands', ), 'menu' => array( -- cgit v1.2.3 From b4f80f96119fd8c3e8ab8f70c2ad55224bad2a59 Mon Sep 17 00:00:00 2001 From: Marco Date: Sat, 24 Oct 2015 15:37:21 +0200 Subject: Update gen.php --- app/i18n/fr/gen.php | 1 + 1 file changed, 1 insertion(+) (limited to 'app/i18n') diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index f09c73ca1..2a83a14dd 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -120,6 +120,7 @@ return array( 'de' => 'Deutsch', 'en' => 'English', 'fr' => 'Français', + 'it' => 'Italian', 'nl' => 'Nederlands', ), 'menu' => array( -- cgit v1.2.3 From fe21c0bb5cc544cb89d207b50e17e44907a14133 Mon Sep 17 00:00:00 2001 From: Marco Date: Sat, 24 Oct 2015 15:37:38 +0200 Subject: Update gen.php --- app/i18n/nl/gen.php | 1 + 1 file changed, 1 insertion(+) (limited to 'app/i18n') diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index ed57669a1..f33438702 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -120,6 +120,7 @@ return array( 'de' => 'Deutsch', 'en' => 'English', 'fr' => 'Français', + 'it' => 'Italian', 'nl' => 'Nederlands', ), 'menu' => array( -- cgit v1.2.3 From f4a0bb25e20552fae109689cfab13e2c09c3f48a Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 24 Oct 2015 21:48:29 +0200 Subject: i18n: Italiano https://github.com/FreshRSS/FreshRSS/issues/1003 --- app/i18n/cz/gen.php | 2 +- app/i18n/de/gen.php | 2 +- app/i18n/en/gen.php | 2 +- app/i18n/fr/gen.php | 2 +- app/i18n/nl/gen.php | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index 6b89cf627..ffc138abb 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -120,7 +120,7 @@ return array( 'de' => 'Deutsch', 'en' => 'English', 'fr' => 'Français', - 'it' => 'Italian', + 'it' => 'Italiano', 'nl' => 'Nederlands', ), 'menu' => array( diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index 6e5dc7c3f..842383498 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -120,7 +120,7 @@ return array( 'de' => 'Deutsch', 'en' => 'English', 'fr' => 'Français', - 'it' => 'Italian', + 'it' => 'Italiano', 'nl' => 'Nederlands', ), 'menu' => array( diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index c9a7e2d4e..d23b12f95 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -120,7 +120,7 @@ return array( 'de' => 'Deutsch', 'en' => 'English', 'fr' => 'Français', - 'it' => 'Italian', + 'it' => 'Italiano', 'nl' => 'Nederlands', ), 'menu' => array( diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index fc16c74ab..2f16f09b9 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -120,7 +120,7 @@ return array( 'de' => 'Deutsch', 'en' => 'English', 'fr' => 'Français', - 'it' => 'Italian', + 'it' => 'Italiano', 'nl' => 'Nederlands', ), 'menu' => array( diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index f61cb638b..b8467f92f 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -120,7 +120,7 @@ return array( 'de' => 'Deutsch', 'en' => 'English', 'fr' => 'Français', - 'it' => 'Italian', + 'it' => 'Italiano', 'nl' => 'Nederlands', ), 'menu' => array( -- cgit v1.2.3 From 697817eebf754c2a05c7b4c88df1f13dbd0179da Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Mon, 2 Nov 2015 21:11:31 +0100 Subject: Make auto-update server URL alterable See https://github.com/FreshRSS/FreshRSS/issues/1019 --- CHANGELOG.md | 2 ++ app/Controllers/configureController.php | 1 + app/Models/ConfigurationSetter.php | 8 ++++++++ app/i18n/cz/admin.php | 1 + app/i18n/de/admin.php | 1 + app/i18n/en/admin.php | 1 + app/i18n/fr/admin.php | 1 + app/i18n/it/admin.php | 1 + app/i18n/nl/admin.php | 11 +++++++++++ app/i18n/nl/gen.php | 1 + app/views/configure/system.phtml | 9 ++++++++- 11 files changed, 36 insertions(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/CHANGELOG.md b/CHANGELOG.md index 14b6a18ce..828884546 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ * Visual alert on categories containing feeds in error [#984](https://github.com/FreshRSS/FreshRSS/pull/984) * I18n * Italian [#1003](https://github.com/FreshRSS/FreshRSS/issues/1003) +* Misc. + * Make auto-update server URL alterable [#1019](https://github.com/FreshRSS/FreshRSS/issues/1019) ## 2015-09-12 FreshRSS 1.1.3-beta diff --git a/app/Controllers/configureController.php b/app/Controllers/configureController.php index 0dc7ceab2..d0f0bd68b 100755 --- a/app/Controllers/configureController.php +++ b/app/Controllers/configureController.php @@ -317,6 +317,7 @@ class FreshRSS_configure_Controller extends Minz_ActionController { $limits['max_categories'] = Minz_Request::param('max-categories', 16384); FreshRSS_Context::$system_conf->limits = $limits; FreshRSS_Context::$system_conf->title = Minz_Request::param('instance-name', 'FreshRSS'); + FreshRSS_Context::$system_conf->auto_update_url = Minz_Request::param('auto-update-url', false); FreshRSS_Context::$system_conf->save(); invalidateHttpCache(); diff --git a/app/Models/ConfigurationSetter.php b/app/Models/ConfigurationSetter.php index 5c8a1ce29..250c14c39 100644 --- a/app/Models/ConfigurationSetter.php +++ b/app/Models/ConfigurationSetter.php @@ -378,4 +378,12 @@ class FreshRSS_ConfigurationSetter { private function _unsafe_autologin_enabled(&$data, $value) { $data['unsafe_autologin_enabled'] = $this->handleBool($value); } + + private function _auto_update_url(&$data, $value) { + if (!$value) { + return; + } + + $data['auto_update_url'] = $value; + } } diff --git a/app/i18n/cz/admin.php b/app/i18n/cz/admin.php index e1fa5d141..342ac7ccd 100644 --- a/app/i18n/cz/admin.php +++ b/app/i18n/cz/admin.php @@ -148,6 +148,7 @@ return array( ), 'system' => array( '_' => 'System configuration', // @todo translate + 'auto-update-url' => 'Auto-update server URL', // @todo translate 'instance-name' => 'Instance name', // @todo translate 'max-categories' => 'Categories per user limit', // @todo translate 'max-feeds' => 'Feeds per user limit', // @todo translate diff --git a/app/i18n/de/admin.php b/app/i18n/de/admin.php index 395b51acf..6e6cc0956 100644 --- a/app/i18n/de/admin.php +++ b/app/i18n/de/admin.php @@ -148,6 +148,7 @@ return array( ), 'system' => array( '_' => 'System configuration', // @todo translate + 'auto-update-url' => 'Auto-update server URL', // @todo translate 'instance-name' => 'Instance name', // @todo translate 'max-categories' => 'Categories per user limit', // @todo translate 'max-feeds' => 'Feeds per user limit', // @todo translate diff --git a/app/i18n/en/admin.php b/app/i18n/en/admin.php index 6edb38cf0..a58771edf 100644 --- a/app/i18n/en/admin.php +++ b/app/i18n/en/admin.php @@ -148,6 +148,7 @@ return array( ), 'system' => array( '_' => 'System configuration', + 'auto-update-url' => 'Auto-update server URL', 'instance-name' => 'Instance name', 'max-categories' => 'Categories per user limit', 'max-feeds' => 'Feeds per user limit', diff --git a/app/i18n/fr/admin.php b/app/i18n/fr/admin.php index e73622577..f4f267306 100644 --- a/app/i18n/fr/admin.php +++ b/app/i18n/fr/admin.php @@ -148,6 +148,7 @@ return array( ), 'system' => array( '_' => 'Configuration du système', + 'auto-update-url' => 'URL du service de mise à jour', 'instance-name' => 'Nom de l’instance', 'max-categories' => 'Limite de catégories par utilisateur', 'max-feeds' => 'Limite de flux par utilisateur', diff --git a/app/i18n/it/admin.php b/app/i18n/it/admin.php index cb9a55c0b..94b2d6762 100644 --- a/app/i18n/it/admin.php +++ b/app/i18n/it/admin.php @@ -148,6 +148,7 @@ return array( ), 'system' => array( '_' => 'Configurazione di sistema', + 'auto-update-url' => 'Auto-update server URL', // @todo translate 'instance-name' => 'Nome istanza', 'max-categories' => 'Limite categorie per utente', 'max-feeds' => 'Limite feeds per utente', diff --git a/app/i18n/nl/admin.php b/app/i18n/nl/admin.php index 5c6a14fda..c3a3062b9 100644 --- a/app/i18n/nl/admin.php +++ b/app/i18n/nl/admin.php @@ -146,6 +146,17 @@ return array( 'title' => 'Statistieken', 'top_feed' => 'Top tien feeds', ), + 'system' => array( + '_' => 'System configuration', // @todo translate + 'auto-update-url' => 'Auto-update server URL', // @todo translate + 'instance-name' => 'Instance name', // @todo translate + 'max-categories' => 'Categories per user limit', // @todo translate + 'max-feeds' => 'Feeds per user limit', // @todo translate + 'registration' => array( + 'help' => '0 means that there is no account limit', // @todo translate + 'number' => 'Max number of accounts', // @todo translate + ), + ), 'update' => array( '_' => 'Versie controle', 'apply' => 'Toepassen', diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index b8467f92f..574f0386b 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -139,6 +139,7 @@ return array( 'sharing' => 'Delen', 'shortcuts' => 'Snelle toegang', 'stats' => 'Statistieken', + 'system' => 'System configuration', // @todo translate 'update' => 'Versie controle', 'user_management' => 'Beheer gebruikers', 'user_profile' => 'Profiel', diff --git a/app/views/configure/system.phtml b/app/views/configure/system.phtml index 9406c34d6..4af669eb0 100644 --- a/app/views/configure/system.phtml +++ b/app/views/configure/system.phtml @@ -9,7 +9,14 @@
    - + +
    +
    + +
    + +
    +
    -- cgit v1.2.3 From d6e6dd6b280e1a9c68e922d14a77510404959b76 Mon Sep 17 00:00:00 2001 From: ASM Date: Wed, 4 Nov 2015 20:13:30 +0300 Subject: Translated 1/3 of --- app/i18n/ru/admin.php | 183 +++++++++++++++++++++++++++++++++++++++++++++++ app/i18n/ru/conf.php | 174 ++++++++++++++++++++++++++++++++++++++++++++ app/i18n/ru/feedback.php | 110 ++++++++++++++++++++++++++++ app/i18n/ru/gen.php | 181 ++++++++++++++++++++++++++++++++++++++++++++++ app/i18n/ru/index.php | 61 ++++++++++++++++ app/i18n/ru/install.php | 113 +++++++++++++++++++++++++++++ app/i18n/ru/sub.php | 62 ++++++++++++++++ 7 files changed, 884 insertions(+) create mode 100644 app/i18n/ru/admin.php create mode 100644 app/i18n/ru/conf.php create mode 100644 app/i18n/ru/feedback.php create mode 100644 app/i18n/ru/gen.php create mode 100644 app/i18n/ru/index.php create mode 100644 app/i18n/ru/install.php create mode 100644 app/i18n/ru/sub.php (limited to 'app/i18n') diff --git a/app/i18n/ru/admin.php b/app/i18n/ru/admin.php new file mode 100644 index 000000000..6c3e21031 --- /dev/null +++ b/app/i18n/ru/admin.php @@ -0,0 +1,183 @@ + array( + 'allow_anonymous' => 'Разрешить анонимное чтение статей для пользователя по умолчанию (%s)', + 'allow_anonymous_refresh' => 'Разрешить анонимное обновление статей', + 'api_enabled' => 'Включить доступ к API (необходимо для мобильных приложений)', + 'form' => 'На основе веб-формы (традиционный, необходим JavaScript)', + 'http' => 'HTTP (для продвинутых пользователей - по HTTPS)', + 'none' => 'Без аутентификации (небезопасный)', + 'persona' => 'Mozilla Persona (новый, необходим JavaScript)', + 'title' => 'Аутентификации', + 'title_reset' => 'Сброс аутентицикации', + 'token' => 'Токен аутентификации', + 'token_help' => 'Разрешает доступ к RSS ленте пользователя по умолчанию без аутентификации:', + 'type' => 'Метод аутентификации', + 'unsafe_autologin' => 'Разрешить небезопасный автоматический вход с использованием следующего формата: ', + ), + 'check_install' => array( + 'cache' => array( + 'nok' => 'Проверьте права доступа к папке ./data/cache. Сервер HTTP должен иметь права на запись в эту папку', + 'ok' => 'Права на ./data/cache в порядке.', + ), + 'categories' => array( + 'nok' => 'Таблица категорий настроена неправильно.', + 'ok' => 'Таблица категорий настроена правильно.', + ), + 'connection' => array( + 'nok' => 'Подключение к базе данных не может быть установлено.', + 'ok' => 'Подключение к базе данных в порядке.', + ), + 'ctype' => array( + 'nok' => 'У вас не установлена библиотека для проверки типов символов (php-ctype).', + 'ok' => 'У вас не установлена библиотека для проверки типов символов (ctype).', + ), + 'curl' => array( + 'nok' => 'У вас не установлено расширение cURL (пакет php5-curl).', + 'ok' => 'У вас установлено расширение cURL.', + ), + 'data' => array( + 'nok' => 'Проверьте права доступа к папке ./data . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на ./data/ в порядке.', + ), + 'database' => 'Установка базы данных', + 'dom' => array( + 'nok' => 'У вас не установлена библиотека для просмотра DOM (пакет php-xml).', + 'ok' => 'У вас не установлена библиотека для просмотра DOM.', + ), + 'entries' => array( + 'nok' => 'Entry table is bad configured.', + 'ok' => 'Entry table is ok.', + ), + 'favicons' => array( + 'nok' => 'Check permissions on ./data/favicons 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 ./data/persona 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 ./data/tokens directory. HTTP server must have rights to write into', + 'ok' => 'Permissions on tokens directory are good.', + ), + 'users' => array( + 'nok' => 'Check permissions on ./data/users 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', + ), + 'system' => array( + '_' => 'System configuration', + 'auto-update-url' => 'Auto-update server URL', + 'instance-name' => 'Instance name', + 'max-categories' => 'Categories per user limit', + 'max-feeds' => 'Feeds per user limit', + 'registration' => array( + 'help' => '0 means that there is no account limit', + 'number' => 'Max number of accounts', + ), + ), + '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
    (for Mozilla Persona)', + 'language' => 'Language', + 'number' => 'There is %d account created yet', + 'numbers' => 'There are %d accounts created yet', + 'password_form' => 'Password
    (for the Web-form login method)', + 'password_format' => 'At least 7 characters', + 'title' => 'Manage users', + 'user_list' => 'List of users', + 'username' => 'Username', + 'users' => 'Users', + ), +); diff --git a/app/i18n/ru/conf.php b/app/i18n/ru/conf.php new file mode 100644 index 000000000..69162932f --- /dev/null +++ b/app/i18n/ru/conf.php @@ -0,0 +1,174 @@ + array( + '_' => 'Archiving', + 'advanced' => 'Advanced', + 'delete_after' => 'Remove articles after', + 'help' => 'More options are available in the individual feed settings', + 'keep_history_by_feed' => 'Minimum number of articles to keep by feed', + 'optimize' => 'Optimise 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', + 'delete' => array( + '_' => 'Account deletion', + 'warn' => 'Your account and all the related data will be deleted.', + ), + 'email_persona' => 'Login email address
    (for Mozilla Persona)', + 'password_api' => 'Password API
    (e.g., for mobile apps)', + 'password_form' => 'Password
    (for the Web-form login method)', + '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', + 'mark_updated_article_unread' => 'Mark updated articles as unread', + '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.
    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' => '+ shift 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/ru/feedback.php b/app/i18n/ru/feedback.php new file mode 100644 index 000000000..c9189c0d0 --- /dev/null +++ b/app/i18n/ru/feedback.php @@ -0,0 +1,110 @@ + array( + 'optimization_complete' => 'Optimisation 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. Check FressRSS logs for details.', + 'ok' => '%s is now disabled', + ), + 'enable' => array( + 'ko' => '%s cannot be enabled. Check FressRSS logs 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' => 'Actualise', + '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' => '%s has been updated', + 'actualizeds' => 'RSS feeds have been updated', + 'added' => 'RSS feed %s has been added', + 'already_subscribed' => 'You have already subscribed to %s', + 'deleted' => 'Feed has been deleted', + 'error' => 'Feed cannot be updated', + 'internal_problem' => 'The RSS feed could not be added. Check FressRSS logs for details.', + 'invalid_url' => 'URL %s 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' => '%s 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 now be updated to the version %s.', + 'error' => 'The update process has encountered an error: %s', + 'file_is_nok' => 'Check permissions on %s 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/ru/gen.php b/app/i18n/ru/gen.php new file mode 100644 index 000000000..d23b12f95 --- /dev/null +++ b/app/i18n/ru/gen.php @@ -0,0 +1,181 @@ + 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' => 'Filter', + '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( + 'email' => 'Email address', + 'keep_logged_in' => 'Keep me logged in (1 month)', + 'login' => 'Login', + 'login_persona' => 'Login with Persona', + 'login_persona_problem' => 'Connection problem with Persona?', + 'logout' => 'Logout', + 'password' => array( + '_' => 'Password', + 'format' => 'At least 7 characters', + ), + 'registration' => array( + '_' => 'New account', + 'ask' => 'Create an account?', + 'title' => 'Account creation', + ), + 'reset' => 'Authentication reset', + 'username' => array( + '_' => 'Username', + 'admin' => 'Administrator username', + 'format' => 'maximum 16 alphanumeric characters', + ), + '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( + 'cz' => 'Čeština', + 'de' => 'Deutsch', + 'en' => 'English', + 'fr' => 'Français', + 'it' => 'Italiano', + 'nl' => 'Nederlands', + ), + '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', + 'system' => 'System configuration', + '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+', + 'movim' => 'Movim', + 'print' => 'Print', + 'shaarli' => 'Shaarli', + 'twitter' => 'Twitter', + 'wallabag' => 'wallabag', + ), + 'short' => array( + 'attention' => 'Warning!', + 'blank_to_disable' => 'Leave blank to disable', + 'by_author' => 'By %s', + 'by_default' => 'By default', + 'damn' => 'Damn!', + 'default_category' => 'Uncategorized', + 'no' => 'No', + 'not_applicable' => 'Not available', + 'ok' => 'Ok!', + 'or' => 'or', + 'yes' => 'Yes', + ), +); diff --git a/app/i18n/ru/index.php b/app/i18n/ru/index.php new file mode 100644 index 000000000..80fa3d950 --- /dev/null +++ b/app/i18n/ru/index.php @@ -0,0 +1,61 @@ + array( + '_' => 'About', + 'agpl3' => 'AGPL 3', + 'bugs_reports' => 'Bugs reports', + 'credits' => 'Credits', + 'credits_content' => 'Some design elements come from Bootstrap although FreshRSS doesn’t use this framework. Icons come from GNOME project. Open Sans font police has been created by Steve Matteson. Favicons are collected with getFavicon API. FreshRSS is based on Minz, a PHP framework.', + 'freshrss_description' => 'FreshRSS is a RSS feeds aggregator to self-host like Kriss Feed or Leed. It is light and easy to take in hand while being powerful and configurable tool.', + 'github' => 'on Github', + '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/ru/install.php b/app/i18n/ru/install.php new file mode 100644 index 000000000..b94fbc299 --- /dev/null +++ b/app/i18n/ru/install.php @@ -0,0 +1,113 @@ + array( + 'finish' => 'Complete installation', + 'fix_errors_before' => 'Please fix errors before skipping to the next step.', + 'keep_install' => 'Keep previous installation', + 'next_step' => 'Go to the next step', + 'reinstall' => 'Reinstall FreshRSS', + ), + 'auth' => array( + 'email_persona' => 'Login email address
    (for Mozilla Persona)', + 'form' => 'Web form (traditional, requires JavaScript)', + 'http' => 'HTTP (for advanced users with HTTPS)', + 'none' => 'None (dangerous)', + 'password_form' => 'Password
    (for the Web-form login method)', + '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', + 'already_installed' => 'We have detected that FreshRSS is already installed!', + 'cache' => array( + 'nok' => 'Check permissions on ./data/cache 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 ./data 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 ./data/favicons 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 ./data/persona 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 ./data/users 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 (maximum 16 alphanumeric characters)', + 'delete_articles_after' => 'Remove articles after', + 'fix_errors_before' => 'Please fix errors before skipping to the next step.', + 'javascript_is_better' => 'FreshRSS is more pleasant with JavaScript enabled', + 'js' => array( + 'confirm_reinstall' => 'You will lose your previous configuration by reinstalling FreshRSS. Are you sure you want to continue?', + ), + 'language' => array( + '_' => 'Language', + 'choose' => 'Choose a language for FreshRSS', + 'defined' => 'Language has been defined.', + ), + 'not_deleted' => 'Something went wrong; you must delete the file %s 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/ru/sub.php b/app/i18n/ru/sub.php new file mode 100644 index 000000000..aaaa02827 --- /dev/null +++ b/app/i18n/ru/sub.php @@ -0,0 +1,62 @@ + 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 (caution, 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, its feeds are automatically classified under %s.', + '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', + 'pubsubhubbub' => 'Instant notification with PubSubHubbub', + ), + '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
    (OPML, Json or Zip)', + 'file_to_import_no_zip' => 'File to import
    (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', + ), +); -- cgit v1.2.3 From e442b0dfbee5f764deff87dc147ed45f6f73d74f Mon Sep 17 00:00:00 2001 From: ASM Date: Sat, 21 Nov 2015 02:22:44 +0300 Subject: Fixing #1029. Admin page done in full --- app/i18n/ru/admin.php | 180 +++++++++++++++++++++++++------------------------- 1 file changed, 90 insertions(+), 90 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/ru/admin.php b/app/i18n/ru/admin.php index 6c3e21031..dfea5b3cb 100644 --- a/app/i18n/ru/admin.php +++ b/app/i18n/ru/admin.php @@ -44,58 +44,58 @@ return array( 'database' => 'Установка базы данных', 'dom' => array( 'nok' => 'У вас не установлена библиотека для просмотра DOM (пакет php-xml).', - 'ok' => 'У вас не установлена библиотека для просмотра DOM.', + 'ok' => 'У вас установлена библиотека для просмотра DOM.', ), 'entries' => array( - 'nok' => 'Entry table is bad configured.', - 'ok' => 'Entry table is ok.', + 'nok' => 'Таблица статей (entry) неправильно настроена.', + 'ok' => 'Таблица статей (entry) настроена правильно.', ), 'favicons' => array( - 'nok' => 'Check permissions on ./data/favicons directory. HTTP server must have rights to write into', - 'ok' => 'Permissions on favicons directory are good.', + 'nok' => 'Проверьте права доступа к папке ./data/favicons . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку значков в порядке.', ), 'feeds' => array( - 'nok' => 'Feed table is bad configured.', - 'ok' => 'Feed table is ok.', + 'nok' => 'Таблица подписок (feed) неправильно настроена.', + 'ok' => 'Таблица подписок (feed) настроена правильно.', ), - 'files' => 'File installation', + 'files' => 'Установка файлов', 'json' => array( - 'nok' => 'You lack JSON (php5-json package).', - 'ok' => 'You have JSON extension.', + 'nok' => 'У вас не установлена библиотека для работы с JSON (пакет php5-json).', + 'ok' => 'У вас установлена библиотека для работы с JSON.', ), 'minz' => array( - 'nok' => 'You lack the Minz framework.', - 'ok' => 'You have the Minz framework.', + 'nok' => 'У вас не установлен фрейворк Minz.', + 'ok' => 'У вас установлен фрейворк Minz.', ), 'pcre' => array( - 'nok' => 'You lack a required library for regular expressions (php-pcre).', - 'ok' => 'You have the required library for regular expressions (PCRE).', + 'nok' => 'У вас не установлена необходимая библиотека для работы с регулярными выражениями (php-pcre).', + 'ok' => 'У вас установлена необходимая библиотека для работы с регулярными выражениями (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).', + 'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite).', + 'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite).', ), 'persona' => array( - 'nok' => 'Check permissions on ./data/persona directory. HTTP server must have rights to write into', - 'ok' => 'Permissions on Mozilla Persona directory are good.', + 'nok' => 'Проверьте права доступа к папке ./data/persona . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку Mozilla Persona в порядке.', ), '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.', + 'nok' => 'У вас установлен PHP версии %s, но FreshRSS необходима версия не ниже %s.', + 'ok' => 'У вас установлен PHP версии %s, который совместим с FreshRSS.', ), 'tables' => array( - 'nok' => 'There is one or more lacking tables in the database.', - 'ok' => 'Tables are existing in the database.', + 'nok' => 'В базе данных отсуствует одна или больше таблица.', + 'ok' => 'Все таблицы есть в базе данных.', ), - 'title' => 'Installation checking', + 'title' => 'Проверка установки и настройки', 'tokens' => array( - 'nok' => 'Check permissions on ./data/tokens directory. HTTP server must have rights to write into', - 'ok' => 'Permissions on tokens directory are good.', + 'nok' => 'Проверьте права доступа к папке ./data/tokens . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку tokens в порядке.', ), 'users' => array( - 'nok' => 'Check permissions on ./data/users directory. HTTP server must have rights to write into', - 'ok' => 'Permissions on users directory are good.', + 'nok' => 'Проверьте права доступа к папке ./data/users . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку users в порядке.', ), 'zip' => array( 'nok' => 'You lack ZIP extension (php5-zip package).', @@ -103,81 +103,81 @@ return array( ), ), 'extensions' => array( - 'disabled' => 'Disabled', - 'empty_list' => 'There is no installed extension', - 'enabled' => 'Enabled', - 'no_configure_view' => 'This extension cannot be configured.', + 'disabled' => 'Отключены', + 'empty_list' => 'Расширения не установлены', + 'enabled' => 'Включены', + 'no_configure_view' => 'Это расширение нельзя настроить.', 'system' => array( - '_' => 'System extensions', - 'no_rights' => 'System extension (you have no rights on it)', + '_' => 'Системные расширения', + 'no_rights' => 'Системные расширения (у вас нет к ним доступа)', ), - 'title' => 'Extensions', - 'user' => 'User extensions', + 'title' => 'Расширения', + 'user' => 'Расширения пользователя', ), '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', + '_' => 'Статистика', + 'all_feeds' => 'Все подписки', + 'category' => 'Категория', + 'entry_count' => 'Количество статей', + 'entry_per_category' => 'Статей в категории', + 'entry_per_day' => 'Статей за день (за последние 30 дней)', + 'entry_per_day_of_week' => 'За неделю (в среднем - %.2f сообщений)', + 'entry_per_hour' => 'За час (в среднем - %.2f сообщений)', + 'entry_per_month' => 'За месяц (в среднем - %.2f сообщений)', + 'entry_repartition' => 'Перерасределение статей', + 'feed' => 'Подписка', + 'feed_per_category' => 'Подписок в категории', + 'idle' => 'Неактивные подписки', + 'main' => 'Основная статистика', + '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', + 'idle' => 'Неактивные подписки', + 'main' => 'Основная статистика', + 'repartition' => 'Перерасределение статей', + ), + 'no_idle' => 'Нет неактивных подписок!', + 'number_entries' => 'статей: %d', + 'percent_of_total' => '%% от всего', + 'repartition' => 'Перераспределение статей', + 'status_favorites' => 'Избранное', + 'status_read' => 'Читать', + 'status_total' => 'Всего', + 'status_unread' => 'Не прочитано', + 'title' => 'Статистика', + 'top_feed' => '10 лучших подписок', ), 'system' => array( - '_' => 'System configuration', - 'auto-update-url' => 'Auto-update server URL', - 'instance-name' => 'Instance name', - 'max-categories' => 'Categories per user limit', - 'max-feeds' => 'Feeds per user limit', + '_' => 'Системные настройки', + 'auto-update-url' => 'Адрес сервера для автоматического обновления', + 'instance-name' => 'Название этого сервера', + 'max-categories' => 'Количество категорий на пользователя', + 'max-feeds' => 'Количество статей на пользователя', 'registration' => array( - 'help' => '0 means that there is no account limit', - 'number' => 'Max number of accounts', + 'help' => '0 означает неограниченное количество пользователей', + 'number' => 'Максимальное количество пользователей', ), ), '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', + '_' => 'Обновление системы', + 'apply' => 'Применить', + 'check' => 'Проверить обновления', + 'current_version' => 'Ваша текущая версия FreshRSS: %s.', + 'last' => 'Последняя проверка: %s', + 'none' => 'Нечего обновлять', + 'title' => 'Обновить систему', ), 'user' => array( - 'articles_and_size' => '%s articles (%s)', - 'create' => 'Create new user', - 'email_persona' => 'Login mail address
    (for Mozilla Persona)', - 'language' => 'Language', - 'number' => 'There is %d account created yet', - 'numbers' => 'There are %d accounts created yet', - 'password_form' => 'Password
    (for the Web-form login method)', - 'password_format' => 'At least 7 characters', - 'title' => 'Manage users', - 'user_list' => 'List of users', - 'username' => 'Username', - 'users' => 'Users', + 'articles_and_size' => '%s статей (%s)', + 'create' => 'Создать нового пользователя', + 'email_persona' => 'Адрес электронной почты для входа
    (for Mozilla Persona)', + 'language' => 'Язык', + 'number' => 'На данный момент создан %d аккаунт', + 'numbers' => 'На данный момент аккаунтов создано: %d', + 'password_form' => 'Пароль
    (для входа через Веб-форму)', + 'password_format' => 'Минимум 7 символов', + 'title' => 'Управление пользователями', + 'user_list' => 'Список пользователей', + 'username' => 'Имя пользователя', + 'users' => 'Пользователи', ), ); -- cgit v1.2.3 From 9637e018bf0bdd17ecfabe825cb12ea9a67d7553 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Wed, 23 Dec 2015 10:41:14 +0100 Subject: i18n English https://github.com/FreshRSS/FreshRSS/issues/1043#issuecomment-165984276 --- app/i18n/en/conf.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/en/conf.php b/app/i18n/en/conf.php index 69162932f..38e9197e9 100644 --- a/app/i18n/en/conf.php +++ b/app/i18n/en/conf.php @@ -77,7 +77,7 @@ return array( 'warn' => 'Your account and all the related data will be deleted.', ), 'email_persona' => 'Login email address
    (for Mozilla Persona)', - 'password_api' => 'Password API
    (e.g., for mobile apps)', + 'password_api' => 'API password
    (e.g., for mobile apps)', 'password_form' => 'Password
    (for the Web-form login method)', 'password_format' => 'At least 7 characters', 'title' => 'Profile', -- cgit v1.2.3 From b596d569f3048d3539d1a372eea269462a7a5f82 Mon Sep 17 00:00:00 2001 From: danc Date: Sun, 24 Jan 2016 20:20:52 +0100 Subject: Translation for Journal du hacker --- app/i18n/fr/gen.php | 1 + 1 file changed, 1 insertion(+) (limited to 'app/i18n') diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 2f16f09b9..1e738e949 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -164,6 +164,7 @@ return array( 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', 'wallabag' => 'wallabag', + 'jdh' => 'Journal du hacker', ), 'short' => array( 'attention' => 'Attention !', -- cgit v1.2.3 From a51604bcbce5f2703915ab51e0d7c1d4440f132e Mon Sep 17 00:00:00 2001 From: danc Date: Sun, 24 Jan 2016 20:22:18 +0100 Subject: Translation for Journal du hacker --- app/i18n/en/gen.php | 1 + 1 file changed, 1 insertion(+) (limited to 'app/i18n') diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index d23b12f95..3d66938d1 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -164,6 +164,7 @@ return array( 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', 'wallabag' => 'wallabag', + 'jdh' => 'Journal du hacker', ), 'short' => array( 'attention' => 'Warning!', -- cgit v1.2.3 From 8890f6ca7738666c5745837f4dad73f5e2877ce7 Mon Sep 17 00:00:00 2001 From: danc Date: Sun, 24 Jan 2016 20:23:58 +0100 Subject: Translation for Journal du hacker --- app/i18n/de/gen.php | 1 + 1 file changed, 1 insertion(+) (limited to 'app/i18n') diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index 842383498..4953610ba 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -164,6 +164,7 @@ return array( 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', 'wallabag' => 'wallabag', + 'jdh' => 'Journal du hacker', ), 'short' => array( 'attention' => 'Achtung!', -- cgit v1.2.3 From ea7891898684e3deabe084d6cfa3f74438cdd975 Mon Sep 17 00:00:00 2001 From: danc Date: Sun, 24 Jan 2016 20:25:55 +0100 Subject: Translation for Journal du hacker --- app/i18n/it/gen.php | 1 + 1 file changed, 1 insertion(+) (limited to 'app/i18n') diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index eb545b8cf..1ac6b04a1 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -163,6 +163,7 @@ return array( 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', 'wallabag' => 'wallabag', + 'jdh' => 'Journal du hacker', ), 'short' => array( 'attention' => 'Attenzione!', -- cgit v1.2.3 From 3185498bad149b33e67f863ef406eee6e8b0114f Mon Sep 17 00:00:00 2001 From: danc Date: Sun, 24 Jan 2016 20:26:47 +0100 Subject: Translation for Journal du hacker --- app/i18n/nl/gen.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index 574f0386b..21d1fba22 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -163,7 +163,8 @@ return array( 'print' => 'Print', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', - 'wallabag' => 'wallabag', + 'wallabag' => 'wallabag', + 'jdh' => 'Journal du hacker', ), 'short' => array( 'attention' => 'Attentie!', -- cgit v1.2.3 From 21630599b59830fa88f0e3988e88347cdfa3b5ea Mon Sep 17 00:00:00 2001 From: danc Date: Sun, 24 Jan 2016 20:35:33 +0100 Subject: Translation for Journal du hacker --- app/i18n/cz/gen.php | 1 + 1 file changed, 1 insertion(+) (limited to 'app/i18n') diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index ffc138abb..4d34a8173 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -164,6 +164,7 @@ return array( 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', 'wallabag' => 'wallabag', + 'jdh' => 'Journal du hacker', ), 'short' => array( 'attention' => 'Upozornění!', -- cgit v1.2.3 From 62b1a484e83ec0ead9a7d33b01c2349ffa9657cb Mon Sep 17 00:00:00 2001 From: hckweb Date: Tue, 9 Feb 2016 20:24:09 +0200 Subject: Create admin.php --- app/i18n/tr/admin.php | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 app/i18n/tr/admin.php (limited to 'app/i18n') diff --git a/app/i18n/tr/admin.php b/app/i18n/tr/admin.php new file mode 100644 index 000000000..3a6f8118e --- /dev/null +++ b/app/i18n/tr/admin.php @@ -0,0 +1,183 @@ + array( + 'allow_anonymous' => 'Öntanımlı kullanıcının makalelerinin anonim okunmasına izin ver (%s)', + 'allow_anonymous_refresh' => 'Anonim makale yenilemesine izin ver', + 'api_enabled' => 'API erişimine izin ver (mobil uygulamalar için gerekli)', + 'form' => 'Web formu (geleneksel, JavaScript gerektirir)', + 'http' => 'HTTP (ileri kullanıcılar için, HTTPS)', + 'none' => 'Hiçbiri (tehlikeli)', + 'persona' => 'Mozilla Persona (modern, JavaScript gerektirir)', + 'title' => 'Kimlik doğrulama', + 'title_reset' => 'Kimlik doğrulama sıfırla', + 'token' => 'Kimlik doğrulama işareti', + 'token_help' => 'Kimlik doğrulama olmaksızın öntanımlı kullanıcının RSS çıktısına erişime izin ver:', + 'type' => 'Kimlik doğrulama yöntemi', + 'unsafe_autologin' => 'Güvensiz otomatik girişe izin ver: ', + ), + 'check_install' => array( + 'cache' => array( + 'nok' => './data/cache klasör yetkisini kontrol edin. HTTP yazma yetkisi olmalı', + 'ok' => 'Önbellek klasörü yetkileri sorunsuz.', + ), + 'categories' => array( + 'nok' => 'Kategori tablosu kötü yapılandırılmış.', + 'ok' => 'Kategori tablosu sorunsuz.', + ), + 'connection' => array( + 'nok' => 'Veritabanı ile bağlantı kurulamıyor.', + 'ok' => 'Veritabanı ile bağlantı sorunsuz.', + ), + 'ctype' => array( + 'nok' => 'Karakter yazım kontrolü için kütüphane eksik (php-ctype).', + 'ok' => 'Karakter yazım kontrolü için kütüphane sorunsuz (ctype).', + ), + 'curl' => array( + 'nok' => 'cURL eksik (php5-curl package).', + 'ok' => 'cURL eklentisi sorunsuz.', + ), + 'data' => array( + 'nok' => './data klasör yetkisini kontrol edin. HTTP yazma yetkisi olmalı', + 'ok' => 'Veri klasörü yetkileri sorunsuz.', + ), + 'database' => 'Veritabanı kurulumu', + 'dom' => array( + 'nok' => 'DOM kütüpbanesi eksik (php-xml package).', + 'ok' => 'DOM kütüphanesi sorunsuz.', + ), + 'entries' => array( + 'nok' => 'Giriş tablosu kötü yapılandırılmış.', + 'ok' => 'Giriş tablosu sorunsuz.', + ), + 'favicons' => array( + 'nok' => './data/favicons klasör yetkisini kontrol edin. HTTP yazma yetkisi olmalı', + 'ok' => 'Site ikonu klasörü yetkileri sorunsuz.', + ), + 'feeds' => array( + 'nok' => 'Akış tablosu kötü yapılandırılmış.', + 'ok' => 'Akış tablosu sorunsuz.', + ), + 'files' => 'Dosya kurulumu', + 'json' => array( + 'nok' => 'JSON eklentisi eksik (php5-json package).', + 'ok' => 'JSON eklentisi sorunsuz.', + ), + 'minz' => array( + 'nok' => 'Minz framework eksik.', + 'ok' => 'Minz framework sorunsuz.', + ), + 'pcre' => array( + 'nok' => 'Düzenli ifadeler kütüphanesi eksik (php-pcre).', + 'ok' => 'Düzenli ifadeler kütüphanesi sorunsuz (PCRE).', + ), + 'pdo' => array( + 'nok' => 'PDO veya PDO destekli bir sürücü eksik (pdo_mysql, pdo_sqlite).', + 'ok' => 'PDO sorunsuz (pdo_mysql, pdo_sqlite).', + ), + 'persona' => array( + 'nok' => './data/persona klasör yetkisini kontrol edin. HTTP yazma yetkisi olmalı', + 'ok' => 'Mozilla Persona klasörü yetkileri sorunsuz.', + ), + 'php' => array( + '_' => 'PHP kurulumu', + 'nok' => 'PHP versiyonunuz %s fakat FreshRSS için gerekli olan en düşük sürüm %s.', + 'ok' => 'PHP versiyonunuz %s, FreshRSS ile tam uyumlu.', + ), + 'tables' => array( + 'nok' => 'Veritabanında bir veya daha fazla tablo eksik.', + 'ok' => 'Veritabanı tabloları sorunsuz.', + ), + 'title' => 'Kurulum kontrolü', + 'tokens' => array( + 'nok' => './data/tokens klasör yetkisini kontrol edin. HTTP yazma yetkisi olmalı', + 'ok' => 'İşaretler klasörü yetkileri sorunsuz..', + ), + 'users' => array( + 'nok' => './data/users klasör yetkisini kontrol edin. HTTP yazma yetkisi olmalı', + 'ok' => 'Kullanıcılar klasörü yetkileri sorunsuz.', + ), + 'zip' => array( + 'nok' => 'ZIP eklentisi eksik (php5-zip package).', + 'ok' => 'ZIP eklentisi sorunsuz.', + ), + ), + 'extensions' => array( + 'disabled' => 'Pasif', + 'empty_list' => 'Yüklenmiş eklenti bulunmamaktadır', + 'enabled' => 'Aktif', + 'no_configure_view' => 'Bu eklenti yapılandırılamaz.', + 'system' => array( + '_' => 'Sistem eklentileri', + 'no_rights' => 'Sistem eklentileri (düzenleme hakkınız yok)', + ), + 'title' => 'Eklentiler', + 'user' => 'Kullanıcı eklentileri', + ), + 'stats' => array( + '_' => 'İstatistikler', + 'all_feeds' => 'Tüm akış', + 'category' => 'Kategori', + 'entry_count' => 'Makale sayısı', + 'entry_per_category' => 'Kategori başı makale sayısı', + 'entry_per_day' => 'Günlük makale sayısı (last 30 days)', + 'entry_per_day_of_week' => 'Haftanın günü (ortalama: %.2f makale)', + 'entry_per_hour' => 'Saatlik (ortalama: %.2f makale)', + 'entry_per_month' => 'Aylık (average: %.2f makale)', + 'entry_repartition' => 'Giriş dağılımı', + 'feed' => 'Akış', + 'feed_per_category' => 'Kategoriye göre akışlar', + 'idle' => 'Boştaki akışlar', + 'main' => 'Ana istatistikler', + 'main_stream' => 'Ana akış', + 'menu' => array( + 'idle' => 'Boştaki akışlar', + 'main' => 'Ana istatistikler', + 'repartition' => 'Makale dağılımı', + ), + 'no_idle' => 'Boşta akış yok!', + 'number_entries' => '%d makale', + 'percent_of_total' => '%% toplamın yüzdesi', + 'repartition' => 'Makale dağılımı', + 'status_favorites' => 'Favoriler', + 'status_read' => 'Okunmuş', + 'status_total' => 'Toplam', + 'status_unread' => 'Okunmamış', + 'title' => 'İstatistikler', + 'top_feed' => 'İlk 10 akış', + ), + 'system' => array( + '_' => 'Sistem yapılandırması', + 'auto-update-url' => 'Otomatik güncelleme sunucu URL', + 'instance-name' => 'Örnek isim', + 'max-categories' => 'Kullanıcı başına kategori limiti', + 'max-feeds' => 'Kullanıcı başına akış limiti', + 'registration' => array( + 'help' => '0 sınır yok anlamındadır', + 'number' => 'En fazla hesap sayısı', + ), + ), + 'update' => array( + '_' => 'Sistem güncelleme', + 'apply' => 'Uygula', + 'check' => 'Güncelleme kontrolü', + 'current_version' => 'Mevcut FreshRSS sürümünüz %s.', + 'last' => 'Son kontrol: %s', + 'none' => 'Yeni güncelleme yok', + 'title' => 'Sistem güncelleme', + ), + 'user' => array( + 'articles_and_size' => '%s makale (%s)', + 'create' => 'Yeni kullanıcı oluştur', + 'email_persona' => 'Giriş email adresi
    (Mozilla Persona için)', + 'language' => 'Dil', + 'number' => 'Oluşturulmuş %d hesap var', + 'numbers' => 'Oluşturulmuş %d hesap var', + 'password_form' => 'Şifre
    (Tarayıcı girişi için)', + 'password_format' => 'En az 7 karakter', + 'title' => 'Kullanıcıları yönet', + 'user_list' => 'Kullanıcı listesi', + 'username' => 'Kullanıcı adı', + 'users' => 'Kullanıcılar', + ), +); -- cgit v1.2.3 From e9363910a0c3ee276c07c3d08c665e2de9aab1d7 Mon Sep 17 00:00:00 2001 From: hckweb Date: Tue, 9 Feb 2016 20:28:07 +0200 Subject: Create conf.php --- app/i18n/tr/conf.php | 174 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 app/i18n/tr/conf.php (limited to 'app/i18n') diff --git a/app/i18n/tr/conf.php b/app/i18n/tr/conf.php new file mode 100644 index 000000000..d9e275b21 --- /dev/null +++ b/app/i18n/tr/conf.php @@ -0,0 +1,174 @@ + array( + '_' => 'Arşiv', + 'advanced' => 'Gelişmiş', + 'delete_after' => 'Makelelerin tutulacağı süre', + 'help' => 'Akış ayarlarında daha çok ayar bulabilirsiniz', + 'keep_history_by_feed' => 'Akışta en az tutulacak makale sayısı', + 'optimize' => 'Veritabanı optimize et', + 'optimize_help' => 'Bu işlem bazen veritabanı boyutunu düşürmeye yardımcı olur', + 'purge_now' => 'Şimdi temizle', + 'title' => 'Arşiv', + 'ttl' => 'Şu süreden sık otomatik yenileme yapma', + ), + 'display' => array( + '_' => 'Görünüm', + 'icon' => array( + 'bottom_line' => 'Alt çizgi', + 'entry' => 'Makale ikonları', + 'publication_date' => 'Yayınlama Tarihi', + 'related_tags' => 'İlgili etiketler', + 'sharing' => 'Paylaşım', + 'top_line' => 'Üst çizgi', + ), + 'language' => 'Dil', + 'notif_html5' => array( + 'seconds' => 'saniye (0 zaman aşımı yok demektir)', + 'timeout' => 'HTML5 bildirim zaman aşımı', + ), + 'theme' => 'Tema', + 'title' => 'Görünüm', + 'width' => array( + 'content' => 'İçerik genişliği', + 'large' => 'Geniş', + 'medium' => 'Orta', + 'no_limit' => 'Sınırsız', + 'thin' => 'Zayıf', + ), + ), + 'query' => array( + '_' => 'Kullanıcı sorguları', + 'deprecated' => 'Bu sorgu artık geçerli değil. İlgili akış veya kategori silinmiş.', + 'filter' => 'Filtre uygulandı:', + 'get_all' => 'Tüm makaleleri göster', + 'get_category' => '"%s" kategorisini göster', + 'get_favorite' => 'Favori makaleleri göster', + 'get_feed' => '"%s" akışını göster', + 'no_filter' => 'Filtre yok', + 'none' => 'Henüz hiç kullanıcı sorgusu oluşturmadınız.', + 'number' => 'Sorgu n°%d', + 'order_asc' => 'Önce eski makaleleri göster', + 'order_desc' => 'Önce yeni makaleleri göster', + 'search' => '"%s" için arama', + 'state_0' => 'Tüm makaleleri göster', + 'state_1' => 'Okunmuş makaleleri göster', + 'state_2' => 'Okunmamış makaleleri göster', + 'state_3' => 'Tüm makaleleri göster', + 'state_4' => 'Favori makaleleri göster', + 'state_5' => 'Okunmuş favori makaleleri göster', + 'state_6' => 'Okunmamış favori makaleleri göster', + 'state_7' => 'Favori makaleleri göster', + 'state_8' => 'Favori olmayan makaleleri göster', + 'state_9' => 'Favori olmayan okunmuş makaleleri göster', + 'state_10' => 'Favori olmayan okunmamış makaleleri göster', + 'state_11' => 'Favori olmayan makaleleri göster', + 'state_12' => 'Tüm makaleleri göster', + 'state_13' => 'Okunmuş makaleleri göster', + 'state_14' => 'Okunmamış makaleleri göster', + 'state_15' => 'Tüm makaleleri göster', + 'title' => 'Kullanıcı sorguları', + ), + 'profile' => array( + '_' => 'Profil yönetimi', + 'delete' => array( + '_' => 'Hesap silme', + 'warn' => 'Hesabınız ve tüm verileriniz silinecek.', + ), + 'email_persona' => 'Giriş email adresi
    (Mozilla Persona için)', + 'password_api' => 'API Şifresi
    (ör. mobil uygulamalar için)', + 'password_form' => 'Şifre
    (Tarayıcı girişi için)', + 'password_format' => 'En az 7 karakter', + 'title' => 'Profil', + ), + 'reading' => array( + '_' => 'Okuma', + 'after_onread' => '"Hepsini okundu say" dedinten sonra,', + 'articles_per_page' => 'Sayfa başına makale sayısı', + 'auto_load_more' => 'Sayfa sonunda yeni makaleleri yükle', + 'auto_remove_article' => 'Okuduktan sonra makaleleri gizle', + 'mark_updated_article_unread' => 'Güncellenen makaleleri okundu olarak işaretle', + 'confirm_enabled' => '"Hepsini okundu say" eylemi için onay iste', + 'display_articles_unfolded' => 'Show articles unfolded by default', + 'display_categories_unfolded' => 'Show categories folded by default', + 'hide_read_feeds' => 'Okunmamış makalesi olmayan kategori veya akışı gizle ("Tüm makaleleri göster" komutunda çalışmaz)', + 'img_with_lazyload' => 'Resimleri yüklemek için "tembel modu" kullan', + 'jump_next' => 'Bir sonraki benzer okunmamışa geç (akış veya kategori)', + 'number_divided_when_reader' => 'Okuma modunda ikiye bölünecek.', + 'read' => array( + 'article_open_on_website' => 'orijinal makale sitesi açıldığında', + 'article_viewed' => 'makale görüntülendiğinde', + 'scroll' => 'kaydırma yapılırken', + 'upon_reception' => 'makale üzerinde gelince', + 'when' => 'Makaleyi okundu olarak işaretle…', + ), + 'show' => array( + '_' => 'Gösterilecek makaleler', + 'adaptive' => 'Ayarlanmış gösterim', + 'all_articles' => 'Tüm makaleleri göster', + 'unread' => 'Sadece okunmamış makaleleri göster', + ), + 'sort' => array( + '_' => 'Sıralama', + 'newer_first' => 'Önce yeniler', + 'older_first' => 'Önce eskiler', + ), + 'sticky_post' => 'Makale açıldığında yukarı getir', + 'title' => 'Okuma', + 'view' => array( + 'default' => 'Öntanımlı görünüm', + 'global' => 'Global görünüm', + 'normal' => 'Normal görünüm', + 'reader' => 'Okuma görünümü', + ), + ), + 'sharing' => array( + '_' => 'Paylaşım', + 'blogotext' => 'Blogotext', + 'diaspora' => 'Diaspora*', + 'email' => 'Email', + 'facebook' => 'Facebook', + 'g+' => 'Google+', + 'more_information' => 'Daha fazla bilgi', + 'print' => 'Yazdır', + 'shaarli' => 'Shaarli', + 'share_name' => 'Paylaşım ismi', + 'share_url' => 'Paylaşım URL si', + 'title' => 'Paylaşım', + 'twitter' => 'Twitter', + 'wallabag' => 'wallabag', + ), + 'shortcut' => array( + '_' => 'Kısayollar', + 'article_action' => 'Makale eylemleri', + 'auto_share' => 'Paylaş', + 'auto_share_help' => 'Sadece 1 paylaşım modu varsa bu kullanılır. Yoksa kendi paylaşım numaraları ile kullanılır.', + 'close_dropdown' => 'Menüleri kapat', + 'collapse_article' => 'Kapat', + 'first_article' => 'İlk makaleyi atla', + 'focus_search' => 'Arama kutusuna eriş', + 'help' => 'Dokümantasyonu göster', + 'javascript' => 'Kısayolları kullanabilmek için JavaScript aktif olmalıdır', + 'last_article' => 'Son makaleyi atla', + 'load_more' => 'Daha fazla makale yükle', + 'mark_read' => 'Okundu olarak işaretle', + 'mark_favorite' => 'Favori olarak işaretle', + 'navigation' => 'Genel eylemler', + 'navigation_help' => '"Shift" tuşu ile kısayollar akışlar için geçerli olur.
    "Alt" tuşu ile kısayollar kategoriler için geçerli olur.', + 'next_article' => 'Sonraki makaleye geç', + 'other_action' => 'Diğer eylemler', + 'previous_article' => 'Önceki makaleye geç', + 'see_on_website' => 'Orijinal sitede göster', + 'shift_for_all_read' => '+ shift tuşu ile tüm makaleler okundu olarak işaretlenir', + 'title' => 'Kısayollar', + 'user_filter' => 'Kullanıcı filtrelerine eriş', + 'user_filter_help' => 'Eğer tek filtre varsa o kullanılır. Yoksa filtrelerin kendi numaralarıyla kullanılır.', + ), + 'user' => array( + 'articles_and_size' => '%s makale (%s)', + 'current' => 'Mevcut kullanıcı', + 'is_admin' => 'yöneticidir', + 'users' => 'Kullanıcılar', + ), +); -- cgit v1.2.3 From 2d3c4970f2edb170891c36dab78fec6f9341313c Mon Sep 17 00:00:00 2001 From: hckweb Date: Tue, 9 Feb 2016 20:28:36 +0200 Subject: Create feedback.php --- app/i18n/tr/feedback.php | 110 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 app/i18n/tr/feedback.php (limited to 'app/i18n') diff --git a/app/i18n/tr/feedback.php b/app/i18n/tr/feedback.php new file mode 100644 index 000000000..0572c6da1 --- /dev/null +++ b/app/i18n/tr/feedback.php @@ -0,0 +1,110 @@ + array( + 'optimization_complete' => 'Optimizasyon tamamlandı', + ), + 'access' => array( + 'denied' => 'Bu sayfaya erişim yetkiniz yok', + 'not_found' => 'Varolmayan bir sayfa arıyorsunuz', + ), + 'auth' => array( + 'form' => array( + 'not_set' => 'Sistem yapılandırma kimlik doğrulaması sırasında hata oldu. Lütfen daha sonra tekrar deneyin.', + 'set' => 'Kimlik doğrulama sistemi tamamnaldı.', + ), + 'login' => array( + 'invalid' => 'Giriş geçersiz', + 'success' => 'Bağlantı kuruldu', + ), + 'logout' => array( + 'success' => 'Bağlantı koptu', + ), + 'no_password_set' => 'Yönetici şifresi ayarlanmadı. Bu özellik kullanıma uygun değil.', + 'not_persona' => 'Sadece Persona sistem sıfırlanabilir.', + ), + 'conf' => array( + 'error' => 'Yapılandırma ayarları kaydedilirken hata oluştu', + 'query_created' => 'Sorgu "%s" oluşturuldu.', + 'shortcuts_updated' => 'Kısayollar yenilendi', + 'updated' => 'Yapılandırm ayarları yenilendi', + ), + 'extensions' => array( + 'already_enabled' => '%s zaten aktif', + 'disable' => array( + 'ko' => '%s gösterilemiyor. Detaylar için FressRSS log kayıtlarını kontrol edin.', + 'ok' => '%s pasif', + ), + 'enable' => array( + 'ko' => '%s aktifleştirilemiyor. Detaylar için FressRSS log kayıtlarını kontrol edin.', + 'ok' => '%s aktif', + ), + 'no_access' => '%s de yetkiniz yok', + 'not_enabled' => '%s henüz aktif değil', + 'not_found' => '%s bulunmamaktadır', + ), + 'import_export' => array( + 'export_no_zip_extension' => 'Zip eklentisi mevcut sunucunuzda yer almıyor. Lütfen başka dosya formatında dışarı aktarmayı deneyin.', + 'feeds_imported' => 'Akışlarınız içe aktarıldı ve şimdi güncellenecek', + 'feeds_imported_with_errors' => 'Akışlarınız içeri aktarıldı ama bazı hatalar meydana geldi', + 'file_cannot_be_uploaded' => 'Dosya yüklenemedi!', + 'no_zip_extension' => 'Zip eklentisi mevcut sunucunuzda yer almıyor.', + 'zip_error' => 'Zip içe aktarımı sırasında hata meydana geldi.', + ), + 'sub' => array( + 'actualize' => 'Güncelleme', + 'category' => array( + 'created' => 'Kategori %s oluşturuldu.', + 'deleted' => 'Kategori silindi.', + 'emptied' => 'Kategori boşaltıldı', + 'error' => 'Kategori güncellenemedi', + 'name_exists' => 'Kategori ismi zaten bulunmakta.', + 'no_id' => 'Kategori id sinden emin olmalısınız.', + 'no_name' => 'Kategori ismi boş olamaz.', + 'not_delete_default' => 'Öntanımlı kategoriyi silemezsiniz!', + 'not_exist' => 'Kategori bulunmamakta!', + 'over_max' => 'Kategori limitini aştınız (%d)', + 'updated' => 'Karegori güncellendi.', + ), + 'feed' => array( + 'actualized' => '%s güncellendi', + 'actualizeds' => 'RSS akışları güncellendi', + 'added' => '%s RSS akışı eklendi', + 'already_subscribed' => '%s için zaten aboneliğiniz bulunmakta', + 'deleted' => 'Akış silindi', + 'error' => 'Akış güncellenemiyor', + 'internal_problem' => 'RSS akışı eklenemiyor. Detaylar için FressRSS log kayıtlarını kontrol edin.', + 'invalid_url' => 'URL %s geçersiz', + 'marked_read' => 'Akışlar okundu olarak işaretlendi', + 'n_actualized' => '%d akışları güncellendi', + 'n_entries_deleted' => '%d makaleleri silindi', + 'no_refresh' => 'Yenilenecek akış yok…', + 'not_added' => '%s eklenemedi', + 'over_max' => 'Akış limitini aştınız (%d)', + 'updated' => 'Akış güncellendi', + ), + 'purge_completed' => 'Temizleme tamamlandı (%d makale silindi)', + ), + 'update' => array( + 'can_apply' => 'FreshRSS %s versiyonuna güncellenecek.', + 'error' => 'Güncelleme işlemi sırasında hata: %s', + 'file_is_nok' => '%s klasör yetkisini kontrol edin. HTTP yazma yetkisi olmalı', + 'finished' => 'Güncelleme tamamlandı!', + 'none' => 'Güncelleme yok', + 'server_not_found' => 'Güncelleme sunucusu bulunamadı. [%s]', + ), + 'user' => array( + 'created' => array( + '_' => '%s kullanıcısı oluşturuldu', + 'error' => '%s kullanıcısı oluşturulamadı', + ), + 'deleted' => array( + '_' => '%s kullanıcısı silindi', + 'error' => '%s kullanıcısı silinemedi', + ), + ), + 'profile' => array( + 'error' => 'Profiliniz düzenlenemedi', + 'updated' => 'Profiliniz düzenlendi', + ), +); -- cgit v1.2.3 From 0e84a859e6ee66a42ba7aab811ef46e4044d5544 Mon Sep 17 00:00:00 2001 From: hckweb Date: Tue, 9 Feb 2016 20:28:59 +0200 Subject: Create gen.php --- app/i18n/tr/gen.php | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 app/i18n/tr/gen.php (limited to 'app/i18n') diff --git a/app/i18n/tr/gen.php b/app/i18n/tr/gen.php new file mode 100644 index 000000000..7284f132b --- /dev/null +++ b/app/i18n/tr/gen.php @@ -0,0 +1,183 @@ + array( + 'actualize' => 'Yenile', + 'back_to_rss_feeds' => '← RSS akışlarınız için geri gidin', + 'cancel' => 'İptal', + 'create' => 'Oluştur', + 'disable' => 'Pasif', + 'empty' => 'Boş', + 'enable' => 'Aktif', + 'export' => 'Dışa Aktar', + 'filter' => 'Filtrele', + 'import' => 'İçe Aktar', + 'manage' => 'Yönet', + 'mark_read' => 'Okundu olarak işaretle', + 'mark_favorite' => 'Favoriye ekle', + 'remove' => 'Sil', + 'see_website' => 'Siteyi gör', + 'submit' => 'Onayla', + 'truncate' => 'Tüm makaleleri sil', + ), + 'auth' => array( + 'email' => 'Email adresleri', + 'keep_logged_in' => '(1 ay) oturumu açık tut', + 'login' => 'Giriş', + 'login_persona' => 'Persona ile giriş yap', + 'login_persona_problem' => 'Persona ile bağlantı sorununuz mu var ?', + 'logout' => 'Çıkış', + 'password' => array( + '_' => 'Şifre', + 'format' => 'En az 7 karakter', + ), + 'registration' => array( + '_' => 'Yeni hesap', + 'ask' => 'Yeni bir hesap oluştur', + 'title' => 'Hesap oluşturma', + ), + 'reset' => 'Kimlik doğrulama sıfırla', + 'username' => array( + '_' => 'Kullancı adı', + 'admin' => 'Yönetici kullanıcı adı', + 'format' => 'en fazla 16 alfanümerik karakter', + ), + 'will_reset' => 'Kimlik doğrulama sistemi sıfırlanacak: Persone yerine bir form kullanılacak.', + ), + 'date' => array( + 'Apr' => '\\N\\i\\s\\a\\n', + 'Aug' => '\\A\\ğ\\u\\s\\t\\o\\s', + 'Dec' => '\\A\\r\\a\\l\\ı\\k', + 'Feb' => '\\Ş\\u\\b\\a\\t', + 'Jan' => '\\O\\c\\a\\k', + 'Jul' => '\\T\\e\\m\\m\\u\\z', + 'Jun' => '\\H\\a\\z\\i\\r\\a\\n', + 'Mar' => '\\M\\a\\r\\t', + 'May' => '\\M\\a\\y\\ı\\s', + 'Nov' => '\\K\\a\\s\\ı\\m', + 'Oct' => '\\E\\k\\i\\m', + 'Sep' => '\\E\\y\\l\\ü\\l', + 'apr' => 'nis', + 'april' => 'Nis', + 'aug' => 'ağu', + 'august' => 'Ağu', + 'before_yesterday' => 'Dünden önceki gün', + 'dec' => 'ara', + 'december' => 'Ara', + 'feb' => 'şub', + 'february' => 'Şub', + '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' => 'Cum', + 'jan' => 'oca', + 'january' => 'Oca', + 'jul' => 'tem', + 'july' => 'Tem', + 'jun' => 'haz', + 'june' => 'Haz', + 'last_3_month' => 'Son 3 ay', + 'last_6_month' => 'Son 6 ay', + 'last_month' => 'Geçen ay', + 'last_week' => 'Geçen hafta', + 'last_year' => 'Geçen yıl', + 'mar' => 'mar', + 'march' => 'Mar', + 'may' => 'May', + 'mon' => 'Pzt', + 'month' => 'ay', + 'nov' => 'kas', + 'november' => 'Kas', + 'oct' => 'ekm', + 'october' => 'Ekm', + 'sat' => 'Cts', + 'sep' => 'eyl', + 'september' => 'Eyl', + 'sun' => 'Pzr', + 'thu' => 'Per', + 'today' => 'Bugün', + 'tue' => 'Sal', + 'wed' => 'Çar', + 'yesterday' => 'Dün', + ), + 'freshrss' => array( + '_' => 'FreshRSS', + 'about' => 'FreshRSS hakkında', + ), + 'js' => array( + 'category_empty' => 'Boş kategori', + 'confirm_action' => 'Bunu yapmak istediğinize emin misiniz ? Daha sonra iptal edilemez!', + 'confirm_action_feed_cat' => 'Bunu yapmak istediğinize emin misiniz ? Favorileriniz ve sorgularınız silinecek. Daha sonra iptal edilemez!', + 'feedback' => array( + 'body_new_articles' => 'FreshRSS de okunmaz üzere \\d yeni makale var.', + 'request_failed' => 'Hata. İnternet bağlantınızı kontrol edin.', + 'title_new_articles' => 'FreshRSS: yeni makaleler!', + ), + 'new_article' => 'Yeni makaleler mevcut. Sayfayı yenilemek için tıklayın.', + 'should_be_activated' => 'JavaScript aktif olmalıdır.', + ), + 'lang' => array( + 'cz' => 'Čeština', + 'de' => 'Deutsch', + 'en' => 'English', + 'fr' => 'Français', + 'it' => 'Italiano', + 'nl' => 'Nederlands', + 'tr' => 'Türkçe', + ), + 'menu' => array( + 'about' => 'Hakkında', + 'admin' => 'Yönetim', + 'archiving' => 'Arşiv', + 'authentication' => 'Kimlik doğrulama', + 'check_install' => 'Kurulum kontrolü', + 'configuration' => 'Yapılandırma', + 'display' => 'Görünüm', + 'extensions' => 'Eklentiler', + 'logs' => 'Log kayıtları', + 'queries' => 'Kullanıcı sorguları', + 'reading' => 'Okuma', + 'search' => 'Kelime veya #etiket ara', + 'sharing' => 'Paylaşım', + 'shortcuts' => 'Kısayollar', + 'stats' => 'İstatistikler', + 'system' => 'Sistem yapılandırması', + 'update' => 'Güncelleme', + 'user_management' => 'Kullanıcıları yönet', + 'user_profile' => 'Profil', + ), + 'pagination' => array( + 'first' => 'İlk', + 'last' => 'Son', + 'load_more' => 'Daha fazla makale yükle', + 'mark_all_read' => 'Tümünü okundu say', + 'next' => 'Sonraki', + 'nothing_to_load' => 'Başka makale yok', + 'previous' => 'Önceki', + ), + 'share' => array( + 'blogotext' => 'Blogotext', + 'diaspora' => 'Diaspora*', + 'email' => 'Email', + 'facebook' => 'Facebook', + 'g+' => 'Google+', + 'movim' => 'Movim', + 'print' => 'Print', + 'shaarli' => 'Shaarli', + 'twitter' => 'Twitter', + 'wallabag' => 'wallabag', + 'jdh' => 'Journal du hacker', + ), + 'short' => array( + 'attention' => 'Tehlike!', + 'blank_to_disable' => 'Devredışı bırakmak için boş bırakın', + 'by_author' => '%s tarafından', + 'by_default' => 'Öntanımlı', + 'damn' => 'Hay aksi!', + 'default_category' => 'Kategorisiz', + 'no' => 'Hayır', + 'not_applicable' => 'Uygun değil', + 'ok' => 'Tamam!', + 'or' => 'ya da', + 'yes' => 'Evet', + ), +); -- cgit v1.2.3 From 59a69d521da4f01f62f802cbfda7df8e01a4b2c0 Mon Sep 17 00:00:00 2001 From: hckweb Date: Tue, 9 Feb 2016 20:29:26 +0200 Subject: Create index.php --- app/i18n/tr/index.php | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 app/i18n/tr/index.php (limited to 'app/i18n') diff --git a/app/i18n/tr/index.php b/app/i18n/tr/index.php new file mode 100644 index 000000000..9912203c8 --- /dev/null +++ b/app/i18n/tr/index.php @@ -0,0 +1,61 @@ + array( + '_' => 'Hakkında', + 'agpl3' => 'AGPL 3', + 'bugs_reports' => 'Hata raporu', + 'credits' => 'Tanıtım', + 'credits_content' => 'Bu frameworkü kullanmamasına rağmen FreshRSS bazı tasarım ögelerini Bootstrap dan almıştır. İkonlar GNOME projesinden alınmıştır. Open Sans yazı tipi Steve Matteson tarafından oluşturulmuştur. Site ikonları getFavicon API ile oluşturuldu. FreshRSS bir PHP framework olan Minz i temel alır.', + 'freshrss_description' => 'FreshRSS Kriss Feed veya Leed gibi kendi hostunuzda çalışan bir RSS akış toplayıcısıdır. Güçlü ve yapılandırılabilir araçlarıyla basit ve kullanımı kolay bir uygulamadır.', + 'github' => 'Github sayfası', + 'license' => 'Lisans', + 'project_website' => 'Proje sayfası', + 'title' => 'Hakkında', + 'version' => 'Versiyon', + 'website' => 'Website', + ), + 'feed' => array( + 'add' => 'Akış ekleyebilirsin.', + 'empty' => 'Gösterilecek makale yok.', + 'rss_of' => 'RSS feed of %s', + 'title' => 'RSS akışlarınız', + 'title_global' => 'Global görünüm', + 'title_fav' => 'Favorilerin', + ), + 'log' => array( + '_' => 'Log Kayıtları', + 'clear' => 'Log kayıt dosyasını temizle', + 'empty' => 'Log kayır dosyası boş', + 'title' => 'Log Kayıtları', + ), + 'menu' => array( + 'about' => 'FreshRSS hakkında', + 'add_query' => 'Sorgu ekle', + 'before_one_day' => 'Bir gün önce', + 'before_one_week' => 'Bir hafta önce', + 'favorites' => 'Favoriler (%s)', + 'global_view' => 'Global görünüm', + 'main_stream' => 'Ana akış', + 'mark_all_read' => 'Hepsini okundu olarak işaretle', + 'mark_cat_read' => 'Kategoriyi okundu olarak işaretle', + 'mark_feed_read' => 'Akışı okundu olarak işaretle', + 'newer_first' => 'Önce yeniler', + 'non-starred' => 'Favori dışındakileri göster', + 'normal_view' => 'Normal görünüm', + 'older_first' => 'Önce eskiler', + 'queries' => 'Kullanıcı sorguları', + 'read' => 'Okunmuşları göster', + 'reader_view' => 'Okuma görünümü', + 'rss_view' => 'RSS akışı', + 'search_short' => 'Ara', + 'starred' => 'Favorileri göster', + 'stats' => 'İstatistikler', + 'subscription' => 'Abonelik yönetimi', + 'unread' => 'Okunmamışları göster', + ), + 'share' => 'Share', + 'tag' => array( + 'related' => 'İlgili etiketler', + ), +); -- cgit v1.2.3 From c03ceb107eea4ca90e931bf1018e7315ab2049c3 Mon Sep 17 00:00:00 2001 From: hckweb Date: Tue, 9 Feb 2016 20:29:48 +0200 Subject: Create install.php --- app/i18n/tr/install.php | 113 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 app/i18n/tr/install.php (limited to 'app/i18n') diff --git a/app/i18n/tr/install.php b/app/i18n/tr/install.php new file mode 100644 index 000000000..96c16931a --- /dev/null +++ b/app/i18n/tr/install.php @@ -0,0 +1,113 @@ + array( + 'finish' => 'Kurulumu tamamla', + 'fix_errors_before' => 'Lütfen sonraki adıma geçmek için hataları düzeltin.', + 'keep_install' => 'Önceki kuruluma devam et', + 'next_step' => 'Sonraki adım', + 'reinstall' => 'FreshRSS i yeniden yükle', + ), + 'auth' => array( + 'email_persona' => 'Giriş email adresi
    (Mozilla Persona için)', + 'form' => 'Web formu (geleneksel, JavaScript gerektirir)', + 'http' => 'HTTP (ileri kullanıcılar için, HTTPS)', + 'none' => 'Hiçbiri (tehlikeli)', + 'password_form' => 'Şifre
    (Tarayıcı girişi için)', + 'password_format' => 'En az 7 karakter', + 'persona' => 'Mozilla Persona (modern, JavaScript gerektirir)', + 'type' => 'Kimlik doğrulama yöntemi', + ), + 'bdd' => array( + '_' => 'Veritabanı', + 'conf' => array( + '_' => 'Veritabanı yapılandırılması', + 'ko' => 'Veritabanı bilginizi doğrulayın.', + 'ok' => 'Veritabanı yapılandırılması kayıt edildi.', + ), + 'host' => 'Sunucu', + 'prefix' => 'Tablo ön eki', + 'password' => 'HTTP şifre', + 'type' => 'Veritabanı türü', + 'username' => 'HTTP kullanıcı adı', + ), + 'check' => array( + '_' => 'Kontroller', + 'already_installed' => 'FreshRSS zaten yüklü!', + 'cache' => array( + 'nok' => './data/cache klasör yetkisini kontrol edin. HTTP yazma yetkisi olmalı', + 'ok' => 'Önbellek klasörü yetkileri sorunsuz.', + ), + 'ctype' => array( + 'nok' => 'Karakter yazım kontrolü için kütüphane eksik (php-ctype).', + 'ok' => 'Karakter yazım kontrolü için kütüphane sorunsuz (ctype).', + ), + 'curl' => array( + 'nok' => 'cURL eksik (php5-curl package).', + 'ok' => 'cURL eklentisi sorunsuz.', + ), + 'data' => array( + 'nok' => './data klasör yetkisini kontrol edin. HTTP yazma yetkisi olmalı', + 'ok' => 'Veri klasörü yetkileri sorunsuz.', + ), + 'dom' => array( + 'nok' => 'DOM kütüpbanesi eksik (php-xml package).', + 'ok' => 'DOM kütüphanesi sorunsuz.', + ), + 'favicons' => array( + 'nok' => './data/favicons klasör yetkisini kontrol edin. HTTP yazma yetkisi olmalı', + 'ok' => 'Site ikonu klasörü yetkileri sorunsuz.', + ), + 'http_referer' => array( + 'nok' => 'Lütfen HTTP REFERER değiştirmediğinize emin olun.', + 'ok' => 'HTTP REFERER ve sunucunuz arası iletişim sorunsuz.', + ), + 'minz' => array( + 'nok' => 'Minz framework eksik.', + 'ok' => 'Minz framework sorunsuz.', + ), + 'pcre' => array( + 'nok' => 'Düzenli ifadeler kütüphanesi eksik (php-pcre).', + 'ok' => 'Düzenli ifadeler kütüphanesi sorunsuz (PCRE).', + ), + 'pdo' => array( + 'nok' => 'PDO veya PDO destekli bir sürücü eksik (pdo_mysql, pdo_sqlite).', + 'ok' => 'PDO sorunsuz (pdo_mysql, pdo_sqlite).', + ), + 'persona' => array( + 'nok' => './data/persona klasör yetkisini kontrol edin. HTTP yazma yetkisi olmalı', + 'ok' => 'Mozilla Persona klasörü yetkileri sorunsuz.', + ), + 'php' => array( + 'nok' => 'PHP versiyonunuz %s fakat FreshRSS için gerekli olan en düşük sürüm %s.', + 'ok' => 'PHP versiyonunuz %s, FreshRSS ile tam uyumlu.', + ), + 'users' => array( + 'nok' => './data/users klasör yetkisini kontrol edin. HTTP yazma yetkisi olmalı', + 'ok' => 'Kullanıcılar klasörü yetkileri sorunsuz.', + ), + ), + 'conf' => array( + '_' => 'Genel yapılandırma', + 'ok' => 'Genel yapılandırma ayarları kayıt edildi.', + ), + 'congratulations' => 'Tebrikler!', + 'default_user' => 'Öntanımlı kullanıcı adı (en fazla 16 alfanümerik karakter)', + 'delete_articles_after' => 'Makaleleri şu süre sonunda sil', + 'fix_errors_before' => 'Lütfen sonraki adıma geçmek için hataları düzeltin.', + 'javascript_is_better' => 'FreshRSS JavaScript ile daha işlevseldir', + 'js' => array( + 'confirm_reinstall' => 'FressRSS i yeniden kurarak önceki yapılandırma ayarlarınızı kaybedeceksiniz. Devam etmek istiyor musunuz ?', + ), + 'language' => array( + '_' => 'Dil', + 'choose' => 'FreshRSS için bir dil seçin', + 'defined' => 'Dil belirlendi.', + ), + 'not_deleted' => 'Hata meydana geldi; %s dosyasını elle silmelisiniz.', + 'ok' => 'Kurulum başarıyla tamamlandı.', + 'step' => 'adım %d', + 'steps' => 'Adımlar', + 'title' => 'Kurulum · FreshRSS', + 'this_is_the_end' => 'Son Adım', +); -- cgit v1.2.3 From d1fae5145b122f0871f434e5007584fa6cb48dca Mon Sep 17 00:00:00 2001 From: hckweb Date: Tue, 9 Feb 2016 20:30:05 +0200 Subject: Create sub.php --- app/i18n/tr/sub.php | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 app/i18n/tr/sub.php (limited to 'app/i18n') diff --git a/app/i18n/tr/sub.php b/app/i18n/tr/sub.php new file mode 100644 index 000000000..5ab367ebb --- /dev/null +++ b/app/i18n/tr/sub.php @@ -0,0 +1,62 @@ + array( + '_' => 'Kategori', + 'add' => 'Kategori ekle', + 'empty' => 'Boş kategori', + 'new' => 'Yeni kategori', + ), + 'feed' => array( + 'add' => 'RSS akışı ekle', + 'advanced' => 'Gelişmiş', + 'archiving' => 'Arşiv', + 'auth' => array( + 'configuration' => 'Giriş', + 'help' => 'HTTP korumalı RSS akışlarına bağlantı izni sağlar', + 'http' => 'HTTP Kimlik Doğrulama', + 'password' => 'HTTP şifre', + 'username' => 'HTTP kullanıcı adı', + ), + 'css_help' => 'Dikkat, daha çok zaman gerekir!', + 'css_path' => 'Makaleleri kendi CSS görünümü ile göster', + 'description' => 'Tanım', + 'empty' => 'Bu akış boş. Lütfen akışın aktif olduğuna emin olun.', + 'error' => 'Bu akışda bir hatayla karşılaşıldı. Lütfen akışın sürekli ulaşılabilir olduğuna emin olun.', + 'in_main_stream' => 'Ana akışda göster', + 'informations' => 'Bilgi', + 'keep_history' => 'En az tutulacak makale sayısı', + 'moved_category_deleted' => 'Bir kategoriyi silerseniz, içerisindeki akışlar %s içerisine yerleşir.', + 'no_selected' => 'Hiçbir akış seçilmedi.', + 'number_entries' => '%d makale', + 'stats' => 'İstatistikler', + 'think_to_add' => 'Akış ekleyebilirsiniz.', + 'title' => 'Başlık', + 'title_add' => 'RSS akışı ekle', + 'ttl' => 'Şu kadar süreden fazla otomatik yenileme yapma', + 'url' => 'Akış URL', + 'validator' => 'Akış geçerliliğini kontrol edin', + 'website' => 'Site URL', + 'pubsubhubbub' => 'PubSubHubbub ile anlık bildirim', + ), + 'import_export' => array( + 'export' => 'Dışa aktar', + 'export_opml' => 'Akış listesini dışarı aktar (OPML)', + 'export_starred' => 'Favorileri dışarı aktar', + 'feed_list' => '%s makalenin listesi', + 'file_to_import' => 'Dosyadan içe aktar
    (OPML, Json or Zip)', + 'file_to_import_no_zip' => 'Dosyadan içe aktar
    (OPML or Json)', + 'import' => 'İçe aktar', + 'starred_list' => 'Favori makaleleirn listesi', + 'title' => 'İçe / dışa aktar', + ), + 'menu' => array( + 'bookmark' => 'Abonelik (FreshRSS yer imleri)', + 'import_export' => 'İçe / dışa aktar', + 'subscription_management' => 'Abonelik yönetimi', + ), + 'title' => array( + '_' => 'Abonelik yönetimi', + 'feed_management' => 'RSS akış yönetimi', + ), +); -- cgit v1.2.3 From b4238fa165460e8683cc9b251690247dda57b026 Mon Sep 17 00:00:00 2001 From: hckweb Date: Tue, 9 Feb 2016 20:34:17 +0200 Subject: Update gen.php --- app/i18n/nl/gen.php | 1 + 1 file changed, 1 insertion(+) (limited to 'app/i18n') diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index 21d1fba22..bc4fd9201 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -122,6 +122,7 @@ return array( 'fr' => 'Français', 'it' => 'Italiano', 'nl' => 'Nederlands', + 'tr' => 'Türkçe', ), 'menu' => array( 'about' => 'Over', -- cgit v1.2.3 From 837d77b52547c987092905f99511bcce0dcf0d5f Mon Sep 17 00:00:00 2001 From: hckweb Date: Tue, 9 Feb 2016 20:35:31 +0200 Subject: Adding Turkish language --- app/i18n/nl/gen.php | 1 - 1 file changed, 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index bc4fd9201..21d1fba22 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -122,7 +122,6 @@ return array( 'fr' => 'Français', 'it' => 'Italiano', 'nl' => 'Nederlands', - 'tr' => 'Türkçe', ), 'menu' => array( 'about' => 'Over', -- cgit v1.2.3 From 27f54f44fe0f84964702925b7b1612dcdf8a6997 Mon Sep 17 00:00:00 2001 From: hckweb Date: Tue, 9 Feb 2016 20:36:33 +0200 Subject: Adding Turkish language --- app/i18n/nl/gen.php | 1 + 1 file changed, 1 insertion(+) (limited to 'app/i18n') diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index 21d1fba22..bc4fd9201 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -122,6 +122,7 @@ return array( 'fr' => 'Français', 'it' => 'Italiano', 'nl' => 'Nederlands', + 'tr' => 'Türkçe', ), 'menu' => array( 'about' => 'Over', -- cgit v1.2.3 From 89037e5fec5029826b73e5413e0f1cb6856f3808 Mon Sep 17 00:00:00 2001 From: hckweb Date: Tue, 9 Feb 2016 20:36:38 +0200 Subject: Adding Turkish language --- app/i18n/it/gen.php | 1 + 1 file changed, 1 insertion(+) (limited to 'app/i18n') diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index 1ac6b04a1..bd311aa12 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -122,6 +122,7 @@ return array( 'fr' => 'Français', 'it' => 'Italiano', 'nl' => 'Nederlands', + 'tr' => 'Türkçe', ), 'menu' => array( 'about' => 'Informazioni', -- cgit v1.2.3 From eeb7fd99090d530f3fe0af39436c714c7a3914b3 Mon Sep 17 00:00:00 2001 From: hckweb Date: Tue, 9 Feb 2016 20:36:42 +0200 Subject: Adding Turkish language --- app/i18n/fr/gen.php | 1 + 1 file changed, 1 insertion(+) (limited to 'app/i18n') diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 1e738e949..f8e4ac7ee 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -122,6 +122,7 @@ return array( 'fr' => 'Français', 'it' => 'Italiano', 'nl' => 'Nederlands', + 'tr' => 'Türkçe', ), 'menu' => array( 'about' => 'À propos', -- cgit v1.2.3 From ff510a1282cd014f846c09fa7f84e62112dbc432 Mon Sep 17 00:00:00 2001 From: hckweb Date: Tue, 9 Feb 2016 20:36:47 +0200 Subject: Adding Turkish language --- app/i18n/en/gen.php | 1 + 1 file changed, 1 insertion(+) (limited to 'app/i18n') diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 3d66938d1..f71684688 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -122,6 +122,7 @@ return array( 'fr' => 'Français', 'it' => 'Italiano', 'nl' => 'Nederlands', + 'tr' => 'Türkçe', ), 'menu' => array( 'about' => 'About', -- cgit v1.2.3 From 2a7b2ef39a442162329c32578e76d6905c1c91da Mon Sep 17 00:00:00 2001 From: hckweb Date: Tue, 9 Feb 2016 20:36:51 +0200 Subject: Adding Turkish language --- app/i18n/de/gen.php | 1 + 1 file changed, 1 insertion(+) (limited to 'app/i18n') diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index 4953610ba..fb09e8598 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -122,6 +122,7 @@ return array( 'fr' => 'Français', 'it' => 'Italiano', 'nl' => 'Nederlands', + 'tr' => 'Türkçe', ), 'menu' => array( 'about' => 'Über', -- cgit v1.2.3 From 1cdfaed8020cfa5413b606f71ee178da7a74953d Mon Sep 17 00:00:00 2001 From: hckweb Date: Tue, 9 Feb 2016 20:36:55 +0200 Subject: Adding Turkish language --- app/i18n/cz/gen.php | 1 + 1 file changed, 1 insertion(+) (limited to 'app/i18n') diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index 4d34a8173..ca90cff0c 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -122,6 +122,7 @@ return array( 'fr' => 'Français', 'it' => 'Italiano', 'nl' => 'Nederlands', + 'tr' => 'Türkçe', ), 'menu' => array( 'about' => 'O aplikaci', -- cgit v1.2.3 From 41622ec698049d618685bd3dc9a9122463ed0705 Mon Sep 17 00:00:00 2001 From: ASM Date: Wed, 17 Feb 2016 22:14:36 +0300 Subject: Bumping #1029, translated install.php --- app/i18n/ru/admin.php | 183 --------------------------------------- app/i18n/ru/conf.php | 174 ------------------------------------- app/i18n/ru/feedback.php | 110 ----------------------- app/i18n/ru/gen.php | 181 -------------------------------------- app/i18n/ru/index.php | 61 ------------- app/i18n/ru/install.php | 113 ------------------------ app/i18n/ru/sub.php | 62 ------------- app/i18n/ru_RU.utf8/admin.php | 183 +++++++++++++++++++++++++++++++++++++++ app/i18n/ru_RU.utf8/conf.php | 174 +++++++++++++++++++++++++++++++++++++ app/i18n/ru_RU.utf8/feedback.php | 110 +++++++++++++++++++++++ app/i18n/ru_RU.utf8/gen.php | 181 ++++++++++++++++++++++++++++++++++++++ app/i18n/ru_RU.utf8/index.php | 61 +++++++++++++ app/i18n/ru_RU.utf8/install.php | 113 ++++++++++++++++++++++++ app/i18n/ru_RU.utf8/sub.php | 62 +++++++++++++ 14 files changed, 884 insertions(+), 884 deletions(-) delete mode 100644 app/i18n/ru/admin.php delete mode 100644 app/i18n/ru/conf.php delete mode 100644 app/i18n/ru/feedback.php delete mode 100644 app/i18n/ru/gen.php delete mode 100644 app/i18n/ru/index.php delete mode 100644 app/i18n/ru/install.php delete mode 100644 app/i18n/ru/sub.php create mode 100644 app/i18n/ru_RU.utf8/admin.php create mode 100644 app/i18n/ru_RU.utf8/conf.php create mode 100644 app/i18n/ru_RU.utf8/feedback.php create mode 100644 app/i18n/ru_RU.utf8/gen.php create mode 100644 app/i18n/ru_RU.utf8/index.php create mode 100644 app/i18n/ru_RU.utf8/install.php create mode 100644 app/i18n/ru_RU.utf8/sub.php (limited to 'app/i18n') diff --git a/app/i18n/ru/admin.php b/app/i18n/ru/admin.php deleted file mode 100644 index dfea5b3cb..000000000 --- a/app/i18n/ru/admin.php +++ /dev/null @@ -1,183 +0,0 @@ - array( - 'allow_anonymous' => 'Разрешить анонимное чтение статей для пользователя по умолчанию (%s)', - 'allow_anonymous_refresh' => 'Разрешить анонимное обновление статей', - 'api_enabled' => 'Включить доступ к API (необходимо для мобильных приложений)', - 'form' => 'На основе веб-формы (традиционный, необходим JavaScript)', - 'http' => 'HTTP (для продвинутых пользователей - по HTTPS)', - 'none' => 'Без аутентификации (небезопасный)', - 'persona' => 'Mozilla Persona (новый, необходим JavaScript)', - 'title' => 'Аутентификации', - 'title_reset' => 'Сброс аутентицикации', - 'token' => 'Токен аутентификации', - 'token_help' => 'Разрешает доступ к RSS ленте пользователя по умолчанию без аутентификации:', - 'type' => 'Метод аутентификации', - 'unsafe_autologin' => 'Разрешить небезопасный автоматический вход с использованием следующего формата: ', - ), - 'check_install' => array( - 'cache' => array( - 'nok' => 'Проверьте права доступа к папке ./data/cache. Сервер HTTP должен иметь права на запись в эту папку', - 'ok' => 'Права на ./data/cache в порядке.', - ), - 'categories' => array( - 'nok' => 'Таблица категорий настроена неправильно.', - 'ok' => 'Таблица категорий настроена правильно.', - ), - 'connection' => array( - 'nok' => 'Подключение к базе данных не может быть установлено.', - 'ok' => 'Подключение к базе данных в порядке.', - ), - 'ctype' => array( - 'nok' => 'У вас не установлена библиотека для проверки типов символов (php-ctype).', - 'ok' => 'У вас не установлена библиотека для проверки типов символов (ctype).', - ), - 'curl' => array( - 'nok' => 'У вас не установлено расширение cURL (пакет php5-curl).', - 'ok' => 'У вас установлено расширение cURL.', - ), - 'data' => array( - 'nok' => 'Проверьте права доступа к папке ./data . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на ./data/ в порядке.', - ), - 'database' => 'Установка базы данных', - 'dom' => array( - 'nok' => 'У вас не установлена библиотека для просмотра DOM (пакет php-xml).', - 'ok' => 'У вас установлена библиотека для просмотра DOM.', - ), - 'entries' => array( - 'nok' => 'Таблица статей (entry) неправильно настроена.', - 'ok' => 'Таблица статей (entry) настроена правильно.', - ), - 'favicons' => array( - 'nok' => 'Проверьте права доступа к папке ./data/favicons . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку значков в порядке.', - ), - 'feeds' => array( - 'nok' => 'Таблица подписок (feed) неправильно настроена.', - 'ok' => 'Таблица подписок (feed) настроена правильно.', - ), - 'files' => 'Установка файлов', - 'json' => array( - 'nok' => 'У вас не установлена библиотека для работы с JSON (пакет php5-json).', - 'ok' => 'У вас установлена библиотека для работы с JSON.', - ), - 'minz' => array( - 'nok' => 'У вас не установлен фрейворк Minz.', - 'ok' => 'У вас установлен фрейворк Minz.', - ), - 'pcre' => array( - 'nok' => 'У вас не установлена необходимая библиотека для работы с регулярными выражениями (php-pcre).', - 'ok' => 'У вас установлена необходимая библиотека для работы с регулярными выражениями (PCRE).', - ), - 'pdo' => array( - 'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite).', - 'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite).', - ), - 'persona' => array( - 'nok' => 'Проверьте права доступа к папке ./data/persona . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку Mozilla Persona в порядке.', - ), - 'php' => array( - '_' => 'PHP installation', - 'nok' => 'У вас установлен PHP версии %s, но FreshRSS необходима версия не ниже %s.', - 'ok' => 'У вас установлен PHP версии %s, который совместим с FreshRSS.', - ), - 'tables' => array( - 'nok' => 'В базе данных отсуствует одна или больше таблица.', - 'ok' => 'Все таблицы есть в базе данных.', - ), - 'title' => 'Проверка установки и настройки', - 'tokens' => array( - 'nok' => 'Проверьте права доступа к папке ./data/tokens . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку tokens в порядке.', - ), - 'users' => array( - 'nok' => 'Проверьте права доступа к папке ./data/users . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку users в порядке.', - ), - 'zip' => array( - 'nok' => 'You lack ZIP extension (php5-zip package).', - 'ok' => 'You have ZIP extension.', - ), - ), - 'extensions' => array( - 'disabled' => 'Отключены', - 'empty_list' => 'Расширения не установлены', - 'enabled' => 'Включены', - 'no_configure_view' => 'Это расширение нельзя настроить.', - 'system' => array( - '_' => 'Системные расширения', - 'no_rights' => 'Системные расширения (у вас нет к ним доступа)', - ), - 'title' => 'Расширения', - 'user' => 'Расширения пользователя', - ), - 'stats' => array( - '_' => 'Статистика', - 'all_feeds' => 'Все подписки', - 'category' => 'Категория', - 'entry_count' => 'Количество статей', - 'entry_per_category' => 'Статей в категории', - 'entry_per_day' => 'Статей за день (за последние 30 дней)', - 'entry_per_day_of_week' => 'За неделю (в среднем - %.2f сообщений)', - 'entry_per_hour' => 'За час (в среднем - %.2f сообщений)', - 'entry_per_month' => 'За месяц (в среднем - %.2f сообщений)', - 'entry_repartition' => 'Перерасределение статей', - 'feed' => 'Подписка', - 'feed_per_category' => 'Подписок в категории', - 'idle' => 'Неактивные подписки', - 'main' => 'Основная статистика', - 'main_stream' => 'Основной поток', - 'menu' => array( - 'idle' => 'Неактивные подписки', - 'main' => 'Основная статистика', - 'repartition' => 'Перерасределение статей', - ), - 'no_idle' => 'Нет неактивных подписок!', - 'number_entries' => 'статей: %d', - 'percent_of_total' => '%% от всего', - 'repartition' => 'Перераспределение статей', - 'status_favorites' => 'Избранное', - 'status_read' => 'Читать', - 'status_total' => 'Всего', - 'status_unread' => 'Не прочитано', - 'title' => 'Статистика', - 'top_feed' => '10 лучших подписок', - ), - 'system' => array( - '_' => 'Системные настройки', - 'auto-update-url' => 'Адрес сервера для автоматического обновления', - 'instance-name' => 'Название этого сервера', - 'max-categories' => 'Количество категорий на пользователя', - 'max-feeds' => 'Количество статей на пользователя', - 'registration' => array( - 'help' => '0 означает неограниченное количество пользователей', - 'number' => 'Максимальное количество пользователей', - ), - ), - 'update' => array( - '_' => 'Обновление системы', - 'apply' => 'Применить', - 'check' => 'Проверить обновления', - 'current_version' => 'Ваша текущая версия FreshRSS: %s.', - 'last' => 'Последняя проверка: %s', - 'none' => 'Нечего обновлять', - 'title' => 'Обновить систему', - ), - 'user' => array( - 'articles_and_size' => '%s статей (%s)', - 'create' => 'Создать нового пользователя', - 'email_persona' => 'Адрес электронной почты для входа
    (for Mozilla Persona)', - 'language' => 'Язык', - 'number' => 'На данный момент создан %d аккаунт', - 'numbers' => 'На данный момент аккаунтов создано: %d', - 'password_form' => 'Пароль
    (для входа через Веб-форму)', - 'password_format' => 'Минимум 7 символов', - 'title' => 'Управление пользователями', - 'user_list' => 'Список пользователей', - 'username' => 'Имя пользователя', - 'users' => 'Пользователи', - ), -); diff --git a/app/i18n/ru/conf.php b/app/i18n/ru/conf.php deleted file mode 100644 index 69162932f..000000000 --- a/app/i18n/ru/conf.php +++ /dev/null @@ -1,174 +0,0 @@ - array( - '_' => 'Archiving', - 'advanced' => 'Advanced', - 'delete_after' => 'Remove articles after', - 'help' => 'More options are available in the individual feed settings', - 'keep_history_by_feed' => 'Minimum number of articles to keep by feed', - 'optimize' => 'Optimise 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', - 'delete' => array( - '_' => 'Account deletion', - 'warn' => 'Your account and all the related data will be deleted.', - ), - 'email_persona' => 'Login email address
    (for Mozilla Persona)', - 'password_api' => 'Password API
    (e.g., for mobile apps)', - 'password_form' => 'Password
    (for the Web-form login method)', - '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', - 'mark_updated_article_unread' => 'Mark updated articles as unread', - '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.
    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' => '+ shift 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/ru/feedback.php b/app/i18n/ru/feedback.php deleted file mode 100644 index c9189c0d0..000000000 --- a/app/i18n/ru/feedback.php +++ /dev/null @@ -1,110 +0,0 @@ - array( - 'optimization_complete' => 'Optimisation 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. Check FressRSS logs for details.', - 'ok' => '%s is now disabled', - ), - 'enable' => array( - 'ko' => '%s cannot be enabled. Check FressRSS logs 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' => 'Actualise', - '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' => '%s has been updated', - 'actualizeds' => 'RSS feeds have been updated', - 'added' => 'RSS feed %s has been added', - 'already_subscribed' => 'You have already subscribed to %s', - 'deleted' => 'Feed has been deleted', - 'error' => 'Feed cannot be updated', - 'internal_problem' => 'The RSS feed could not be added. Check FressRSS logs for details.', - 'invalid_url' => 'URL %s 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' => '%s 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 now be updated to the version %s.', - 'error' => 'The update process has encountered an error: %s', - 'file_is_nok' => 'Check permissions on %s 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/ru/gen.php b/app/i18n/ru/gen.php deleted file mode 100644 index d23b12f95..000000000 --- a/app/i18n/ru/gen.php +++ /dev/null @@ -1,181 +0,0 @@ - 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' => 'Filter', - '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( - 'email' => 'Email address', - 'keep_logged_in' => 'Keep me logged in (1 month)', - 'login' => 'Login', - 'login_persona' => 'Login with Persona', - 'login_persona_problem' => 'Connection problem with Persona?', - 'logout' => 'Logout', - 'password' => array( - '_' => 'Password', - 'format' => 'At least 7 characters', - ), - 'registration' => array( - '_' => 'New account', - 'ask' => 'Create an account?', - 'title' => 'Account creation', - ), - 'reset' => 'Authentication reset', - 'username' => array( - '_' => 'Username', - 'admin' => 'Administrator username', - 'format' => 'maximum 16 alphanumeric characters', - ), - '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( - 'cz' => 'Čeština', - 'de' => 'Deutsch', - 'en' => 'English', - 'fr' => 'Français', - 'it' => 'Italiano', - 'nl' => 'Nederlands', - ), - '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', - 'system' => 'System configuration', - '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+', - 'movim' => 'Movim', - 'print' => 'Print', - 'shaarli' => 'Shaarli', - 'twitter' => 'Twitter', - 'wallabag' => 'wallabag', - ), - 'short' => array( - 'attention' => 'Warning!', - 'blank_to_disable' => 'Leave blank to disable', - 'by_author' => 'By %s', - 'by_default' => 'By default', - 'damn' => 'Damn!', - 'default_category' => 'Uncategorized', - 'no' => 'No', - 'not_applicable' => 'Not available', - 'ok' => 'Ok!', - 'or' => 'or', - 'yes' => 'Yes', - ), -); diff --git a/app/i18n/ru/index.php b/app/i18n/ru/index.php deleted file mode 100644 index 80fa3d950..000000000 --- a/app/i18n/ru/index.php +++ /dev/null @@ -1,61 +0,0 @@ - array( - '_' => 'About', - 'agpl3' => 'AGPL 3', - 'bugs_reports' => 'Bugs reports', - 'credits' => 'Credits', - 'credits_content' => 'Some design elements come from Bootstrap although FreshRSS doesn’t use this framework. Icons come from GNOME project. Open Sans font police has been created by Steve Matteson. Favicons are collected with getFavicon API. FreshRSS is based on Minz, a PHP framework.', - 'freshrss_description' => 'FreshRSS is a RSS feeds aggregator to self-host like Kriss Feed or Leed. It is light and easy to take in hand while being powerful and configurable tool.', - 'github' => 'on Github', - '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/ru/install.php b/app/i18n/ru/install.php deleted file mode 100644 index b94fbc299..000000000 --- a/app/i18n/ru/install.php +++ /dev/null @@ -1,113 +0,0 @@ - array( - 'finish' => 'Complete installation', - 'fix_errors_before' => 'Please fix errors before skipping to the next step.', - 'keep_install' => 'Keep previous installation', - 'next_step' => 'Go to the next step', - 'reinstall' => 'Reinstall FreshRSS', - ), - 'auth' => array( - 'email_persona' => 'Login email address
    (for Mozilla Persona)', - 'form' => 'Web form (traditional, requires JavaScript)', - 'http' => 'HTTP (for advanced users with HTTPS)', - 'none' => 'None (dangerous)', - 'password_form' => 'Password
    (for the Web-form login method)', - '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', - 'already_installed' => 'We have detected that FreshRSS is already installed!', - 'cache' => array( - 'nok' => 'Check permissions on ./data/cache 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 ./data 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 ./data/favicons 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 ./data/persona 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 ./data/users 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 (maximum 16 alphanumeric characters)', - 'delete_articles_after' => 'Remove articles after', - 'fix_errors_before' => 'Please fix errors before skipping to the next step.', - 'javascript_is_better' => 'FreshRSS is more pleasant with JavaScript enabled', - 'js' => array( - 'confirm_reinstall' => 'You will lose your previous configuration by reinstalling FreshRSS. Are you sure you want to continue?', - ), - 'language' => array( - '_' => 'Language', - 'choose' => 'Choose a language for FreshRSS', - 'defined' => 'Language has been defined.', - ), - 'not_deleted' => 'Something went wrong; you must delete the file %s 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/ru/sub.php b/app/i18n/ru/sub.php deleted file mode 100644 index aaaa02827..000000000 --- a/app/i18n/ru/sub.php +++ /dev/null @@ -1,62 +0,0 @@ - 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 (caution, 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, its feeds are automatically classified under %s.', - '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', - 'pubsubhubbub' => 'Instant notification with PubSubHubbub', - ), - '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
    (OPML, Json or Zip)', - 'file_to_import_no_zip' => 'File to import
    (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/ru_RU.utf8/admin.php b/app/i18n/ru_RU.utf8/admin.php new file mode 100644 index 000000000..dfea5b3cb --- /dev/null +++ b/app/i18n/ru_RU.utf8/admin.php @@ -0,0 +1,183 @@ + array( + 'allow_anonymous' => 'Разрешить анонимное чтение статей для пользователя по умолчанию (%s)', + 'allow_anonymous_refresh' => 'Разрешить анонимное обновление статей', + 'api_enabled' => 'Включить доступ к API (необходимо для мобильных приложений)', + 'form' => 'На основе веб-формы (традиционный, необходим JavaScript)', + 'http' => 'HTTP (для продвинутых пользователей - по HTTPS)', + 'none' => 'Без аутентификации (небезопасный)', + 'persona' => 'Mozilla Persona (новый, необходим JavaScript)', + 'title' => 'Аутентификации', + 'title_reset' => 'Сброс аутентицикации', + 'token' => 'Токен аутентификации', + 'token_help' => 'Разрешает доступ к RSS ленте пользователя по умолчанию без аутентификации:', + 'type' => 'Метод аутентификации', + 'unsafe_autologin' => 'Разрешить небезопасный автоматический вход с использованием следующего формата: ', + ), + 'check_install' => array( + 'cache' => array( + 'nok' => 'Проверьте права доступа к папке ./data/cache. Сервер HTTP должен иметь права на запись в эту папку', + 'ok' => 'Права на ./data/cache в порядке.', + ), + 'categories' => array( + 'nok' => 'Таблица категорий настроена неправильно.', + 'ok' => 'Таблица категорий настроена правильно.', + ), + 'connection' => array( + 'nok' => 'Подключение к базе данных не может быть установлено.', + 'ok' => 'Подключение к базе данных в порядке.', + ), + 'ctype' => array( + 'nok' => 'У вас не установлена библиотека для проверки типов символов (php-ctype).', + 'ok' => 'У вас не установлена библиотека для проверки типов символов (ctype).', + ), + 'curl' => array( + 'nok' => 'У вас не установлено расширение cURL (пакет php5-curl).', + 'ok' => 'У вас установлено расширение cURL.', + ), + 'data' => array( + 'nok' => 'Проверьте права доступа к папке ./data . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на ./data/ в порядке.', + ), + 'database' => 'Установка базы данных', + 'dom' => array( + 'nok' => 'У вас не установлена библиотека для просмотра DOM (пакет php-xml).', + 'ok' => 'У вас установлена библиотека для просмотра DOM.', + ), + 'entries' => array( + 'nok' => 'Таблица статей (entry) неправильно настроена.', + 'ok' => 'Таблица статей (entry) настроена правильно.', + ), + 'favicons' => array( + 'nok' => 'Проверьте права доступа к папке ./data/favicons . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку значков в порядке.', + ), + 'feeds' => array( + 'nok' => 'Таблица подписок (feed) неправильно настроена.', + 'ok' => 'Таблица подписок (feed) настроена правильно.', + ), + 'files' => 'Установка файлов', + 'json' => array( + 'nok' => 'У вас не установлена библиотека для работы с JSON (пакет php5-json).', + 'ok' => 'У вас установлена библиотека для работы с JSON.', + ), + 'minz' => array( + 'nok' => 'У вас не установлен фрейворк Minz.', + 'ok' => 'У вас установлен фрейворк Minz.', + ), + 'pcre' => array( + 'nok' => 'У вас не установлена необходимая библиотека для работы с регулярными выражениями (php-pcre).', + 'ok' => 'У вас установлена необходимая библиотека для работы с регулярными выражениями (PCRE).', + ), + 'pdo' => array( + 'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite).', + 'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite).', + ), + 'persona' => array( + 'nok' => 'Проверьте права доступа к папке ./data/persona . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку Mozilla Persona в порядке.', + ), + 'php' => array( + '_' => 'PHP installation', + 'nok' => 'У вас установлен PHP версии %s, но FreshRSS необходима версия не ниже %s.', + 'ok' => 'У вас установлен PHP версии %s, который совместим с FreshRSS.', + ), + 'tables' => array( + 'nok' => 'В базе данных отсуствует одна или больше таблица.', + 'ok' => 'Все таблицы есть в базе данных.', + ), + 'title' => 'Проверка установки и настройки', + 'tokens' => array( + 'nok' => 'Проверьте права доступа к папке ./data/tokens . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку tokens в порядке.', + ), + 'users' => array( + 'nok' => 'Проверьте права доступа к папке ./data/users . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку users в порядке.', + ), + 'zip' => array( + 'nok' => 'You lack ZIP extension (php5-zip package).', + 'ok' => 'You have ZIP extension.', + ), + ), + 'extensions' => array( + 'disabled' => 'Отключены', + 'empty_list' => 'Расширения не установлены', + 'enabled' => 'Включены', + 'no_configure_view' => 'Это расширение нельзя настроить.', + 'system' => array( + '_' => 'Системные расширения', + 'no_rights' => 'Системные расширения (у вас нет к ним доступа)', + ), + 'title' => 'Расширения', + 'user' => 'Расширения пользователя', + ), + 'stats' => array( + '_' => 'Статистика', + 'all_feeds' => 'Все подписки', + 'category' => 'Категория', + 'entry_count' => 'Количество статей', + 'entry_per_category' => 'Статей в категории', + 'entry_per_day' => 'Статей за день (за последние 30 дней)', + 'entry_per_day_of_week' => 'За неделю (в среднем - %.2f сообщений)', + 'entry_per_hour' => 'За час (в среднем - %.2f сообщений)', + 'entry_per_month' => 'За месяц (в среднем - %.2f сообщений)', + 'entry_repartition' => 'Перерасределение статей', + 'feed' => 'Подписка', + 'feed_per_category' => 'Подписок в категории', + 'idle' => 'Неактивные подписки', + 'main' => 'Основная статистика', + 'main_stream' => 'Основной поток', + 'menu' => array( + 'idle' => 'Неактивные подписки', + 'main' => 'Основная статистика', + 'repartition' => 'Перерасределение статей', + ), + 'no_idle' => 'Нет неактивных подписок!', + 'number_entries' => 'статей: %d', + 'percent_of_total' => '%% от всего', + 'repartition' => 'Перераспределение статей', + 'status_favorites' => 'Избранное', + 'status_read' => 'Читать', + 'status_total' => 'Всего', + 'status_unread' => 'Не прочитано', + 'title' => 'Статистика', + 'top_feed' => '10 лучших подписок', + ), + 'system' => array( + '_' => 'Системные настройки', + 'auto-update-url' => 'Адрес сервера для автоматического обновления', + 'instance-name' => 'Название этого сервера', + 'max-categories' => 'Количество категорий на пользователя', + 'max-feeds' => 'Количество статей на пользователя', + 'registration' => array( + 'help' => '0 означает неограниченное количество пользователей', + 'number' => 'Максимальное количество пользователей', + ), + ), + 'update' => array( + '_' => 'Обновление системы', + 'apply' => 'Применить', + 'check' => 'Проверить обновления', + 'current_version' => 'Ваша текущая версия FreshRSS: %s.', + 'last' => 'Последняя проверка: %s', + 'none' => 'Нечего обновлять', + 'title' => 'Обновить систему', + ), + 'user' => array( + 'articles_and_size' => '%s статей (%s)', + 'create' => 'Создать нового пользователя', + 'email_persona' => 'Адрес электронной почты для входа
    (for Mozilla Persona)', + 'language' => 'Язык', + 'number' => 'На данный момент создан %d аккаунт', + 'numbers' => 'На данный момент аккаунтов создано: %d', + 'password_form' => 'Пароль
    (для входа через Веб-форму)', + 'password_format' => 'Минимум 7 символов', + 'title' => 'Управление пользователями', + 'user_list' => 'Список пользователей', + 'username' => 'Имя пользователя', + 'users' => 'Пользователи', + ), +); diff --git a/app/i18n/ru_RU.utf8/conf.php b/app/i18n/ru_RU.utf8/conf.php new file mode 100644 index 000000000..e502e9a43 --- /dev/null +++ b/app/i18n/ru_RU.utf8/conf.php @@ -0,0 +1,174 @@ + array( + '_' => 'Архивация', + 'advanced' => 'Продвинутые настройки', + 'delete_after' => 'Удалять статьи после', + 'help' => 'Каждую подписку можно настроить более гибко', + 'keep_history_by_feed' => 'Minimum number of articles to keep by feed', + 'optimize' => 'Оптимизировать базу данных', + 'optimize_help' => 'To do occasionally to reduce the size of the database', + 'purge_now' => 'Очистить сейчас', + 'title' => 'Архивация', + 'ttl' => 'Не обновлять чаще чем', + ), + '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' => 'Язык', + 'notif_html5' => array( + 'seconds' => 'seconds (0 means no timeout)', + 'timeout' => 'HTML5 notification timeout', + ), + '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', + 'delete' => array( + '_' => 'Account deletion', + 'warn' => 'Your account and all the related data will be deleted.', + ), + 'email_persona' => 'Login email address
    (for Mozilla Persona)', + 'password_api' => 'Password API
    (e.g., for mobile apps)', + 'password_form' => 'Password
    (for the Web-form login method)', + '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', + 'mark_updated_article_unread' => 'Mark updated articles as unread', + '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.
    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' => '+ shift 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/ru_RU.utf8/feedback.php b/app/i18n/ru_RU.utf8/feedback.php new file mode 100644 index 000000000..c9189c0d0 --- /dev/null +++ b/app/i18n/ru_RU.utf8/feedback.php @@ -0,0 +1,110 @@ + array( + 'optimization_complete' => 'Optimisation 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. Check FressRSS logs for details.', + 'ok' => '%s is now disabled', + ), + 'enable' => array( + 'ko' => '%s cannot be enabled. Check FressRSS logs 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' => 'Actualise', + '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' => '%s has been updated', + 'actualizeds' => 'RSS feeds have been updated', + 'added' => 'RSS feed %s has been added', + 'already_subscribed' => 'You have already subscribed to %s', + 'deleted' => 'Feed has been deleted', + 'error' => 'Feed cannot be updated', + 'internal_problem' => 'The RSS feed could not be added. Check FressRSS logs for details.', + 'invalid_url' => 'URL %s 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' => '%s 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 now be updated to the version %s.', + 'error' => 'The update process has encountered an error: %s', + 'file_is_nok' => 'Check permissions on %s 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/ru_RU.utf8/gen.php b/app/i18n/ru_RU.utf8/gen.php new file mode 100644 index 000000000..d23b12f95 --- /dev/null +++ b/app/i18n/ru_RU.utf8/gen.php @@ -0,0 +1,181 @@ + 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' => 'Filter', + '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( + 'email' => 'Email address', + 'keep_logged_in' => 'Keep me logged in (1 month)', + 'login' => 'Login', + 'login_persona' => 'Login with Persona', + 'login_persona_problem' => 'Connection problem with Persona?', + 'logout' => 'Logout', + 'password' => array( + '_' => 'Password', + 'format' => 'At least 7 characters', + ), + 'registration' => array( + '_' => 'New account', + 'ask' => 'Create an account?', + 'title' => 'Account creation', + ), + 'reset' => 'Authentication reset', + 'username' => array( + '_' => 'Username', + 'admin' => 'Administrator username', + 'format' => 'maximum 16 alphanumeric characters', + ), + '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( + 'cz' => 'Čeština', + 'de' => 'Deutsch', + 'en' => 'English', + 'fr' => 'Français', + 'it' => 'Italiano', + 'nl' => 'Nederlands', + ), + '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', + 'system' => 'System configuration', + '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+', + 'movim' => 'Movim', + 'print' => 'Print', + 'shaarli' => 'Shaarli', + 'twitter' => 'Twitter', + 'wallabag' => 'wallabag', + ), + 'short' => array( + 'attention' => 'Warning!', + 'blank_to_disable' => 'Leave blank to disable', + 'by_author' => 'By %s', + 'by_default' => 'By default', + 'damn' => 'Damn!', + 'default_category' => 'Uncategorized', + 'no' => 'No', + 'not_applicable' => 'Not available', + 'ok' => 'Ok!', + 'or' => 'or', + 'yes' => 'Yes', + ), +); diff --git a/app/i18n/ru_RU.utf8/index.php b/app/i18n/ru_RU.utf8/index.php new file mode 100644 index 000000000..80fa3d950 --- /dev/null +++ b/app/i18n/ru_RU.utf8/index.php @@ -0,0 +1,61 @@ + array( + '_' => 'About', + 'agpl3' => 'AGPL 3', + 'bugs_reports' => 'Bugs reports', + 'credits' => 'Credits', + 'credits_content' => 'Some design elements come from Bootstrap although FreshRSS doesn’t use this framework. Icons come from GNOME project. Open Sans font police has been created by Steve Matteson. Favicons are collected with getFavicon API. FreshRSS is based on Minz, a PHP framework.', + 'freshrss_description' => 'FreshRSS is a RSS feeds aggregator to self-host like Kriss Feed or Leed. It is light and easy to take in hand while being powerful and configurable tool.', + 'github' => 'on Github', + '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/ru_RU.utf8/install.php b/app/i18n/ru_RU.utf8/install.php new file mode 100644 index 000000000..c838b2eba --- /dev/null +++ b/app/i18n/ru_RU.utf8/install.php @@ -0,0 +1,113 @@ + array( + 'finish' => 'Завершить установку', + 'fix_errors_before' => 'Пожалуйста, исправьте ошибки прежде чем переходить к следующему этапу.', + 'keep_install' => 'Сохранить предыдущую установку', + 'next_step' => 'Перейти к следующему этапу', + 'reinstall' => 'Переустановить FreshRSS', + ), + 'auth' => array( + 'email_persona' => 'Почта (логин) для
    (for Mozilla Persona)', + 'form' => 'Вэб-форма (традиционный, необходим JavaScript)', + 'http' => 'HTTP (для продвинутых пользователей с HTTPS)', + 'none' => 'Никакого (опасно)', + 'password_form' => 'Пароль
    (для метода аутентификации на Вэб-формах)', + 'password_format' => 'Как минимум 7 букв', + 'persona' => 'Mozilla Persona (современный, необходим JavaScript)', + 'type' => 'Метод аутентификации', + ), + 'bdd' => array( + '_' => 'База данных', + 'conf' => array( + '_' => 'Конфигурация базы данныхDatabase configuration', + 'ko' => 'Проверьте конфигурацию базы данных.', + 'ok' => 'Конфигурация базы данных сохранена.', + ), + 'host' => 'Хост', + 'prefix' => 'Префикс таблицы', + 'password' => 'Пароль HTTP', + 'type' => 'Тип базы данных', + 'username' => 'Имя пользователя HTTP', + ), + 'check' => array( + '_' => 'Проверки', + 'already_installed' => 'Обнаружена предыдущая установка FreshRSS!', + 'cache' => array( + 'nok' => 'Проверьте права доступа к папке ./data/cache . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку кэша в порядке.', + ), + 'ctype' => array( + 'nok' => 'У вас не установлена необходимая библиотека для проверки типов символов (php-ctype).', + 'ok' => 'У вас установлена необходимая библиотека для проверки типов символов (ctype).', + ), + 'curl' => array( + 'nok' => 'У вас нет расширения cURL (пакет php5-curl).', + 'ok' => 'У вас установлено расширение cURL.', + ), + 'data' => array( + 'nok' => 'Проверьте права доступа к папке ./data . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на ./data/ в порядке.', + ), + 'dom' => array( + 'nok' => 'У вас не установлена необходимая библиотека для просмотра DOM (пакет php-xml).', + 'ok' => 'У вас установлена необходимая библиотека для просмотра DOM.', + ), + 'favicons' => array( + 'nok' => 'Проверьте права доступа к папке ./data/favicons . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку значков в порядке.', + ), + 'http_referer' => array( + 'nok' => 'Убедитесь, что вы не изменяете ваш HTTP REFERER.', + 'ok' => 'Ваш HTTP REFERER известен и соотвествует вашему серверу.', + ), + 'minz' => array( + 'nok' => 'У вас не установлен фрейворк Minz.', + 'ok' => 'У вас установлен фрейворк Minz.', + ), + 'pcre' => array( + 'nok' => 'У вас не установлена необходимая библиотека для работы с регулярными выражениями (php-pcre).', + 'ok' => 'У вас установлена необходимая библиотека для работы с регулярными выражениями (PCRE).', + ), + 'pdo' => array( + 'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite).', + 'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite).', + ), + 'persona' => array( + 'nok' => 'Проверьте права доступа к папке ./data/persona . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку Mozilla Persona в порядке.', + ), + 'php' => array( + 'nok' => 'У вас установлен PHP версии %s, но FreshRSS необходима версия не ниже %s.', + 'ok' => 'У вас установлен PHP версии %s, который совместим с FreshRSS.', + ), + 'users' => array( + 'nok' => 'Проверьте права доступа к папке ./data/users . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку users в порядке.', + ), + ), + 'conf' => array( + '_' => 'Общие настройки', + 'ok' => 'Общие настройки были сохранены.', + ), + 'congratulations' => 'Поздравляем!', + 'default_user' => 'Имя пользователя по умолчанию (максимум 16 латинских букв и/или цифр)', + 'delete_articles_after' => 'Удалять статьи после', + 'fix_errors_before' => 'Пожалуйста, исправьте ошибки прежде чем переходить к следующему этапу..', + 'javascript_is_better' => 'FreshRSS принесёт больше удовольствия, если включить JavaScript', + 'js' => array( + 'confirm_reinstall' => 'Переустанавливая FreshRSS, вы потеряете предыдущую конфигурацию. Вы хотите продолжить?', + ), + 'language' => array( + '_' => 'Язык', + 'choose' => 'Выберите язык для FreshRSS', + 'defined' => 'Язык выбран.', + ), + 'not_deleted' => 'Что-то пошло не так; удалите файл %s вручную.', + 'ok' => 'Установка успешна.', + 'step' => '%d этап', + 'steps' => 'Этапы', + 'title' => 'Установка · FreshRSS', + 'this_is_the_end' => 'Это конец', +); diff --git a/app/i18n/ru_RU.utf8/sub.php b/app/i18n/ru_RU.utf8/sub.php new file mode 100644 index 000000000..aaaa02827 --- /dev/null +++ b/app/i18n/ru_RU.utf8/sub.php @@ -0,0 +1,62 @@ + 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 (caution, 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, its feeds are automatically classified under %s.', + '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', + 'pubsubhubbub' => 'Instant notification with PubSubHubbub', + ), + '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
    (OPML, Json or Zip)', + 'file_to_import_no_zip' => 'File to import
    (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', + ), +); -- cgit v1.2.3 From cc1390fe9454166ee5d638aa01948f791ad7c4fe Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 21 Feb 2016 00:58:51 +0100 Subject: JavaScript popup number bug A backslash caused problem. https://github.com/FreshRSS/FreshRSS/issues/1075 https://github.com/FreshRSS/FreshRSS/pull/1078 --- app/i18n/cz/gen.php | 2 +- app/i18n/de/gen.php | 2 +- app/i18n/en/gen.php | 2 +- app/i18n/fr/gen.php | 2 +- app/i18n/it/gen.php | 2 +- app/i18n/nl/gen.php | 2 +- app/i18n/tr/gen.php | 2 +- p/scripts/main.js | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index ca90cff0c..c30310bf3 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -108,7 +108,7 @@ return array( 'confirm_action' => 'Jste si jist, že chcete provést tuto akci? Změny nelze vrátit zpět!', 'confirm_action_feed_cat' => 'Jste si jist, že chcete provést tuto akci? Přijdete o související oblíbené položky a uživatelské dotazy. Změny nelze vrátit zpět!', 'feedback' => array( - 'body_new_articles' => 'Je \\d nových článků k přečtení v FreshRSS.', + 'body_new_articles' => 'Je %d nových článků k přečtení v FreshRSS.', 'request_failed' => 'Požadavek selhal, což může být způsobeno problémy s připojení k internetu.', 'title_new_articles' => 'FreshRSS: nové články!', ), diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index fb09e8598..47bdee4ee 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -108,7 +108,7 @@ return array( 'confirm_action' => 'Sind Sie sicher, dass Sie diese Aktion durchführen wollen? Diese Aktion 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.', + '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!', ), diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index f71684688..3af7850b8 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -108,7 +108,7 @@ return array( '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.', + '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!', ), diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index f8e4ac7ee..4cda84c8d 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -108,7 +108,7 @@ return array( '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.', + '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 !', ), diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index bd311aa12..8598ec8a7 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -108,7 +108,7 @@ return array( 'confirm_action' => 'Sei sicuro di voler continuare?', 'confirm_action_feed_cat' => 'Sei sicuro di voler continuare? Verranno persi i preferiti e le ricerche utente correlate!', 'feedback' => array( - 'body_new_articles' => 'Ci sono \\d nuovi articoli da leggere.', + 'body_new_articles' => 'Ci sono %d nuovi articoli da leggere.', 'request_failed' => 'Richiesta fallita, probabilmente a causa di problemi di connessione', 'title_new_articles' => 'Feed RSS Reader: nuovi articoli!', ), diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index bc4fd9201..56f8424d1 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -108,7 +108,7 @@ return array( 'confirm_action' => 'Weet u zeker dat u dit wilt doen? Het kan niet ongedaan worden gemaakt!', 'confirm_action_feed_cat' => 'Weet u zeker dat u dit wilt doen? U verliest alle gereleteerde favorieten en gebruikers informatie. Het kan niet ongedaan worden gemaakt!', 'feedback' => array( - 'body_new_articles' => 'Er zijn \\d nieuwe artikelen om te lezen op FreshRSS.', + 'body_new_articles' => 'Er zijn %d nieuwe artikelen om te lezen op FreshRSS.', 'request_failed' => 'Een opdracht is mislukt, mogelijk door Internet verbindings problemen.', 'title_new_articles' => 'FreshRSS: nieuwe artikelen!', ), diff --git a/app/i18n/tr/gen.php b/app/i18n/tr/gen.php index 7284f132b..65a20ed7a 100644 --- a/app/i18n/tr/gen.php +++ b/app/i18n/tr/gen.php @@ -108,7 +108,7 @@ return array( 'confirm_action' => 'Bunu yapmak istediğinize emin misiniz ? Daha sonra iptal edilemez!', 'confirm_action_feed_cat' => 'Bunu yapmak istediğinize emin misiniz ? Favorileriniz ve sorgularınız silinecek. Daha sonra iptal edilemez!', 'feedback' => array( - 'body_new_articles' => 'FreshRSS de okunmaz üzere \\d yeni makale var.', + 'body_new_articles' => 'FreshRSS de okunmaz üzere %d yeni makale var.', 'request_failed' => 'Hata. İnternet bağlantınızı kontrol edin.', 'title_new_articles' => 'FreshRSS: yeni makaleler!', ), diff --git a/p/scripts/main.js b/p/scripts/main.js index 32a2ca913..b7522df6a 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -863,7 +863,7 @@ function notifs_html5_show(nb) { var notification = new window.Notification(i18n['notif_title_articles'], { icon: "../themes/icons/favicon-256.png", - body: i18n['notif_body_articles'].replace("\d", nb), + body: i18n['notif_body_articles'].replace('%d', nb), tag: "freshRssNewArticles" }); -- cgit v1.2.3 From e3105f2135552701a4986873491a964b4e44c82e Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 21 Feb 2016 01:46:27 +0100 Subject: JavaScript popup number bug (percent escaping) https://github.com/FreshRSS/FreshRSS/pull/1078 https://github.com/Alkarex/FreshRSS/commit/cc1390fe9454166ee5d638aa01948f791ad7c4fe --- app/i18n/cz/gen.php | 2 +- app/i18n/de/gen.php | 2 +- app/i18n/en/gen.php | 2 +- app/i18n/fr/gen.php | 2 +- app/i18n/it/gen.php | 2 +- app/i18n/nl/gen.php | 2 +- app/i18n/tr/gen.php | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index c30310bf3..78ec80f68 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -108,7 +108,7 @@ return array( 'confirm_action' => 'Jste si jist, že chcete provést tuto akci? Změny nelze vrátit zpět!', 'confirm_action_feed_cat' => 'Jste si jist, že chcete provést tuto akci? Přijdete o související oblíbené položky a uživatelské dotazy. Změny nelze vrátit zpět!', 'feedback' => array( - 'body_new_articles' => 'Je %d nových článků k přečtení v FreshRSS.', + 'body_new_articles' => 'Je %%d nových článků k přečtení v FreshRSS.', 'request_failed' => 'Požadavek selhal, což může být způsobeno problémy s připojení k internetu.', 'title_new_articles' => 'FreshRSS: nové články!', ), diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index 47bdee4ee..bd0ba08cc 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -108,7 +108,7 @@ return array( 'confirm_action' => 'Sind Sie sicher, dass Sie diese Aktion durchführen wollen? Diese Aktion 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.', + '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!', ), diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 3af7850b8..6fb33a4db 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -108,7 +108,7 @@ return array( '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.', + '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!', ), diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 4cda84c8d..6b7056f92 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -108,7 +108,7 @@ return array( '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.', + '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 !', ), diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index 8598ec8a7..2efbef167 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -108,7 +108,7 @@ return array( 'confirm_action' => 'Sei sicuro di voler continuare?', 'confirm_action_feed_cat' => 'Sei sicuro di voler continuare? Verranno persi i preferiti e le ricerche utente correlate!', 'feedback' => array( - 'body_new_articles' => 'Ci sono %d nuovi articoli da leggere.', + 'body_new_articles' => 'Ci sono %%d nuovi articoli da leggere.', 'request_failed' => 'Richiesta fallita, probabilmente a causa di problemi di connessione', 'title_new_articles' => 'Feed RSS Reader: nuovi articoli!', ), diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index 56f8424d1..bc2137c22 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -108,7 +108,7 @@ return array( 'confirm_action' => 'Weet u zeker dat u dit wilt doen? Het kan niet ongedaan worden gemaakt!', 'confirm_action_feed_cat' => 'Weet u zeker dat u dit wilt doen? U verliest alle gereleteerde favorieten en gebruikers informatie. Het kan niet ongedaan worden gemaakt!', 'feedback' => array( - 'body_new_articles' => 'Er zijn %d nieuwe artikelen om te lezen op FreshRSS.', + 'body_new_articles' => 'Er zijn %%d nieuwe artikelen om te lezen op FreshRSS.', 'request_failed' => 'Een opdracht is mislukt, mogelijk door Internet verbindings problemen.', 'title_new_articles' => 'FreshRSS: nieuwe artikelen!', ), diff --git a/app/i18n/tr/gen.php b/app/i18n/tr/gen.php index 65a20ed7a..f987a8e6c 100644 --- a/app/i18n/tr/gen.php +++ b/app/i18n/tr/gen.php @@ -108,7 +108,7 @@ return array( 'confirm_action' => 'Bunu yapmak istediğinize emin misiniz ? Daha sonra iptal edilemez!', 'confirm_action_feed_cat' => 'Bunu yapmak istediğinize emin misiniz ? Favorileriniz ve sorgularınız silinecek. Daha sonra iptal edilemez!', 'feedback' => array( - 'body_new_articles' => 'FreshRSS de okunmaz üzere %d yeni makale var.', + 'body_new_articles' => 'FreshRSS de okunmaz üzere %%d yeni makale var.', 'request_failed' => 'Hata. İnternet bağlantınızı kontrol edin.', 'title_new_articles' => 'FreshRSS: yeni makaleler!', ), -- cgit v1.2.3 From 6b19872b1a95113aa491626a64d4c3ff02e2ee00 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 28 Feb 2016 14:07:21 +0100 Subject: Install check XML / JSON https://github.com/FreshRSS/FreshRSS/issues/1094 https://github.com/FreshRSS/FreshRSS/issues/1092 --- app/i18n/cz/install.php | 10 +++++++++- app/i18n/de/install.php | 10 +++++++++- app/i18n/en/install.php | 10 +++++++++- app/i18n/fr/install.php | 10 +++++++++- app/i18n/it/install.php | 10 +++++++++- app/i18n/nl/install.php | 10 +++++++++- app/i18n/tr/install.php | 10 +++++++++- app/install.php | 18 +++++++++++++++++- 8 files changed, 80 insertions(+), 8 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/cz/install.php b/app/i18n/cz/install.php index a8bc62909..969b69271 100644 --- a/app/i18n/cz/install.php +++ b/app/i18n/cz/install.php @@ -51,7 +51,7 @@ return array( 'ok' => 'Oprávnění adresáře data jsou v pořádku.', ), 'dom' => array( - 'nok' => 'Nemáte požadovanou knihovnu pro procházení DOM (balíček php-xml).', + 'nok' => 'Nemáte požadovanou knihovnu pro procházení DOM.', 'ok' => 'Máte požadovanou knihovnu pro procházení DOM.', ), 'favicons' => array( @@ -62,6 +62,10 @@ return array( 'nok' => 'Zkontrolujte prosím že neměníte HTTP REFERER.', 'ok' => 'Váš HTTP REFERER je znám a odpovídá Vašemu serveru.', ), + 'json' => array( + 'nok' => 'You lack a recommended library to parse JSON.', + 'ok' => 'You have a recommended library to parse JSON.', + ), 'minz' => array( 'nok' => 'Nemáte framework Minz.', 'ok' => 'Máte framework Minz.', @@ -86,6 +90,10 @@ return array( 'nok' => 'Zkontrolujte oprávnění adresáře ./data/users. HTTP server musí mít do tohoto adresáře práva zápisu', 'ok' => 'Oprávnění adresáře users jsou v pořádku.', ), + 'xml' => array( + 'nok' => 'You lack the required library to parse XML.', + 'ok' => 'You have the required library to parse XML.', + ), ), 'conf' => array( '_' => 'Obecná nastavení', diff --git a/app/i18n/de/install.php b/app/i18n/de/install.php index 9bada0869..2da744cfb 100644 --- a/app/i18n/de/install.php +++ b/app/i18n/de/install.php @@ -51,7 +51,7 @@ return array( 'ok' => 'Die Berechtigungen des Verzeichnisses ./data sind in Ordnung.', ), 'dom' => array( - 'nok' => 'Ihnen fehlt eine benötigte Bibliothek um DOM zu durchstöbern (Paket php-xml).', + 'nok' => 'Ihnen fehlt eine benötigte Bibliothek um DOM zu durchstöbern.', 'ok' => 'Sie haben die benötigte Bibliothek um DOM zu durchstöbern.', ), 'favicons' => array( @@ -62,6 +62,10 @@ return array( 'nok' => 'Bitte stellen Sie sicher, dass Sie Ihren HTTP REFERER nicht abändern.', 'ok' => 'Ihr HTTP REFERER ist bekannt und entspricht Ihrem Server.', ), + 'json' => array( + 'nok' => 'You lack a recommended library to parse JSON.', + 'ok' => 'You have a recommended library to parse JSON.', + ), 'minz' => array( 'nok' => 'Ihnen fehlt das Minz-Framework.', 'ok' => 'Sie haben das Minz-Framework.', @@ -86,6 +90,10 @@ return array( 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses ./data/users. Der HTTP-Server muss Schreibrechte besitzen.', 'ok' => 'Die Berechtigungen des Verzeichnisses ./data/users sind in Ordnung.', ), + 'xml' => array( + 'nok' => 'You lack the required library to parse XML.', + 'ok' => 'You have the required library to parse XML.', + ), ), 'conf' => array( '_' => 'Allgemeine Konfiguration', diff --git a/app/i18n/en/install.php b/app/i18n/en/install.php index b94fbc299..4b5bbc62e 100644 --- a/app/i18n/en/install.php +++ b/app/i18n/en/install.php @@ -51,7 +51,7 @@ return array( 'ok' => 'Permissions on data directory are good.', ), 'dom' => array( - 'nok' => 'You lack a required library to browse the DOM (php-xml package).', + 'nok' => 'You lack a required library to browse the DOM.', 'ok' => 'You have the required library to browse the DOM.', ), 'favicons' => array( @@ -62,6 +62,10 @@ return array( 'nok' => 'Please check that you are not altering your HTTP REFERER.', 'ok' => 'Your HTTP REFERER is known and corresponds to your server.', ), + 'json' => array( + 'nok' => 'You lack a recommended library to parse JSON.', + 'ok' => 'You have a recommended library to parse JSON.', + ), 'minz' => array( 'nok' => 'You lack the Minz framework.', 'ok' => 'You have the Minz framework.', @@ -86,6 +90,10 @@ return array( 'nok' => 'Check permissions on ./data/users directory. HTTP server must have rights to write into', 'ok' => 'Permissions on users directory are good.', ), + 'xml' => array( + 'nok' => 'You lack the required library to parse XML.', + 'ok' => 'You have the required library to parse XML.', + ), ), 'conf' => array( '_' => 'General configuration', diff --git a/app/i18n/fr/install.php b/app/i18n/fr/install.php index 0401e1bbd..91dfbbb09 100644 --- a/app/i18n/fr/install.php +++ b/app/i18n/fr/install.php @@ -51,7 +51,7 @@ return array( '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).', + 'nok' => 'Il manque une librairie pour parcourir le DOM.', 'ok' => 'Vous disposez du nécessaire pour parcourir le DOM.', ), 'favicons' => array( @@ -62,6 +62,10 @@ return array( 'nok' => 'Veuillez vérifier que vous ne modifiez pas votre HTTP REFERER.', 'ok' => 'Le HTTP REFERER est connu et semble correspondre à votre serveur.', ), + 'json' => array( + 'nok' => 'Il manque une librairie recommandée pour JSON.', + 'ok' => 'Vouz disposez de la librairie recommandée pour JSON.', + ), 'minz' => array( 'nok' => 'Vous ne disposez pas de la librairie Minz.', 'ok' => 'Vous disposez du framework Minz', @@ -86,6 +90,10 @@ return array( 'nok' => 'Veuillez vérifier les droits sur le répertoire ./data/users. Le serveur HTTP doit être capable d’écrire dedans', 'ok' => 'Les droits sur le répertoire des utilisateurs sont bons.', ), + 'xml' => array( + 'nok' => 'Il manque une librairie requise pour XML.', + 'ok' => 'Vouz disposez de la librairie requise pour XML.', + ), ), 'conf' => array( '_' => 'Configuration générale', diff --git a/app/i18n/it/install.php b/app/i18n/it/install.php index 3ad22c5e9..8f5300bd5 100644 --- a/app/i18n/it/install.php +++ b/app/i18n/it/install.php @@ -51,7 +51,7 @@ return array( 'ok' => 'I permessi sulla cartella data sono corretti.', ), 'dom' => array( - 'nok' => 'Manca una libreria richiesta per leggere DOM (pacchetto php-xml).', + 'nok' => 'Manca una libreria richiesta per leggere DOM.', 'ok' => 'Libreria richiesta per leggere DOM presente.', ), 'favicons' => array( @@ -62,6 +62,10 @@ return array( 'nok' => 'Per favore verifica che non stai alterando il tuo HTTP REFERER.', 'ok' => 'Il tuo HTTP REFERER riconosciuto corrisponde al tuo server.', ), + 'json' => array( + 'nok' => 'You lack a recommended library to parse JSON.', + 'ok' => 'You have a recommended library to parse JSON.', + ), 'minz' => array( 'nok' => 'Manca il framework Minz.', 'ok' => 'Framework Minz presente.', @@ -87,6 +91,10 @@ return array( 'nok' => 'Verifica i permessi sulla cartella ./data/users. Il server HTTP deve avere i permessi per scriverci dentro', 'ok' => 'I permessi sulla cartella users sono corretti.', ), + 'xml' => array( + 'nok' => 'You lack the required library to parse XML.', + 'ok' => 'You have the required library to parse XML.', + ), ), 'conf' => array( '_' => 'Configurazioni generali', diff --git a/app/i18n/nl/install.php b/app/i18n/nl/install.php index e788261ea..3c44f7581 100644 --- a/app/i18n/nl/install.php +++ b/app/i18n/nl/install.php @@ -51,7 +51,7 @@ return array( 'ok' => 'Permissies van de data map zijn goed.', ), 'dom' => array( - 'nok' => 'U mist een benodigde bibliotheek om te bladeren in de DOM (php-xml package).', + 'nok' => 'U mist een benodigde bibliotheek om te bladeren in de DOM.', 'ok' => 'U hebt de benodigde bibliotheek om te bladeren in de DOM.', ), 'favicons' => array( @@ -62,6 +62,10 @@ return array( 'nok' => 'Controleer a.u.b. dat u niet uw HTTP REFERER wijzigd.', 'ok' => 'Uw HTTP REFERER is bekend en komt overeen met uw server.', ), + 'json' => array( + 'nok' => 'You lack a recommended library to parse JSON.', + 'ok' => 'You have a recommended library to parse JSON.', + ), 'minz' => array( 'nok' => 'U mist het Minz framework.', 'ok' => 'U hebt het Minz framework.', @@ -86,6 +90,10 @@ return array( 'nok' => 'Controleer permissies van de ./data/users map. HTTP server moet rechten hebben om er in te kunnen schrijven', 'ok' => 'Permissies van de users map zijn goed.', ), + 'xml' => array( + 'nok' => 'You lack the required library to parse XML.', + 'ok' => 'You have the required library to parse XML.', + ), ), 'conf' => array( '_' => 'Algemene configuratie', diff --git a/app/i18n/tr/install.php b/app/i18n/tr/install.php index 96c16931a..d4c7c4cd5 100644 --- a/app/i18n/tr/install.php +++ b/app/i18n/tr/install.php @@ -51,7 +51,7 @@ return array( 'ok' => 'Veri klasörü yetkileri sorunsuz.', ), 'dom' => array( - 'nok' => 'DOM kütüpbanesi eksik (php-xml package).', + 'nok' => 'DOM kütüpbanesi eksik.', 'ok' => 'DOM kütüphanesi sorunsuz.', ), 'favicons' => array( @@ -62,6 +62,10 @@ return array( 'nok' => 'Lütfen HTTP REFERER değiştirmediğinize emin olun.', 'ok' => 'HTTP REFERER ve sunucunuz arası iletişim sorunsuz.', ), + 'json' => array( + 'nok' => 'You lack a recommended library to parse JSON.', + 'ok' => 'You have a recommended library to parse JSON.', + ), 'minz' => array( 'nok' => 'Minz framework eksik.', 'ok' => 'Minz framework sorunsuz.', @@ -86,6 +90,10 @@ return array( 'nok' => './data/users klasör yetkisini kontrol edin. HTTP yazma yetkisi olmalı', 'ok' => 'Kullanıcılar klasörü yetkileri sorunsuz.', ), + 'xml' => array( + 'nok' => 'You lack the required library to parse XML.', + 'ok' => 'You have the required library to parse XML.', + ), ), 'conf' => array( '_' => 'Genel yapılandırma', diff --git a/app/install.php b/app/install.php index 80e85354d..b47effc84 100644 --- a/app/install.php +++ b/app/install.php @@ -318,6 +318,8 @@ function checkStep1() { $pcre = extension_loaded('pcre'); $ctype = extension_loaded('ctype'); $dom = class_exists('DOMDocument'); + $xml = function_exists('xml_parser_create'); + $json = function_exists('json_encode'); $data = DATA_PATH && is_writable(DATA_PATH); $cache = CACHE_PATH && is_writable(CACHE_PATH); $users = USERS_PATH && is_writable(USERS_PATH); @@ -335,13 +337,15 @@ function checkStep1() { 'pcre' => $pcre ? 'ok' : 'ko', 'ctype' => $ctype ? 'ok' : 'ko', 'dom' => $dom ? 'ok' : 'ko', + 'xml' => $xml ? 'ok' : 'ko', + 'json' => $json ? 'ok' : 'ko', 'data' => $data ? 'ok' : 'ko', 'cache' => $cache ? 'ok' : 'ko', 'users' => $users ? 'ok' : 'ko', 'favicons' => $favicons ? 'ok' : 'ko', 'persona' => $persona ? 'ok' : 'ko', 'http_referer' => $http_referer ? 'ok' : 'ko', - 'all' => $php && $minz && $curl && $pdo && $pcre && $ctype && $dom && + 'all' => $php && $minz && $curl && $pdo && $pcre && $ctype && $dom && $xml && $data && $cache && $users && $favicons && $persona && $http_referer ? 'ok' : 'ko' ); @@ -554,6 +558,12 @@ function printStep1() {

    + +

    + +

    + +

    @@ -572,6 +582,12 @@ function printStep1() {

    + +

    + +

    + +

    -- cgit v1.2.3 From 6cd59b25f44853e7f5bbd931b33a4ecbd3e91159 Mon Sep 17 00:00:00 2001 From: ealdraed Date: Fri, 4 Mar 2016 12:38:16 +0100 Subject: Translate four strings for XML and JSON --- app/i18n/de/install.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/de/install.php b/app/i18n/de/install.php index 2da744cfb..d16496818 100644 --- a/app/i18n/de/install.php +++ b/app/i18n/de/install.php @@ -63,8 +63,8 @@ return array( 'ok' => 'Ihr HTTP REFERER ist bekannt und entspricht Ihrem Server.', ), 'json' => array( - 'nok' => 'You lack a recommended library to parse JSON.', - 'ok' => 'You have a recommended library to parse JSON.', + 'nok' => 'Ihnen fehlt eine empfohlene Bibliothek um JSON zu parsen.', + 'ok' => 'Sie haben eine empfohlene Bibliothek um JSON zu parsen.', ), 'minz' => array( 'nok' => 'Ihnen fehlt das Minz-Framework.', @@ -91,8 +91,8 @@ return array( 'ok' => 'Die Berechtigungen des Verzeichnisses ./data/users sind in Ordnung.', ), 'xml' => array( - 'nok' => 'You lack the required library to parse XML.', - 'ok' => 'You have the required library to parse XML.', + 'nok' => 'Ihnen fehlt die benötigte Bibliothek um XML zu parsen.', + 'ok' => 'Sie haben die benötigte Bibliothek um XML zu parsen.', ), ), 'conf' => array( -- cgit v1.2.3 From f059e4c5ce461a171b5754491b66c24ecc7490f8 Mon Sep 17 00:00:00 2001 From: Wanabo Date: Sun, 6 Mar 2016 12:01:46 +0100 Subject: Added files via upload Updated language files for v1.3.1-dev --- app/i18n/nl/admin.php | 18 +++++++++--------- app/i18n/nl/gen.php | 2 +- app/i18n/nl/install.php | 8 ++++---- 3 files changed, 14 insertions(+), 14 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/nl/admin.php b/app/i18n/nl/admin.php index c3a3062b9..bd7d63b6a 100644 --- a/app/i18n/nl/admin.php +++ b/app/i18n/nl/admin.php @@ -120,7 +120,7 @@ return array( 'category' => 'Categorie', 'entry_count' => 'Invoer aantallen', 'entry_per_category' => 'Aantallen per categorie', - 'entry_per_day' => 'Aantallen per day (laatste 30 dagen)', + 'entry_per_day' => 'Aantallen per dag (laatste 30 dagen)', 'entry_per_day_of_week' => 'Per dag of week (gemiddeld: %.2f berichten)', 'entry_per_hour' => 'Per uur (gemiddeld: %.2f berichten)', 'entry_per_month' => 'Per maand (gemiddeld: %.2f berichten)', @@ -147,14 +147,14 @@ return array( 'top_feed' => 'Top tien feeds', ), 'system' => array( - '_' => 'System configuration', // @todo translate - 'auto-update-url' => 'Auto-update server URL', // @todo translate - 'instance-name' => 'Instance name', // @todo translate - 'max-categories' => 'Categories per user limit', // @todo translate - 'max-feeds' => 'Feeds per user limit', // @todo translate + '_' => 'Systeem configuratie', + 'auto-update-url' => 'Automatische update server URL', + 'instance-name' => 'Voorbeeld naam', + 'max-categories' => 'Categoriën limiet per gebruiker', + 'max-feeds' => 'Feed limiet per gebruiker', 'registration' => array( - 'help' => '0 means that there is no account limit', // @todo translate - 'number' => 'Max number of accounts', // @todo translate + 'help' => '0 betekent geen account limiet', + 'number' => 'Maximum aantal accounts', ), ), 'update' => array( @@ -178,7 +178,7 @@ return array( 'registration' => array( 'allow' => 'Sta het maken van nieuwe accounts toe', 'help' => '0 betekent dat er geen account limiet is', - 'number' => 'Max aantal van accounts', + 'number' => 'Max aantal accounts', ), 'title' => 'Beheer gebruikers', 'user_list' => 'Lijst van gebruikers ', diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index bc2137c22..1cafaf82a 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -140,7 +140,7 @@ return array( 'sharing' => 'Delen', 'shortcuts' => 'Snelle toegang', 'stats' => 'Statistieken', - 'system' => 'System configuration', // @todo translate + 'system' => 'Systeem configuratie', 'update' => 'Versie controle', 'user_management' => 'Beheer gebruikers', 'user_profile' => 'Profiel', diff --git a/app/i18n/nl/install.php b/app/i18n/nl/install.php index 3c44f7581..d16dda4ca 100644 --- a/app/i18n/nl/install.php +++ b/app/i18n/nl/install.php @@ -63,8 +63,8 @@ return array( 'ok' => 'Uw HTTP REFERER is bekend en komt overeen met uw server.', ), 'json' => array( - 'nok' => 'You lack a recommended library to parse JSON.', - 'ok' => 'You have a recommended library to parse JSON.', + 'nok' => 'U mist een benodigede bibliotheek om JSON te gebruiken.', + 'ok' => 'U hebt de benodigde bibliotheek om JSON te gebruiken.', ), 'minz' => array( 'nok' => 'U mist het Minz framework.', @@ -91,8 +91,8 @@ return array( 'ok' => 'Permissies van de users map zijn goed.', ), 'xml' => array( - 'nok' => 'You lack the required library to parse XML.', - 'ok' => 'You have the required library to parse XML.', + 'nok' => 'U mist de benodigde bibliotheek om XML te gebruiken.', + 'ok' => 'U hebt de benodigde bibliotheek om XML te gebruiken.', ), ), 'conf' => array( -- cgit v1.2.3 From bb0319c1c7823471a4a2474712d8301e07a5f44e Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 6 Mar 2016 14:50:43 +0100 Subject: i18n-cz JSON XML https://github.com/FreshRSS/FreshRSS/pull/1097#commitcomment-16382595 https://github.com/FreshRSS/FreshRSS/issues/1094 --- app/i18n/cz/install.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/cz/install.php b/app/i18n/cz/install.php index 969b69271..bc3e01992 100644 --- a/app/i18n/cz/install.php +++ b/app/i18n/cz/install.php @@ -63,8 +63,8 @@ return array( 'ok' => 'Váš HTTP REFERER je znám a odpovídá Vašemu serveru.', ), 'json' => array( - 'nok' => 'You lack a recommended library to parse JSON.', - 'ok' => 'You have a recommended library to parse JSON.', + 'nok' => 'Pro parsování JSON chybí doporučená knihovna.', + 'ok' => 'Máte doporučenou knihovnu pro parsování JSON.', ), 'minz' => array( 'nok' => 'Nemáte framework Minz.', @@ -91,8 +91,8 @@ return array( 'ok' => 'Oprávnění adresáře users jsou v pořádku.', ), 'xml' => array( - 'nok' => 'You lack the required library to parse XML.', - 'ok' => 'You have the required library to parse XML.', + 'nok' => 'Pro parsování XML chybí požadovaná knihovna.', + 'ok' => 'Máte požadovanou knihovnu pro parsování XML.', ), ), 'conf' => array( -- cgit v1.2.3 From 138bbedac6a21b74b289c0b7f9d396f9e4f0f6b2 Mon Sep 17 00:00:00 2001 From: Amaury Carrade Date: Tue, 3 May 2016 14:42:16 +0200 Subject: Added a share for Wallabag v2 The new version of Wallabag (2) was rewrote completly, and the sharer changed. This keeps the old Wallabag v1 sharer, for people still using it, and adds a new one for Wallabag v2. The old sharer for wallabag v1 is renamed to 'wallabag v1' (instead of 'wallabag'). --- app/i18n/de/gen.php | 3 ++- app/i18n/en/gen.php | 3 ++- app/i18n/fr/gen.php | 3 ++- app/i18n/it/gen.php | 3 ++- app/i18n/nl/gen.php | 3 ++- app/i18n/tr/gen.php | 3 ++- data/shares.php | 9 +++++++++ 7 files changed, 21 insertions(+), 6 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index bd0ba08cc..9b460d08d 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -164,7 +164,8 @@ return array( 'print' => 'Drucken', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', - 'wallabag' => 'wallabag', + 'wallabag' => 'wallabag v1', + 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', ), 'short' => array( diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 6fb33a4db..685a7d1a9 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -164,7 +164,8 @@ return array( 'print' => 'Print', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', - 'wallabag' => 'wallabag', + 'wallabag' => 'wallabag v1', + 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', ), 'short' => array( diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 6b7056f92..f6695d887 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -164,7 +164,8 @@ return array( 'print' => 'Imprimer', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', - 'wallabag' => 'wallabag', + 'wallabag' => 'wallabag v1', + 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', ), 'short' => array( diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index 2efbef167..b3b4bd78e 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -163,7 +163,8 @@ return array( 'print' => 'Stampa', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', - 'wallabag' => 'wallabag', + 'wallabag' => 'wallabag v1', + 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', ), 'short' => array( diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index 1cafaf82a..7bd8bbb09 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -164,7 +164,8 @@ return array( 'print' => 'Print', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', - 'wallabag' => 'wallabag', + 'wallabag' => 'wallabag v1', + 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', ), 'short' => array( diff --git a/app/i18n/tr/gen.php b/app/i18n/tr/gen.php index f987a8e6c..092c19752 100644 --- a/app/i18n/tr/gen.php +++ b/app/i18n/tr/gen.php @@ -164,7 +164,8 @@ return array( 'print' => 'Print', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', - 'wallabag' => 'wallabag', + 'wallabag' => 'wallabag v1', + 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', ), 'short' => array( diff --git a/data/shares.php b/data/shares.php index 264c8fed7..1295a26ac 100644 --- a/data/shares.php +++ b/data/shares.php @@ -38,6 +38,15 @@ return array( 'help' => 'http://www.wallabag.org/', 'form' => 'advanced', ), + 'wallabagv2' => array( + 'url' => '~URL~/bookmarklet?url=~LINK~', + 'transform' => array( + 'link' => array('rawurlencode'), + 'title' => array(), + ), + 'help' => 'http://www.wallabag.org/', + 'form' => 'advanced', + ), 'diaspora' => array( 'url' => '~URL~/bookmarklet?url=~LINK~&title=~TITLE~', 'transform' => array('rawurlencode'), -- cgit v1.2.3 From 6fe1422854018cf18430e7a9f42a2b7dd0f1a18c Mon Sep 17 00:00:00 2001 From: hckweb Date: Thu, 12 May 2016 10:57:24 +0300 Subject: Update install.php 'json' tr translate --- app/i18n/tr/install.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/tr/install.php b/app/i18n/tr/install.php index d4c7c4cd5..85134845b 100644 --- a/app/i18n/tr/install.php +++ b/app/i18n/tr/install.php @@ -63,8 +63,8 @@ return array( 'ok' => 'HTTP REFERER ve sunucunuz arası iletişim sorunsuz.', ), 'json' => array( - 'nok' => 'You lack a recommended library to parse JSON.', - 'ok' => 'You have a recommended library to parse JSON.', + 'nok' => 'Tavsiye edilen JSON çözümleme kütüphanesi eksik.', + 'ok' => 'Tavsiye edilen JSON çözümleme kütüphanesi sorunsuz.', ), 'minz' => array( 'nok' => 'Minz framework eksik.', -- cgit v1.2.3 From b5b7233f92cb1a67964f40bd53f94c45614e4e10 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 12 Jun 2016 11:52:29 +0200 Subject: i18n remove RU UTF-8 suffix https://github.com/FreshRSS/FreshRSS/pull/1085 --- app/i18n/ru_RU.utf8/admin.php | 183 --------------------------------------- app/i18n/ru_RU.utf8/conf.php | 174 ------------------------------------- app/i18n/ru_RU.utf8/feedback.php | 110 ----------------------- app/i18n/ru_RU.utf8/gen.php | 181 -------------------------------------- app/i18n/ru_RU.utf8/index.php | 61 ------------- app/i18n/ru_RU.utf8/install.php | 113 ------------------------ app/i18n/ru_RU.utf8/sub.php | 62 ------------- app/i18n/ru_RU/admin.php | 183 +++++++++++++++++++++++++++++++++++++++ app/i18n/ru_RU/conf.php | 174 +++++++++++++++++++++++++++++++++++++ app/i18n/ru_RU/feedback.php | 110 +++++++++++++++++++++++ app/i18n/ru_RU/gen.php | 181 ++++++++++++++++++++++++++++++++++++++ app/i18n/ru_RU/index.php | 61 +++++++++++++ app/i18n/ru_RU/install.php | 113 ++++++++++++++++++++++++ app/i18n/ru_RU/sub.php | 62 +++++++++++++ 14 files changed, 884 insertions(+), 884 deletions(-) delete mode 100644 app/i18n/ru_RU.utf8/admin.php delete mode 100644 app/i18n/ru_RU.utf8/conf.php delete mode 100644 app/i18n/ru_RU.utf8/feedback.php delete mode 100644 app/i18n/ru_RU.utf8/gen.php delete mode 100644 app/i18n/ru_RU.utf8/index.php delete mode 100644 app/i18n/ru_RU.utf8/install.php delete mode 100644 app/i18n/ru_RU.utf8/sub.php create mode 100644 app/i18n/ru_RU/admin.php create mode 100644 app/i18n/ru_RU/conf.php create mode 100644 app/i18n/ru_RU/feedback.php create mode 100644 app/i18n/ru_RU/gen.php create mode 100644 app/i18n/ru_RU/index.php create mode 100644 app/i18n/ru_RU/install.php create mode 100644 app/i18n/ru_RU/sub.php (limited to 'app/i18n') diff --git a/app/i18n/ru_RU.utf8/admin.php b/app/i18n/ru_RU.utf8/admin.php deleted file mode 100644 index dfea5b3cb..000000000 --- a/app/i18n/ru_RU.utf8/admin.php +++ /dev/null @@ -1,183 +0,0 @@ - array( - 'allow_anonymous' => 'Разрешить анонимное чтение статей для пользователя по умолчанию (%s)', - 'allow_anonymous_refresh' => 'Разрешить анонимное обновление статей', - 'api_enabled' => 'Включить доступ к API (необходимо для мобильных приложений)', - 'form' => 'На основе веб-формы (традиционный, необходим JavaScript)', - 'http' => 'HTTP (для продвинутых пользователей - по HTTPS)', - 'none' => 'Без аутентификации (небезопасный)', - 'persona' => 'Mozilla Persona (новый, необходим JavaScript)', - 'title' => 'Аутентификации', - 'title_reset' => 'Сброс аутентицикации', - 'token' => 'Токен аутентификации', - 'token_help' => 'Разрешает доступ к RSS ленте пользователя по умолчанию без аутентификации:', - 'type' => 'Метод аутентификации', - 'unsafe_autologin' => 'Разрешить небезопасный автоматический вход с использованием следующего формата: ', - ), - 'check_install' => array( - 'cache' => array( - 'nok' => 'Проверьте права доступа к папке ./data/cache. Сервер HTTP должен иметь права на запись в эту папку', - 'ok' => 'Права на ./data/cache в порядке.', - ), - 'categories' => array( - 'nok' => 'Таблица категорий настроена неправильно.', - 'ok' => 'Таблица категорий настроена правильно.', - ), - 'connection' => array( - 'nok' => 'Подключение к базе данных не может быть установлено.', - 'ok' => 'Подключение к базе данных в порядке.', - ), - 'ctype' => array( - 'nok' => 'У вас не установлена библиотека для проверки типов символов (php-ctype).', - 'ok' => 'У вас не установлена библиотека для проверки типов символов (ctype).', - ), - 'curl' => array( - 'nok' => 'У вас не установлено расширение cURL (пакет php5-curl).', - 'ok' => 'У вас установлено расширение cURL.', - ), - 'data' => array( - 'nok' => 'Проверьте права доступа к папке ./data . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на ./data/ в порядке.', - ), - 'database' => 'Установка базы данных', - 'dom' => array( - 'nok' => 'У вас не установлена библиотека для просмотра DOM (пакет php-xml).', - 'ok' => 'У вас установлена библиотека для просмотра DOM.', - ), - 'entries' => array( - 'nok' => 'Таблица статей (entry) неправильно настроена.', - 'ok' => 'Таблица статей (entry) настроена правильно.', - ), - 'favicons' => array( - 'nok' => 'Проверьте права доступа к папке ./data/favicons . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку значков в порядке.', - ), - 'feeds' => array( - 'nok' => 'Таблица подписок (feed) неправильно настроена.', - 'ok' => 'Таблица подписок (feed) настроена правильно.', - ), - 'files' => 'Установка файлов', - 'json' => array( - 'nok' => 'У вас не установлена библиотека для работы с JSON (пакет php5-json).', - 'ok' => 'У вас установлена библиотека для работы с JSON.', - ), - 'minz' => array( - 'nok' => 'У вас не установлен фрейворк Minz.', - 'ok' => 'У вас установлен фрейворк Minz.', - ), - 'pcre' => array( - 'nok' => 'У вас не установлена необходимая библиотека для работы с регулярными выражениями (php-pcre).', - 'ok' => 'У вас установлена необходимая библиотека для работы с регулярными выражениями (PCRE).', - ), - 'pdo' => array( - 'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite).', - 'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite).', - ), - 'persona' => array( - 'nok' => 'Проверьте права доступа к папке ./data/persona . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку Mozilla Persona в порядке.', - ), - 'php' => array( - '_' => 'PHP installation', - 'nok' => 'У вас установлен PHP версии %s, но FreshRSS необходима версия не ниже %s.', - 'ok' => 'У вас установлен PHP версии %s, который совместим с FreshRSS.', - ), - 'tables' => array( - 'nok' => 'В базе данных отсуствует одна или больше таблица.', - 'ok' => 'Все таблицы есть в базе данных.', - ), - 'title' => 'Проверка установки и настройки', - 'tokens' => array( - 'nok' => 'Проверьте права доступа к папке ./data/tokens . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку tokens в порядке.', - ), - 'users' => array( - 'nok' => 'Проверьте права доступа к папке ./data/users . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку users в порядке.', - ), - 'zip' => array( - 'nok' => 'You lack ZIP extension (php5-zip package).', - 'ok' => 'You have ZIP extension.', - ), - ), - 'extensions' => array( - 'disabled' => 'Отключены', - 'empty_list' => 'Расширения не установлены', - 'enabled' => 'Включены', - 'no_configure_view' => 'Это расширение нельзя настроить.', - 'system' => array( - '_' => 'Системные расширения', - 'no_rights' => 'Системные расширения (у вас нет к ним доступа)', - ), - 'title' => 'Расширения', - 'user' => 'Расширения пользователя', - ), - 'stats' => array( - '_' => 'Статистика', - 'all_feeds' => 'Все подписки', - 'category' => 'Категория', - 'entry_count' => 'Количество статей', - 'entry_per_category' => 'Статей в категории', - 'entry_per_day' => 'Статей за день (за последние 30 дней)', - 'entry_per_day_of_week' => 'За неделю (в среднем - %.2f сообщений)', - 'entry_per_hour' => 'За час (в среднем - %.2f сообщений)', - 'entry_per_month' => 'За месяц (в среднем - %.2f сообщений)', - 'entry_repartition' => 'Перерасределение статей', - 'feed' => 'Подписка', - 'feed_per_category' => 'Подписок в категории', - 'idle' => 'Неактивные подписки', - 'main' => 'Основная статистика', - 'main_stream' => 'Основной поток', - 'menu' => array( - 'idle' => 'Неактивные подписки', - 'main' => 'Основная статистика', - 'repartition' => 'Перерасределение статей', - ), - 'no_idle' => 'Нет неактивных подписок!', - 'number_entries' => 'статей: %d', - 'percent_of_total' => '%% от всего', - 'repartition' => 'Перераспределение статей', - 'status_favorites' => 'Избранное', - 'status_read' => 'Читать', - 'status_total' => 'Всего', - 'status_unread' => 'Не прочитано', - 'title' => 'Статистика', - 'top_feed' => '10 лучших подписок', - ), - 'system' => array( - '_' => 'Системные настройки', - 'auto-update-url' => 'Адрес сервера для автоматического обновления', - 'instance-name' => 'Название этого сервера', - 'max-categories' => 'Количество категорий на пользователя', - 'max-feeds' => 'Количество статей на пользователя', - 'registration' => array( - 'help' => '0 означает неограниченное количество пользователей', - 'number' => 'Максимальное количество пользователей', - ), - ), - 'update' => array( - '_' => 'Обновление системы', - 'apply' => 'Применить', - 'check' => 'Проверить обновления', - 'current_version' => 'Ваша текущая версия FreshRSS: %s.', - 'last' => 'Последняя проверка: %s', - 'none' => 'Нечего обновлять', - 'title' => 'Обновить систему', - ), - 'user' => array( - 'articles_and_size' => '%s статей (%s)', - 'create' => 'Создать нового пользователя', - 'email_persona' => 'Адрес электронной почты для входа
    (for Mozilla Persona)', - 'language' => 'Язык', - 'number' => 'На данный момент создан %d аккаунт', - 'numbers' => 'На данный момент аккаунтов создано: %d', - 'password_form' => 'Пароль
    (для входа через Веб-форму)', - 'password_format' => 'Минимум 7 символов', - 'title' => 'Управление пользователями', - 'user_list' => 'Список пользователей', - 'username' => 'Имя пользователя', - 'users' => 'Пользователи', - ), -); diff --git a/app/i18n/ru_RU.utf8/conf.php b/app/i18n/ru_RU.utf8/conf.php deleted file mode 100644 index e502e9a43..000000000 --- a/app/i18n/ru_RU.utf8/conf.php +++ /dev/null @@ -1,174 +0,0 @@ - array( - '_' => 'Архивация', - 'advanced' => 'Продвинутые настройки', - 'delete_after' => 'Удалять статьи после', - 'help' => 'Каждую подписку можно настроить более гибко', - 'keep_history_by_feed' => 'Minimum number of articles to keep by feed', - 'optimize' => 'Оптимизировать базу данных', - 'optimize_help' => 'To do occasionally to reduce the size of the database', - 'purge_now' => 'Очистить сейчас', - 'title' => 'Архивация', - 'ttl' => 'Не обновлять чаще чем', - ), - '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' => 'Язык', - 'notif_html5' => array( - 'seconds' => 'seconds (0 means no timeout)', - 'timeout' => 'HTML5 notification timeout', - ), - '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', - 'delete' => array( - '_' => 'Account deletion', - 'warn' => 'Your account and all the related data will be deleted.', - ), - 'email_persona' => 'Login email address
    (for Mozilla Persona)', - 'password_api' => 'Password API
    (e.g., for mobile apps)', - 'password_form' => 'Password
    (for the Web-form login method)', - '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', - 'mark_updated_article_unread' => 'Mark updated articles as unread', - '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.
    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' => '+ shift 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/ru_RU.utf8/feedback.php b/app/i18n/ru_RU.utf8/feedback.php deleted file mode 100644 index c9189c0d0..000000000 --- a/app/i18n/ru_RU.utf8/feedback.php +++ /dev/null @@ -1,110 +0,0 @@ - array( - 'optimization_complete' => 'Optimisation 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. Check FressRSS logs for details.', - 'ok' => '%s is now disabled', - ), - 'enable' => array( - 'ko' => '%s cannot be enabled. Check FressRSS logs 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' => 'Actualise', - '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' => '%s has been updated', - 'actualizeds' => 'RSS feeds have been updated', - 'added' => 'RSS feed %s has been added', - 'already_subscribed' => 'You have already subscribed to %s', - 'deleted' => 'Feed has been deleted', - 'error' => 'Feed cannot be updated', - 'internal_problem' => 'The RSS feed could not be added. Check FressRSS logs for details.', - 'invalid_url' => 'URL %s 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' => '%s 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 now be updated to the version %s.', - 'error' => 'The update process has encountered an error: %s', - 'file_is_nok' => 'Check permissions on %s 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/ru_RU.utf8/gen.php b/app/i18n/ru_RU.utf8/gen.php deleted file mode 100644 index d23b12f95..000000000 --- a/app/i18n/ru_RU.utf8/gen.php +++ /dev/null @@ -1,181 +0,0 @@ - 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' => 'Filter', - '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( - 'email' => 'Email address', - 'keep_logged_in' => 'Keep me logged in (1 month)', - 'login' => 'Login', - 'login_persona' => 'Login with Persona', - 'login_persona_problem' => 'Connection problem with Persona?', - 'logout' => 'Logout', - 'password' => array( - '_' => 'Password', - 'format' => 'At least 7 characters', - ), - 'registration' => array( - '_' => 'New account', - 'ask' => 'Create an account?', - 'title' => 'Account creation', - ), - 'reset' => 'Authentication reset', - 'username' => array( - '_' => 'Username', - 'admin' => 'Administrator username', - 'format' => 'maximum 16 alphanumeric characters', - ), - '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( - 'cz' => 'Čeština', - 'de' => 'Deutsch', - 'en' => 'English', - 'fr' => 'Français', - 'it' => 'Italiano', - 'nl' => 'Nederlands', - ), - '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', - 'system' => 'System configuration', - '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+', - 'movim' => 'Movim', - 'print' => 'Print', - 'shaarli' => 'Shaarli', - 'twitter' => 'Twitter', - 'wallabag' => 'wallabag', - ), - 'short' => array( - 'attention' => 'Warning!', - 'blank_to_disable' => 'Leave blank to disable', - 'by_author' => 'By %s', - 'by_default' => 'By default', - 'damn' => 'Damn!', - 'default_category' => 'Uncategorized', - 'no' => 'No', - 'not_applicable' => 'Not available', - 'ok' => 'Ok!', - 'or' => 'or', - 'yes' => 'Yes', - ), -); diff --git a/app/i18n/ru_RU.utf8/index.php b/app/i18n/ru_RU.utf8/index.php deleted file mode 100644 index 80fa3d950..000000000 --- a/app/i18n/ru_RU.utf8/index.php +++ /dev/null @@ -1,61 +0,0 @@ - array( - '_' => 'About', - 'agpl3' => 'AGPL 3', - 'bugs_reports' => 'Bugs reports', - 'credits' => 'Credits', - 'credits_content' => 'Some design elements come from Bootstrap although FreshRSS doesn’t use this framework. Icons come from GNOME project. Open Sans font police has been created by Steve Matteson. Favicons are collected with getFavicon API. FreshRSS is based on Minz, a PHP framework.', - 'freshrss_description' => 'FreshRSS is a RSS feeds aggregator to self-host like Kriss Feed or Leed. It is light and easy to take in hand while being powerful and configurable tool.', - 'github' => 'on Github', - '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/ru_RU.utf8/install.php b/app/i18n/ru_RU.utf8/install.php deleted file mode 100644 index c838b2eba..000000000 --- a/app/i18n/ru_RU.utf8/install.php +++ /dev/null @@ -1,113 +0,0 @@ - array( - 'finish' => 'Завершить установку', - 'fix_errors_before' => 'Пожалуйста, исправьте ошибки прежде чем переходить к следующему этапу.', - 'keep_install' => 'Сохранить предыдущую установку', - 'next_step' => 'Перейти к следующему этапу', - 'reinstall' => 'Переустановить FreshRSS', - ), - 'auth' => array( - 'email_persona' => 'Почта (логин) для
    (for Mozilla Persona)', - 'form' => 'Вэб-форма (традиционный, необходим JavaScript)', - 'http' => 'HTTP (для продвинутых пользователей с HTTPS)', - 'none' => 'Никакого (опасно)', - 'password_form' => 'Пароль
    (для метода аутентификации на Вэб-формах)', - 'password_format' => 'Как минимум 7 букв', - 'persona' => 'Mozilla Persona (современный, необходим JavaScript)', - 'type' => 'Метод аутентификации', - ), - 'bdd' => array( - '_' => 'База данных', - 'conf' => array( - '_' => 'Конфигурация базы данныхDatabase configuration', - 'ko' => 'Проверьте конфигурацию базы данных.', - 'ok' => 'Конфигурация базы данных сохранена.', - ), - 'host' => 'Хост', - 'prefix' => 'Префикс таблицы', - 'password' => 'Пароль HTTP', - 'type' => 'Тип базы данных', - 'username' => 'Имя пользователя HTTP', - ), - 'check' => array( - '_' => 'Проверки', - 'already_installed' => 'Обнаружена предыдущая установка FreshRSS!', - 'cache' => array( - 'nok' => 'Проверьте права доступа к папке ./data/cache . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку кэша в порядке.', - ), - 'ctype' => array( - 'nok' => 'У вас не установлена необходимая библиотека для проверки типов символов (php-ctype).', - 'ok' => 'У вас установлена необходимая библиотека для проверки типов символов (ctype).', - ), - 'curl' => array( - 'nok' => 'У вас нет расширения cURL (пакет php5-curl).', - 'ok' => 'У вас установлено расширение cURL.', - ), - 'data' => array( - 'nok' => 'Проверьте права доступа к папке ./data . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на ./data/ в порядке.', - ), - 'dom' => array( - 'nok' => 'У вас не установлена необходимая библиотека для просмотра DOM (пакет php-xml).', - 'ok' => 'У вас установлена необходимая библиотека для просмотра DOM.', - ), - 'favicons' => array( - 'nok' => 'Проверьте права доступа к папке ./data/favicons . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку значков в порядке.', - ), - 'http_referer' => array( - 'nok' => 'Убедитесь, что вы не изменяете ваш HTTP REFERER.', - 'ok' => 'Ваш HTTP REFERER известен и соотвествует вашему серверу.', - ), - 'minz' => array( - 'nok' => 'У вас не установлен фрейворк Minz.', - 'ok' => 'У вас установлен фрейворк Minz.', - ), - 'pcre' => array( - 'nok' => 'У вас не установлена необходимая библиотека для работы с регулярными выражениями (php-pcre).', - 'ok' => 'У вас установлена необходимая библиотека для работы с регулярными выражениями (PCRE).', - ), - 'pdo' => array( - 'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite).', - 'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite).', - ), - 'persona' => array( - 'nok' => 'Проверьте права доступа к папке ./data/persona . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку Mozilla Persona в порядке.', - ), - 'php' => array( - 'nok' => 'У вас установлен PHP версии %s, но FreshRSS необходима версия не ниже %s.', - 'ok' => 'У вас установлен PHP версии %s, который совместим с FreshRSS.', - ), - 'users' => array( - 'nok' => 'Проверьте права доступа к папке ./data/users . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку users в порядке.', - ), - ), - 'conf' => array( - '_' => 'Общие настройки', - 'ok' => 'Общие настройки были сохранены.', - ), - 'congratulations' => 'Поздравляем!', - 'default_user' => 'Имя пользователя по умолчанию (максимум 16 латинских букв и/или цифр)', - 'delete_articles_after' => 'Удалять статьи после', - 'fix_errors_before' => 'Пожалуйста, исправьте ошибки прежде чем переходить к следующему этапу..', - 'javascript_is_better' => 'FreshRSS принесёт больше удовольствия, если включить JavaScript', - 'js' => array( - 'confirm_reinstall' => 'Переустанавливая FreshRSS, вы потеряете предыдущую конфигурацию. Вы хотите продолжить?', - ), - 'language' => array( - '_' => 'Язык', - 'choose' => 'Выберите язык для FreshRSS', - 'defined' => 'Язык выбран.', - ), - 'not_deleted' => 'Что-то пошло не так; удалите файл %s вручную.', - 'ok' => 'Установка успешна.', - 'step' => '%d этап', - 'steps' => 'Этапы', - 'title' => 'Установка · FreshRSS', - 'this_is_the_end' => 'Это конец', -); diff --git a/app/i18n/ru_RU.utf8/sub.php b/app/i18n/ru_RU.utf8/sub.php deleted file mode 100644 index aaaa02827..000000000 --- a/app/i18n/ru_RU.utf8/sub.php +++ /dev/null @@ -1,62 +0,0 @@ - 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 (caution, 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, its feeds are automatically classified under %s.', - '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', - 'pubsubhubbub' => 'Instant notification with PubSubHubbub', - ), - '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
    (OPML, Json or Zip)', - 'file_to_import_no_zip' => 'File to import
    (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/ru_RU/admin.php b/app/i18n/ru_RU/admin.php new file mode 100644 index 000000000..dfea5b3cb --- /dev/null +++ b/app/i18n/ru_RU/admin.php @@ -0,0 +1,183 @@ + array( + 'allow_anonymous' => 'Разрешить анонимное чтение статей для пользователя по умолчанию (%s)', + 'allow_anonymous_refresh' => 'Разрешить анонимное обновление статей', + 'api_enabled' => 'Включить доступ к API (необходимо для мобильных приложений)', + 'form' => 'На основе веб-формы (традиционный, необходим JavaScript)', + 'http' => 'HTTP (для продвинутых пользователей - по HTTPS)', + 'none' => 'Без аутентификации (небезопасный)', + 'persona' => 'Mozilla Persona (новый, необходим JavaScript)', + 'title' => 'Аутентификации', + 'title_reset' => 'Сброс аутентицикации', + 'token' => 'Токен аутентификации', + 'token_help' => 'Разрешает доступ к RSS ленте пользователя по умолчанию без аутентификации:', + 'type' => 'Метод аутентификации', + 'unsafe_autologin' => 'Разрешить небезопасный автоматический вход с использованием следующего формата: ', + ), + 'check_install' => array( + 'cache' => array( + 'nok' => 'Проверьте права доступа к папке ./data/cache. Сервер HTTP должен иметь права на запись в эту папку', + 'ok' => 'Права на ./data/cache в порядке.', + ), + 'categories' => array( + 'nok' => 'Таблица категорий настроена неправильно.', + 'ok' => 'Таблица категорий настроена правильно.', + ), + 'connection' => array( + 'nok' => 'Подключение к базе данных не может быть установлено.', + 'ok' => 'Подключение к базе данных в порядке.', + ), + 'ctype' => array( + 'nok' => 'У вас не установлена библиотека для проверки типов символов (php-ctype).', + 'ok' => 'У вас не установлена библиотека для проверки типов символов (ctype).', + ), + 'curl' => array( + 'nok' => 'У вас не установлено расширение cURL (пакет php5-curl).', + 'ok' => 'У вас установлено расширение cURL.', + ), + 'data' => array( + 'nok' => 'Проверьте права доступа к папке ./data . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на ./data/ в порядке.', + ), + 'database' => 'Установка базы данных', + 'dom' => array( + 'nok' => 'У вас не установлена библиотека для просмотра DOM (пакет php-xml).', + 'ok' => 'У вас установлена библиотека для просмотра DOM.', + ), + 'entries' => array( + 'nok' => 'Таблица статей (entry) неправильно настроена.', + 'ok' => 'Таблица статей (entry) настроена правильно.', + ), + 'favicons' => array( + 'nok' => 'Проверьте права доступа к папке ./data/favicons . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку значков в порядке.', + ), + 'feeds' => array( + 'nok' => 'Таблица подписок (feed) неправильно настроена.', + 'ok' => 'Таблица подписок (feed) настроена правильно.', + ), + 'files' => 'Установка файлов', + 'json' => array( + 'nok' => 'У вас не установлена библиотека для работы с JSON (пакет php5-json).', + 'ok' => 'У вас установлена библиотека для работы с JSON.', + ), + 'minz' => array( + 'nok' => 'У вас не установлен фрейворк Minz.', + 'ok' => 'У вас установлен фрейворк Minz.', + ), + 'pcre' => array( + 'nok' => 'У вас не установлена необходимая библиотека для работы с регулярными выражениями (php-pcre).', + 'ok' => 'У вас установлена необходимая библиотека для работы с регулярными выражениями (PCRE).', + ), + 'pdo' => array( + 'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite).', + 'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite).', + ), + 'persona' => array( + 'nok' => 'Проверьте права доступа к папке ./data/persona . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку Mozilla Persona в порядке.', + ), + 'php' => array( + '_' => 'PHP installation', + 'nok' => 'У вас установлен PHP версии %s, но FreshRSS необходима версия не ниже %s.', + 'ok' => 'У вас установлен PHP версии %s, который совместим с FreshRSS.', + ), + 'tables' => array( + 'nok' => 'В базе данных отсуствует одна или больше таблица.', + 'ok' => 'Все таблицы есть в базе данных.', + ), + 'title' => 'Проверка установки и настройки', + 'tokens' => array( + 'nok' => 'Проверьте права доступа к папке ./data/tokens . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку tokens в порядке.', + ), + 'users' => array( + 'nok' => 'Проверьте права доступа к папке ./data/users . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку users в порядке.', + ), + 'zip' => array( + 'nok' => 'You lack ZIP extension (php5-zip package).', + 'ok' => 'You have ZIP extension.', + ), + ), + 'extensions' => array( + 'disabled' => 'Отключены', + 'empty_list' => 'Расширения не установлены', + 'enabled' => 'Включены', + 'no_configure_view' => 'Это расширение нельзя настроить.', + 'system' => array( + '_' => 'Системные расширения', + 'no_rights' => 'Системные расширения (у вас нет к ним доступа)', + ), + 'title' => 'Расширения', + 'user' => 'Расширения пользователя', + ), + 'stats' => array( + '_' => 'Статистика', + 'all_feeds' => 'Все подписки', + 'category' => 'Категория', + 'entry_count' => 'Количество статей', + 'entry_per_category' => 'Статей в категории', + 'entry_per_day' => 'Статей за день (за последние 30 дней)', + 'entry_per_day_of_week' => 'За неделю (в среднем - %.2f сообщений)', + 'entry_per_hour' => 'За час (в среднем - %.2f сообщений)', + 'entry_per_month' => 'За месяц (в среднем - %.2f сообщений)', + 'entry_repartition' => 'Перерасределение статей', + 'feed' => 'Подписка', + 'feed_per_category' => 'Подписок в категории', + 'idle' => 'Неактивные подписки', + 'main' => 'Основная статистика', + 'main_stream' => 'Основной поток', + 'menu' => array( + 'idle' => 'Неактивные подписки', + 'main' => 'Основная статистика', + 'repartition' => 'Перерасределение статей', + ), + 'no_idle' => 'Нет неактивных подписок!', + 'number_entries' => 'статей: %d', + 'percent_of_total' => '%% от всего', + 'repartition' => 'Перераспределение статей', + 'status_favorites' => 'Избранное', + 'status_read' => 'Читать', + 'status_total' => 'Всего', + 'status_unread' => 'Не прочитано', + 'title' => 'Статистика', + 'top_feed' => '10 лучших подписок', + ), + 'system' => array( + '_' => 'Системные настройки', + 'auto-update-url' => 'Адрес сервера для автоматического обновления', + 'instance-name' => 'Название этого сервера', + 'max-categories' => 'Количество категорий на пользователя', + 'max-feeds' => 'Количество статей на пользователя', + 'registration' => array( + 'help' => '0 означает неограниченное количество пользователей', + 'number' => 'Максимальное количество пользователей', + ), + ), + 'update' => array( + '_' => 'Обновление системы', + 'apply' => 'Применить', + 'check' => 'Проверить обновления', + 'current_version' => 'Ваша текущая версия FreshRSS: %s.', + 'last' => 'Последняя проверка: %s', + 'none' => 'Нечего обновлять', + 'title' => 'Обновить систему', + ), + 'user' => array( + 'articles_and_size' => '%s статей (%s)', + 'create' => 'Создать нового пользователя', + 'email_persona' => 'Адрес электронной почты для входа
    (for Mozilla Persona)', + 'language' => 'Язык', + 'number' => 'На данный момент создан %d аккаунт', + 'numbers' => 'На данный момент аккаунтов создано: %d', + 'password_form' => 'Пароль
    (для входа через Веб-форму)', + 'password_format' => 'Минимум 7 символов', + 'title' => 'Управление пользователями', + 'user_list' => 'Список пользователей', + 'username' => 'Имя пользователя', + 'users' => 'Пользователи', + ), +); diff --git a/app/i18n/ru_RU/conf.php b/app/i18n/ru_RU/conf.php new file mode 100644 index 000000000..e502e9a43 --- /dev/null +++ b/app/i18n/ru_RU/conf.php @@ -0,0 +1,174 @@ + array( + '_' => 'Архивация', + 'advanced' => 'Продвинутые настройки', + 'delete_after' => 'Удалять статьи после', + 'help' => 'Каждую подписку можно настроить более гибко', + 'keep_history_by_feed' => 'Minimum number of articles to keep by feed', + 'optimize' => 'Оптимизировать базу данных', + 'optimize_help' => 'To do occasionally to reduce the size of the database', + 'purge_now' => 'Очистить сейчас', + 'title' => 'Архивация', + 'ttl' => 'Не обновлять чаще чем', + ), + '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' => 'Язык', + 'notif_html5' => array( + 'seconds' => 'seconds (0 means no timeout)', + 'timeout' => 'HTML5 notification timeout', + ), + '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', + 'delete' => array( + '_' => 'Account deletion', + 'warn' => 'Your account and all the related data will be deleted.', + ), + 'email_persona' => 'Login email address
    (for Mozilla Persona)', + 'password_api' => 'Password API
    (e.g., for mobile apps)', + 'password_form' => 'Password
    (for the Web-form login method)', + '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', + 'mark_updated_article_unread' => 'Mark updated articles as unread', + '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.
    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' => '+ shift 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/ru_RU/feedback.php b/app/i18n/ru_RU/feedback.php new file mode 100644 index 000000000..c9189c0d0 --- /dev/null +++ b/app/i18n/ru_RU/feedback.php @@ -0,0 +1,110 @@ + array( + 'optimization_complete' => 'Optimisation 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. Check FressRSS logs for details.', + 'ok' => '%s is now disabled', + ), + 'enable' => array( + 'ko' => '%s cannot be enabled. Check FressRSS logs 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' => 'Actualise', + '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' => '%s has been updated', + 'actualizeds' => 'RSS feeds have been updated', + 'added' => 'RSS feed %s has been added', + 'already_subscribed' => 'You have already subscribed to %s', + 'deleted' => 'Feed has been deleted', + 'error' => 'Feed cannot be updated', + 'internal_problem' => 'The RSS feed could not be added. Check FressRSS logs for details.', + 'invalid_url' => 'URL %s 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' => '%s 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 now be updated to the version %s.', + 'error' => 'The update process has encountered an error: %s', + 'file_is_nok' => 'Check permissions on %s 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/ru_RU/gen.php b/app/i18n/ru_RU/gen.php new file mode 100644 index 000000000..d23b12f95 --- /dev/null +++ b/app/i18n/ru_RU/gen.php @@ -0,0 +1,181 @@ + 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' => 'Filter', + '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( + 'email' => 'Email address', + 'keep_logged_in' => 'Keep me logged in (1 month)', + 'login' => 'Login', + 'login_persona' => 'Login with Persona', + 'login_persona_problem' => 'Connection problem with Persona?', + 'logout' => 'Logout', + 'password' => array( + '_' => 'Password', + 'format' => 'At least 7 characters', + ), + 'registration' => array( + '_' => 'New account', + 'ask' => 'Create an account?', + 'title' => 'Account creation', + ), + 'reset' => 'Authentication reset', + 'username' => array( + '_' => 'Username', + 'admin' => 'Administrator username', + 'format' => 'maximum 16 alphanumeric characters', + ), + '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( + 'cz' => 'Čeština', + 'de' => 'Deutsch', + 'en' => 'English', + 'fr' => 'Français', + 'it' => 'Italiano', + 'nl' => 'Nederlands', + ), + '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', + 'system' => 'System configuration', + '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+', + 'movim' => 'Movim', + 'print' => 'Print', + 'shaarli' => 'Shaarli', + 'twitter' => 'Twitter', + 'wallabag' => 'wallabag', + ), + 'short' => array( + 'attention' => 'Warning!', + 'blank_to_disable' => 'Leave blank to disable', + 'by_author' => 'By %s', + 'by_default' => 'By default', + 'damn' => 'Damn!', + 'default_category' => 'Uncategorized', + 'no' => 'No', + 'not_applicable' => 'Not available', + 'ok' => 'Ok!', + 'or' => 'or', + 'yes' => 'Yes', + ), +); diff --git a/app/i18n/ru_RU/index.php b/app/i18n/ru_RU/index.php new file mode 100644 index 000000000..80fa3d950 --- /dev/null +++ b/app/i18n/ru_RU/index.php @@ -0,0 +1,61 @@ + array( + '_' => 'About', + 'agpl3' => 'AGPL 3', + 'bugs_reports' => 'Bugs reports', + 'credits' => 'Credits', + 'credits_content' => 'Some design elements come from Bootstrap although FreshRSS doesn’t use this framework. Icons come from GNOME project. Open Sans font police has been created by Steve Matteson. Favicons are collected with getFavicon API. FreshRSS is based on Minz, a PHP framework.', + 'freshrss_description' => 'FreshRSS is a RSS feeds aggregator to self-host like Kriss Feed or Leed. It is light and easy to take in hand while being powerful and configurable tool.', + 'github' => 'on Github', + '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/ru_RU/install.php b/app/i18n/ru_RU/install.php new file mode 100644 index 000000000..c838b2eba --- /dev/null +++ b/app/i18n/ru_RU/install.php @@ -0,0 +1,113 @@ + array( + 'finish' => 'Завершить установку', + 'fix_errors_before' => 'Пожалуйста, исправьте ошибки прежде чем переходить к следующему этапу.', + 'keep_install' => 'Сохранить предыдущую установку', + 'next_step' => 'Перейти к следующему этапу', + 'reinstall' => 'Переустановить FreshRSS', + ), + 'auth' => array( + 'email_persona' => 'Почта (логин) для
    (for Mozilla Persona)', + 'form' => 'Вэб-форма (традиционный, необходим JavaScript)', + 'http' => 'HTTP (для продвинутых пользователей с HTTPS)', + 'none' => 'Никакого (опасно)', + 'password_form' => 'Пароль
    (для метода аутентификации на Вэб-формах)', + 'password_format' => 'Как минимум 7 букв', + 'persona' => 'Mozilla Persona (современный, необходим JavaScript)', + 'type' => 'Метод аутентификации', + ), + 'bdd' => array( + '_' => 'База данных', + 'conf' => array( + '_' => 'Конфигурация базы данныхDatabase configuration', + 'ko' => 'Проверьте конфигурацию базы данных.', + 'ok' => 'Конфигурация базы данных сохранена.', + ), + 'host' => 'Хост', + 'prefix' => 'Префикс таблицы', + 'password' => 'Пароль HTTP', + 'type' => 'Тип базы данных', + 'username' => 'Имя пользователя HTTP', + ), + 'check' => array( + '_' => 'Проверки', + 'already_installed' => 'Обнаружена предыдущая установка FreshRSS!', + 'cache' => array( + 'nok' => 'Проверьте права доступа к папке ./data/cache . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку кэша в порядке.', + ), + 'ctype' => array( + 'nok' => 'У вас не установлена необходимая библиотека для проверки типов символов (php-ctype).', + 'ok' => 'У вас установлена необходимая библиотека для проверки типов символов (ctype).', + ), + 'curl' => array( + 'nok' => 'У вас нет расширения cURL (пакет php5-curl).', + 'ok' => 'У вас установлено расширение cURL.', + ), + 'data' => array( + 'nok' => 'Проверьте права доступа к папке ./data . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на ./data/ в порядке.', + ), + 'dom' => array( + 'nok' => 'У вас не установлена необходимая библиотека для просмотра DOM (пакет php-xml).', + 'ok' => 'У вас установлена необходимая библиотека для просмотра DOM.', + ), + 'favicons' => array( + 'nok' => 'Проверьте права доступа к папке ./data/favicons . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку значков в порядке.', + ), + 'http_referer' => array( + 'nok' => 'Убедитесь, что вы не изменяете ваш HTTP REFERER.', + 'ok' => 'Ваш HTTP REFERER известен и соотвествует вашему серверу.', + ), + 'minz' => array( + 'nok' => 'У вас не установлен фрейворк Minz.', + 'ok' => 'У вас установлен фрейворк Minz.', + ), + 'pcre' => array( + 'nok' => 'У вас не установлена необходимая библиотека для работы с регулярными выражениями (php-pcre).', + 'ok' => 'У вас установлена необходимая библиотека для работы с регулярными выражениями (PCRE).', + ), + 'pdo' => array( + 'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite).', + 'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite).', + ), + 'persona' => array( + 'nok' => 'Проверьте права доступа к папке ./data/persona . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку Mozilla Persona в порядке.', + ), + 'php' => array( + 'nok' => 'У вас установлен PHP версии %s, но FreshRSS необходима версия не ниже %s.', + 'ok' => 'У вас установлен PHP версии %s, который совместим с FreshRSS.', + ), + 'users' => array( + 'nok' => 'Проверьте права доступа к папке ./data/users . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку users в порядке.', + ), + ), + 'conf' => array( + '_' => 'Общие настройки', + 'ok' => 'Общие настройки были сохранены.', + ), + 'congratulations' => 'Поздравляем!', + 'default_user' => 'Имя пользователя по умолчанию (максимум 16 латинских букв и/или цифр)', + 'delete_articles_after' => 'Удалять статьи после', + 'fix_errors_before' => 'Пожалуйста, исправьте ошибки прежде чем переходить к следующему этапу..', + 'javascript_is_better' => 'FreshRSS принесёт больше удовольствия, если включить JavaScript', + 'js' => array( + 'confirm_reinstall' => 'Переустанавливая FreshRSS, вы потеряете предыдущую конфигурацию. Вы хотите продолжить?', + ), + 'language' => array( + '_' => 'Язык', + 'choose' => 'Выберите язык для FreshRSS', + 'defined' => 'Язык выбран.', + ), + 'not_deleted' => 'Что-то пошло не так; удалите файл %s вручную.', + 'ok' => 'Установка успешна.', + 'step' => '%d этап', + 'steps' => 'Этапы', + 'title' => 'Установка · FreshRSS', + 'this_is_the_end' => 'Это конец', +); diff --git a/app/i18n/ru_RU/sub.php b/app/i18n/ru_RU/sub.php new file mode 100644 index 000000000..aaaa02827 --- /dev/null +++ b/app/i18n/ru_RU/sub.php @@ -0,0 +1,62 @@ + 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 (caution, 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, its feeds are automatically classified under %s.', + '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', + 'pubsubhubbub' => 'Instant notification with PubSubHubbub', + ), + '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
    (OPML, Json or Zip)', + 'file_to_import_no_zip' => 'File to import
    (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', + ), +); -- cgit v1.2.3 From 053ab59d3dfc62e98866e0ef429d10bb4eb2374b Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 12 Jun 2016 11:54:53 +0200 Subject: i18n RU update Wallabag https://github.com/FreshRSS/FreshRSS/pull/1085 https://github.com/FreshRSS/FreshRSS/pull/1150 --- app/i18n/ru_RU/gen.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/ru_RU/gen.php b/app/i18n/ru_RU/gen.php index d23b12f95..6511311a1 100644 --- a/app/i18n/ru_RU/gen.php +++ b/app/i18n/ru_RU/gen.php @@ -163,7 +163,8 @@ return array( 'print' => 'Print', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', - 'wallabag' => 'wallabag', + 'wallabag' => 'wallabag v1', + 'wallabagv2' => 'wallabag v2', ), 'short' => array( 'attention' => 'Warning!', -- cgit v1.2.3 From 6144413022f3d812528a6124072ac6606ca975ff Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 12 Jun 2016 12:16:42 +0200 Subject: i18n RU finalize draft https://github.com/FreshRSS/FreshRSS/pull/1085 --- CHANGELOG.md | 3 +- app/i18n/cz/gen.php | 1 + app/i18n/de/gen.php | 1 + app/i18n/en/gen.php | 1 + app/i18n/fr/gen.php | 1 + app/i18n/it/gen.php | 1 + app/i18n/nl/gen.php | 1 + app/i18n/ru/admin.php | 183 +++++++++++++++++++++++++++++++++++++++++++ app/i18n/ru/conf.php | 174 +++++++++++++++++++++++++++++++++++++++++ app/i18n/ru/feedback.php | 110 ++++++++++++++++++++++++++ app/i18n/ru/gen.php | 185 ++++++++++++++++++++++++++++++++++++++++++++ app/i18n/ru/index.php | 61 +++++++++++++++ app/i18n/ru/install.php | 113 +++++++++++++++++++++++++++ app/i18n/ru/sub.php | 62 +++++++++++++++ app/i18n/ru_RU/admin.php | 183 ------------------------------------------- app/i18n/ru_RU/conf.php | 174 ----------------------------------------- app/i18n/ru_RU/feedback.php | 110 -------------------------- app/i18n/ru_RU/gen.php | 182 ------------------------------------------- app/i18n/ru_RU/index.php | 61 --------------- app/i18n/ru_RU/install.php | 113 --------------------------- app/i18n/ru_RU/sub.php | 62 --------------- app/i18n/tr/gen.php | 1 + 22 files changed, 897 insertions(+), 886 deletions(-) create mode 100644 app/i18n/ru/admin.php create mode 100644 app/i18n/ru/conf.php create mode 100644 app/i18n/ru/feedback.php create mode 100644 app/i18n/ru/gen.php create mode 100644 app/i18n/ru/index.php create mode 100644 app/i18n/ru/install.php create mode 100644 app/i18n/ru/sub.php delete mode 100644 app/i18n/ru_RU/admin.php delete mode 100644 app/i18n/ru_RU/conf.php delete mode 100644 app/i18n/ru_RU/feedback.php delete mode 100644 app/i18n/ru_RU/gen.php delete mode 100644 app/i18n/ru_RU/index.php delete mode 100644 app/i18n/ru_RU/install.php delete mode 100644 app/i18n/ru_RU/sub.php (limited to 'app/i18n') diff --git a/CHANGELOG.md b/CHANGELOG.md index 112d487b8..fcd5127f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,8 @@ ## 2016-XX-YY FreshRSS 1.3.2-beta -Nothing for the moment +* I18n + * Draft of Russian [#1085](https://github.com/FreshRSS/FreshRSS/pull/1085) ## 2016-03-11 FreshRSS 1.3.1-beta diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index 78ec80f68..af10967a7 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -122,6 +122,7 @@ return array( 'fr' => 'Français', 'it' => 'Italiano', 'nl' => 'Nederlands', + 'ru' => 'Русский', 'tr' => 'Türkçe', ), 'menu' => array( diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index 9b460d08d..4b85c722a 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -122,6 +122,7 @@ return array( 'fr' => 'Français', 'it' => 'Italiano', 'nl' => 'Nederlands', + 'ru' => 'Русский', 'tr' => 'Türkçe', ), 'menu' => array( diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 685a7d1a9..ba4e2f86c 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -122,6 +122,7 @@ return array( 'fr' => 'Français', 'it' => 'Italiano', 'nl' => 'Nederlands', + 'ru' => 'Русский', 'tr' => 'Türkçe', ), 'menu' => array( diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index f6695d887..031098aa2 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -122,6 +122,7 @@ return array( 'fr' => 'Français', 'it' => 'Italiano', 'nl' => 'Nederlands', + 'ru' => 'Русский', 'tr' => 'Türkçe', ), 'menu' => array( diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index b3b4bd78e..bf817d8c2 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -122,6 +122,7 @@ return array( 'fr' => 'Français', 'it' => 'Italiano', 'nl' => 'Nederlands', + 'ru' => 'Русский', 'tr' => 'Türkçe', ), 'menu' => array( diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index 7bd8bbb09..24cba574e 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -122,6 +122,7 @@ return array( 'fr' => 'Français', 'it' => 'Italiano', 'nl' => 'Nederlands', + 'ru' => 'Русский', 'tr' => 'Türkçe', ), 'menu' => array( diff --git a/app/i18n/ru/admin.php b/app/i18n/ru/admin.php new file mode 100644 index 000000000..dfea5b3cb --- /dev/null +++ b/app/i18n/ru/admin.php @@ -0,0 +1,183 @@ + array( + 'allow_anonymous' => 'Разрешить анонимное чтение статей для пользователя по умолчанию (%s)', + 'allow_anonymous_refresh' => 'Разрешить анонимное обновление статей', + 'api_enabled' => 'Включить доступ к API (необходимо для мобильных приложений)', + 'form' => 'На основе веб-формы (традиционный, необходим JavaScript)', + 'http' => 'HTTP (для продвинутых пользователей - по HTTPS)', + 'none' => 'Без аутентификации (небезопасный)', + 'persona' => 'Mozilla Persona (новый, необходим JavaScript)', + 'title' => 'Аутентификации', + 'title_reset' => 'Сброс аутентицикации', + 'token' => 'Токен аутентификации', + 'token_help' => 'Разрешает доступ к RSS ленте пользователя по умолчанию без аутентификации:', + 'type' => 'Метод аутентификации', + 'unsafe_autologin' => 'Разрешить небезопасный автоматический вход с использованием следующего формата: ', + ), + 'check_install' => array( + 'cache' => array( + 'nok' => 'Проверьте права доступа к папке ./data/cache. Сервер HTTP должен иметь права на запись в эту папку', + 'ok' => 'Права на ./data/cache в порядке.', + ), + 'categories' => array( + 'nok' => 'Таблица категорий настроена неправильно.', + 'ok' => 'Таблица категорий настроена правильно.', + ), + 'connection' => array( + 'nok' => 'Подключение к базе данных не может быть установлено.', + 'ok' => 'Подключение к базе данных в порядке.', + ), + 'ctype' => array( + 'nok' => 'У вас не установлена библиотека для проверки типов символов (php-ctype).', + 'ok' => 'У вас не установлена библиотека для проверки типов символов (ctype).', + ), + 'curl' => array( + 'nok' => 'У вас не установлено расширение cURL (пакет php5-curl).', + 'ok' => 'У вас установлено расширение cURL.', + ), + 'data' => array( + 'nok' => 'Проверьте права доступа к папке ./data . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на ./data/ в порядке.', + ), + 'database' => 'Установка базы данных', + 'dom' => array( + 'nok' => 'У вас не установлена библиотека для просмотра DOM (пакет php-xml).', + 'ok' => 'У вас установлена библиотека для просмотра DOM.', + ), + 'entries' => array( + 'nok' => 'Таблица статей (entry) неправильно настроена.', + 'ok' => 'Таблица статей (entry) настроена правильно.', + ), + 'favicons' => array( + 'nok' => 'Проверьте права доступа к папке ./data/favicons . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку значков в порядке.', + ), + 'feeds' => array( + 'nok' => 'Таблица подписок (feed) неправильно настроена.', + 'ok' => 'Таблица подписок (feed) настроена правильно.', + ), + 'files' => 'Установка файлов', + 'json' => array( + 'nok' => 'У вас не установлена библиотека для работы с JSON (пакет php5-json).', + 'ok' => 'У вас установлена библиотека для работы с JSON.', + ), + 'minz' => array( + 'nok' => 'У вас не установлен фрейворк Minz.', + 'ok' => 'У вас установлен фрейворк Minz.', + ), + 'pcre' => array( + 'nok' => 'У вас не установлена необходимая библиотека для работы с регулярными выражениями (php-pcre).', + 'ok' => 'У вас установлена необходимая библиотека для работы с регулярными выражениями (PCRE).', + ), + 'pdo' => array( + 'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite).', + 'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite).', + ), + 'persona' => array( + 'nok' => 'Проверьте права доступа к папке ./data/persona . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку Mozilla Persona в порядке.', + ), + 'php' => array( + '_' => 'PHP installation', + 'nok' => 'У вас установлен PHP версии %s, но FreshRSS необходима версия не ниже %s.', + 'ok' => 'У вас установлен PHP версии %s, который совместим с FreshRSS.', + ), + 'tables' => array( + 'nok' => 'В базе данных отсуствует одна или больше таблица.', + 'ok' => 'Все таблицы есть в базе данных.', + ), + 'title' => 'Проверка установки и настройки', + 'tokens' => array( + 'nok' => 'Проверьте права доступа к папке ./data/tokens . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку tokens в порядке.', + ), + 'users' => array( + 'nok' => 'Проверьте права доступа к папке ./data/users . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку users в порядке.', + ), + 'zip' => array( + 'nok' => 'You lack ZIP extension (php5-zip package).', + 'ok' => 'You have ZIP extension.', + ), + ), + 'extensions' => array( + 'disabled' => 'Отключены', + 'empty_list' => 'Расширения не установлены', + 'enabled' => 'Включены', + 'no_configure_view' => 'Это расширение нельзя настроить.', + 'system' => array( + '_' => 'Системные расширения', + 'no_rights' => 'Системные расширения (у вас нет к ним доступа)', + ), + 'title' => 'Расширения', + 'user' => 'Расширения пользователя', + ), + 'stats' => array( + '_' => 'Статистика', + 'all_feeds' => 'Все подписки', + 'category' => 'Категория', + 'entry_count' => 'Количество статей', + 'entry_per_category' => 'Статей в категории', + 'entry_per_day' => 'Статей за день (за последние 30 дней)', + 'entry_per_day_of_week' => 'За неделю (в среднем - %.2f сообщений)', + 'entry_per_hour' => 'За час (в среднем - %.2f сообщений)', + 'entry_per_month' => 'За месяц (в среднем - %.2f сообщений)', + 'entry_repartition' => 'Перерасределение статей', + 'feed' => 'Подписка', + 'feed_per_category' => 'Подписок в категории', + 'idle' => 'Неактивные подписки', + 'main' => 'Основная статистика', + 'main_stream' => 'Основной поток', + 'menu' => array( + 'idle' => 'Неактивные подписки', + 'main' => 'Основная статистика', + 'repartition' => 'Перерасределение статей', + ), + 'no_idle' => 'Нет неактивных подписок!', + 'number_entries' => 'статей: %d', + 'percent_of_total' => '%% от всего', + 'repartition' => 'Перераспределение статей', + 'status_favorites' => 'Избранное', + 'status_read' => 'Читать', + 'status_total' => 'Всего', + 'status_unread' => 'Не прочитано', + 'title' => 'Статистика', + 'top_feed' => '10 лучших подписок', + ), + 'system' => array( + '_' => 'Системные настройки', + 'auto-update-url' => 'Адрес сервера для автоматического обновления', + 'instance-name' => 'Название этого сервера', + 'max-categories' => 'Количество категорий на пользователя', + 'max-feeds' => 'Количество статей на пользователя', + 'registration' => array( + 'help' => '0 означает неограниченное количество пользователей', + 'number' => 'Максимальное количество пользователей', + ), + ), + 'update' => array( + '_' => 'Обновление системы', + 'apply' => 'Применить', + 'check' => 'Проверить обновления', + 'current_version' => 'Ваша текущая версия FreshRSS: %s.', + 'last' => 'Последняя проверка: %s', + 'none' => 'Нечего обновлять', + 'title' => 'Обновить систему', + ), + 'user' => array( + 'articles_and_size' => '%s статей (%s)', + 'create' => 'Создать нового пользователя', + 'email_persona' => 'Адрес электронной почты для входа
    (for Mozilla Persona)', + 'language' => 'Язык', + 'number' => 'На данный момент создан %d аккаунт', + 'numbers' => 'На данный момент аккаунтов создано: %d', + 'password_form' => 'Пароль
    (для входа через Веб-форму)', + 'password_format' => 'Минимум 7 символов', + 'title' => 'Управление пользователями', + 'user_list' => 'Список пользователей', + 'username' => 'Имя пользователя', + 'users' => 'Пользователи', + ), +); diff --git a/app/i18n/ru/conf.php b/app/i18n/ru/conf.php new file mode 100644 index 000000000..e502e9a43 --- /dev/null +++ b/app/i18n/ru/conf.php @@ -0,0 +1,174 @@ + array( + '_' => 'Архивация', + 'advanced' => 'Продвинутые настройки', + 'delete_after' => 'Удалять статьи после', + 'help' => 'Каждую подписку можно настроить более гибко', + 'keep_history_by_feed' => 'Minimum number of articles to keep by feed', + 'optimize' => 'Оптимизировать базу данных', + 'optimize_help' => 'To do occasionally to reduce the size of the database', + 'purge_now' => 'Очистить сейчас', + 'title' => 'Архивация', + 'ttl' => 'Не обновлять чаще чем', + ), + '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' => 'Язык', + 'notif_html5' => array( + 'seconds' => 'seconds (0 means no timeout)', + 'timeout' => 'HTML5 notification timeout', + ), + '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', + 'delete' => array( + '_' => 'Account deletion', + 'warn' => 'Your account and all the related data will be deleted.', + ), + 'email_persona' => 'Login email address
    (for Mozilla Persona)', + 'password_api' => 'Password API
    (e.g., for mobile apps)', + 'password_form' => 'Password
    (for the Web-form login method)', + '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', + 'mark_updated_article_unread' => 'Mark updated articles as unread', + '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.
    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' => '+ shift 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/ru/feedback.php b/app/i18n/ru/feedback.php new file mode 100644 index 000000000..c9189c0d0 --- /dev/null +++ b/app/i18n/ru/feedback.php @@ -0,0 +1,110 @@ + array( + 'optimization_complete' => 'Optimisation 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. Check FressRSS logs for details.', + 'ok' => '%s is now disabled', + ), + 'enable' => array( + 'ko' => '%s cannot be enabled. Check FressRSS logs 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' => 'Actualise', + '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' => '%s has been updated', + 'actualizeds' => 'RSS feeds have been updated', + 'added' => 'RSS feed %s has been added', + 'already_subscribed' => 'You have already subscribed to %s', + 'deleted' => 'Feed has been deleted', + 'error' => 'Feed cannot be updated', + 'internal_problem' => 'The RSS feed could not be added. Check FressRSS logs for details.', + 'invalid_url' => 'URL %s 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' => '%s 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 now be updated to the version %s.', + 'error' => 'The update process has encountered an error: %s', + 'file_is_nok' => 'Check permissions on %s 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/ru/gen.php b/app/i18n/ru/gen.php new file mode 100644 index 000000000..b8e8511d9 --- /dev/null +++ b/app/i18n/ru/gen.php @@ -0,0 +1,185 @@ + 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' => 'Filter', + '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( + 'email' => 'Email address', + 'keep_logged_in' => 'Keep me logged in (1 month)', + 'login' => 'Login', + 'login_persona' => 'Login with Persona', + 'login_persona_problem' => 'Connection problem with Persona?', + 'logout' => 'Logout', + 'password' => array( + '_' => 'Password', + 'format' => 'At least 7 characters', + ), + 'registration' => array( + '_' => 'New account', + 'ask' => 'Create an account?', + 'title' => 'Account creation', + ), + 'reset' => 'Authentication reset', + 'username' => array( + '_' => 'Username', + 'admin' => 'Administrator username', + 'format' => 'maximum 16 alphanumeric characters', + ), + '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( + 'cz' => 'Čeština', + 'de' => 'Deutsch', + 'en' => 'English', + 'fr' => 'Français', + 'it' => 'Italiano', + 'nl' => 'Nederlands', + 'ru' => 'Русский', + 'tr' => 'Türkçe', + ), + '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', + 'system' => 'System configuration', + '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+', + 'jdh' => 'Journal du hacker', + 'movim' => 'Movim', + 'print' => 'Print', + 'shaarli' => 'Shaarli', + 'twitter' => 'Twitter', + 'wallabag' => 'wallabag v1', + 'wallabagv2' => 'wallabag v2', + ), + 'short' => array( + 'attention' => 'Warning!', + 'blank_to_disable' => 'Leave blank to disable', + 'by_author' => 'By %s', + 'by_default' => 'By default', + 'damn' => 'Damn!', + 'default_category' => 'Uncategorized', + 'no' => 'No', + 'not_applicable' => 'Not available', + 'ok' => 'Ok!', + 'or' => 'or', + 'yes' => 'Yes', + ), +); diff --git a/app/i18n/ru/index.php b/app/i18n/ru/index.php new file mode 100644 index 000000000..80fa3d950 --- /dev/null +++ b/app/i18n/ru/index.php @@ -0,0 +1,61 @@ + array( + '_' => 'About', + 'agpl3' => 'AGPL 3', + 'bugs_reports' => 'Bugs reports', + 'credits' => 'Credits', + 'credits_content' => 'Some design elements come from Bootstrap although FreshRSS doesn’t use this framework. Icons come from GNOME project. Open Sans font police has been created by Steve Matteson. Favicons are collected with getFavicon API. FreshRSS is based on Minz, a PHP framework.', + 'freshrss_description' => 'FreshRSS is a RSS feeds aggregator to self-host like Kriss Feed or Leed. It is light and easy to take in hand while being powerful and configurable tool.', + 'github' => 'on Github', + '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/ru/install.php b/app/i18n/ru/install.php new file mode 100644 index 000000000..c838b2eba --- /dev/null +++ b/app/i18n/ru/install.php @@ -0,0 +1,113 @@ + array( + 'finish' => 'Завершить установку', + 'fix_errors_before' => 'Пожалуйста, исправьте ошибки прежде чем переходить к следующему этапу.', + 'keep_install' => 'Сохранить предыдущую установку', + 'next_step' => 'Перейти к следующему этапу', + 'reinstall' => 'Переустановить FreshRSS', + ), + 'auth' => array( + 'email_persona' => 'Почта (логин) для
    (for Mozilla Persona)', + 'form' => 'Вэб-форма (традиционный, необходим JavaScript)', + 'http' => 'HTTP (для продвинутых пользователей с HTTPS)', + 'none' => 'Никакого (опасно)', + 'password_form' => 'Пароль
    (для метода аутентификации на Вэб-формах)', + 'password_format' => 'Как минимум 7 букв', + 'persona' => 'Mozilla Persona (современный, необходим JavaScript)', + 'type' => 'Метод аутентификации', + ), + 'bdd' => array( + '_' => 'База данных', + 'conf' => array( + '_' => 'Конфигурация базы данныхDatabase configuration', + 'ko' => 'Проверьте конфигурацию базы данных.', + 'ok' => 'Конфигурация базы данных сохранена.', + ), + 'host' => 'Хост', + 'prefix' => 'Префикс таблицы', + 'password' => 'Пароль HTTP', + 'type' => 'Тип базы данных', + 'username' => 'Имя пользователя HTTP', + ), + 'check' => array( + '_' => 'Проверки', + 'already_installed' => 'Обнаружена предыдущая установка FreshRSS!', + 'cache' => array( + 'nok' => 'Проверьте права доступа к папке ./data/cache . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку кэша в порядке.', + ), + 'ctype' => array( + 'nok' => 'У вас не установлена необходимая библиотека для проверки типов символов (php-ctype).', + 'ok' => 'У вас установлена необходимая библиотека для проверки типов символов (ctype).', + ), + 'curl' => array( + 'nok' => 'У вас нет расширения cURL (пакет php5-curl).', + 'ok' => 'У вас установлено расширение cURL.', + ), + 'data' => array( + 'nok' => 'Проверьте права доступа к папке ./data . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на ./data/ в порядке.', + ), + 'dom' => array( + 'nok' => 'У вас не установлена необходимая библиотека для просмотра DOM (пакет php-xml).', + 'ok' => 'У вас установлена необходимая библиотека для просмотра DOM.', + ), + 'favicons' => array( + 'nok' => 'Проверьте права доступа к папке ./data/favicons . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку значков в порядке.', + ), + 'http_referer' => array( + 'nok' => 'Убедитесь, что вы не изменяете ваш HTTP REFERER.', + 'ok' => 'Ваш HTTP REFERER известен и соотвествует вашему серверу.', + ), + 'minz' => array( + 'nok' => 'У вас не установлен фрейворк Minz.', + 'ok' => 'У вас установлен фрейворк Minz.', + ), + 'pcre' => array( + 'nok' => 'У вас не установлена необходимая библиотека для работы с регулярными выражениями (php-pcre).', + 'ok' => 'У вас установлена необходимая библиотека для работы с регулярными выражениями (PCRE).', + ), + 'pdo' => array( + 'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite).', + 'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite).', + ), + 'persona' => array( + 'nok' => 'Проверьте права доступа к папке ./data/persona . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку Mozilla Persona в порядке.', + ), + 'php' => array( + 'nok' => 'У вас установлен PHP версии %s, но FreshRSS необходима версия не ниже %s.', + 'ok' => 'У вас установлен PHP версии %s, который совместим с FreshRSS.', + ), + 'users' => array( + 'nok' => 'Проверьте права доступа к папке ./data/users . Сервер HTTP должен иметь права на запись в эту папку.', + 'ok' => 'Права на папку users в порядке.', + ), + ), + 'conf' => array( + '_' => 'Общие настройки', + 'ok' => 'Общие настройки были сохранены.', + ), + 'congratulations' => 'Поздравляем!', + 'default_user' => 'Имя пользователя по умолчанию (максимум 16 латинских букв и/или цифр)', + 'delete_articles_after' => 'Удалять статьи после', + 'fix_errors_before' => 'Пожалуйста, исправьте ошибки прежде чем переходить к следующему этапу..', + 'javascript_is_better' => 'FreshRSS принесёт больше удовольствия, если включить JavaScript', + 'js' => array( + 'confirm_reinstall' => 'Переустанавливая FreshRSS, вы потеряете предыдущую конфигурацию. Вы хотите продолжить?', + ), + 'language' => array( + '_' => 'Язык', + 'choose' => 'Выберите язык для FreshRSS', + 'defined' => 'Язык выбран.', + ), + 'not_deleted' => 'Что-то пошло не так; удалите файл %s вручную.', + 'ok' => 'Установка успешна.', + 'step' => '%d этап', + 'steps' => 'Этапы', + 'title' => 'Установка · FreshRSS', + 'this_is_the_end' => 'Это конец', +); diff --git a/app/i18n/ru/sub.php b/app/i18n/ru/sub.php new file mode 100644 index 000000000..aaaa02827 --- /dev/null +++ b/app/i18n/ru/sub.php @@ -0,0 +1,62 @@ + 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 (caution, 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, its feeds are automatically classified under %s.', + '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', + 'pubsubhubbub' => 'Instant notification with PubSubHubbub', + ), + '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
    (OPML, Json or Zip)', + 'file_to_import_no_zip' => 'File to import
    (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/ru_RU/admin.php b/app/i18n/ru_RU/admin.php deleted file mode 100644 index dfea5b3cb..000000000 --- a/app/i18n/ru_RU/admin.php +++ /dev/null @@ -1,183 +0,0 @@ - array( - 'allow_anonymous' => 'Разрешить анонимное чтение статей для пользователя по умолчанию (%s)', - 'allow_anonymous_refresh' => 'Разрешить анонимное обновление статей', - 'api_enabled' => 'Включить доступ к API (необходимо для мобильных приложений)', - 'form' => 'На основе веб-формы (традиционный, необходим JavaScript)', - 'http' => 'HTTP (для продвинутых пользователей - по HTTPS)', - 'none' => 'Без аутентификации (небезопасный)', - 'persona' => 'Mozilla Persona (новый, необходим JavaScript)', - 'title' => 'Аутентификации', - 'title_reset' => 'Сброс аутентицикации', - 'token' => 'Токен аутентификации', - 'token_help' => 'Разрешает доступ к RSS ленте пользователя по умолчанию без аутентификации:', - 'type' => 'Метод аутентификации', - 'unsafe_autologin' => 'Разрешить небезопасный автоматический вход с использованием следующего формата: ', - ), - 'check_install' => array( - 'cache' => array( - 'nok' => 'Проверьте права доступа к папке ./data/cache. Сервер HTTP должен иметь права на запись в эту папку', - 'ok' => 'Права на ./data/cache в порядке.', - ), - 'categories' => array( - 'nok' => 'Таблица категорий настроена неправильно.', - 'ok' => 'Таблица категорий настроена правильно.', - ), - 'connection' => array( - 'nok' => 'Подключение к базе данных не может быть установлено.', - 'ok' => 'Подключение к базе данных в порядке.', - ), - 'ctype' => array( - 'nok' => 'У вас не установлена библиотека для проверки типов символов (php-ctype).', - 'ok' => 'У вас не установлена библиотека для проверки типов символов (ctype).', - ), - 'curl' => array( - 'nok' => 'У вас не установлено расширение cURL (пакет php5-curl).', - 'ok' => 'У вас установлено расширение cURL.', - ), - 'data' => array( - 'nok' => 'Проверьте права доступа к папке ./data . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на ./data/ в порядке.', - ), - 'database' => 'Установка базы данных', - 'dom' => array( - 'nok' => 'У вас не установлена библиотека для просмотра DOM (пакет php-xml).', - 'ok' => 'У вас установлена библиотека для просмотра DOM.', - ), - 'entries' => array( - 'nok' => 'Таблица статей (entry) неправильно настроена.', - 'ok' => 'Таблица статей (entry) настроена правильно.', - ), - 'favicons' => array( - 'nok' => 'Проверьте права доступа к папке ./data/favicons . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку значков в порядке.', - ), - 'feeds' => array( - 'nok' => 'Таблица подписок (feed) неправильно настроена.', - 'ok' => 'Таблица подписок (feed) настроена правильно.', - ), - 'files' => 'Установка файлов', - 'json' => array( - 'nok' => 'У вас не установлена библиотека для работы с JSON (пакет php5-json).', - 'ok' => 'У вас установлена библиотека для работы с JSON.', - ), - 'minz' => array( - 'nok' => 'У вас не установлен фрейворк Minz.', - 'ok' => 'У вас установлен фрейворк Minz.', - ), - 'pcre' => array( - 'nok' => 'У вас не установлена необходимая библиотека для работы с регулярными выражениями (php-pcre).', - 'ok' => 'У вас установлена необходимая библиотека для работы с регулярными выражениями (PCRE).', - ), - 'pdo' => array( - 'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite).', - 'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite).', - ), - 'persona' => array( - 'nok' => 'Проверьте права доступа к папке ./data/persona . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку Mozilla Persona в порядке.', - ), - 'php' => array( - '_' => 'PHP installation', - 'nok' => 'У вас установлен PHP версии %s, но FreshRSS необходима версия не ниже %s.', - 'ok' => 'У вас установлен PHP версии %s, который совместим с FreshRSS.', - ), - 'tables' => array( - 'nok' => 'В базе данных отсуствует одна или больше таблица.', - 'ok' => 'Все таблицы есть в базе данных.', - ), - 'title' => 'Проверка установки и настройки', - 'tokens' => array( - 'nok' => 'Проверьте права доступа к папке ./data/tokens . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку tokens в порядке.', - ), - 'users' => array( - 'nok' => 'Проверьте права доступа к папке ./data/users . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку users в порядке.', - ), - 'zip' => array( - 'nok' => 'You lack ZIP extension (php5-zip package).', - 'ok' => 'You have ZIP extension.', - ), - ), - 'extensions' => array( - 'disabled' => 'Отключены', - 'empty_list' => 'Расширения не установлены', - 'enabled' => 'Включены', - 'no_configure_view' => 'Это расширение нельзя настроить.', - 'system' => array( - '_' => 'Системные расширения', - 'no_rights' => 'Системные расширения (у вас нет к ним доступа)', - ), - 'title' => 'Расширения', - 'user' => 'Расширения пользователя', - ), - 'stats' => array( - '_' => 'Статистика', - 'all_feeds' => 'Все подписки', - 'category' => 'Категория', - 'entry_count' => 'Количество статей', - 'entry_per_category' => 'Статей в категории', - 'entry_per_day' => 'Статей за день (за последние 30 дней)', - 'entry_per_day_of_week' => 'За неделю (в среднем - %.2f сообщений)', - 'entry_per_hour' => 'За час (в среднем - %.2f сообщений)', - 'entry_per_month' => 'За месяц (в среднем - %.2f сообщений)', - 'entry_repartition' => 'Перерасределение статей', - 'feed' => 'Подписка', - 'feed_per_category' => 'Подписок в категории', - 'idle' => 'Неактивные подписки', - 'main' => 'Основная статистика', - 'main_stream' => 'Основной поток', - 'menu' => array( - 'idle' => 'Неактивные подписки', - 'main' => 'Основная статистика', - 'repartition' => 'Перерасределение статей', - ), - 'no_idle' => 'Нет неактивных подписок!', - 'number_entries' => 'статей: %d', - 'percent_of_total' => '%% от всего', - 'repartition' => 'Перераспределение статей', - 'status_favorites' => 'Избранное', - 'status_read' => 'Читать', - 'status_total' => 'Всего', - 'status_unread' => 'Не прочитано', - 'title' => 'Статистика', - 'top_feed' => '10 лучших подписок', - ), - 'system' => array( - '_' => 'Системные настройки', - 'auto-update-url' => 'Адрес сервера для автоматического обновления', - 'instance-name' => 'Название этого сервера', - 'max-categories' => 'Количество категорий на пользователя', - 'max-feeds' => 'Количество статей на пользователя', - 'registration' => array( - 'help' => '0 означает неограниченное количество пользователей', - 'number' => 'Максимальное количество пользователей', - ), - ), - 'update' => array( - '_' => 'Обновление системы', - 'apply' => 'Применить', - 'check' => 'Проверить обновления', - 'current_version' => 'Ваша текущая версия FreshRSS: %s.', - 'last' => 'Последняя проверка: %s', - 'none' => 'Нечего обновлять', - 'title' => 'Обновить систему', - ), - 'user' => array( - 'articles_and_size' => '%s статей (%s)', - 'create' => 'Создать нового пользователя', - 'email_persona' => 'Адрес электронной почты для входа
    (for Mozilla Persona)', - 'language' => 'Язык', - 'number' => 'На данный момент создан %d аккаунт', - 'numbers' => 'На данный момент аккаунтов создано: %d', - 'password_form' => 'Пароль
    (для входа через Веб-форму)', - 'password_format' => 'Минимум 7 символов', - 'title' => 'Управление пользователями', - 'user_list' => 'Список пользователей', - 'username' => 'Имя пользователя', - 'users' => 'Пользователи', - ), -); diff --git a/app/i18n/ru_RU/conf.php b/app/i18n/ru_RU/conf.php deleted file mode 100644 index e502e9a43..000000000 --- a/app/i18n/ru_RU/conf.php +++ /dev/null @@ -1,174 +0,0 @@ - array( - '_' => 'Архивация', - 'advanced' => 'Продвинутые настройки', - 'delete_after' => 'Удалять статьи после', - 'help' => 'Каждую подписку можно настроить более гибко', - 'keep_history_by_feed' => 'Minimum number of articles to keep by feed', - 'optimize' => 'Оптимизировать базу данных', - 'optimize_help' => 'To do occasionally to reduce the size of the database', - 'purge_now' => 'Очистить сейчас', - 'title' => 'Архивация', - 'ttl' => 'Не обновлять чаще чем', - ), - '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' => 'Язык', - 'notif_html5' => array( - 'seconds' => 'seconds (0 means no timeout)', - 'timeout' => 'HTML5 notification timeout', - ), - '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', - 'delete' => array( - '_' => 'Account deletion', - 'warn' => 'Your account and all the related data will be deleted.', - ), - 'email_persona' => 'Login email address
    (for Mozilla Persona)', - 'password_api' => 'Password API
    (e.g., for mobile apps)', - 'password_form' => 'Password
    (for the Web-form login method)', - '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', - 'mark_updated_article_unread' => 'Mark updated articles as unread', - '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.
    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' => '+ shift 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/ru_RU/feedback.php b/app/i18n/ru_RU/feedback.php deleted file mode 100644 index c9189c0d0..000000000 --- a/app/i18n/ru_RU/feedback.php +++ /dev/null @@ -1,110 +0,0 @@ - array( - 'optimization_complete' => 'Optimisation 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. Check FressRSS logs for details.', - 'ok' => '%s is now disabled', - ), - 'enable' => array( - 'ko' => '%s cannot be enabled. Check FressRSS logs 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' => 'Actualise', - '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' => '%s has been updated', - 'actualizeds' => 'RSS feeds have been updated', - 'added' => 'RSS feed %s has been added', - 'already_subscribed' => 'You have already subscribed to %s', - 'deleted' => 'Feed has been deleted', - 'error' => 'Feed cannot be updated', - 'internal_problem' => 'The RSS feed could not be added. Check FressRSS logs for details.', - 'invalid_url' => 'URL %s 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' => '%s 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 now be updated to the version %s.', - 'error' => 'The update process has encountered an error: %s', - 'file_is_nok' => 'Check permissions on %s 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/ru_RU/gen.php b/app/i18n/ru_RU/gen.php deleted file mode 100644 index 6511311a1..000000000 --- a/app/i18n/ru_RU/gen.php +++ /dev/null @@ -1,182 +0,0 @@ - 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' => 'Filter', - '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( - 'email' => 'Email address', - 'keep_logged_in' => 'Keep me logged in (1 month)', - 'login' => 'Login', - 'login_persona' => 'Login with Persona', - 'login_persona_problem' => 'Connection problem with Persona?', - 'logout' => 'Logout', - 'password' => array( - '_' => 'Password', - 'format' => 'At least 7 characters', - ), - 'registration' => array( - '_' => 'New account', - 'ask' => 'Create an account?', - 'title' => 'Account creation', - ), - 'reset' => 'Authentication reset', - 'username' => array( - '_' => 'Username', - 'admin' => 'Administrator username', - 'format' => 'maximum 16 alphanumeric characters', - ), - '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( - 'cz' => 'Čeština', - 'de' => 'Deutsch', - 'en' => 'English', - 'fr' => 'Français', - 'it' => 'Italiano', - 'nl' => 'Nederlands', - ), - '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', - 'system' => 'System configuration', - '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+', - 'movim' => 'Movim', - 'print' => 'Print', - 'shaarli' => 'Shaarli', - 'twitter' => 'Twitter', - 'wallabag' => 'wallabag v1', - 'wallabagv2' => 'wallabag v2', - ), - 'short' => array( - 'attention' => 'Warning!', - 'blank_to_disable' => 'Leave blank to disable', - 'by_author' => 'By %s', - 'by_default' => 'By default', - 'damn' => 'Damn!', - 'default_category' => 'Uncategorized', - 'no' => 'No', - 'not_applicable' => 'Not available', - 'ok' => 'Ok!', - 'or' => 'or', - 'yes' => 'Yes', - ), -); diff --git a/app/i18n/ru_RU/index.php b/app/i18n/ru_RU/index.php deleted file mode 100644 index 80fa3d950..000000000 --- a/app/i18n/ru_RU/index.php +++ /dev/null @@ -1,61 +0,0 @@ - array( - '_' => 'About', - 'agpl3' => 'AGPL 3', - 'bugs_reports' => 'Bugs reports', - 'credits' => 'Credits', - 'credits_content' => 'Some design elements come from Bootstrap although FreshRSS doesn’t use this framework. Icons come from GNOME project. Open Sans font police has been created by Steve Matteson. Favicons are collected with getFavicon API. FreshRSS is based on Minz, a PHP framework.', - 'freshrss_description' => 'FreshRSS is a RSS feeds aggregator to self-host like Kriss Feed or Leed. It is light and easy to take in hand while being powerful and configurable tool.', - 'github' => 'on Github', - '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/ru_RU/install.php b/app/i18n/ru_RU/install.php deleted file mode 100644 index c838b2eba..000000000 --- a/app/i18n/ru_RU/install.php +++ /dev/null @@ -1,113 +0,0 @@ - array( - 'finish' => 'Завершить установку', - 'fix_errors_before' => 'Пожалуйста, исправьте ошибки прежде чем переходить к следующему этапу.', - 'keep_install' => 'Сохранить предыдущую установку', - 'next_step' => 'Перейти к следующему этапу', - 'reinstall' => 'Переустановить FreshRSS', - ), - 'auth' => array( - 'email_persona' => 'Почта (логин) для
    (for Mozilla Persona)', - 'form' => 'Вэб-форма (традиционный, необходим JavaScript)', - 'http' => 'HTTP (для продвинутых пользователей с HTTPS)', - 'none' => 'Никакого (опасно)', - 'password_form' => 'Пароль
    (для метода аутентификации на Вэб-формах)', - 'password_format' => 'Как минимум 7 букв', - 'persona' => 'Mozilla Persona (современный, необходим JavaScript)', - 'type' => 'Метод аутентификации', - ), - 'bdd' => array( - '_' => 'База данных', - 'conf' => array( - '_' => 'Конфигурация базы данныхDatabase configuration', - 'ko' => 'Проверьте конфигурацию базы данных.', - 'ok' => 'Конфигурация базы данных сохранена.', - ), - 'host' => 'Хост', - 'prefix' => 'Префикс таблицы', - 'password' => 'Пароль HTTP', - 'type' => 'Тип базы данных', - 'username' => 'Имя пользователя HTTP', - ), - 'check' => array( - '_' => 'Проверки', - 'already_installed' => 'Обнаружена предыдущая установка FreshRSS!', - 'cache' => array( - 'nok' => 'Проверьте права доступа к папке ./data/cache . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку кэша в порядке.', - ), - 'ctype' => array( - 'nok' => 'У вас не установлена необходимая библиотека для проверки типов символов (php-ctype).', - 'ok' => 'У вас установлена необходимая библиотека для проверки типов символов (ctype).', - ), - 'curl' => array( - 'nok' => 'У вас нет расширения cURL (пакет php5-curl).', - 'ok' => 'У вас установлено расширение cURL.', - ), - 'data' => array( - 'nok' => 'Проверьте права доступа к папке ./data . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на ./data/ в порядке.', - ), - 'dom' => array( - 'nok' => 'У вас не установлена необходимая библиотека для просмотра DOM (пакет php-xml).', - 'ok' => 'У вас установлена необходимая библиотека для просмотра DOM.', - ), - 'favicons' => array( - 'nok' => 'Проверьте права доступа к папке ./data/favicons . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку значков в порядке.', - ), - 'http_referer' => array( - 'nok' => 'Убедитесь, что вы не изменяете ваш HTTP REFERER.', - 'ok' => 'Ваш HTTP REFERER известен и соотвествует вашему серверу.', - ), - 'minz' => array( - 'nok' => 'У вас не установлен фрейворк Minz.', - 'ok' => 'У вас установлен фрейворк Minz.', - ), - 'pcre' => array( - 'nok' => 'У вас не установлена необходимая библиотека для работы с регулярными выражениями (php-pcre).', - 'ok' => 'У вас установлена необходимая библиотека для работы с регулярными выражениями (PCRE).', - ), - 'pdo' => array( - 'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite).', - 'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite).', - ), - 'persona' => array( - 'nok' => 'Проверьте права доступа к папке ./data/persona . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку Mozilla Persona в порядке.', - ), - 'php' => array( - 'nok' => 'У вас установлен PHP версии %s, но FreshRSS необходима версия не ниже %s.', - 'ok' => 'У вас установлен PHP версии %s, который совместим с FreshRSS.', - ), - 'users' => array( - 'nok' => 'Проверьте права доступа к папке ./data/users . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку users в порядке.', - ), - ), - 'conf' => array( - '_' => 'Общие настройки', - 'ok' => 'Общие настройки были сохранены.', - ), - 'congratulations' => 'Поздравляем!', - 'default_user' => 'Имя пользователя по умолчанию (максимум 16 латинских букв и/или цифр)', - 'delete_articles_after' => 'Удалять статьи после', - 'fix_errors_before' => 'Пожалуйста, исправьте ошибки прежде чем переходить к следующему этапу..', - 'javascript_is_better' => 'FreshRSS принесёт больше удовольствия, если включить JavaScript', - 'js' => array( - 'confirm_reinstall' => 'Переустанавливая FreshRSS, вы потеряете предыдущую конфигурацию. Вы хотите продолжить?', - ), - 'language' => array( - '_' => 'Язык', - 'choose' => 'Выберите язык для FreshRSS', - 'defined' => 'Язык выбран.', - ), - 'not_deleted' => 'Что-то пошло не так; удалите файл %s вручную.', - 'ok' => 'Установка успешна.', - 'step' => '%d этап', - 'steps' => 'Этапы', - 'title' => 'Установка · FreshRSS', - 'this_is_the_end' => 'Это конец', -); diff --git a/app/i18n/ru_RU/sub.php b/app/i18n/ru_RU/sub.php deleted file mode 100644 index aaaa02827..000000000 --- a/app/i18n/ru_RU/sub.php +++ /dev/null @@ -1,62 +0,0 @@ - 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 (caution, 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, its feeds are automatically classified under %s.', - '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', - 'pubsubhubbub' => 'Instant notification with PubSubHubbub', - ), - '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
    (OPML, Json or Zip)', - 'file_to_import_no_zip' => 'File to import
    (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/tr/gen.php b/app/i18n/tr/gen.php index 092c19752..492e2cb9b 100644 --- a/app/i18n/tr/gen.php +++ b/app/i18n/tr/gen.php @@ -122,6 +122,7 @@ return array( 'fr' => 'Français', 'it' => 'Italiano', 'nl' => 'Nederlands', + 'ru' => 'Русский', 'tr' => 'Türkçe', ), 'menu' => array( -- cgit v1.2.3 From 17de4363b5b0ab3f3ddc703ccf98332770040e17 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 12 Jun 2016 13:24:20 +0200 Subject: i18n Movim Wallabag missing https://github.com/FreshRSS/FreshRSS/pull/1165 --- app/i18n/cz/gen.php | 3 ++- app/i18n/it/gen.php | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index af10967a7..5e15ae6f9 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -165,7 +165,8 @@ return array( 'print' => 'Tisk', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', - 'wallabag' => 'wallabag', + 'wallabag' => 'wallabag v1', + 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', ), 'short' => array( diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index bf817d8c2..d24377593 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -161,6 +161,7 @@ return array( 'email' => 'Email', 'facebook' => 'Facebook', 'g+' => 'Google+', + 'movim' => 'Movim', 'print' => 'Stampa', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', -- cgit v1.2.3 From c1548e732d7472c40473b3d99858059333a05eae Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 31 Jul 2016 14:58:19 +0200 Subject: Remove Mozilla Persona login https://github.com/FreshRSS/FreshRSS/issues/1052 --- README.fr.md | 3 +- README.md | 3 +- app/Controllers/authController.php | 152 +------------------------------- app/Controllers/userController.php | 25 ------ app/FreshRSS.php | 8 -- app/Models/Auth.php | 18 +--- app/Models/ConfigurationSetter.php | 7 +- app/i18n/cz/admin.php | 6 -- app/i18n/cz/conf.php | 1 - app/i18n/cz/feedback.php | 1 - app/i18n/cz/gen.php | 3 - app/i18n/cz/install.php | 6 -- app/i18n/de/admin.php | 6 -- app/i18n/de/conf.php | 1 - app/i18n/de/feedback.php | 1 - app/i18n/de/gen.php | 3 - app/i18n/de/install.php | 6 -- app/i18n/en/admin.php | 6 -- app/i18n/en/conf.php | 1 - app/i18n/en/feedback.php | 1 - app/i18n/en/gen.php | 3 - app/i18n/en/install.php | 6 -- app/i18n/fr/admin.php | 6 -- app/i18n/fr/conf.php | 1 - app/i18n/fr/feedback.php | 1 - app/i18n/fr/gen.php | 3 - app/i18n/fr/install.php | 6 -- app/i18n/it/admin.php | 6 -- app/i18n/it/conf.php | 1 - app/i18n/it/feedback.php | 1 - app/i18n/it/gen.php | 3 - app/i18n/it/install.php | 6 -- app/i18n/nl/admin.php | 6 -- app/i18n/nl/conf.php | 1 - app/i18n/nl/feedback.php | 1 - app/i18n/nl/gen.php | 3 - app/i18n/nl/install.php | 6 -- app/i18n/ru/admin.php | 6 -- app/i18n/ru/conf.php | 1 - app/i18n/ru/feedback.php | 1 - app/i18n/ru/gen.php | 3 - app/i18n/ru/install.php | 6 -- app/i18n/tr/admin.php | 6 -- app/i18n/tr/conf.php | 1 - app/i18n/tr/feedback.php | 1 - app/i18n/tr/gen.php | 3 - app/i18n/tr/install.php | 6 -- app/install.php | 45 +--------- app/views/auth/index.phtml | 3 +- app/views/auth/personaLogin.phtml | 28 ------ app/views/auth/register.phtml | 5 -- app/views/auth/reset.phtml | 33 ------- app/views/helpers/javascript_vars.phtml | 2 - app/views/user/manage.phtml | 8 -- app/views/user/profile.phtml | 9 -- data/config.default.php | 1 - data/users/_/config.default.php | 1 - lib/lib_rss.php | 1 - p/scripts/install.js | 8 +- p/scripts/persona.js | 76 ---------------- 60 files changed, 11 insertions(+), 561 deletions(-) delete mode 100644 app/views/auth/personaLogin.phtml delete mode 100644 app/views/auth/reset.phtml delete mode 100644 p/scripts/persona.js (limited to 'app/i18n') diff --git a/README.fr.md b/README.fr.md index fd01a507b..067d6d1a1 100644 --- a/README.fr.md +++ b/README.fr.md @@ -89,7 +89,6 @@ sudo chmod -R g+w ./data/ # Contrôle d’accès Il est requis pour le mode multi-utilisateur, et recommandé dans tous les cas, de limiter l’accès à votre FreshRSS. Au choix : * En utilisant l’identification par formulaire (requiert JavaScript, et PHP 5.3.7+ recommandé – fonctionne avec certaines versions de PHP 5.3.3+) -* En utilisant l’identification par [Mozilla Persona](https://login.persona.org/about) incluse dans FreshRSS * En utilisant un contrôle d’accès HTTP défini par votre serveur Web * Voir par exemple la [documentation d’Apache sur l’authentification](http://httpd.apache.org/docs/trunk/howto/auth.html) * Créer dans ce cas un fichier `./p/i/.htaccess` avec un fichier `.htpasswd` correspondant. @@ -111,7 +110,7 @@ Par exemple, pour exécuter le script toutes les heures : * En cas de problème, les logs peuvent être utile à lire, soit depuis l’interface de FreshRSS, soit manuellement depuis `./data/log/*.log`. # Sauvegarde -* Il faut conserver vos fichiers `./data/config.php` ainsi que `./data/*_user.php` et éventuellement `./data/persona/` +* Il faut conserver vos fichiers `./data/config.php` ainsi que `./data/*_user.php` * Vous pouvez exporter votre liste de flux depuis FreshRSS au format OPML * Pour sauvegarder les articles eux-mêmes, vous pouvez utiliser [phpMyAdmin](http://www.phpmyadmin.net) ou les outils de MySQL : diff --git a/README.md b/README.md index a0d22a75c..76975adbd 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,6 @@ sudo chmod -R g+w ./data/ # Access control It is needed for the multi-user mode to limit access to FreshRSS. You can: * use form authentication (need JavaScript and PHP 5.3.7+, works with some PHP 5.3.3+) -* use [Mozilla Persona](https://login.persona.org/about) authentication included in FreshRSS * use HTTP authentication supported by your web server * See [Apache documentation](http://httpd.apache.org/docs/trunk/howto/auth.html) * In that case, create a `./p/i/.htaccess` file with a matching `.htpasswd` file. @@ -111,7 +110,7 @@ For example, if you want to run the script every hour: * If you encounter any problem, logs are accessible from the interface or manually in `./data/log/*.log` files. # Backup -* You need to keep `./data/config.php`, `./data/*_user.php` and `./data/persona/` files +* You need to keep `./data/config.php`, and `./data/*_user.php` files * You can export your feed list in OPML format from FreshRSS * To save articles, you can use [phpMyAdmin](http://www.phpmyadmin.net) or MySQL tools: diff --git a/app/Controllers/authController.php b/app/Controllers/authController.php index f58b008de..9decba431 100644 --- a/app/Controllers/authController.php +++ b/app/Controllers/authController.php @@ -70,7 +70,7 @@ class FreshRSS_auth_Controller extends Minz_ActionController { /** * This action handles the login page. * - * It forwards to the correct login page (form or Persona) or main page if + * It forwards to the correct login page (form) or main page if * the user is already connected. */ public function loginAction() { @@ -83,9 +83,6 @@ class FreshRSS_auth_Controller extends Minz_ActionController { case 'form': Minz_Request::forward(array('c' => 'auth', 'a' => 'formLogin')); break; - case 'persona': - Minz_Request::forward(array('c' => 'auth', 'a' => 'personaLogin')); - break; case 'http_auth': case 'none': // It should not happened! @@ -188,81 +185,6 @@ class FreshRSS_auth_Controller extends Minz_ActionController { } } - /** - * This action handles Persona login page. - * - * If this action is reached through a POST request, assertion from Persona - * is verificated and user connected if all is ok. - * - * Parameter is: - * - assertion (default: false) - * - * @todo: Persona system should be moved to a plugin - */ - public function personaLoginAction() { - $this->view->res = false; - - if (Minz_Request::isPost()) { - $this->view->_useLayout(false); - - $assert = Minz_Request::param('assertion'); - $url = 'https://verifier.login.persona.org/verify'; - $params = 'assertion=' . $assert . '&audience=' . - urlencode(Minz_Url::display(null, 'php', true)); - $ch = curl_init(); - $options = array( - CURLOPT_URL => $url, - CURLOPT_RETURNTRANSFER => TRUE, - CURLOPT_POST => 2, - CURLOPT_POSTFIELDS => $params - ); - curl_setopt_array($ch, $options); - $result = curl_exec($ch); - curl_close($ch); - - $res = json_decode($result, true); - - $login_ok = false; - $reason = ''; - if ($res['status'] === 'okay') { - $email = filter_var($res['email'], FILTER_VALIDATE_EMAIL); - if ($email != '') { - $persona_file = DATA_PATH . '/persona/' . $email . '.txt'; - if (($current_user = @file_get_contents($persona_file)) !== false) { - $current_user = trim($current_user); - $conf = get_user_configuration($current_user); - if (!is_null($conf)) { - $login_ok = strcasecmp($email, $conf->mail_login) === 0; - } else { - $reason = 'Invalid configuration for user ' . - '[' . $current_user . ']'; - } - } - } else { - $reason = 'Invalid email format [' . $res['email'] . ']'; - } - } else { - $reason = $res['reason']; - } - - if ($login_ok) { - Minz_Session::_param('currentUser', $current_user); - Minz_Session::_param('mail', $email); - FreshRSS_Auth::giveAccess(); - invalidateHttpCache(); - } else { - Minz_Log::warning($reason); - - $res = array(); - $res['status'] = 'failure'; - $res['reason'] = _t('feedback.auth.login.invalid'); - } - - header('Content-Type: application/json; charset=UTF-8'); - $this->view->res = $res; - } - } - /** * This action removes all accesses of the current user. */ @@ -273,78 +195,6 @@ class FreshRSS_auth_Controller extends Minz_ActionController { array('c' => 'index', 'a' => 'index')); } - /** - * This action resets the authentication system. - * - * After reseting, form auth is set by default. - */ - public function resetAction() { - Minz_View::prependTitle(_t('admin.auth.title_reset') . ' · '); - - Minz_View::appendScript(Minz_Url::display( - '/scripts/bcrypt.min.js?' . @filemtime(PUBLIC_PATH . '/scripts/bcrypt.min.js') - )); - - $this->view->no_form = false; - // Enable changement of auth only if Persona! - if (FreshRSS_Context::$system_conf->auth_type != 'persona') { - $this->view->message = array( - 'status' => 'bad', - 'title' => _t('gen.short.damn'), - 'body' => _t('feedback.auth.not_persona') - ); - $this->view->no_form = true; - return; - } - - $conf = get_user_configuration(FreshRSS_Context::$system_conf->default_user); - if (is_null($conf)) { - return; - } - - // Admin user must have set its master password. - if (!$conf->passwordHash) { - $this->view->message = array( - 'status' => 'bad', - 'title' => _t('gen.short.damn'), - 'body' => _t('feedback.auth.no_password_set') - ); - $this->view->no_form = true; - return; - } - - invalidateHttpCache(); - - if (Minz_Request::isPost()) { - $nonce = Minz_Session::param('nonce'); - $username = Minz_Request::param('username', ''); - $challenge = Minz_Request::param('challenge', ''); - - $ok = FreshRSS_FormAuth::checkCredentials( - $username, $conf->passwordHash, $nonce, $challenge - ); - - if ($ok) { - FreshRSS_Context::$system_conf->auth_type = 'form'; - $ok = FreshRSS_Context::$system_conf->save(); - - if ($ok) { - Minz_Request::good(_t('feedback.auth.form.set')); - } else { - Minz_Request::bad(_t('feedback.auth.form.not_set'), - array('c' => 'auth', 'a' => 'reset')); - } - } else { - Minz_Log::warning('Password mismatch for' . - ' user=' . $username . - ', nonce=' . $nonce . - ', c=' . $challenge); - Minz_Request::bad(_t('feedback.auth.login.invalid'), - array('c' => 'auth', 'a' => 'reset')); - } - } - } - /** * This action gives possibility to a user to create an account. */ diff --git a/app/Controllers/userController.php b/app/Controllers/userController.php index 1c7d621f1..0521bc008 100644 --- a/app/Controllers/userController.php +++ b/app/Controllers/userController.php @@ -64,21 +64,8 @@ class FreshRSS_user_Controller extends Minz_ActionController { FreshRSS_Context::$user_conf->apiPasswordHash = $passwordHash; } - // TODO: why do we need of hasAccess here? - if (FreshRSS_Auth::hasAccess('admin')) { - FreshRSS_Context::$user_conf->mail_login = Minz_Request::param('mail_login', '', true); - } - $email = FreshRSS_Context::$user_conf->mail_login; - Minz_Session::_param('mail', $email); - $ok &= FreshRSS_Context::$user_conf->save(); - if ($email != '') { - $personaFile = DATA_PATH . '/persona/' . $email . '.txt'; - @unlink($personaFile); - $ok &= (file_put_contents($personaFile, Minz_Session::param('currentUser', '_')) !== false); - } - if ($ok) { Minz_Request::good(_t('feedback.profile.updated'), array('c' => 'user', 'a' => 'profile')); @@ -119,7 +106,6 @@ class FreshRSS_user_Controller extends Minz_ActionController { * - new_user_language * - new_user_name * - new_user_passwordPlain - * - new_user_email * - r (i.e. a redirection url, optional) * * @todo clean up this method. Idea: write a method to init a user with basic information. @@ -168,22 +154,12 @@ class FreshRSS_user_Controller extends Minz_ActionController { if (empty($passwordHash)) { $passwordHash = ''; } - - $new_user_email = filter_var($_POST['new_user_email'], FILTER_VALIDATE_EMAIL); - if (empty($new_user_email)) { - $new_user_email = ''; - } else { - $personaFile = join_path(DATA_PATH, 'persona', $new_user_email . '.txt'); - @unlink($personaFile); - $ok &= (file_put_contents($personaFile, $new_user_name) !== false); - } } if ($ok) { mkdir(join_path(DATA_PATH, 'users', $new_user_name)); $config_array = array( 'language' => $new_user_language, 'passwordHash' => $passwordHash, - 'mail_login' => $new_user_email, ); $ok &= (file_put_contents($configPath, "deleteUser($username); $ok &= recursive_unlink($user_data); - //TODO: delete Persona file } if ($ok && $self_deletion) { FreshRSS_Auth::removeAccess(); diff --git a/app/FreshRSS.php b/app/FreshRSS.php index 4933892bc..20640266e 100644 --- a/app/FreshRSS.php +++ b/app/FreshRSS.php @@ -98,14 +98,6 @@ class FreshRSS extends Minz_FrontController { Minz_View::appendScript(Minz_Url::display('/scripts/jquery.min.js?' . @filemtime(PUBLIC_PATH . '/scripts/jquery.min.js'))); Minz_View::appendScript(Minz_Url::display('/scripts/shortcut.js?' . @filemtime(PUBLIC_PATH . '/scripts/shortcut.js'))); Minz_View::appendScript(Minz_Url::display('/scripts/main.js?' . @filemtime(PUBLIC_PATH . '/scripts/main.js'))); - - if (FreshRSS_Context::$system_conf->auth_type === 'persona') { - // TODO move it in a plugin - // Needed for login AND logout with Persona. - Minz_View::appendScript('https://login.persona.org/include.js'); - $file_mtime = @filemtime(PUBLIC_PATH . '/scripts/persona.js'); - Minz_View::appendScript(Minz_Url::display('/scripts/persona.js?' . $file_mtime)); - } } private static function loadNotifications() { diff --git a/app/Models/Auth.php b/app/Models/Auth.php index 4e7a71947..d689f7cdb 100644 --- a/app/Models/Auth.php +++ b/app/Models/Auth.php @@ -60,16 +60,6 @@ class FreshRSS_Auth { Minz_Session::_param('currentUser', $current_user); } return $login_ok; - case 'persona': - $email = filter_var(Minz_Session::param('mail'), FILTER_VALIDATE_EMAIL); - $persona_file = DATA_PATH . '/persona/' . $email . '.txt'; - if (($current_user = @file_get_contents($persona_file)) !== false) { - $current_user = trim($current_user); - Minz_Session::_param('currentUser', $current_user); - Minz_Session::_param('mail', $email); - return true; - } - return false; case 'none': return true; default: @@ -93,9 +83,6 @@ class FreshRSS_Auth { case 'http_auth': self::$login_ok = strcasecmp($current_user, httpAuthUser()) === 0; break; - case 'persona': - self::$login_ok = strcasecmp(Minz_Session::param('mail'), $user_conf->mail_login) === 0; - break; case 'none': self::$login_ok = true; break; @@ -143,9 +130,6 @@ class FreshRSS_Auth { Minz_Session::_param('passwordHash'); FreshRSS_FormAuth::deleteCookie(); break; - case 'persona': - Minz_Session::_param('mail'); - break; case 'http_auth': case 'none': // Nothing to do... @@ -170,7 +154,7 @@ class FreshRSS_Auth { public static function accessNeedsAction() { $conf = Minz_Configuration::get('system'); $auth_type = $conf->auth_type; - return $auth_type === 'form' || $auth_type === 'persona'; + return $auth_type === 'form'; } } diff --git a/app/Models/ConfigurationSetter.php b/app/Models/ConfigurationSetter.php index 250c14c39..e472b1e7f 100644 --- a/app/Models/ConfigurationSetter.php +++ b/app/Models/ConfigurationSetter.php @@ -95,11 +95,6 @@ class FreshRSS_ConfigurationSetter { $data['language'] = $value; } - private function _mail_login(&$data, $value) { - $value = filter_var($value, FILTER_VALIDATE_EMAIL); - $data['mail_login'] = $value ? $value : ''; - } - private function _old_entries(&$data, $value) { $value = intval($value); $data['old_entries'] = $value > 0 ? $value : 3; @@ -278,7 +273,7 @@ class FreshRSS_ConfigurationSetter { private function _auth_type(&$data, $value) { $value = strtolower($value); - if (!in_array($value, array('form', 'http_auth', 'persona', 'none'))) { + if (!in_array($value, array('form', 'http_auth', 'none'))) { $value = 'none'; } $data['auth_type'] = $value; diff --git a/app/i18n/cz/admin.php b/app/i18n/cz/admin.php index 342ac7ccd..881c02fc6 100644 --- a/app/i18n/cz/admin.php +++ b/app/i18n/cz/admin.php @@ -8,7 +8,6 @@ return array( 'form' => 'Webový formulář (tradiční, vyžaduje JavaScript)', 'http' => 'HTTP (pro pokročilé uživatele s HTTPS)', 'none' => 'Žádný (nebezpečné)', - 'persona' => 'Mozilla Persona (moderní, vyžaduje JavaScript)', 'title' => 'Přihlášení', 'title_reset' => 'Reset přihlášení', 'token' => 'Authentizační token', @@ -75,10 +74,6 @@ return array( 'nok' => 'Nemáte PDO nebo některý z podporovaných ovladačů (pdo_mysql, pdo_sqlite).', 'ok' => 'Máte PDO a alespoň jeden z podporovaných ovladačů (pdo_mysql, pdo_sqlite).', ), - 'persona' => array( - 'nok' => 'Zkontrolujte oprávnění adresáře ./data/persona. HTTP server musí mít do tohoto adresáře práva zápisu', - 'ok' => 'Oprávnění adresáře Mozilla Persona jsou v pořádku.', - ), 'php' => array( '_' => 'PHP instalace', 'nok' => 'Vaše verze PHP je %s, ale FreshRSS vyžaduje alespoň verzi %s.', @@ -169,7 +164,6 @@ return array( 'user' => array( 'articles_and_size' => '%s článků (%s)', 'create' => 'Vytvořit nového uživatele', - 'email_persona' => 'Email pro přihlášení
    (pro Mozilla Persona)', 'language' => 'Jazyk', 'number' => 'Zatím je vytvořen %d účet', 'numbers' => 'Zatím je vytvořeno %d účtů', diff --git a/app/i18n/cz/conf.php b/app/i18n/cz/conf.php index 823ab1ea3..ec25f988c 100644 --- a/app/i18n/cz/conf.php +++ b/app/i18n/cz/conf.php @@ -76,7 +76,6 @@ return array( '_' => 'Smazání účtu', 'warn' => 'Váš účet bude smazán spolu se všemi souvisejícími daty', ), - 'email_persona' => 'Email pro přihlášení
    (pro Mozilla Persona)', 'password_api' => 'Password API
    (tzn. pro mobilní aplikace)', 'password_form' => 'Heslo
    (pro přihlášení webovým formulářem)', 'password_format' => 'Alespoň 7 znaků', diff --git a/app/i18n/cz/feedback.php b/app/i18n/cz/feedback.php index b75a4a15a..81302afca 100644 --- a/app/i18n/cz/feedback.php +++ b/app/i18n/cz/feedback.php @@ -21,7 +21,6 @@ return array( 'success' => 'Jste odhlášen', ), 'no_password_set' => 'Heslo administrátora nebylo nastaveno. Tato funkce není k dispozici.', - 'not_persona' => 'Resetovat lze pouze systém Persona.', ), 'conf' => array( 'error' => 'Během ukládání nastavení došlo k chybě', diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index 5e15ae6f9..e73325c55 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -24,8 +24,6 @@ return array( 'email' => 'Email', 'keep_logged_in' => 'Zapamatovat přihlášení (1 měsíc)', 'login' => 'Login', - 'login_persona' => 'Přihlášení pomocí Persona', - 'login_persona_problem' => 'Problém s připojením k Persona?', 'logout' => 'Odhlášení', 'password' => array( '_' => 'Heslo', @@ -42,7 +40,6 @@ return array( 'admin' => 'Název administrátorského účtu', 'format' => 'maximálně 16 alfanumerických znaků', ), - 'will_reset' => 'Přihlašovací systém bude vyresetován: místo sytému Persona bude použito přihlášení formulářem.', ), 'date' => array( 'Apr' => '\\D\\u\\b\\e\\n', diff --git a/app/i18n/cz/install.php b/app/i18n/cz/install.php index bc3e01992..6b94c0d4b 100644 --- a/app/i18n/cz/install.php +++ b/app/i18n/cz/install.php @@ -9,13 +9,11 @@ return array( 'reinstall' => 'Reinstalovat FreshRSS', ), 'auth' => array( - 'email_persona' => 'Email pro přihlášení
    (pro Mozilla Persona)', 'form' => 'Webový formulář (tradiční, vyžaduje JavaScript)', 'http' => 'HTTP (pro pokročilé uživatele s HTTPS)', 'none' => 'Žádný (nebezpečné)', 'password_form' => 'Heslo
    (pro přihlášení webovým formulářem)', 'password_format' => 'Alespoň 7 znaků', - 'persona' => 'Mozilla Persona (moderní, vyžaduje JavaScript)', 'type' => 'Způsob přihlášení', ), 'bdd' => array( @@ -78,10 +76,6 @@ return array( 'nok' => 'Nemáte PDO nebo některý z podporovaných ovladačů (pdo_mysql, pdo_sqlite).', 'ok' => 'Máte PDO a alespoň jeden z podporovaných ovladačů (pdo_mysql, pdo_sqlite).', ), - 'persona' => array( - 'nok' => 'Zkontrolujte oprávnění adresáře ./data/persona. HTTP server musí mít do tohoto adresáře práva zápisu', - 'ok' => 'Oprávnění adresáře Mozilla Persona jsou v pořádku.', - ), 'php' => array( 'nok' => 'Vaše verze PHP je %s, ale FreshRSS vyžaduje alespoň verzi %s.', 'ok' => 'Vaše verze PHP je %s a je kompatibilní s FreshRSS.', diff --git a/app/i18n/de/admin.php b/app/i18n/de/admin.php index 6e6cc0956..7b75fe5f4 100644 --- a/app/i18n/de/admin.php +++ b/app/i18n/de/admin.php @@ -8,7 +8,6 @@ return array( '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', @@ -75,10 +74,6 @@ return 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 ./data/persona. Der HTTP-Server muss Schreibrechte besitzen.', - 'ok' => 'Die Berechtigungen des Verzeichnisses ./data/persona sind in Ordnung.', - ), 'php' => array( '_' => 'PHP-Installation', 'nok' => 'Ihre PHP-Version ist %s aber FreshRSS benötigt mindestens Version %s.', @@ -169,7 +164,6 @@ return array( 'user' => array( 'articles_and_size' => '%s Artikel (%s)', 'create' => 'Neuen Benutzer erstellen', - 'email_persona' => 'Anmelde-E-Mail-Adresse
    (für Mozilla Persona)', 'language' => 'Sprache', 'number' => 'Es wurde bis jetzt %d Account erstellt', 'numbers' => 'Es wurden bis jetzt %d Accounts erstellt', diff --git a/app/i18n/de/conf.php b/app/i18n/de/conf.php index c1a762f12..7c57d5655 100644 --- a/app/i18n/de/conf.php +++ b/app/i18n/de/conf.php @@ -76,7 +76,6 @@ return array( '_' => 'Accountlöschung', 'warn' => 'Dein Account und alle damit bezogenen Daten werden gelöscht.', ), - 'email_persona' => 'Anmelde-E-Mail-Adresse
    (für Mozilla Persona)', 'password_api' => 'Passwort-API
    (z. B. für mobile Anwendungen)', 'password_form' => 'Passwort
    (für die Anmeldemethode per Webformular)', 'password_format' => 'mindestens 7 Zeichen', diff --git a/app/i18n/de/feedback.php b/app/i18n/de/feedback.php index 4c15aadc3..f93992982 100644 --- a/app/i18n/de/feedback.php +++ b/app/i18n/de/feedback.php @@ -21,7 +21,6 @@ return array( 'success' => 'Sie sind abgemeldet', ), '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 der Speicherung der Konfiguration trat ein Fehler auf', diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index 4b85c722a..c6e7f1ef3 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -24,8 +24,6 @@ return array( 'email' => 'E-Mail-Adresse', 'keep_logged_in' => 'Eingeloggt bleiben (1 Monat)', 'login' => 'Anmelden', - 'login_persona' => 'Anmelden mit Persona', - 'login_persona_problem' => 'Verbindungsproblem mit Persona?', 'logout' => 'Abmelden', 'password' => array( '_' => 'Passwort', @@ -42,7 +40,6 @@ return array( 'admin' => 'Administrator-Nutzername', 'format' => 'maximal 16 alphanumerische Zeichen', ), - 'will_reset' => 'Authentifikationssystem wird zurückgesetzt: ein Formular wird anstelle von Persona benutzt.', ), 'date' => array( 'Apr' => '\\A\\p\\r\\i\\l', diff --git a/app/i18n/de/install.php b/app/i18n/de/install.php index d16496818..a77822e7b 100644 --- a/app/i18n/de/install.php +++ b/app/i18n/de/install.php @@ -9,13 +9,11 @@ return array( 'reinstall' => 'Neuinstallation von FreshRSS', ), 'auth' => array( - 'email_persona' => 'Anmelde-E-Mail-Adresse
    (für Mozilla Persona)', 'form' => 'Webformular (traditionell, benötigt JavaScript)', 'http' => 'HTTP (HTTPS für erfahrene Benutzer)', 'none' => 'Keine (gefährlich)', 'password_form' => 'Passwort
    (für die Anmeldemethode per Webformular)', 'password_format' => 'mindestens 7 Zeichen', - 'persona' => 'Mozilla Persona (modern, benötigt JavaScript)', 'type' => 'Authentifizierungsmethode', ), 'bdd' => array( @@ -78,10 +76,6 @@ return 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 ./data/persona. Der HTTP-Server muss Schreibrechte besitzen.', - 'ok' => 'Die Berechtigungen des Verzeichnisses ./data/persona 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.', diff --git a/app/i18n/en/admin.php b/app/i18n/en/admin.php index a58771edf..a88552087 100644 --- a/app/i18n/en/admin.php +++ b/app/i18n/en/admin.php @@ -8,7 +8,6 @@ return array( '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', @@ -75,10 +74,6 @@ return 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 ./data/persona 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.', @@ -169,7 +164,6 @@ return array( 'user' => array( 'articles_and_size' => '%s articles (%s)', 'create' => 'Create new user', - 'email_persona' => 'Login mail address
    (for Mozilla Persona)', 'language' => 'Language', 'number' => 'There is %d account created yet', 'numbers' => 'There are %d accounts created yet', diff --git a/app/i18n/en/conf.php b/app/i18n/en/conf.php index 38e9197e9..b5ab73510 100644 --- a/app/i18n/en/conf.php +++ b/app/i18n/en/conf.php @@ -76,7 +76,6 @@ return array( '_' => 'Account deletion', 'warn' => 'Your account and all the related data will be deleted.', ), - 'email_persona' => 'Login email address
    (for Mozilla Persona)', 'password_api' => 'API password
    (e.g., for mobile apps)', 'password_form' => 'Password
    (for the Web-form login method)', 'password_format' => 'At least 7 characters', diff --git a/app/i18n/en/feedback.php b/app/i18n/en/feedback.php index c9189c0d0..7ce2ae9cf 100644 --- a/app/i18n/en/feedback.php +++ b/app/i18n/en/feedback.php @@ -21,7 +21,6 @@ return 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', diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index ba4e2f86c..17b47ba2f 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -24,8 +24,6 @@ return array( 'email' => 'Email address', 'keep_logged_in' => 'Keep me logged in (1 month)', 'login' => 'Login', - 'login_persona' => 'Login with Persona', - 'login_persona_problem' => 'Connection problem with Persona?', 'logout' => 'Logout', 'password' => array( '_' => 'Password', @@ -42,7 +40,6 @@ return array( 'admin' => 'Administrator username', 'format' => 'maximum 16 alphanumeric characters', ), - 'will_reset' => 'Authentication system will be reset: a form will be used instead of Persona.', ), 'date' => array( 'Apr' => '\\A\\p\\r\\i\\l', diff --git a/app/i18n/en/install.php b/app/i18n/en/install.php index 4b5bbc62e..d1c5f37c8 100644 --- a/app/i18n/en/install.php +++ b/app/i18n/en/install.php @@ -9,13 +9,11 @@ return array( 'reinstall' => 'Reinstall FreshRSS', ), 'auth' => array( - 'email_persona' => 'Login email address
    (for Mozilla Persona)', 'form' => 'Web form (traditional, requires JavaScript)', 'http' => 'HTTP (for advanced users with HTTPS)', 'none' => 'None (dangerous)', 'password_form' => 'Password
    (for the Web-form login method)', 'password_format' => 'At least 7 characters', - 'persona' => 'Mozilla Persona (modern, requires JavaScript)', 'type' => 'Authentication method', ), 'bdd' => array( @@ -78,10 +76,6 @@ return 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 ./data/persona 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.', diff --git a/app/i18n/fr/admin.php b/app/i18n/fr/admin.php index f4f267306..c359e9d24 100644 --- a/app/i18n/fr/admin.php +++ b/app/i18n/fr/admin.php @@ -8,7 +8,6 @@ return array( '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', @@ -75,10 +74,6 @@ return 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 ./data/persona. 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.', @@ -169,7 +164,6 @@ return array( 'user' => array( 'articles_and_size' => '%s articles (%s)', 'create' => 'Créer un nouvel utilisateur', - 'email_persona' => 'Adresse courriel de connexion
    (pour Mozilla Persona)', 'language' => 'Langue', 'number' => '%d compte a déjà été créé', 'numbers' => '%d comptes ont déjà été créés', diff --git a/app/i18n/fr/conf.php b/app/i18n/fr/conf.php index 6193b7a01..7a6d12e17 100644 --- a/app/i18n/fr/conf.php +++ b/app/i18n/fr/conf.php @@ -76,7 +76,6 @@ return array( '_' => 'Suppression du compte', 'warn' => 'Le compte et toutes les données associées vont être supprimées.', ), - 'email_persona' => 'Adresse courriel de connexion
    (pour Mozilla Persona)', 'password_api' => 'Mot de passe API
    (ex. : pour applis mobiles)', 'password_form' => 'Mot de passe
    (pour connexion par formulaire)', 'password_format' => '7 caractères minimum', diff --git a/app/i18n/fr/feedback.php b/app/i18n/fr/feedback.php index e2364a251..15f3ab859 100644 --- a/app/i18n/fr/feedback.php +++ b/app/i18n/fr/feedback.php @@ -21,7 +21,6 @@ return 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', diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 031098aa2..d61a716a7 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -24,8 +24,6 @@ return array( 'email' => 'Adresse courriel', 'keep_logged_in' => 'Rester connecté (1 mois)', 'login' => 'Connexion', - 'login_persona' => 'Connexion avec Persona', - 'login_persona_problem' => 'Problème de connexion à Persona ?', 'logout' => 'Déconnexion', 'password' => array( '_' => 'Mot de passe', @@ -42,7 +40,6 @@ return array( 'admin' => 'Nom d’utilisateur administrateur', 'format' => '16 caractères alphanumériques maximum', ), - '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', diff --git a/app/i18n/fr/install.php b/app/i18n/fr/install.php index 91dfbbb09..946a210ee 100644 --- a/app/i18n/fr/install.php +++ b/app/i18n/fr/install.php @@ -9,13 +9,11 @@ return array( 'reinstall' => 'Réinstaller FreshRSS', ), 'auth' => array( - 'email_persona' => 'Adresse courriel de connexion
    (pour Mozilla Persona)', 'form' => 'Formulaire (traditionnel, requiert JavaScript)', 'http' => 'HTTP (pour utilisateurs avancés avec HTTPS)', 'none' => 'Aucune (dangereux)', 'password_form' => 'Mot de passe
    (pour connexion par formulaire)', 'password_format' => '7 caractères minimum', - 'persona' => 'Mozilla Persona (moderne, requiert JavaScript)', 'type' => 'Méthode d’authentification', ), 'bdd' => array( @@ -78,10 +76,6 @@ return 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 ./data/persona. 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.', diff --git a/app/i18n/it/admin.php b/app/i18n/it/admin.php index 94b2d6762..4eea158f6 100644 --- a/app/i18n/it/admin.php +++ b/app/i18n/it/admin.php @@ -8,7 +8,6 @@ return array( 'form' => 'Web form (tradizionale, richiede JavaScript)', 'http' => 'HTTP (per gli utenti avanzati con HTTPS)', 'none' => 'Nessuno (pericoloso)', - 'persona' => 'Mozilla Persona (moderno, richiede JavaScript)', 'title' => 'Autenticazione', 'title_reset' => 'Reset autenticazione', 'token' => 'Token di autenticazione', @@ -75,10 +74,6 @@ return array( 'nok' => 'Manca PDO o uno degli altri driver supportati (pdo_mysql, pdo_sqlite).', 'ok' => 'PDO e altri driver supportati (pdo_mysql, pdo_sqlite).', ), - 'persona' => array( - 'nok' => 'Verifica i permessi sulla cartella ./data/persona. Il server HTTP deve avere i permessi per scriverci dentro', - 'ok' => 'I permessi sulla cartella Mozilla Persona sono corretti.', - ), 'php' => array( '_' => 'Installazione PHP', 'nok' => 'Versione PHP %s FreshRSS richiede almeno la versione %s.', @@ -169,7 +164,6 @@ return array( 'user' => array( 'articles_and_size' => '%s articoli (%s)', 'create' => 'Crea nuovo utente', - 'email_persona' => 'Indirizzo mail
    (Login Mozilla Persona)', 'language' => 'Lingua', 'number' => ' %d profilo utente creato', 'numbers' => 'Sono presenti %d profili utente', diff --git a/app/i18n/it/conf.php b/app/i18n/it/conf.php index b757b3210..19b62c9a7 100644 --- a/app/i18n/it/conf.php +++ b/app/i18n/it/conf.php @@ -76,7 +76,6 @@ return array( '_' => 'Cancellazione account', 'warn' => 'Il tuo account e tutti i dati associati saranno cancellati.', ), - 'email_persona' => 'Indirizzo email
    (Login Mozilla Persona)', 'password_api' => 'Password API
    (e.g., per applicazioni mobili)', 'password_form' => 'Password
    (per il login classico)', 'password_format' => 'Almeno 7 caratteri', diff --git a/app/i18n/it/feedback.php b/app/i18n/it/feedback.php index caf1cd2b4..f217586b0 100644 --- a/app/i18n/it/feedback.php +++ b/app/i18n/it/feedback.php @@ -21,7 +21,6 @@ return array( 'success' => 'Disconnessione effettuata', ), 'no_password_set' => 'Password di amministrazione non impostata. Opzione non disponibile.', - 'not_persona' => 'Solo il sistema Mozilla Persona può essere resettato.', ), 'conf' => array( 'error' => 'Si è verificato un errore durante il salvataggio della configurazione', diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index d24377593..c02ddd13a 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -24,8 +24,6 @@ return array( 'email' => 'Indirizzo email', 'keep_logged_in' => 'Ricorda i dati (1 mese)', 'login' => 'Accedi', - 'login_persona' => 'Accedi con Mozilla Persona', - 'login_persona_problem' => 'Problemi di connessione con Mozilla Persona?', 'logout' => 'Esci', 'password' => array( '_' => 'Password', @@ -42,7 +40,6 @@ return array( 'admin' => 'Username amministratore', 'format' => 'massimo 16 caratteri alfanumerici', ), - 'will_reset' => 'Il sistema di autenticazione verrà resettato: un form verrà usato per Mozilla Persona.', ), 'date' => array( 'Apr' => '\\A\\p\\r\\i\\l\\e', diff --git a/app/i18n/it/install.php b/app/i18n/it/install.php index 8f5300bd5..a60dd4523 100644 --- a/app/i18n/it/install.php +++ b/app/i18n/it/install.php @@ -9,13 +9,11 @@ return array( 'reinstall' => 'Reinstalla FreshRSS', ), 'auth' => array( - 'email_persona' => 'Indirizzo mail
    (per Mozilla Persona)', 'form' => 'Web form (tradizionale, richiede JavaScript)', 'http' => 'HTTP (per gli utenti avanzati con HTTPS)', 'none' => 'Nessuno (pericoloso)', 'password_form' => 'Password
    (per il login tramite Web-form tradizionale)', 'password_format' => 'Almeno 7 caratteri', - 'persona' => 'Mozilla Persona (moderno, richiede JavaScript)', 'type' => 'Metodo di autenticazione', ), 'bdd' => array( @@ -78,10 +76,6 @@ return array( 'nok' => 'Manca PDO o uno degli altri driver supportati (pdo_mysql, pdo_sqlite).', 'ok' => 'PDO e altri driver supportati (pdo_mysql, pdo_sqlite).', ), - 'persona' => array( - 'nok' => 'Verifica i permessi sulla cartella ./data/persona. Il server HTTP deve avere i permessi per scriverci dentro', - 'ok' => 'I permessi sulla cartella Mozilla Persona sono corretti.', - ), 'php' => array( '_' => 'Installazione PHP', 'nok' => 'Versione di PHP %s FreshRSS richiede almeno la versione %s.', diff --git a/app/i18n/nl/admin.php b/app/i18n/nl/admin.php index bd7d63b6a..9f05d69b1 100644 --- a/app/i18n/nl/admin.php +++ b/app/i18n/nl/admin.php @@ -8,7 +8,6 @@ return array( 'form' => 'Web formulier (traditioneel, benodigd JavaScript)', 'http' => 'HTTP (voor geavanceerde gebruikers met HTTPS)', 'none' => 'Geen (gevaarlijk)', - 'persona' => 'Mozilla Persona (modern, benodigd JavaScript)', 'title' => 'Authenticatie', 'title_reset' => 'Authenticatie terugzetten', 'token' => 'Authenticatie teken', @@ -75,10 +74,6 @@ return array( 'nok' => 'U mist PDO of een van de ondersteunde drivers (pdo_mysql, pdo_sqlite).', 'ok' => 'U hebt PDO en ten minste één van de ondersteunde drivers (pdo_mysql, pdo_sqlite).', ), - 'persona' => array( - 'nok' => 'Controleer de permissies op de ./data/persona map. HTTP server moet rechten hebben om hierin te schrijven', - 'ok' => 'Permissies op de Mozilla Persona map zijn goed.', - ), 'php' => array( '_' => 'PHP installatie', 'nok' => 'Uw PHP versie is %s maar FreshRSS benodigd tenminste versie %s.', @@ -169,7 +164,6 @@ return array( 'user' => array( 'articles_and_size' => '%s artikelen (%s)', 'create' => 'Creëer nieuwe gebruiker', - 'email_persona' => 'Log in mail adres
    (voor Mozilla Persona)', 'language' => 'Taal', 'number' => 'Er is %d accounts gemaakt', 'numbers' => 'Er zijn %d accounts gemaakt', diff --git a/app/i18n/nl/conf.php b/app/i18n/nl/conf.php index 9b0aff793..573dabf45 100644 --- a/app/i18n/nl/conf.php +++ b/app/i18n/nl/conf.php @@ -76,7 +76,6 @@ return array( '_' => 'Account verwijderen', 'warn' => 'Uw account en alle gerelateerde gegvens worden verwijderd.', ), - 'email_persona' => 'Log in mail adres
    (voor Mozilla Persona)', 'password_api' => 'Wachtwoord API
    (e.g., voor mobiele apps)', 'password_form' => 'Wachtwoord
    (voor de Web-formulier log in methode)', 'password_format' => 'Ten minste 7 tekens', diff --git a/app/i18n/nl/feedback.php b/app/i18n/nl/feedback.php index 54d84f7d6..b703c43cf 100644 --- a/app/i18n/nl/feedback.php +++ b/app/i18n/nl/feedback.php @@ -21,7 +21,6 @@ return array( 'success' => 'U bent uitgelogd', ), 'no_password_set' => 'Administrateur wachtwoord is niet ingesteld. Deze mogelijkheid is niet beschikbaar.', - 'not_persona' => 'Alleen Persona systeem kan worden gereset.', ), 'conf' => array( 'error' => 'Er is een fout opgetreden tijdens het opslaan van de configuratie', diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index 24cba574e..7e03229c9 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -24,8 +24,6 @@ return array( 'email' => 'Email adres', 'keep_logged_in' => 'Ingelogd blijven voor (1 maand)', 'login' => 'Log in', - 'login_persona' => 'Login met Persona', - 'login_persona_problem' => 'Connectiviteits problemen met Persona', 'logout' => 'Log uit', 'password' => array( '_' => 'Wachtwoord', @@ -42,7 +40,6 @@ return array( 'admin' => 'Administrator gebruikersnaam', 'format' => 'maximaal 16 alphanumerieke tekens', ), - 'will_reset' => 'Het authenticatie system zal worden gereset: een formulier zal worden gebruikt in plaats van Persona.', ), 'date' => array( 'Apr' => '\\A\\p\\r\\i\\l', diff --git a/app/i18n/nl/install.php b/app/i18n/nl/install.php index d16dda4ca..77783cd48 100644 --- a/app/i18n/nl/install.php +++ b/app/i18n/nl/install.php @@ -9,13 +9,11 @@ return array( 'reinstall' => 'Installeer FreshRSS opnieuw', ), 'auth' => array( - 'email_persona' => 'Log in mail adres
    (voor Mozilla Persona)', 'form' => 'Web formulier (traditioneel, benodigd JavaScript)', 'http' => 'HTTP (voor geavanceerde gebruikers met HTTPS)', 'none' => 'Geen (gevaarlijk)', 'password_form' => 'Wachtwoord
    (voor de Web-formulier log in methode)', 'password_format' => 'Tenminste 7 tekens', - 'persona' => 'Mozilla Persona (modern, benodigd JavaScript)', 'type' => 'Authenticatie methode', ), 'bdd' => array( @@ -78,10 +76,6 @@ return array( 'nok' => 'U mist PDO of één van de ondersteunde (pdo_mysql, pdo_sqlite).', 'ok' => 'U hebt PDO en ten minste één van de ondersteunde drivers (pdo_mysql, pdo_sqlite).', ), - 'persona' => array( - 'nok' => 'Controleer permissies van de ./data/persona map. HTTP server moet rechten hebben om er in te kunnen schrijven', - 'ok' => 'Permissies van de Mozilla Persona map zijn goed.', - ), 'php' => array( 'nok' => 'Uw PHP versie is %s maar FreshRSS benodigd tenminste versie %s.', 'ok' => 'Uw PHP versie is %s, welke compatibel is met FreshRSS.', diff --git a/app/i18n/ru/admin.php b/app/i18n/ru/admin.php index dfea5b3cb..caea627f3 100644 --- a/app/i18n/ru/admin.php +++ b/app/i18n/ru/admin.php @@ -8,7 +8,6 @@ return array( 'form' => 'На основе веб-формы (традиционный, необходим JavaScript)', 'http' => 'HTTP (для продвинутых пользователей - по HTTPS)', 'none' => 'Без аутентификации (небезопасный)', - 'persona' => 'Mozilla Persona (новый, необходим JavaScript)', 'title' => 'Аутентификации', 'title_reset' => 'Сброс аутентицикации', 'token' => 'Токен аутентификации', @@ -75,10 +74,6 @@ return array( 'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite).', 'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite).', ), - 'persona' => array( - 'nok' => 'Проверьте права доступа к папке ./data/persona . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку Mozilla Persona в порядке.', - ), 'php' => array( '_' => 'PHP installation', 'nok' => 'У вас установлен PHP версии %s, но FreshRSS необходима версия не ниже %s.', @@ -169,7 +164,6 @@ return array( 'user' => array( 'articles_and_size' => '%s статей (%s)', 'create' => 'Создать нового пользователя', - 'email_persona' => 'Адрес электронной почты для входа
    (for Mozilla Persona)', 'language' => 'Язык', 'number' => 'На данный момент создан %d аккаунт', 'numbers' => 'На данный момент аккаунтов создано: %d', diff --git a/app/i18n/ru/conf.php b/app/i18n/ru/conf.php index e502e9a43..557fbe369 100644 --- a/app/i18n/ru/conf.php +++ b/app/i18n/ru/conf.php @@ -76,7 +76,6 @@ return array( '_' => 'Account deletion', 'warn' => 'Your account and all the related data will be deleted.', ), - 'email_persona' => 'Login email address
    (for Mozilla Persona)', 'password_api' => 'Password API
    (e.g., for mobile apps)', 'password_form' => 'Password
    (for the Web-form login method)', 'password_format' => 'At least 7 characters', diff --git a/app/i18n/ru/feedback.php b/app/i18n/ru/feedback.php index c9189c0d0..7ce2ae9cf 100644 --- a/app/i18n/ru/feedback.php +++ b/app/i18n/ru/feedback.php @@ -21,7 +21,6 @@ return 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', diff --git a/app/i18n/ru/gen.php b/app/i18n/ru/gen.php index b8e8511d9..eecd72749 100644 --- a/app/i18n/ru/gen.php +++ b/app/i18n/ru/gen.php @@ -24,8 +24,6 @@ return array( 'email' => 'Email address', 'keep_logged_in' => 'Keep me logged in (1 month)', 'login' => 'Login', - 'login_persona' => 'Login with Persona', - 'login_persona_problem' => 'Connection problem with Persona?', 'logout' => 'Logout', 'password' => array( '_' => 'Password', @@ -42,7 +40,6 @@ return array( 'admin' => 'Administrator username', 'format' => 'maximum 16 alphanumeric characters', ), - 'will_reset' => 'Authentication system will be reset: a form will be used instead of Persona.', ), 'date' => array( 'Apr' => '\\A\\p\\r\\i\\l', diff --git a/app/i18n/ru/install.php b/app/i18n/ru/install.php index c838b2eba..a52e2959b 100644 --- a/app/i18n/ru/install.php +++ b/app/i18n/ru/install.php @@ -9,13 +9,11 @@ return array( 'reinstall' => 'Переустановить FreshRSS', ), 'auth' => array( - 'email_persona' => 'Почта (логин) для
    (for Mozilla Persona)', 'form' => 'Вэб-форма (традиционный, необходим JavaScript)', 'http' => 'HTTP (для продвинутых пользователей с HTTPS)', 'none' => 'Никакого (опасно)', 'password_form' => 'Пароль
    (для метода аутентификации на Вэб-формах)', 'password_format' => 'Как минимум 7 букв', - 'persona' => 'Mozilla Persona (современный, необходим JavaScript)', 'type' => 'Метод аутентификации', ), 'bdd' => array( @@ -74,10 +72,6 @@ return array( 'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite).', 'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite).', ), - 'persona' => array( - 'nok' => 'Проверьте права доступа к папке ./data/persona . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Права на папку Mozilla Persona в порядке.', - ), 'php' => array( 'nok' => 'У вас установлен PHP версии %s, но FreshRSS необходима версия не ниже %s.', 'ok' => 'У вас установлен PHP версии %s, который совместим с FreshRSS.', diff --git a/app/i18n/tr/admin.php b/app/i18n/tr/admin.php index 3a6f8118e..43f8e23c5 100644 --- a/app/i18n/tr/admin.php +++ b/app/i18n/tr/admin.php @@ -8,7 +8,6 @@ return array( 'form' => 'Web formu (geleneksel, JavaScript gerektirir)', 'http' => 'HTTP (ileri kullanıcılar için, HTTPS)', 'none' => 'Hiçbiri (tehlikeli)', - 'persona' => 'Mozilla Persona (modern, JavaScript gerektirir)', 'title' => 'Kimlik doğrulama', 'title_reset' => 'Kimlik doğrulama sıfırla', 'token' => 'Kimlik doğrulama işareti', @@ -75,10 +74,6 @@ return array( 'nok' => 'PDO veya PDO destekli bir sürücü eksik (pdo_mysql, pdo_sqlite).', 'ok' => 'PDO sorunsuz (pdo_mysql, pdo_sqlite).', ), - 'persona' => array( - 'nok' => './data/persona klasör yetkisini kontrol edin. HTTP yazma yetkisi olmalı', - 'ok' => 'Mozilla Persona klasörü yetkileri sorunsuz.', - ), 'php' => array( '_' => 'PHP kurulumu', 'nok' => 'PHP versiyonunuz %s fakat FreshRSS için gerekli olan en düşük sürüm %s.', @@ -169,7 +164,6 @@ return array( 'user' => array( 'articles_and_size' => '%s makale (%s)', 'create' => 'Yeni kullanıcı oluştur', - 'email_persona' => 'Giriş email adresi
    (Mozilla Persona için)', 'language' => 'Dil', 'number' => 'Oluşturulmuş %d hesap var', 'numbers' => 'Oluşturulmuş %d hesap var', diff --git a/app/i18n/tr/conf.php b/app/i18n/tr/conf.php index d9e275b21..2fdc248e4 100644 --- a/app/i18n/tr/conf.php +++ b/app/i18n/tr/conf.php @@ -76,7 +76,6 @@ return array( '_' => 'Hesap silme', 'warn' => 'Hesabınız ve tüm verileriniz silinecek.', ), - 'email_persona' => 'Giriş email adresi
    (Mozilla Persona için)', 'password_api' => 'API Şifresi
    (ör. mobil uygulamalar için)', 'password_form' => 'Şifre
    (Tarayıcı girişi için)', 'password_format' => 'En az 7 karakter', diff --git a/app/i18n/tr/feedback.php b/app/i18n/tr/feedback.php index 0572c6da1..a53316206 100644 --- a/app/i18n/tr/feedback.php +++ b/app/i18n/tr/feedback.php @@ -21,7 +21,6 @@ return array( 'success' => 'Bağlantı koptu', ), 'no_password_set' => 'Yönetici şifresi ayarlanmadı. Bu özellik kullanıma uygun değil.', - 'not_persona' => 'Sadece Persona sistem sıfırlanabilir.', ), 'conf' => array( 'error' => 'Yapılandırma ayarları kaydedilirken hata oluştu', diff --git a/app/i18n/tr/gen.php b/app/i18n/tr/gen.php index 492e2cb9b..865dbd4e2 100644 --- a/app/i18n/tr/gen.php +++ b/app/i18n/tr/gen.php @@ -24,8 +24,6 @@ return array( 'email' => 'Email adresleri', 'keep_logged_in' => '(1 ay) oturumu açık tut', 'login' => 'Giriş', - 'login_persona' => 'Persona ile giriş yap', - 'login_persona_problem' => 'Persona ile bağlantı sorununuz mu var ?', 'logout' => 'Çıkış', 'password' => array( '_' => 'Şifre', @@ -42,7 +40,6 @@ return array( 'admin' => 'Yönetici kullanıcı adı', 'format' => 'en fazla 16 alfanümerik karakter', ), - 'will_reset' => 'Kimlik doğrulama sistemi sıfırlanacak: Persone yerine bir form kullanılacak.', ), 'date' => array( 'Apr' => '\\N\\i\\s\\a\\n', diff --git a/app/i18n/tr/install.php b/app/i18n/tr/install.php index 85134845b..951a7c5fd 100644 --- a/app/i18n/tr/install.php +++ b/app/i18n/tr/install.php @@ -9,13 +9,11 @@ return array( 'reinstall' => 'FreshRSS i yeniden yükle', ), 'auth' => array( - 'email_persona' => 'Giriş email adresi
    (Mozilla Persona için)', 'form' => 'Web formu (geleneksel, JavaScript gerektirir)', 'http' => 'HTTP (ileri kullanıcılar için, HTTPS)', 'none' => 'Hiçbiri (tehlikeli)', 'password_form' => 'Şifre
    (Tarayıcı girişi için)', 'password_format' => 'En az 7 karakter', - 'persona' => 'Mozilla Persona (modern, JavaScript gerektirir)', 'type' => 'Kimlik doğrulama yöntemi', ), 'bdd' => array( @@ -78,10 +76,6 @@ return array( 'nok' => 'PDO veya PDO destekli bir sürücü eksik (pdo_mysql, pdo_sqlite).', 'ok' => 'PDO sorunsuz (pdo_mysql, pdo_sqlite).', ), - 'persona' => array( - 'nok' => './data/persona klasör yetkisini kontrol edin. HTTP yazma yetkisi olmalı', - 'ok' => 'Mozilla Persona klasörü yetkileri sorunsuz.', - ), 'php' => array( 'nok' => 'PHP versiyonunuz %s fakat FreshRSS için gerekli olan en düşük sürüm %s.', 'ok' => 'PHP versiyonunuz %s, FreshRSS ile tam uyumlu.', diff --git a/app/install.php b/app/install.php index 062f66814..e73bc9972 100644 --- a/app/install.php +++ b/app/install.php @@ -103,7 +103,6 @@ function saveStep1() { $_SESSION['title'] = $system_conf->title; $_SESSION['auth_type'] = $system_conf->auth_type; $_SESSION['old_entries'] = $user_conf->old_entries; - $_SESSION['mail_login'] = $user_conf->mail_login; $_SESSION['default_user'] = $current_user; $_SESSION['passwordHash'] = $user_conf->passwordHash; @@ -128,7 +127,6 @@ function saveStep2() { $_SESSION['old_entries'] = param('old_entries', $user_default_config->old_entries); $_SESSION['auth_type'] = param('auth_type', 'form'); $_SESSION['default_user'] = substr(preg_replace('/[^a-zA-Z0-9]/', '', param('default_user', '')), 0, 16); - $_SESSION['mail_login'] = filter_var(param('mail_login', ''), FILTER_VALIDATE_EMAIL); $password_plain = param('passwordPlain', false); if ($password_plain !== false && cryptAvailable()) { @@ -146,8 +144,7 @@ function saveStep2() { return false; } - if (($_SESSION['auth_type'] === 'form' && empty($_SESSION['passwordHash'])) || - ($_SESSION['auth_type'] === 'persona' && empty($_SESSION['mail_login']))) { + if ($_SESSION['auth_type'] === 'form' && empty($_SESSION['passwordHash'])) { return false; } @@ -157,15 +154,11 @@ function saveStep2() { } $token = ''; - if ($_SESSION['mail_login']) { - $token = sha1($_SESSION['salt'] . $_SESSION['mail_login']); - } $config_array = array( 'language' => $_SESSION['language'], 'theme' => $user_default_config->theme, 'old_entries' => $_SESSION['old_entries'], - 'mail_login' => $_SESSION['mail_login'], 'passwordHash' => $_SESSION['passwordHash'], 'token' => $token, ); @@ -179,12 +172,6 @@ function saveStep2() { mkdir($user_dir); file_put_contents($user_config_path, " $cache ? 'ok' : 'ko', 'users' => $users ? 'ok' : 'ko', 'favicons' => $favicons ? 'ok' : 'ko', - 'persona' => $persona ? 'ok' : 'ko', 'http_referer' => $http_referer ? 'ok' : 'ko', 'all' => $php && $minz && $curl && $pdo && $pcre && $ctype && $dom && $xml && - $data && $cache && $users && $favicons && $persona && $http_referer ? + $data && $cache && $users && $favicons && $http_referer ? 'ok' : 'ko' ); } @@ -380,7 +365,6 @@ function freshrss_already_installed() { function checkStep2() { $conf = !empty($_SESSION['old_entries']) && - isset($_SESSION['mail_login']) && !empty($_SESSION['default_user']); $form = ( @@ -388,11 +372,6 @@ function checkStep2() { ($_SESSION['auth_type'] != 'form' || !empty($_SESSION['passwordHash'])) ); - $persona = ( - isset($_SESSION['auth_type']) && - ($_SESSION['auth_type'] != 'persona' || !empty($_SESSION['mail_login'])) - ); - $defaultUser = empty($_POST['default_user']) ? null : $_POST['default_user']; if ($defaultUser === null) { $defaultUser = empty($_SESSION['default_user']) ? '' : $_SESSION['default_user']; @@ -402,9 +381,8 @@ function checkStep2() { return array( 'conf' => $conf ? 'ok' : 'ko', 'form' => $form ? 'ok' : 'ko', - 'persona' => $persona ? 'ok' : 'ko', 'data' => $data ? 'ok' : 'ko', - 'all' => $conf && $form && $persona && $data ? 'ok' : 'ko' + 'all' => $conf && $form && $data ? 'ok' : 'ko' ); } @@ -612,12 +590,6 @@ function printStep1() {

    - -

    - -

    - -

    @@ -673,12 +645,11 @@ function printStep2() { @@ -697,14 +668,6 @@ function printStep2() {
    -
    - -
    - tabindex="6"/> - -
    -
    -
    diff --git a/app/views/auth/index.phtml b/app/views/auth/index.phtml index 8e4df8c2c..8f81ac856 100644 --- a/app/views/auth/index.phtml +++ b/app/views/auth/index.phtml @@ -10,11 +10,10 @@
    diff --git a/app/views/auth/personaLogin.phtml b/app/views/auth/personaLogin.phtml deleted file mode 100644 index c6d738bf6..000000000 --- a/app/views/auth/personaLogin.phtml +++ /dev/null @@ -1,28 +0,0 @@ -res === false) { ?> -
    -

    - - - - - -

    - - -

    - - - - - -

    - -

    -
    -res); -} -?> diff --git a/app/views/auth/register.phtml b/app/views/auth/register.phtml index 306679601..0c261319a 100644 --- a/app/views/auth/register.phtml +++ b/app/views/auth/register.phtml @@ -16,11 +16,6 @@
    -
    - - -
    -
    -

    - - message)) { ?> -

    - message['title']; ?>
    - message['body']; ?> -

    - - - no_form) { ?> - -

    -
    - -

    - -
    - - -
    -
    - - -
    - -
    -
    - -
    - - -
    diff --git a/app/views/helpers/javascript_vars.phtml b/app/views/helpers/javascript_vars.phtml index 6178cacf2..1aa43a207 100644 --- a/app/views/helpers/javascript_vars.phtml +++ b/app/views/helpers/javascript_vars.phtml @@ -1,6 +1,5 @@ mark_when; -$mail = Minz_Session::param('mail', false); $s = FreshRSS_Context::$user_conf->shortcuts; echo htmlspecialchars(json_encode(array( 'context' => array( @@ -16,7 +15,6 @@ echo htmlspecialchars(json_encode(array( 'sticky_post' => !!FreshRSS_Context::isStickyPostEnabled(), 'html5_notif_timeout' => FreshRSS_Context::$user_conf->html5_notif_timeout, 'auth_type' => FreshRSS_Context::$system_conf->auth_type, - 'current_user_mail' => $mail ? ('"' . $mail . '"') : null, 'current_view' => Minz_Request::actionName(), ), 'shortcuts' => array( diff --git a/app/views/user/manage.phtml b/app/views/user/manage.phtml index fe1b6618b..e48841d9b 100644 --- a/app/views/user/manage.phtml +++ b/app/views/user/manage.phtml @@ -37,14 +37,6 @@
    -
    - - mail_login; ?> -
    - -
    -
    -
    diff --git a/app/views/user/profile.phtml b/app/views/user/profile.phtml index 7ae2c7ede..e96b5aa32 100644 --- a/app/views/user/profile.phtml +++ b/app/views/user/profile.phtml @@ -41,15 +41,6 @@
    -
    - - mail_login; ?> -
    - placeholder="alice@example.net" /> - -
    -
    -
    diff --git a/data/config.default.php b/data/config.default.php index cae15330f..be3fa8ae2 100644 --- a/data/config.default.php +++ b/data/config.default.php @@ -40,7 +40,6 @@ return array( # Login method: # `none` is without password and shows only the default user; # `form` is a conventional Web login form; - # `persona` is the email-based login by Mozilla; # `http_auth` is an access controled by the HTTP Web server (e.g. `/FreshRSS/p/i/.htaccess` for Apache) # if you use `http_auth`, remember to protect only `/FreshRSS/p/i/`, # and in particular not protect `/FreshRSS/p/api/` if you would like to use the API (different login system). diff --git a/data/users/_/config.default.php b/data/users/_/config.default.php index 8f8ff528c..4a3403453 100644 --- a/data/users/_/config.default.php +++ b/data/users/_/config.default.php @@ -5,7 +5,6 @@ return array ( 'old_entries' => 3, 'keep_history_default' => 0, 'ttl_default' => 3600, - 'mail_login' => '', 'token' => '', 'passwordHash' => '', 'apiPasswordHash' => '', diff --git a/lib/lib_rss.php b/lib/lib_rss.php index f89baf9b1..8196f7847 100644 --- a/lib/lib_rss.php +++ b/lib/lib_rss.php @@ -440,7 +440,6 @@ function check_install_files() { 'cache' => CACHE_PATH && is_writable(CACHE_PATH), 'users' => USERS_PATH && is_writable(USERS_PATH), 'favicons' => is_writable(DATA_PATH . '/favicons'), - 'persona' => is_writable(DATA_PATH . '/persona'), 'tokens' => is_writable(DATA_PATH . '/tokens'), ); } diff --git a/p/scripts/install.js b/p/scripts/install.js index 9a49e6031..57fc2450a 100644 --- a/p/scripts/install.js +++ b/p/scripts/install.js @@ -24,18 +24,12 @@ function auth_type_change() { var auth_type = document.getElementById('auth_type'); if (auth_type) { var auth_value = auth_type.value, - password_input = document.getElementById('passwordPlain'), - mail_input = document.getElementById('mail_login'); + password_input = document.getElementById('passwordPlain'); if (auth_value === 'form') { password_input.required = true; - mail_input.required = false; - } else if (auth_value === 'persona') { - password_input.required = false; - mail_input.required = true; } else { password_input.required = false; - mail_input.required = false; } } } diff --git a/p/scripts/persona.js b/p/scripts/persona.js deleted file mode 100644 index 63ab43795..000000000 --- a/p/scripts/persona.js +++ /dev/null @@ -1,76 +0,0 @@ -"use strict"; - -function init_persona() { - if (!(navigator.id && window.$ && window.url)) { - if (window.console) { - console.log('FreshRSS (Persona) waiting for JS…'); - } - window.setTimeout(init_persona, 100); - return; - } - - $('a.signin').click(function() { - navigator.id.request(); - return false; - }); - - $('a.signout').click(function() { - navigator.id.logout(); - return false; - }); - - navigator.id.watch({ - loggedInUser: context['current_user_mail'], - - onlogin: function(assertion) { - // A user has logged in! Here you need to: - // 1. Send the assertion to your backend for verification and to create a session. - // 2. Update your UI. - $.ajax ({ - type: 'POST', - url: url['login'], - data: {assertion: assertion}, - success: function(res, status, xhr) { - if (res.status === 'failure') { - openNotification(res.reason, 'bad'); - } else if (res.status === 'okay') { - location.href = url['index']; - } - }, - error: function(res, status, xhr) { - // alert(res); - } - }); - }, - onlogout: function() { - // A user has logged out! Here you need to: - // Tear down the user's session by redirecting the user or making a call to your backend. - // Also, make sure loggedInUser will get set to null on the next page load. - // (That's a literal JavaScript null. Not false, 0, or undefined. null.) - $.ajax ({ - type: 'POST', - url: url['logout'], - success: function(res, status, xhr) { - location.href = url['index']; - }, - error: function(res, status, xhr) { - // alert(res); - } - }); - } - }); -} - -if (document.readyState && document.readyState !== 'loading') { - if (window.console) { - console.log('FreshRSS (Persona) immediate init…'); - } - init_persona(); -} else if (document.addEventListener) { - document.addEventListener('DOMContentLoaded', function () { - if (window.console) { - console.log('FreshRSS (Persona) waiting for DOMContentLoaded…'); - } - init_persona(); - }, false); -} -- cgit v1.2.3 From 0b2c5b82d0baf7092b9ce0ed1ef2ad99abf8dec5 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Thu, 11 Aug 2016 21:13:33 +0200 Subject: Fixed credits links, updated credits, fixed broken images https://github.com/FreshRSS/FreshRSS/issues/1201 * We do not use getfavicon service anymore * Links to images hosted on http://marienfressinaud.fr were broken. --- README.fr.md | 5 +++-- README.md | 5 +++-- app/i18n/cz/index.php | 2 +- app/i18n/de/index.php | 2 +- app/i18n/en/index.php | 2 +- app/i18n/fr/index.php | 2 +- app/i18n/it/index.php | 2 +- app/i18n/nl/index.php | 2 +- app/i18n/ru/index.php | 2 +- app/i18n/tr/index.php | 2 +- doc/FreshRSS-logo.png | Bin 0 -> 14476 bytes doc/FreshRSS-screenshot.png | Bin 0 -> 215409 bytes 12 files changed, 14 insertions(+), 12 deletions(-) create mode 100644 doc/FreshRSS-logo.png create mode 100644 doc/FreshRSS-screenshot.png (limited to 'app/i18n') diff --git a/README.fr.md b/README.fr.md index 91903305c..a53653286 100644 --- a/README.fr.md +++ b/README.fr.md @@ -12,7 +12,7 @@ Il supporte [PubSubHubbub](https://code.google.com/p/pubsubhubbub/) pour des not * Démo : http://demo.freshrss.org/ * Licence : [GNU AGPL 3](http://www.gnu.org/licenses/agpl-3.0.html) -![Logo de FreshRSS](http://marienfressinaud.fr/data/images/freshrss/freshrss_title.png) +![Logo de FreshRSS](./doc/FreshRSS-logo.png) # Téléchargement Voir la [liste des versions](../../releases). @@ -41,7 +41,7 @@ Nous sommes une communauté amicale. * Fonctionne aussi sur mobile * L’entête HTTP `Referer` ne doit pas être désactivé pour pouvoir utiliser le formulaire de connexion -![Capture d’écran de FreshRSS](http://marienfressinaud.fr/data/images/freshrss/freshrss_default-design.png) +![Capture d’écran de FreshRSS](./doc/FreshRSS-screenshot.png) # Installation 1. Récupérez l’application FreshRSS via la commande git ou [en téléchargeant l’archive](../releases) @@ -124,6 +124,7 @@ mysqldump -u utilisateur -p --databases freshrss > freshrss.sql * [MINZ](https://github.com/marienfressinaud/MINZ) * [php-http-304](http://alexandre.alapetite.fr/doc-alex/php-http-304/) * [jQuery](http://jquery.com/) +* [ArthurHoaro/favicon](https://github.com/ArthurHoaro/favicon) * [keyboard_shortcuts](http://www.openjs.com/scripts/events/keyboard_shortcuts/) * [flotr2](http://www.humblesoftware.com/flotr2) diff --git a/README.md b/README.md index f46359219..1c9f89c78 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ It supports [PubSubHubbub](https://code.google.com/p/pubsubhubbub/) for instant * Demo: http://demo.freshrss.org/ * License: [GNU AGPL 3](http://www.gnu.org/licenses/agpl-3.0.html) -![FreshRSS logo](http://marienfressinaud.fr/data/images/freshrss/freshrss_title.png) +![FreshRSS logo](./doc/FreshRSS-logo.png) # Releases See the [list of releases](../../releases). @@ -41,7 +41,7 @@ We are a friendly community. * Works on mobile * The browser HTTP `Referer` header must not be disabled when using the form login method -![FreshRSS screenshot](http://marienfressinaud.fr/data/images/freshrss/freshrss_default-design.png) +![FreshRSS screenshot](./doc/FreshRSS-screenshot.png) # Installation 1. Get FreshRSS with git or [by downloading the archive](https://github.com/FreshRSS/FreshRSS/archive/master.zip) @@ -124,6 +124,7 @@ mysqldump -u user -p --databases freshrss > freshrss.sql * [MINZ](https://github.com/marienfressinaud/MINZ) * [php-http-304](http://alexandre.alapetite.fr/doc-alex/php-http-304/) * [jQuery](http://jquery.com/) +* [ArthurHoaro/favicon](https://github.com/ArthurHoaro/favicon) * [keyboard_shortcuts](http://www.openjs.com/scripts/events/keyboard_shortcuts/) * [flotr2](http://www.humblesoftware.com/flotr2) diff --git a/app/i18n/cz/index.php b/app/i18n/cz/index.php index 5691d12af..cb0e5955d 100644 --- a/app/i18n/cz/index.php +++ b/app/i18n/cz/index.php @@ -6,7 +6,7 @@ return array( 'agpl3' => 'AGPL 3', 'bugs_reports' => 'Hlášení chyb', 'credits' => 'Poděkování', - 'credits_content' => 'Některé designové prvky pocházejí z Bootstrap, FreshRSS ale tuto platformu nevyužívá. Ikony pocházejí z GNOME projektu. Font Open Sans vytvořil Steve Matteson. Favicony jsou shromažďovány pomocí getFavicon API. FreshRSS je založen na PHP framework Minz.', + 'credits_content' => 'Některé designové prvky pocházejí z Bootstrap, FreshRSS ale tuto platformu nevyužívá. Ikony pocházejí z GNOME projektu. Font Open Sans vytvořil Steve Matteson. FreshRSS je založen na PHP framework Minz.', 'freshrss_description' => 'FreshRSS je čtečka RSS kanálů určená k provozu na vlastním serveru, podobná Kriss Feed nebo Leed. Je to nenáročný a jednoduchý, zároveň ale mocný a konfigurovatelný nástroj.', 'github' => 'na Github', 'license' => 'Licence', diff --git a/app/i18n/de/index.php b/app/i18n/de/index.php index 04798cdce..df92d8085 100644 --- a/app/i18n/de/index.php +++ b/app/i18n/de/index.php @@ -6,7 +6,7 @@ return array( 'agpl3' => 'AGPL 3', 'bugs_reports' => 'Fehlerberichte', 'credits' => 'Credits', - 'credits_content' => 'Einige Designelemente stammen von Bootstrap, obwohl FreshRSS dieses Framework nicht nutzt. Icons stammen vom GNOME project. Open Sans Font wurde von Steve Matteson erstellt. Favicons werden mit getFavicon API gesammelt. FreshRSS basiert auf Minz, einem PHP-Framework.', + 'credits_content' => 'Einige Designelemente stammen von Bootstrap, obwohl FreshRSS dieses Framework nicht nutzt. Icons stammen vom GNOME project. Open Sans Font wurde von Steve Matteson erstellt. FreshRSS basiert auf Minz, einem PHP-Framework.', 'freshrss_description' => 'FreshRSS ist ein RSS-Feedsaggregator zum selbst hosten wie zum Beispiel Kriss Feed oder Leed. Er ist leicht und einfach zu handhaben und gleichzeitig ein leistungsstarkes und konfigurierbares Werkzeug.', 'github' => 'on Github', 'license' => 'Lizenz', diff --git a/app/i18n/en/index.php b/app/i18n/en/index.php index 80fa3d950..eb6413e3c 100644 --- a/app/i18n/en/index.php +++ b/app/i18n/en/index.php @@ -6,7 +6,7 @@ return array( 'agpl3' => 'AGPL 3', 'bugs_reports' => 'Bugs reports', 'credits' => 'Credits', - 'credits_content' => 'Some design elements come from Bootstrap although FreshRSS doesn’t use this framework. Icons come from GNOME project. Open Sans font police has been created by Steve Matteson. Favicons are collected with getFavicon API. FreshRSS is based on Minz, a PHP framework.', + 'credits_content' => 'Some design elements come from Bootstrap although FreshRSS doesn’t use this framework. Icons come from GNOME project. Open Sans font police has been created by Steve Matteson. FreshRSS is based on Minz, a PHP framework.', 'freshrss_description' => 'FreshRSS is a RSS feeds aggregator to self-host like Kriss Feed or Leed. It is light and easy to take in hand while being powerful and configurable tool.', 'github' => 'on Github', 'license' => 'License', diff --git a/app/i18n/fr/index.php b/app/i18n/fr/index.php index 7e028ab92..9f22f4b05 100644 --- a/app/i18n/fr/index.php +++ b/app/i18n/fr/index.php @@ -6,7 +6,7 @@ return array( 'agpl3' => 'AGPL 3', 'bugs_reports' => 'Rapports de bugs', 'credits' => 'Crédits', - 'credits_content' => 'Des éléments de design sont issus du projet Bootstrap bien que FreshRSS n’utilise pas ce framework. Les icônes sont issues du projet GNOME. La police Open Sans utilisée a été créée par Steve Matteson. Les favicons sont récupérés grâce au site getFavicon. FreshRSS repose sur Minz, un framework PHP.', + 'credits_content' => 'Des éléments de design sont issus du projet Bootstrap bien que FreshRSS n’utilise pas ce framework. Les icônes sont issues du projet GNOME. La police Open Sans utilisée a été créée par Steve Matteson. Les favicons sont récupérés grâce au site getFavicon. FreshRSS repose sur Minz, un framework PHP.', 'freshrss_description' => 'FreshRSS est un agrégateur de flux RSS à auto-héberger à l’image de Kriss Feed ou Leed. Il se veut léger et facile à prendre en main tout en étant un outil puissant et paramétrable.', 'github' => 'sur Github', 'license' => 'Licence', diff --git a/app/i18n/it/index.php b/app/i18n/it/index.php index 584b044b1..d79502c79 100644 --- a/app/i18n/it/index.php +++ b/app/i18n/it/index.php @@ -6,7 +6,7 @@ return array( 'agpl3' => 'AGPL 3', 'bugs_reports' => 'Bugs', 'credits' => 'Crediti', - 'credits_content' => 'Alcuni elementi di design provengono da Bootstrap sebbene FreshRSS non usi questo framework. Le icone provengono dal progetto GNOME. Il carattere Open Sans è stato creato da Steve Matteson. Le Favicons vengono estratte con le API getFavicon. FreshRSS è basato su Minz, un framework PHP.', + 'credits_content' => 'Alcuni elementi di design provengono da Bootstrap sebbene FreshRSS non usi questo framework. Le icone provengono dal progetto GNOME. Il carattere Open Sans è stato creato da Steve Matteson. FreshRSS è basato su Minz, un framework PHP.', 'freshrss_description' => 'FreshRSS è un aggregatore di feeds RSS da installare sul proprio host come Kriss Feed o Leed. Leggero e facile da mantenere pur essendo molto configurabile e potente.', 'github' => 'su Github', 'license' => 'Licenza', diff --git a/app/i18n/nl/index.php b/app/i18n/nl/index.php index df6a064e4..88e877e2e 100644 --- a/app/i18n/nl/index.php +++ b/app/i18n/nl/index.php @@ -6,7 +6,7 @@ return array( 'agpl3' => 'AGPL 3', 'bugs_reports' => 'Rapporteer fouten', 'credits' => 'Waarderingen', - 'credits_content' => 'Sommige ontwerp elementen komen van Bootstrap alhoewel FreshRSS dit raamwerk niet gebruikt. Pictogrammen komen van het GNOME project. De Open Sans font police is gemaakt door Steve Matteson. Favicons zijn verzameld met de getFavicon API. FreshRSS is gebaseerd op Minz, een PHP raamwerk. Nederlandse vertaling door Wanabo, NieuwsKop.be. Link naar de Nederlandse vertaling, FreshRSS-Dutch-translation.', + 'credits_content' => 'Sommige ontwerp elementen komen van Bootstrap alhoewel FreshRSS dit raamwerk niet gebruikt. Pictogrammen komen van het GNOME project. De Open Sans font police is gemaakt door Steve Matteson. Favicons zijn verzameld met de getFavicon API. FreshRSS is gebaseerd op Minz, een PHP raamwerk. Nederlandse vertaling door Wanabo, NieuwsKop.be. Link naar de Nederlandse vertaling, FreshRSS-Dutch-translation.', 'freshrss_description' => 'FreshRSS is een RSS feed aggregator om zelf te hosten zoals Kriss Feed of Leed. Het gebruikt weinig systeembronnen en is makkelijk te administreren terwijl het een krachtig en makkelijk te configureren programma is.', 'github' => 'op Github', 'license' => 'License', diff --git a/app/i18n/ru/index.php b/app/i18n/ru/index.php index 80fa3d950..eb6413e3c 100644 --- a/app/i18n/ru/index.php +++ b/app/i18n/ru/index.php @@ -6,7 +6,7 @@ return array( 'agpl3' => 'AGPL 3', 'bugs_reports' => 'Bugs reports', 'credits' => 'Credits', - 'credits_content' => 'Some design elements come from Bootstrap although FreshRSS doesn’t use this framework. Icons come from GNOME project. Open Sans font police has been created by Steve Matteson. Favicons are collected with getFavicon API. FreshRSS is based on Minz, a PHP framework.', + 'credits_content' => 'Some design elements come from Bootstrap although FreshRSS doesn’t use this framework. Icons come from GNOME project. Open Sans font police has been created by Steve Matteson. FreshRSS is based on Minz, a PHP framework.', 'freshrss_description' => 'FreshRSS is a RSS feeds aggregator to self-host like Kriss Feed or Leed. It is light and easy to take in hand while being powerful and configurable tool.', 'github' => 'on Github', 'license' => 'License', diff --git a/app/i18n/tr/index.php b/app/i18n/tr/index.php index 9912203c8..cb36d6717 100644 --- a/app/i18n/tr/index.php +++ b/app/i18n/tr/index.php @@ -6,7 +6,7 @@ return array( 'agpl3' => 'AGPL 3', 'bugs_reports' => 'Hata raporu', 'credits' => 'Tanıtım', - 'credits_content' => 'Bu frameworkü kullanmamasına rağmen FreshRSS bazı tasarım ögelerini Bootstrap dan almıştır. İkonlar GNOME projesinden alınmıştır. Open Sans yazı tipi Steve Matteson tarafından oluşturulmuştur. Site ikonları getFavicon API ile oluşturuldu. FreshRSS bir PHP framework olan Minz i temel alır.', + 'credits_content' => 'Bu frameworkü kullanmamasına rağmen FreshRSS bazı tasarım ögelerini Bootstrap dan almıştır. İkonlar GNOME projesinden alınmıştır. Open Sans yazı tipi Steve Matteson tarafından oluşturulmuştur. FreshRSS bir PHP framework olan Minz i temel alır.', 'freshrss_description' => 'FreshRSS Kriss Feed veya Leed gibi kendi hostunuzda çalışan bir RSS akış toplayıcısıdır. Güçlü ve yapılandırılabilir araçlarıyla basit ve kullanımı kolay bir uygulamadır.', 'github' => 'Github sayfası', 'license' => 'Lisans', diff --git a/doc/FreshRSS-logo.png b/doc/FreshRSS-logo.png new file mode 100644 index 000000000..763b19cb1 Binary files /dev/null and b/doc/FreshRSS-logo.png differ diff --git a/doc/FreshRSS-screenshot.png b/doc/FreshRSS-screenshot.png new file mode 100644 index 000000000..2bcd6e6bf Binary files /dev/null and b/doc/FreshRSS-screenshot.png differ -- cgit v1.2.3 From a26aad728add510417b924335c34263b6835a352 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Thu, 11 Aug 2016 21:20:47 +0200 Subject: More credit updated https://github.com/FreshRSS/FreshRSS/issues/1201 https://github.com/FreshRSS/FreshRSS/pull/1204 --- app/i18n/fr/index.php | 2 +- app/i18n/nl/index.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/fr/index.php b/app/i18n/fr/index.php index 9f22f4b05..62eedc280 100644 --- a/app/i18n/fr/index.php +++ b/app/i18n/fr/index.php @@ -6,7 +6,7 @@ return array( 'agpl3' => 'AGPL 3', 'bugs_reports' => 'Rapports de bugs', 'credits' => 'Crédits', - 'credits_content' => 'Des éléments de design sont issus du projet Bootstrap bien que FreshRSS n’utilise pas ce framework. Les icônes sont issues du projet GNOME. La police Open Sans utilisée a été créée par Steve Matteson. Les favicons sont récupérés grâce au site getFavicon. FreshRSS repose sur Minz, un framework PHP.', + 'credits_content' => 'Des éléments de design sont issus du projet Bootstrap bien que FreshRSS n’utilise pas ce framework. Les icônes sont issues du projet GNOME. La police Open Sans utilisée a été créée par Steve Matteson. FreshRSS repose sur Minz, un framework PHP.', 'freshrss_description' => 'FreshRSS est un agrégateur de flux RSS à auto-héberger à l’image de Kriss Feed ou Leed. Il se veut léger et facile à prendre en main tout en étant un outil puissant et paramétrable.', 'github' => 'sur Github', 'license' => 'Licence', diff --git a/app/i18n/nl/index.php b/app/i18n/nl/index.php index 88e877e2e..751806bfa 100644 --- a/app/i18n/nl/index.php +++ b/app/i18n/nl/index.php @@ -6,7 +6,7 @@ return array( 'agpl3' => 'AGPL 3', 'bugs_reports' => 'Rapporteer fouten', 'credits' => 'Waarderingen', - 'credits_content' => 'Sommige ontwerp elementen komen van Bootstrap alhoewel FreshRSS dit raamwerk niet gebruikt. Pictogrammen komen van het GNOME project. De Open Sans font police is gemaakt door Steve Matteson. Favicons zijn verzameld met de getFavicon API. FreshRSS is gebaseerd op Minz, een PHP raamwerk. Nederlandse vertaling door Wanabo, NieuwsKop.be. Link naar de Nederlandse vertaling, FreshRSS-Dutch-translation.', + 'credits_content' => 'Sommige ontwerp elementen komen van Bootstrap alhoewel FreshRSS dit raamwerk niet gebruikt. Pictogrammen komen van het GNOME project. De Open Sans font police is gemaakt door Steve Matteson. FreshRSS is gebaseerd op Minz, een PHP raamwerk. Nederlandse vertaling door Wanabo, NieuwsKop.be. Link naar de Nederlandse vertaling, FreshRSS-Dutch-translation.', 'freshrss_description' => 'FreshRSS is een RSS feed aggregator om zelf te hosten zoals Kriss Feed of Leed. Het gebruikt weinig systeembronnen en is makkelijk te administreren terwijl het een krachtig en makkelijk te configureren programma is.', 'github' => 'op Github', 'license' => 'License', -- cgit v1.2.3 From 2fa5ef354c82b036e146c178edf495bf8e08d0ee Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 3 Sep 2016 11:29:18 +0200 Subject: pdo_pgsql documentation --- README.fr.md | 23 +++++++++++++++-------- README.md | 23 +++++++++++++++-------- app/i18n/cz/admin.php | 4 ++-- app/i18n/cz/install.php | 4 ++-- app/i18n/de/admin.php | 4 ++-- app/i18n/de/install.php | 4 ++-- app/i18n/en/admin.php | 4 ++-- app/i18n/en/install.php | 4 ++-- app/i18n/fr/admin.php | 4 ++-- app/i18n/fr/install.php | 4 ++-- app/i18n/it/admin.php | 4 ++-- app/i18n/it/install.php | 4 ++-- app/i18n/nl/admin.php | 4 ++-- app/i18n/nl/install.php | 4 ++-- app/i18n/ru/admin.php | 4 ++-- app/i18n/ru/install.php | 4 ++-- app/i18n/tr/admin.php | 4 ++-- app/i18n/tr/install.php | 4 ++-- 18 files changed, 62 insertions(+), 48 deletions(-) (limited to 'app/i18n') diff --git a/README.fr.md b/README.fr.md index 99de1f618..8dc0f6fec 100644 --- a/README.fr.md +++ b/README.fr.md @@ -33,9 +33,9 @@ Nous sommes une communauté amicale. * Fonctionne même sur un Raspberry Pi 1 avec des temps de réponse < 1s (testé sur 150 flux, 22k articles) * Serveur Web Apache2 (recommandé), ou nginx, lighttpd (non testé sur les autres) * PHP 5.3.3+ (PHP 5.4+ recommandé, et PHP 5.5+ pour les performances, et PHP 7+ pour d’encore meilleures performances) - * Requis : [DOM](http://php.net/dom), [XML](http://php.net/xml), [PDO_MySQL](http://php.net/pdo-mysql) ou [PDO_SQLite](http://php.net/pdo-sqlite), [cURL](http://php.net/curl) + * Requis : [DOM](http://php.net/dom), [XML](http://php.net/xml), [PDO_MySQL](http://php.net/pdo-mysql) ou [PDO_SQLite](http://php.net/pdo-sqlite) ou [PDO_PGSQL](http://php.net/pdo-pgsql), [cURL](http://php.net/curl) * Recommandés : [JSON](http://php.net/json), [GMP](http://php.net/gmp) (pour accès API sur plateformes < 64 bits), [IDN](http://php.net/intl.idn) (pour les noms de domaines internationalisés), [mbstring](http://php.net/mbstring) et/ou [iconv](http://php.net/iconv) (pour conversion d’encodages), [Zip](http://php.net/zip) (pour import/export), [zlib](http://php.net/zlib) (pour les flux compressés) -* MySQL 5.5.3+ (recommandé) ou SQLite 3.7.4+ +* MySQL 5.5.3+ (recommandé), ou SQLite 3.7.4+, ou PostgreSQL * Un navigateur Web récent tel Firefox, Internet Explorer 11 / Edge, Chrome, Opera, Safari. * Fonctionne aussi sur mobile @@ -56,13 +56,20 @@ Nous sommes une communauté amicale. ```sh # Si vous utilisez le serveur Web Apache (sinon il faut un autre serveur Web) sudo apt-get install apache2 -sudo a2enmod headers expires rewrite ssl -# (optionnel) Si vous voulez un serveur de base de données MySQL -sudo apt-get install mysql-server mysql-client php5-mysql -# Composants principaux (pour Ubuntu <= 15.10, Debian <= 8 Jessie) +sudo a2enmod headers expires rewrite ssl #Modules Apache + +# Pour Ubuntu <= 15.10, Debian <= 8 Jessie sudo apt-get install php5 php5-curl php5-gmp php5-intl php5-json php5-sqlite -# Composants principaux (pour Ubuntu >= 16.04, Debian >= 9 Stretch) -sudo apt install php libapache2-mod-php php-curl php-gmp php-intl php-mbstring php-sqlite3 php-xml php-zip +sudo apt-get install libapache2-mod-php5 #Pour Apache +sudo apt-get install mysql-server mysql-client php5-mysql #Base de données MySQL optionnelle +sudo apt-get install postgresql php5-pgsql #Base de données PostgreSQL optionnelle + +# Pour Ubuntu >= 16.04, Debian >= 9 Stretch +sudo apt install php php-curl php-gmp php-intl php-mbstring php-sqlite3 php-xml php-zip +sudo apt install libapache2-mod-php #Pour Apache +sudo apt install mysql-server mysql-client php-mysql #Base de données MySQL optionnelle +sudo apt install postgresql php-pgsql #Base de données PostgreSQL optionnelle + # Redémarrage du serveur Web sudo service apache2 restart diff --git a/README.md b/README.md index 846652878..fc2c6fdb9 100644 --- a/README.md +++ b/README.md @@ -33,9 +33,9 @@ We are a friendly community. * It even works on Raspberry Pi 1 with response time under a second (tested with 150 feeds, 22k articles) * A web server: Apache2 (recommended), nginx, lighttpd (not tested on others) * PHP 5.3.3+ (PHP 5.4+ recommended, and PHP 5.5+ for performance, and PHP 7 for even higher performance) - * Required extensions: [DOM](http://php.net/dom), [XML](http://php.net/xml), [PDO_MySQL](http://php.net/pdo-mysql) or [PDO_SQLite](http://php.net/pdo-sqlite), [cURL](http://php.net/curl) + * Required extensions: [DOM](http://php.net/dom), [XML](http://php.net/xml), [PDO_MySQL](http://php.net/pdo-mysql) or [PDO_SQLite](http://php.net/pdo-sqlite) or [PDO_PGSQL](http://php.net/pdo-pgsql), [cURL](http://php.net/curl) * Recommended extensions: [JSON](http://php.net/json), [GMP](http://php.net/gmp) (for API access on platforms < 64 bits), [IDN](http://php.net/intl.idn) (for Internationalized Domain Names), [mbstring](http://php.net/mbstring) and/or [iconv](http://php.net/iconv) (for charset conversion), [Zip](http://php.net/zip) (for import/export), [zlib](http://php.net/zlib) (for compressed feeds) -* MySQL 5.5.3+ (recommended) or SQLite 3.7.4+ +* MySQL 5.5.3+ (recommended), or SQLite 3.7.4+, or PostgreSQL * A recent browser like Firefox, Internet Explorer 11 / Edge, Chrome, Opera, Safari. * Works on mobile @@ -56,13 +56,20 @@ We are a friendly community. ```sh # If you use an Apache Web server (otherwise you need another Web server) sudo apt-get install apache2 -sudo a2enmod headers expires rewrite ssl -# (Optional) If you want a MySQL database server -sudo apt-get install mysql-server mysql-client php5-mysql -# Main components (for Ubuntu <= 15.10, Debian <= 8 Jessie) +sudo a2enmod headers expires rewrite ssl #Apache modules + +# For Ubuntu <= 15.10, Debian <= 8 Jessie sudo apt-get install php5 php5-curl php5-gmp php5-intl php5-json php5-sqlite -# Main components (for Ubuntu >= 16.04, Debian >= 9 Stretch) -sudo apt install php libapache2-mod-php php-curl php-gmp php-intl php-mbstring php-sqlite3 php-xml php-zip +sudo apt-get install libapache2-mod-php5 #For Apache +sudo apt-get install mysql-server mysql-client php5-mysql #Optional MySQL database +sudo apt-get install postgresql php5-pgsql #Optional PostgreSQL database + +# For Ubuntu >= 16.04, Debian >= 9 Stretch +sudo apt install php php-curl php-gmp php-intl php-mbstring php-sqlite3 php-xml php-zip +sudo apt install libapache2-mod-php #For Apache +sudo apt install mysql-server mysql-client php-mysql #Optional MySQL database +sudo apt install postgresql php-pgsql #Optional PostgreSQL database + # Restart Web server sudo service apache2 restart diff --git a/app/i18n/cz/admin.php b/app/i18n/cz/admin.php index 881c02fc6..781ca2fe3 100644 --- a/app/i18n/cz/admin.php +++ b/app/i18n/cz/admin.php @@ -71,8 +71,8 @@ return array( 'ok' => 'Máte požadovanou knihovnu pro regulární výrazy (PCRE).', ), 'pdo' => array( - 'nok' => 'Nemáte PDO nebo některý z podporovaných ovladačů (pdo_mysql, pdo_sqlite).', - 'ok' => 'Máte PDO a alespoň jeden z podporovaných ovladačů (pdo_mysql, pdo_sqlite).', + 'nok' => 'Nemáte PDO nebo některý z podporovaných ovladačů (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'Máte PDO a alespoň jeden z podporovaných ovladačů (pdo_mysql, pdo_sqlite, pdo_pgsql).', ), 'php' => array( '_' => 'PHP instalace', diff --git a/app/i18n/cz/install.php b/app/i18n/cz/install.php index 6b94c0d4b..e29a51888 100644 --- a/app/i18n/cz/install.php +++ b/app/i18n/cz/install.php @@ -73,8 +73,8 @@ return array( 'ok' => 'Máte požadovanou knihovnu pro regulární výrazy (PCRE).', ), 'pdo' => array( - 'nok' => 'Nemáte PDO nebo některý z podporovaných ovladačů (pdo_mysql, pdo_sqlite).', - 'ok' => 'Máte PDO a alespoň jeden z podporovaných ovladačů (pdo_mysql, pdo_sqlite).', + 'nok' => 'Nemáte PDO nebo některý z podporovaných ovladačů (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'Máte PDO a alespoň jeden z podporovaných ovladačů (pdo_mysql, pdo_sqlite, pdo_pgsql).', ), 'php' => array( 'nok' => 'Vaše verze PHP je %s, ale FreshRSS vyžaduje alespoň verzi %s.', diff --git a/app/i18n/de/admin.php b/app/i18n/de/admin.php index 7b75fe5f4..b1c29b901 100644 --- a/app/i18n/de/admin.php +++ b/app/i18n/de/admin.php @@ -71,8 +71,8 @@ return array( '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).', + 'nok' => 'Ihnen fehlt PDO oder einer der unterstützten Treiber (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'Sie haben PDO und mindestens einen der unterstützten Treiber (pdo_mysql, pdo_sqlite, pdo_pgsql).', ), 'php' => array( '_' => 'PHP-Installation', diff --git a/app/i18n/de/install.php b/app/i18n/de/install.php index a77822e7b..eb0c2eb89 100644 --- a/app/i18n/de/install.php +++ b/app/i18n/de/install.php @@ -73,8 +73,8 @@ return array( '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).', + 'nok' => 'Ihnen fehlt PDO oder einer der unterstützten Treiber (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'Sie haben PDO und mindestens einen der unterstützten Treiber (pdo_mysql, pdo_sqlite, pdo_pgsql).', ), 'php' => array( 'nok' => 'Ihre PHP-Version ist %s aber FreshRSS benötigt mindestens Version %s.', diff --git a/app/i18n/en/admin.php b/app/i18n/en/admin.php index a88552087..f6b63d44c 100644 --- a/app/i18n/en/admin.php +++ b/app/i18n/en/admin.php @@ -71,8 +71,8 @@ return array( '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).', + 'nok' => 'You lack PDO or one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'You have PDO and at least one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).', ), 'php' => array( '_' => 'PHP installation', diff --git a/app/i18n/en/install.php b/app/i18n/en/install.php index d1c5f37c8..54ce8edb2 100644 --- a/app/i18n/en/install.php +++ b/app/i18n/en/install.php @@ -73,8 +73,8 @@ return array( '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).', + 'nok' => 'You lack PDO or one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'You have PDO and at least one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).', ), 'php' => array( 'nok' => 'Your PHP version is %s but FreshRSS requires at least version %s.', diff --git a/app/i18n/fr/admin.php b/app/i18n/fr/admin.php index c359e9d24..c796fb539 100644 --- a/app/i18n/fr/admin.php +++ b/app/i18n/fr/admin.php @@ -71,8 +71,8 @@ return array( '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).', + 'nok' => 'Vous ne disposez pas de PDO ou d’un des drivers supportés (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'Vous disposez de PDO et d’au moins un des drivers supportés (pdo_mysql, pdo_sqlite, pdo_pgsql).', ), 'php' => array( '_' => 'Installation de PHP', diff --git a/app/i18n/fr/install.php b/app/i18n/fr/install.php index 946a210ee..3b1dfb2f1 100644 --- a/app/i18n/fr/install.php +++ b/app/i18n/fr/install.php @@ -73,8 +73,8 @@ return array( '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).', + 'nok' => 'Vous ne disposez pas de PDO ou d’un des drivers supportés (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'Vous disposez de PDO et d’au moins un des drivers supportés (pdo_mysql, pdo_sqlite, pdo_pgsql).', ), 'php' => array( 'nok' => 'Votre version de PHP est la %s mais FreshRSS requiert au moins la version %s.', diff --git a/app/i18n/it/admin.php b/app/i18n/it/admin.php index 4eea158f6..475865984 100644 --- a/app/i18n/it/admin.php +++ b/app/i18n/it/admin.php @@ -71,8 +71,8 @@ return array( 'ok' => 'Libreria richiesta per le regular expressions presente (PCRE).', ), 'pdo' => array( - 'nok' => 'Manca PDO o uno degli altri driver supportati (pdo_mysql, pdo_sqlite).', - 'ok' => 'PDO e altri driver supportati (pdo_mysql, pdo_sqlite).', + 'nok' => 'Manca PDO o uno degli altri driver supportati (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'PDO e altri driver supportati (pdo_mysql, pdo_sqlite, pdo_pgsql).', ), 'php' => array( '_' => 'Installazione PHP', diff --git a/app/i18n/it/install.php b/app/i18n/it/install.php index a60dd4523..e7ea61d23 100644 --- a/app/i18n/it/install.php +++ b/app/i18n/it/install.php @@ -73,8 +73,8 @@ return array( 'ok' => 'Libreria richiesta per le regular expressions presente (PCRE).', ), 'pdo' => array( - 'nok' => 'Manca PDO o uno degli altri driver supportati (pdo_mysql, pdo_sqlite).', - 'ok' => 'PDO e altri driver supportati (pdo_mysql, pdo_sqlite).', + 'nok' => 'Manca PDO o uno degli altri driver supportati (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'PDO e altri driver supportati (pdo_mysql, pdo_sqlite, pdo_pgsql).', ), 'php' => array( '_' => 'Installazione PHP', diff --git a/app/i18n/nl/admin.php b/app/i18n/nl/admin.php index 9f05d69b1..f0296b827 100644 --- a/app/i18n/nl/admin.php +++ b/app/i18n/nl/admin.php @@ -71,8 +71,8 @@ return array( 'ok' => 'U hebt de benodigde bibliotheek voor regular expressions (PCRE).', ), 'pdo' => array( - 'nok' => 'U mist PDO of een van de ondersteunde drivers (pdo_mysql, pdo_sqlite).', - 'ok' => 'U hebt PDO en ten minste één van de ondersteunde drivers (pdo_mysql, pdo_sqlite).', + 'nok' => 'U mist PDO of een van de ondersteunde drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'U hebt PDO en ten minste één van de ondersteunde drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).', ), 'php' => array( '_' => 'PHP installatie', diff --git a/app/i18n/nl/install.php b/app/i18n/nl/install.php index 77783cd48..6aac1db20 100644 --- a/app/i18n/nl/install.php +++ b/app/i18n/nl/install.php @@ -73,8 +73,8 @@ return array( 'ok' => 'U hebt de benodigde bibliotheek voor regular expressions (PCRE).', ), 'pdo' => array( - 'nok' => 'U mist PDO of één van de ondersteunde (pdo_mysql, pdo_sqlite).', - 'ok' => 'U hebt PDO en ten minste één van de ondersteunde drivers (pdo_mysql, pdo_sqlite).', + 'nok' => 'U mist PDO of één van de ondersteunde (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'U hebt PDO en ten minste één van de ondersteunde drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).', ), 'php' => array( 'nok' => 'Uw PHP versie is %s maar FreshRSS benodigd tenminste versie %s.', diff --git a/app/i18n/ru/admin.php b/app/i18n/ru/admin.php index caea627f3..9bc241f96 100644 --- a/app/i18n/ru/admin.php +++ b/app/i18n/ru/admin.php @@ -71,8 +71,8 @@ return array( 'ok' => 'У вас установлена необходимая библиотека для работы с регулярными выражениями (PCRE).', ), 'pdo' => array( - 'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite).', - 'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite).', + 'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite, pdo_pgsql).', ), 'php' => array( '_' => 'PHP installation', diff --git a/app/i18n/ru/install.php b/app/i18n/ru/install.php index a52e2959b..3a808d544 100644 --- a/app/i18n/ru/install.php +++ b/app/i18n/ru/install.php @@ -69,8 +69,8 @@ return array( 'ok' => 'У вас установлена необходимая библиотека для работы с регулярными выражениями (PCRE).', ), 'pdo' => array( - 'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite).', - 'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite).', + 'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite, pdo_pgsql).', ), 'php' => array( 'nok' => 'У вас установлен PHP версии %s, но FreshRSS необходима версия не ниже %s.', diff --git a/app/i18n/tr/admin.php b/app/i18n/tr/admin.php index 43f8e23c5..4e0f755d9 100644 --- a/app/i18n/tr/admin.php +++ b/app/i18n/tr/admin.php @@ -71,8 +71,8 @@ return array( 'ok' => 'Düzenli ifadeler kütüphanesi sorunsuz (PCRE).', ), 'pdo' => array( - 'nok' => 'PDO veya PDO destekli bir sürücü eksik (pdo_mysql, pdo_sqlite).', - 'ok' => 'PDO sorunsuz (pdo_mysql, pdo_sqlite).', + 'nok' => 'PDO veya PDO destekli bir sürücü eksik (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'PDO sorunsuz (pdo_mysql, pdo_sqlite, pdo_pgsql).', ), 'php' => array( '_' => 'PHP kurulumu', diff --git a/app/i18n/tr/install.php b/app/i18n/tr/install.php index 951a7c5fd..8302a95f4 100644 --- a/app/i18n/tr/install.php +++ b/app/i18n/tr/install.php @@ -73,8 +73,8 @@ return array( 'ok' => 'Düzenli ifadeler kütüphanesi sorunsuz (PCRE).', ), 'pdo' => array( - 'nok' => 'PDO veya PDO destekli bir sürücü eksik (pdo_mysql, pdo_sqlite).', - 'ok' => 'PDO sorunsuz (pdo_mysql, pdo_sqlite).', + 'nok' => 'PDO veya PDO destekli bir sürücü eksik (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'PDO sorunsuz (pdo_mysql, pdo_sqlite, pdo_pgsql).', ), 'php' => array( 'nok' => 'PHP versiyonunuz %s fakat FreshRSS için gerekli olan en düşük sürüm %s.', -- cgit v1.2.3 From ad58ae923cbb4a49745719056e06a7c19c50bf36 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Thu, 6 Oct 2016 17:21:20 +0200 Subject: Update php-* extension names https://github.com/FreshRSS/FreshRSS/issues/1283 --- app/i18n/cz/admin.php | 4 ++-- app/i18n/cz/install.php | 2 +- app/i18n/de/admin.php | 4 ++-- app/i18n/de/install.php | 2 +- app/i18n/en/admin.php | 18 +++++++++--------- app/i18n/en/install.php | 18 +++++++++--------- app/i18n/fr/admin.php | 24 ++++++++++++------------ app/i18n/fr/install.php | 18 +++++++++--------- app/i18n/it/admin.php | 4 ++-- app/i18n/it/install.php | 2 +- app/i18n/nl/admin.php | 4 ++-- app/i18n/nl/install.php | 2 +- app/i18n/ru/admin.php | 4 ++-- app/i18n/ru/install.php | 2 +- app/i18n/tr/admin.php | 4 ++-- app/i18n/tr/install.php | 2 +- 16 files changed, 57 insertions(+), 57 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/cz/admin.php b/app/i18n/cz/admin.php index 781ca2fe3..84bc58a17 100644 --- a/app/i18n/cz/admin.php +++ b/app/i18n/cz/admin.php @@ -33,7 +33,7 @@ return array( 'ok' => 'Máte požadovanou knihovnu pro ověřování znaků (ctype).', ), 'curl' => array( - 'nok' => 'Nemáte cURL (balíček php5-curl).', + 'nok' => 'Nemáte cURL (balíček php-curl).', 'ok' => 'Máte rozšíření cURL.', ), 'data' => array( @@ -93,7 +93,7 @@ return array( 'ok' => 'Oprávnění adresáře users jsou v pořádku.', ), 'zip' => array( - 'nok' => 'Nemáte rozšíření ZIP (balíček php5-zip).', + 'nok' => 'Nemáte rozšíření ZIP (balíček php-zip).', 'ok' => 'Máte rozšíření ZIP.', ), ), diff --git a/app/i18n/cz/install.php b/app/i18n/cz/install.php index e29a51888..c40ae46e2 100644 --- a/app/i18n/cz/install.php +++ b/app/i18n/cz/install.php @@ -41,7 +41,7 @@ return array( 'ok' => 'Je nainstalována požadovaná knihovna pro ověřování znaků (ctype).', ), 'curl' => array( - 'nok' => 'Nemáte cURL (balíček php5-curl).', + 'nok' => 'Nemáte cURL (balíček php-curl).', 'ok' => 'Máte rozšíření cURL.', ), 'data' => array( diff --git a/app/i18n/de/admin.php b/app/i18n/de/admin.php index b1c29b901..c12f32bc8 100644 --- a/app/i18n/de/admin.php +++ b/app/i18n/de/admin.php @@ -33,7 +33,7 @@ return array( 'ok' => 'Sie haben die benötigte Bibliothek für die Überprüfung von Zeichentypen (ctype).', ), 'curl' => array( - 'nok' => 'Ihnen fehlt cURL (Paket php5-curl).', + 'nok' => 'Ihnen fehlt cURL (Paket php-curl).', 'ok' => 'Sie haben die cURL-Erweiterung.', ), 'data' => array( @@ -93,7 +93,7 @@ return array( 'ok' => 'Die Berechtigungen des Verzeichnisses ./data/users sind in Ordnung.', ), 'zip' => array( - 'nok' => 'Ihnen fehlt die ZIP-Erweiterung (Paket php5-zip).', + 'nok' => 'Ihnen fehlt die ZIP-Erweiterung (Paket php-zip).', 'ok' => 'Sie haben die ZIP-Erweiterung.', ), ), diff --git a/app/i18n/de/install.php b/app/i18n/de/install.php index eb0c2eb89..f2a597d29 100644 --- a/app/i18n/de/install.php +++ b/app/i18n/de/install.php @@ -41,7 +41,7 @@ return array( 'ok' => 'Sie haben die benötigte Bibliothek für die Überprüfung von Zeichentypen (ctype).', ), 'curl' => array( - 'nok' => 'Ihnen fehlt cURL (Paket php5-curl).', + 'nok' => 'Ihnen fehlt cURL (Paket php-curl).', 'ok' => 'Sie haben die cURL-Erweiterung.', ), 'data' => array( diff --git a/app/i18n/en/admin.php b/app/i18n/en/admin.php index f6b63d44c..e5286d948 100644 --- a/app/i18n/en/admin.php +++ b/app/i18n/en/admin.php @@ -29,12 +29,12 @@ return array( 'ok' => 'Connection to the database is ok.', ), 'ctype' => array( - 'nok' => 'You lack a required library for character type checking (php-ctype).', + 'nok' => 'Cannot find 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.', + 'nok' => 'Cannot find the cURL library (php-curl package).', + 'ok' => 'You have the cURL library.', ), 'data' => array( 'nok' => 'Check permissions on ./data directory. HTTP server must have rights to write into', @@ -42,7 +42,7 @@ return array( ), 'database' => 'Database installation', 'dom' => array( - 'nok' => 'You lack a required library to browse the DOM (php-xml package).', + 'nok' => 'Cannot find a required library to browse the DOM (php-xml package).', 'ok' => 'You have the required library to browse the DOM.', ), 'entries' => array( @@ -59,19 +59,19 @@ return array( ), 'files' => 'File installation', 'json' => array( - 'nok' => 'You lack JSON (php5-json package).', + 'nok' => 'Cannot find JSON (php5-json package).', 'ok' => 'You have JSON extension.', ), 'minz' => array( - 'nok' => 'You lack the Minz framework.', + 'nok' => 'Cannot find the Minz framework.', 'ok' => 'You have the Minz framework.', ), 'pcre' => array( - 'nok' => 'You lack a required library for regular expressions (php-pcre).', + 'nok' => 'Cannot find 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, pdo_pgsql).', + 'nok' => 'Cannot find PDO or one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).', 'ok' => 'You have PDO and at least one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).', ), 'php' => array( @@ -93,7 +93,7 @@ return array( 'ok' => 'Permissions on users directory are good.', ), 'zip' => array( - 'nok' => 'You lack ZIP extension (php5-zip package).', + 'nok' => 'Cannot find ZIP extension (php-zip package).', 'ok' => 'You have ZIP extension.', ), ), diff --git a/app/i18n/en/install.php b/app/i18n/en/install.php index 54ce8edb2..3cb85ce10 100644 --- a/app/i18n/en/install.php +++ b/app/i18n/en/install.php @@ -37,19 +37,19 @@ return array( 'ok' => 'Permissions on cache directory are good.', ), 'ctype' => array( - 'nok' => 'You lack a required library for character type checking (php-ctype).', + 'nok' => 'Cannot find 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.', + 'nok' => 'Cannot find the cURL library (php-curl package).', + 'ok' => 'You have the cURL library.', ), 'data' => array( 'nok' => 'Check permissions on ./data 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.', + 'nok' => 'Cannot find a required library to browse the DOM.', 'ok' => 'You have the required library to browse the DOM.', ), 'favicons' => array( @@ -61,19 +61,19 @@ return array( 'ok' => 'Your HTTP REFERER is known and corresponds to your server.', ), 'json' => array( - 'nok' => 'You lack a recommended library to parse JSON.', + 'nok' => 'Cannot find a recommended library to parse JSON.', 'ok' => 'You have a recommended library to parse JSON.', ), 'minz' => array( - 'nok' => 'You lack the Minz framework.', + 'nok' => 'Cannot find the Minz framework.', 'ok' => 'You have the Minz framework.', ), 'pcre' => array( - 'nok' => 'You lack a required library for regular expressions (php-pcre).', + 'nok' => 'Cannot find 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, pdo_pgsql).', + 'nok' => 'Cannot find PDO or one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).', 'ok' => 'You have PDO and at least one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).', ), 'php' => array( @@ -85,7 +85,7 @@ return array( 'ok' => 'Permissions on users directory are good.', ), 'xml' => array( - 'nok' => 'You lack the required library to parse XML.', + 'nok' => 'Cannot find the required library to parse XML.', 'ok' => 'You have the required library to parse XML.', ), ), diff --git a/app/i18n/fr/admin.php b/app/i18n/fr/admin.php index c796fb539..e9263a5e2 100644 --- a/app/i18n/fr/admin.php +++ b/app/i18n/fr/admin.php @@ -29,12 +29,12 @@ return array( '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).', + 'nok' => 'Impossible de trouver une librairie pour la vérification des types de caractères (php-ctype).', + 'ok' => 'Vous disposez de la librairie 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.', + 'nok' => 'Impossible de trouver la librairie cURL (paquet php-curl).', + 'ok' => 'Vous disposez de la librairie cURL.', ), 'data' => array( 'nok' => 'Veuillez vérifier les droits sur le répertoire ./data. Le serveur HTTP doit être capable d’écrire dedans', @@ -42,8 +42,8 @@ return array( ), '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.', + 'nok' => 'Impossible de trouver une librairie pour parcourir le DOM (paquet php-xml).', + 'ok' => 'Vous disposez de la librairie pour parcourir le DOM.', ), 'entries' => array( 'nok' => 'La table entry est mal configurée.', @@ -60,15 +60,15 @@ return array( 'files' => 'Installation des fichiers', 'json' => array( 'nok' => 'Vous ne disposez pas de JSON (paquet php5-json).', - 'ok' => 'Vous disposez de l\'extension 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).', + 'nok' => 'Impossible de trouver une librairie pour les expressions régulières (php-pcre).', + 'ok' => 'Vous disposez de la librairie 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, pdo_pgsql).', @@ -80,7 +80,7 @@ return array( '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.', + 'nok' => 'Impossible de trouver 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', @@ -93,8 +93,8 @@ return array( '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.', + 'nok' => 'Vous ne disposez pas de l’extension ZIP (paquet php-zip).', + 'ok' => 'Vous disposez de l’extension ZIP.', ), ), 'extensions' => array( diff --git a/app/i18n/fr/install.php b/app/i18n/fr/install.php index 3b1dfb2f1..99437234f 100644 --- a/app/i18n/fr/install.php +++ b/app/i18n/fr/install.php @@ -37,11 +37,11 @@ return array( '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).', + 'nok' => 'Impossible de trouver une librairie pour la vérification des types de caractères (php-ctype).', + 'ok' => 'Vous disposez de la librairie pour la vérification des types de caractères (ctype).', ), 'curl' => array( - 'nok' => 'Vous ne disposez pas de cURL (paquet php5-curl).', + 'nok' => 'Vous ne disposez pas de cURL (paquet php-curl).', 'ok' => 'Vous disposez de cURL.', ), 'data' => array( @@ -49,8 +49,8 @@ return array( 'ok' => 'Les droits sur le répertoire de data sont bons.', ), 'dom' => array( - 'nok' => 'Il manque une librairie pour parcourir le DOM.', - 'ok' => 'Vous disposez du nécessaire pour parcourir le DOM.', + 'nok' => 'Impossible de trouver une librairie pour parcourir le DOM.', + 'ok' => 'Vous disposez de la librairie pour parcourir le DOM.', ), 'favicons' => array( 'nok' => 'Veuillez vérifier les droits sur le répertoire ./data/favicons. Le serveur HTTP doit être capable d’écrire dedans', @@ -61,7 +61,7 @@ return array( 'ok' => 'Le HTTP REFERER est connu et semble correspondre à votre serveur.', ), 'json' => array( - 'nok' => 'Il manque une librairie recommandée pour JSON.', + 'nok' => 'Impossible de trouver une librairie recommandée pour JSON.', 'ok' => 'Vouz disposez de la librairie recommandée pour JSON.', ), 'minz' => array( @@ -69,8 +69,8 @@ return array( '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).', + 'nok' => 'Impossible de trouver une librairie pour les expressions régulières (php-pcre).', + 'ok' => 'Vous disposez de la librairie 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, pdo_pgsql).', @@ -85,7 +85,7 @@ return array( 'ok' => 'Les droits sur le répertoire des utilisateurs sont bons.', ), 'xml' => array( - 'nok' => 'Il manque une librairie requise pour XML.', + 'nok' => 'Impossible de trouver une librairie requise pour XML.', 'ok' => 'Vouz disposez de la librairie requise pour XML.', ), ), diff --git a/app/i18n/it/admin.php b/app/i18n/it/admin.php index 475865984..c399bc8c8 100644 --- a/app/i18n/it/admin.php +++ b/app/i18n/it/admin.php @@ -33,7 +33,7 @@ return array( 'ok' => 'Libreria richiesta per il controllo dei caratteri presente (ctype).', ), 'curl' => array( - 'nok' => 'Manca il supporto per cURL (pacchetto php5-curl).', + 'nok' => 'Manca il supporto per cURL (pacchetto php-curl).', 'ok' => 'Estensione cURL presente.', ), 'data' => array( @@ -93,7 +93,7 @@ return array( 'ok' => 'I permessi sulla cartella users sono corretti.', ), 'zip' => array( - 'nok' => 'Manca estensione ZIP (pacchetto php5-zip).', + 'nok' => 'Manca estensione ZIP (pacchetto php-zip).', 'ok' => 'Estensione ZIP presente.', ), ), diff --git a/app/i18n/it/install.php b/app/i18n/it/install.php index e7ea61d23..440d22af3 100644 --- a/app/i18n/it/install.php +++ b/app/i18n/it/install.php @@ -41,7 +41,7 @@ return array( 'ok' => 'Libreria richiesta per il controllo dei caratteri presente (ctype).', ), 'curl' => array( - 'nok' => 'Manca il supporto per cURL (pacchetto php5-curl).', + 'nok' => 'Manca il supporto per cURL (pacchetto php-curl).', 'ok' => 'Estensione cURL presente.', ), 'data' => array( diff --git a/app/i18n/nl/admin.php b/app/i18n/nl/admin.php index f0296b827..59637bfef 100644 --- a/app/i18n/nl/admin.php +++ b/app/i18n/nl/admin.php @@ -33,7 +33,7 @@ return array( 'ok' => 'U hebt de benodigde bibliotheek voor character type checking (ctype).', ), 'curl' => array( - 'nok' => 'U mist de cURL (php5-curl package).', + 'nok' => 'U mist de cURL (php-curl package).', 'ok' => 'U hebt de cURL uitbreiding.', ), 'data' => array( @@ -93,7 +93,7 @@ return array( 'ok' => 'Permissies op de users map zijn goed.', ), 'zip' => array( - 'nok' => 'U mist ZIP uitbreiding (php5-zip package).', + 'nok' => 'U mist ZIP uitbreiding (php-zip package).', 'ok' => 'U hebt ZIP uitbreiding.', ), ), diff --git a/app/i18n/nl/install.php b/app/i18n/nl/install.php index 6aac1db20..28318d4cb 100644 --- a/app/i18n/nl/install.php +++ b/app/i18n/nl/install.php @@ -41,7 +41,7 @@ return array( 'ok' => 'U hebt de benodigde bibliotheek voor character type checking (ctype).', ), 'curl' => array( - 'nok' => 'U mist cURL (php5-curl package).', + 'nok' => 'U mist cURL (php-curl package).', 'ok' => 'U hebt de cURL uitbreiding.', ), 'data' => array( diff --git a/app/i18n/ru/admin.php b/app/i18n/ru/admin.php index 9bc241f96..355100689 100644 --- a/app/i18n/ru/admin.php +++ b/app/i18n/ru/admin.php @@ -33,7 +33,7 @@ return array( 'ok' => 'У вас не установлена библиотека для проверки типов символов (ctype).', ), 'curl' => array( - 'nok' => 'У вас не установлено расширение cURL (пакет php5-curl).', + 'nok' => 'У вас не установлено расширение cURL (пакет php-curl).', 'ok' => 'У вас установлено расширение cURL.', ), 'data' => array( @@ -93,7 +93,7 @@ return array( 'ok' => 'Права на папку users в порядке.', ), 'zip' => array( - 'nok' => 'You lack ZIP extension (php5-zip package).', + 'nok' => 'You lack ZIP extension (php-zip package).', 'ok' => 'You have ZIP extension.', ), ), diff --git a/app/i18n/ru/install.php b/app/i18n/ru/install.php index 3a808d544..925601011 100644 --- a/app/i18n/ru/install.php +++ b/app/i18n/ru/install.php @@ -41,7 +41,7 @@ return array( 'ok' => 'У вас установлена необходимая библиотека для проверки типов символов (ctype).', ), 'curl' => array( - 'nok' => 'У вас нет расширения cURL (пакет php5-curl).', + 'nok' => 'У вас нет расширения cURL (пакет php-curl).', 'ok' => 'У вас установлено расширение cURL.', ), 'data' => array( diff --git a/app/i18n/tr/admin.php b/app/i18n/tr/admin.php index 4e0f755d9..e0dbd288d 100644 --- a/app/i18n/tr/admin.php +++ b/app/i18n/tr/admin.php @@ -33,7 +33,7 @@ return array( 'ok' => 'Karakter yazım kontrolü için kütüphane sorunsuz (ctype).', ), 'curl' => array( - 'nok' => 'cURL eksik (php5-curl package).', + 'nok' => 'cURL eksik (php-curl package).', 'ok' => 'cURL eklentisi sorunsuz.', ), 'data' => array( @@ -93,7 +93,7 @@ return array( 'ok' => 'Kullanıcılar klasörü yetkileri sorunsuz.', ), 'zip' => array( - 'nok' => 'ZIP eklentisi eksik (php5-zip package).', + 'nok' => 'ZIP eklentisi eksik (php-zip package).', 'ok' => 'ZIP eklentisi sorunsuz.', ), ), diff --git a/app/i18n/tr/install.php b/app/i18n/tr/install.php index 8302a95f4..62ddb6ddc 100644 --- a/app/i18n/tr/install.php +++ b/app/i18n/tr/install.php @@ -41,7 +41,7 @@ return array( 'ok' => 'Karakter yazım kontrolü için kütüphane sorunsuz (ctype).', ), 'curl' => array( - 'nok' => 'cURL eksik (php5-curl package).', + 'nok' => 'cURL eksik (php-curl package).', 'ok' => 'cURL eklentisi sorunsuz.', ), 'data' => array( -- cgit v1.2.3 From a1311900078ee56225fd574135e9dc9d5e3175dc Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Thu, 6 Oct 2016 17:41:01 +0200 Subject: i18n: Keep previous configuration https://github.com/FreshRSS/FreshRSS/issues/1284 --- app/i18n/de/install.php | 2 +- app/i18n/en/install.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/de/install.php b/app/i18n/de/install.php index eb0c2eb89..756929323 100644 --- a/app/i18n/de/install.php +++ b/app/i18n/de/install.php @@ -4,7 +4,7 @@ return array( 'action' => array( 'finish' => 'Installation fertigstellen', 'fix_errors_before' => 'Bitte Fehler korrigieren, bevor zum nächsten Schritt gesprungen wird.', - 'keep_install' => 'Vorherige Installation beibehalten (Daten)', + 'keep_install' => 'Vorherige Konfiguration beibehalten', 'next_step' => 'Zum nächsten Schritt springen', 'reinstall' => 'Neuinstallation von FreshRSS', ), diff --git a/app/i18n/en/install.php b/app/i18n/en/install.php index 54ce8edb2..ca9cfbd20 100644 --- a/app/i18n/en/install.php +++ b/app/i18n/en/install.php @@ -4,7 +4,7 @@ return array( 'action' => array( 'finish' => 'Complete installation', 'fix_errors_before' => 'Please fix errors before skipping to the next step.', - 'keep_install' => 'Keep previous installation', + 'keep_install' => 'Keep previous configuration', 'next_step' => 'Go to the next step', 'reinstall' => 'Reinstall FreshRSS', ), -- cgit v1.2.3 From 4efc8f76e6948e6102fc5b8f11f8027374d87a35 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Thu, 6 Oct 2016 17:43:09 +0200 Subject: i18n italian keep previous installation --- app/i18n/it/install.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/it/install.php b/app/i18n/it/install.php index e7ea61d23..f8c26e2ed 100644 --- a/app/i18n/it/install.php +++ b/app/i18n/it/install.php @@ -4,7 +4,7 @@ return array( 'action' => array( 'finish' => 'Installazione completata', 'fix_errors_before' => 'Per favore correggi gli errori prima di passare al passaggio successivo.', - 'keep_install' => 'Mantieni installazione precedente', + 'keep_install' => 'Mantieni configurazione precedente', 'next_step' => 'Vai al prossimo passaggio', 'reinstall' => 'Reinstalla FreshRSS', ), -- cgit v1.2.3 From 9f043a701fb26a0e6150b2ad2b1c723e90b0c965 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 22 Oct 2016 13:28:53 +0200 Subject: i18n install corrections https://github.com/FreshRSS/FreshRSS/issues/1328#issuecomment-255519363 --- app/i18n/en/install.php | 4 ++-- app/i18n/fr/install.php | 4 ++-- app/i18n/it/install.php | 4 ++-- app/i18n/nl/install.php | 4 ++-- app/i18n/ru/install.php | 4 ++-- app/i18n/tr/install.php | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/en/install.php b/app/i18n/en/install.php index 55afba0ca..63d31fe53 100644 --- a/app/i18n/en/install.php +++ b/app/i18n/en/install.php @@ -25,9 +25,9 @@ return array( ), 'host' => 'Host', 'prefix' => 'Table prefix', - 'password' => 'HTTP password', + 'password' => 'Database password', 'type' => 'Type of database', - 'username' => 'HTTP username', + 'username' => 'Database username', ), 'check' => array( '_' => 'Checks', diff --git a/app/i18n/fr/install.php b/app/i18n/fr/install.php index 99437234f..c50807107 100644 --- a/app/i18n/fr/install.php +++ b/app/i18n/fr/install.php @@ -24,10 +24,10 @@ return array( 'ok' => 'La configuration de la base de données a été enregistrée.', ), 'host' => 'Hôte', - 'password' => 'Mot de passe', + 'password' => 'Mot de passe pour base de données', 'prefix' => 'Préfixe des tables', 'type' => 'Type de base de données', - 'username' => 'Nom d’utilisateur', + 'username' => 'Nom d’utilisateur pour base de données', ), 'check' => array( '_' => 'Vérifications', diff --git a/app/i18n/it/install.php b/app/i18n/it/install.php index b907bd51c..2fa298508 100644 --- a/app/i18n/it/install.php +++ b/app/i18n/it/install.php @@ -25,9 +25,9 @@ return array( ), 'host' => 'Host', 'prefix' => 'Prefisso tabella', - 'password' => 'HTTP password', + 'password' => 'Password del database', 'type' => 'Tipo di database', - 'username' => 'HTTP username', + 'username' => 'Nome utente del database', ), 'check' => array( '_' => 'Controlli', diff --git a/app/i18n/nl/install.php b/app/i18n/nl/install.php index 28318d4cb..bd2ba0cce 100644 --- a/app/i18n/nl/install.php +++ b/app/i18n/nl/install.php @@ -25,9 +25,9 @@ return array( ), 'host' => 'Host', 'prefix' => 'Tabel voorvoegsel', - 'password' => 'HTTP wachtwoord', + 'password' => 'Database wachtwoord', 'type' => 'Type database', - 'username' => 'HTTP gebruikersnaam', + 'username' => 'Database gebruikersnaam', ), 'check' => array( '_' => 'Controles', diff --git a/app/i18n/ru/install.php b/app/i18n/ru/install.php index 925601011..bad59bbb3 100644 --- a/app/i18n/ru/install.php +++ b/app/i18n/ru/install.php @@ -25,9 +25,9 @@ return array( ), 'host' => 'Хост', 'prefix' => 'Префикс таблицы', - 'password' => 'Пароль HTTP', + 'password' => 'Пароль базы данных', 'type' => 'Тип базы данных', - 'username' => 'Имя пользователя HTTP', + 'username' => 'Имя пользователя базы данных', ), 'check' => array( '_' => 'Проверки', diff --git a/app/i18n/tr/install.php b/app/i18n/tr/install.php index 62ddb6ddc..4daa45099 100644 --- a/app/i18n/tr/install.php +++ b/app/i18n/tr/install.php @@ -25,9 +25,9 @@ return array( ), 'host' => 'Sunucu', 'prefix' => 'Tablo ön eki', - 'password' => 'HTTP şifre', + 'password' => 'Veritabanı şifresi', 'type' => 'Veritabanı türü', - 'username' => 'HTTP kullanıcı adı', + 'username' => 'Veritabanı kullanıcı adı', ), 'check' => array( '_' => 'Kontroller', -- cgit v1.2.3 From 1b8eb6c7e732f1eda4fc8f22e847b363b016f857 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 23 Oct 2016 01:46:14 +0200 Subject: CLI import ZIP/OPML/JSON for user https://github.com/FreshRSS/FreshRSS/issues/1095 https://github.com/FreshRSS/FreshRSS/issues/851 --- CHANGELOG.md | 2 +- README.fr.md | 2 +- README.md | 2 +- app/Controllers/categoryController.php | 5 +- app/Controllers/feedController.php | 6 +- app/Controllers/importExportController.php | 273 ++++++++++++++++++----------- app/Exceptions/ZipException.php | 14 ++ app/Exceptions/ZipMissingException.php | 4 + app/Models/CategoryDAO.php | 11 +- app/i18n/cz/feedback.php | 6 +- app/i18n/cz/sub.php | 4 +- app/i18n/de/feedback.php | 6 +- app/i18n/de/sub.php | 2 +- app/i18n/en/feedback.php | 6 +- app/i18n/en/sub.php | 4 +- app/i18n/fr/feedback.php | 6 +- app/i18n/fr/sub.php | 4 +- app/i18n/it/feedback.php | 6 +- app/i18n/it/sub.php | 4 +- app/i18n/nl/feedback.php | 6 +- app/i18n/nl/sub.php | 4 +- app/i18n/ru/feedback.php | 6 +- app/i18n/ru/sub.php | 4 +- app/i18n/tr/feedback.php | 6 +- app/i18n/tr/sub.php | 4 +- cli/_cli.php | 5 + cli/create-user.php | 17 +- cli/delete-user.php | 3 +- cli/import-for-user.php | 36 ++++ cli/list-users.php | 4 +- lib/Minz/ModelPdo.php | 13 +- 31 files changed, 296 insertions(+), 179 deletions(-) create mode 100644 app/Exceptions/ZipException.php create mode 100644 app/Exceptions/ZipMissingException.php create mode 100644 cli/import-for-user.php (limited to 'app/i18n') diff --git a/CHANGELOG.md b/CHANGELOG.md index c35b3b578..d24ec0739 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -390,7 +390,7 @@ * Possibility to combine search filters, e.g. `date:2014-05 intitle:FreshRSS intitle:Open great reader #Internet` * Change nav menu with more buttons instead of dropdown menus and add some filters * New system of import / export - * Support OPML, Json (like Google Reader) and Zip archives + * Support OPML, Json (like Google Reader) and ZIP archives * Can export and import articles (specific option for favorites) * Refactor "Origine" theme * Some improvements diff --git a/README.fr.md b/README.fr.md index 3fcedd337..2a2da256d 100644 --- a/README.fr.md +++ b/README.fr.md @@ -34,7 +34,7 @@ Nous sommes une communauté amicale. * Serveur Web Apache2 (recommandé), ou nginx, lighttpd (non testé sur les autres) * PHP 5.3.3+ (PHP 5.4+ recommandé, et PHP 5.5+ pour les performances, et PHP 7+ pour d’encore meilleures performances) * Requis : [DOM](http://php.net/dom), [XML](http://php.net/xml), [PDO_MySQL](http://php.net/pdo-mysql) ou [PDO_SQLite](http://php.net/pdo-sqlite) ou [PDO_PGSQL](http://php.net/pdo-pgsql), [cURL](http://php.net/curl) - * Recommandés : [JSON](http://php.net/json), [GMP](http://php.net/gmp) (pour accès API sur plateformes < 64 bits), [IDN](http://php.net/intl.idn) (pour les noms de domaines internationalisés), [mbstring](http://php.net/mbstring) et/ou [iconv](http://php.net/iconv) (pour conversion d’encodages), [Zip](http://php.net/zip) (pour import/export), [zlib](http://php.net/zlib) (pour les flux compressés) + * Recommandés : [JSON](http://php.net/json), [GMP](http://php.net/gmp) (pour accès API sur plateformes < 64 bits), [IDN](http://php.net/intl.idn) (pour les noms de domaines internationalisés), [mbstring](http://php.net/mbstring) et/ou [iconv](http://php.net/iconv) (pour conversion d’encodages), [ZIP](http://php.net/zip) (pour import/export), [zlib](http://php.net/zlib) (pour les flux compressés) * MySQL 5.5.3+ (recommandé), ou SQLite 3.7.4+, ou PostgreSQL (experimental) * Un navigateur Web récent tel Firefox, Internet Explorer 11 / Edge, Chrome, Opera, Safari. * Fonctionne aussi sur mobile diff --git a/README.md b/README.md index 5c8f586fa..a541d6dea 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ We are a friendly community. * A web server: Apache2 (recommended), nginx, lighttpd (not tested on others) * PHP 5.3.3+ (PHP 5.4+ recommended, and PHP 5.5+ for performance, and PHP 7 for even higher performance) * Required extensions: [DOM](http://php.net/dom), [XML](http://php.net/xml), [PDO_MySQL](http://php.net/pdo-mysql) or [PDO_SQLite](http://php.net/pdo-sqlite) or [PDO_PGSQL](http://php.net/pdo-pgsql), [cURL](http://php.net/curl) - * Recommended extensions: [JSON](http://php.net/json), [GMP](http://php.net/gmp) (for API access on platforms < 64 bits), [IDN](http://php.net/intl.idn) (for Internationalized Domain Names), [mbstring](http://php.net/mbstring) and/or [iconv](http://php.net/iconv) (for charset conversion), [Zip](http://php.net/zip) (for import/export), [zlib](http://php.net/zlib) (for compressed feeds) + * Recommended extensions: [JSON](http://php.net/json), [GMP](http://php.net/gmp) (for API access on platforms < 64 bits), [IDN](http://php.net/intl.idn) (for Internationalized Domain Names), [mbstring](http://php.net/mbstring) and/or [iconv](http://php.net/iconv) (for charset conversion), [ZIP](http://php.net/zip) (for import/export), [zlib](http://php.net/zlib) (for compressed feeds) * MySQL 5.5.3+ (recommended), or SQLite 3.7.4+, or PostgreSQL (experimental) * A recent browser like Firefox, Internet Explorer 11 / Edge, Chrome, Opera, Safari. * Works on mobile diff --git a/app/Controllers/categoryController.php b/app/Controllers/categoryController.php index e65c146de..922f92844 100644 --- a/app/Controllers/categoryController.php +++ b/app/Controllers/categoryController.php @@ -117,7 +117,6 @@ class FreshRSS_category_Controller extends Minz_ActionController { public function deleteAction() { $feedDAO = FreshRSS_Factory::createFeedDao(); $catDAO = new FreshRSS_CategoryDAO(); - $default_category = $catDAO->getDefault(); $url_redirect = array('c' => 'subscription', 'a' => 'index'); if (Minz_Request::isPost()) { @@ -128,11 +127,11 @@ class FreshRSS_category_Controller extends Minz_ActionController { Minz_Request::bad(_t('feedback.sub.category.no_id'), $url_redirect); } - if ($id === $default_category->id()) { + if ($id === FreshRSS_CategoryDAO::defaultCategoryId) { Minz_Request::bad(_t('feedback.sub.category.not_delete_default'), $url_redirect); } - if ($feedDAO->changeCategory($id, $default_category->id()) === false) { + if ($feedDAO->changeCategory($id, FreshRSS_CategoryDAO::defaultCategoryId) === false) { Minz_Request::bad(_t('feedback.sub.category.error'), $url_redirect); } diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php index ed3229687..c4115584a 100755 --- a/app/Controllers/feedController.php +++ b/app/Controllers/feedController.php @@ -40,9 +40,8 @@ class FreshRSS_feed_Controller extends Minz_ActionController { } if ($cat == null) { $catDAO->checkDefault(); - $cat = $catDAO->getDefault(); } - $cat_id = $cat->id(); + $cat_id = $cat == null ? FreshRSS_CategoryDAO::defaultCategoryId : $cat->id(); $feed = new FreshRSS_Feed($url); //Throws FreshRSS_BadUrl_Exception $feed->_httpAuth($http_auth); @@ -504,8 +503,7 @@ class FreshRSS_feed_Controller extends Minz_ActionController { } if ($cat_id <= 1) { $catDAO->checkDefault(); - $cat = $catDAO->getDefault(); - $cat_id = $cat->id(); + $cat_id = FreshRSS_CategoryDAO::defaultCategoryId; } $feedDAO = FreshRSS_Factory::createFeedDao(); diff --git a/app/Controllers/importExportController.php b/app/Controllers/importExportController.php index a1f789805..fbebb2a78 100644 --- a/app/Controllers/importExportController.php +++ b/app/Controllers/importExportController.php @@ -29,32 +29,14 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { Minz_View::prependTitle(_t('sub.import_export.title') . ' · '); } - /** - * This action handles import action. - * - * It must be reached by a POST request. - * - * Parameter is: - * - file (default: nothing!) - * Available file types are: zip, json or xml. - */ - public function importAction() { - if (!Minz_Request::isPost()) { - Minz_Request::forward(array('c' => 'importExport', 'a' => 'index'), true); - } - - $file = $_FILES['file']; - $status_file = $file['error']; - - if ($status_file !== 0) { - Minz_Log::warning('File cannot be uploaded. Error code: ' . $status_file); - Minz_Request::bad(_t('feedback.import_export.file_cannot_be_uploaded'), - array('c' => 'importExport', 'a' => 'index')); - } + public function importFile($name, $path, $username = null) { + require_once(LIB_PATH . '/lib_opml.php'); - @set_time_limit(300); + $this->catDAO = new FreshRSS_CategoryDAO($username); + $this->entryDAO = FreshRSS_Factory::createEntryDao($username); + $this->feedDAO = FreshRSS_Factory::createFeedDao($username); - $type_file = $this->guessFileType($file['name']); + $type_file = self::guessFileType($name); $list_files = array( 'opml' => array(), @@ -65,21 +47,17 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { // We try to list all files according to their type $list = array(); if ($type_file === 'zip' && extension_loaded('zip')) { - $zip = zip_open($file['tmp_name']); - + $zip = zip_open($path); if (!is_resource($zip)) { // zip_open cannot open file: something is wrong - Minz_Log::warning('Zip archive cannot be imported. Error code: ' . $zip); - Minz_Request::bad(_t('feedback.import_export.zip_error'), - array('c' => 'importExport', 'a' => 'index')); + throw new FreshRSS_Zip_Exception($zip); } - while (($zipfile = zip_read($zip)) !== false) { if (!is_resource($zipfile)) { // zip_entry() can also return an error code! - Minz_Log::warning('Zip file cannot be imported. Error code: ' . $zipfile); + throw new FreshRSS_Zip_Exception($zipfile); } else { - $type_zipfile = $this->guessFileType(zip_entry_name($zipfile)); + $type_zipfile = self::guessFileType(zip_entry_name($zipfile)); if ($type_file !== 'unknown') { $list_files[$type_zipfile][] = zip_entry_read( $zipfile, @@ -88,29 +66,82 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { } } } - zip_close($zip); } elseif ($type_file === 'zip') { - // Zip extension is not loaded - Minz_Request::bad(_t('feedback.import_export.no_zip_extension'), - array('c' => 'importExport', 'a' => 'index')); + // ZIP extension is not loaded + throw new FreshRSS_ZipMissing_Exception(); } elseif ($type_file !== 'unknown') { - $list_files[$type_file][] = file_get_contents($file['tmp_name']); + $list_files[$type_file][] = file_get_contents($path); } // Import file contents. // OPML first(so categories and feeds are imported) // Starred articles then so the "favourite" status is already set // And finally all other files. - $error = false; + $ok = true; foreach ($list_files['opml'] as $opml_file) { - $error = $this->importOpml($opml_file); + if (!$this->importOpml($opml_file)) { + $ok = false; + if (FreshRSS_Context::$isCli) { + fwrite(STDERR, 'FreshRSS error during OPML import' . "\n"); + } + } } foreach ($list_files['json_starred'] as $article_file) { - $error = $this->importJson($article_file, true); + if (!$this->importJson($article_file, true)) { + $ok = false; + if (FreshRSS_Context::$isCli) { + fwrite(STDERR, 'FreshRSS error during JSON stars import' . "\n"); + } + } } foreach ($list_files['json_feed'] as $article_file) { - $error = $this->importJson($article_file); + if (!$this->importJson($article_file)) { + $ok = false; + if (FreshRSS_Context::$isCli) { + fwrite(STDERR, 'FreshRSS error during JSON feeds import' . "\n"); + } + } + } + + return $ok; + } + + /** + * This action handles import action. + * + * It must be reached by a POST request. + * + * Parameter is: + * - file (default: nothing!) + * Available file types are: zip, json or xml. + */ + public function importAction() { + if (!Minz_Request::isPost()) { + Minz_Request::forward(array('c' => 'importExport', 'a' => 'index'), true); + } + + $file = $_FILES['file']; + $status_file = $file['error']; + + if ($status_file !== 0) { + Minz_Log::warning('File cannot be uploaded. Error code: ' . $status_file); + Minz_Request::bad(_t('feedback.import_export.file_cannot_be_uploaded'), + array('c' => 'importExport', 'a' => 'index')); + } + + @set_time_limit(300); + + $error = false; + try { + $error = !$this->importFile($file['name'], $file['tmp_name']); + } catch (FreshRSS_ZipMissing_Exception $zme) { + Minz_Request::bad(_t('feedback.import_export.no_zip_extension'), + array('c' => 'importExport', 'a' => 'index')); + } catch (FreshRSS_Zip_Exception $ze) { + Minz_Log::warning('ZIP archive cannot be imported. Error code: ' . $ze->zipErrorCode()); + Minz_Request::bad(_t('feedback.import_export.zip_error'), + array('c' => 'importExport', 'a' => 'index')); } // And finally, we get import status and redirect to the home page @@ -126,7 +157,7 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { * Itis a *very* basic guess file type function. Only based on filename. * That's could be improved but should be enough for what we have to do. */ - private function guessFileType($filename) { + private static function guessFileType($filename) { if (substr_compare($filename, '.zip', -4) === 0) { return 'zip'; } elseif (substr_compare($filename, '.opml', -5) === 0 || @@ -146,15 +177,19 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { * This method parses and imports an OPML file. * * @param string $opml_file the OPML file content. - * @return boolean true if an error occured, false else. + * @return boolean false if an error occured, true otherwise. */ private function importOpml($opml_file) { $opml_array = array(); try { $opml_array = libopml_parse_string($opml_file, false); } catch (LibOPML_Exception $e) { - Minz_Log::warning($e->getMessage()); - return true; + if (FreshRSS_Context::$isCli) { + fwrite(STDERR, 'FreshRSS error during OPML parsing: ' . $e->getMessage() . "\n"); + } else { + Minz_Log::warning($e->getMessage()); + } + return false; } $this->catDAO->checkDefault(); @@ -167,51 +202,53 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { * * @param array $opml_elements an OPML element (body or outline). * @param string $parent_cat the name of the parent category. - * @return boolean true if an error occured, false else. + * @return boolean false if an error occured, true otherwise. */ private function addOpmlElements($opml_elements, $parent_cat = null) { - $error = false; + $ok = true; $nb_feeds = count($this->feedDAO->listFeeds()); $nb_cats = count($this->catDAO->listCategories(false)); $limits = FreshRSS_Context::$system_conf->limits; foreach ($opml_elements as $elt) { - $is_error = false; if (isset($elt['xmlUrl'])) { // If xmlUrl exists, it means it is a feed - if ($nb_feeds >= $limits['max_feeds']) { - Minz_Log::warning(_t('feedback.sub.feed.over_max', - $limits['max_feeds'])); - $is_error = true; - continue; + if (!FreshRSS_Context::$isCli) { + if ($nb_feeds >= $limits['max_feeds']) { + Minz_Log::warning(_t('feedback.sub.feed.over_max', + $limits['max_feeds'])); + $ok = false; + continue; + } } - $is_error = $this->addFeedOpml($elt, $parent_cat); - if (!$is_error) { - $nb_feeds += 1; + if ($this->addFeedOpml($elt, $parent_cat)) { + $nb_feeds++; + } else { + $ok = false; } } else { // No xmlUrl? It should be a category! $limit_reached = ($nb_cats >= $limits['max_categories']); - if ($limit_reached) { - Minz_Log::warning(_t('feedback.sub.category.over_max', - $limits['max_categories'])); + if (!FreshRSS_Context::$isCli) { + if ($limit_reached) { + Minz_Log::warning(_t('feedback.sub.category.over_max', + $limits['max_categories'])); + } + $ok = false; + continue; } - $is_error = $this->addCategoryOpml($elt, $parent_cat, $limit_reached); - if (!$is_error) { - $nb_cats += 1; + if ($this->addCategoryOpml($elt, $parent_cat, $limit_reached)) { + $nb_cats++; + } else { + $ok = false; } } - - if (!$error && $is_error) { - // oops: there is at least one error! - $error = $is_error; - } } - return $error; + return $ok; } /** @@ -219,21 +256,23 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { * * @param array $feed_elt an OPML element (must be a feed element). * @param string $parent_cat the name of the parent category. - * @return boolean true if an error occured, false else. + * @return boolean false if an error occured, true otherwise. */ private function addFeedOpml($feed_elt, $parent_cat) { - $default_cat = $this->catDAO->getDefault(); - if (is_null($parent_cat)) { + if ($parent_cat == null) { // This feed has no parent category so we get the default one + $this->catDAO->checkDefault(); + $default_cat = $this->catDAO->getDefault(); $parent_cat = $default_cat->name(); } $cat = $this->catDAO->searchByName($parent_cat); - if (is_null($cat)) { + if ($cat == null) { // If there is not $cat, it means parent category does not exist in // database. // If it happens, take the default category. - $cat = $default_cat; + $this->catDAO->checkDefault(); + $cat = $this->catDAO->getDefault(); } // We get different useful information @@ -259,7 +298,7 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { // Call the extension hook $feed = Minz_ExtensionManager::callHook('feed_before_insert', $feed); - if (!is_null($feed)) { + if ($feed != null) { // addFeedObject checks if feed is already in DB so nothing else to // check here $id = $this->feedDAO->addFeedObject($feed); @@ -268,11 +307,23 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { $error = true; } } catch (FreshRSS_Feed_Exception $e) { - Minz_Log::warning($e->getMessage()); + if (FreshRSS_Context::$isCli) { + fwrite(STDERR, 'FreshRSS error during OPML feed import: ' . $e->getMessage() . "\n"); + } else { + Minz_Log::warning($e->getMessage()); + } $error = true; } - return $error; + if ($error) { + if (FreshRSS_Context::$isCli) { + fwrite(STDERR, 'FreshRSS error during OPML feed import from URL: ' . $url . ' in category ' . $cat->id() . "\n"); + } else { + Minz_Log::warning('Error during OPML feed import from URL: ' . $url . ' in category ' . $cat->id()); + } + } + + return !$error; } /** @@ -282,29 +333,34 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { * @param string $parent_cat the name of the parent category. * @param boolean $cat_limit_reached indicates if category limit has been reached. * if yes, category is not added (but we try for feeds!) - * @return boolean true if an error occured, false else. + * @return boolean false if an error occured, true otherwise. */ private function addCategoryOpml($cat_elt, $parent_cat, $cat_limit_reached) { // Create a new Category object - $cat = new FreshRSS_Category(Minz_Helper::htmlspecialchars_utf8($cat_elt['text'])); + $catName = Minz_Helper::htmlspecialchars_utf8($cat_elt['text']); + $cat = new FreshRSS_Category($catName); $error = true; - if (!$cat_limit_reached) { + if (FreshRSS_Context::$isCli || !$cat_limit_reached) { $id = $this->catDAO->addCategoryObject($cat); $error = ($id === false); } + if ($error) { + if (FreshRSS_Context::$isCli) { + fwrite(STDERR, 'FreshRSS error during OPML category import from URL: ' . $catName . "\n"); + } else { + Minz_Log::warning('Error during OPML category import from URL: ' . $catName); + } + } if (isset($cat_elt['@outlines'])) { // Our cat_elt contains more categories or more feeds, so we // add them recursively. // Note: FreshRSS does not support yet category arborescence - $res = $this->addOpmlElements($cat_elt['@outlines'], $cat->name()); - if (!$error && $res) { - $error = true; - } + $error &= !$this->addOpmlElements($cat_elt['@outlines'], $catName); } - return $error; + return !$error; } /** @@ -312,13 +368,17 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { * * @param string $article_file the JSON file content. * @param boolean $starred true if articles from the file must be starred. - * @return boolean true if an error occured, false else. + * @return boolean false if an error occured, true otherwise. */ private function importJson($article_file, $starred = false) { $article_object = json_decode($article_file, true); - if (is_null($article_object)) { - Minz_Log::warning('Try to import a non-JSON file'); - return true; + if ($article_object == null) { + if (FreshRSS_Context::$isCli) { + fwrite(STDERR, 'FreshRSS error trying to import a non-JSON file' . "\n"); + } else { + Minz_Log::warning('Try to import a non-JSON file'); + } + return false; } $is_read = FreshRSS_Context::$user_conf->mark_when['reception'] ? 1 : 0; @@ -337,25 +397,24 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { $feed = new FreshRSS_Feed($item['origin'][$key]); $feed = $this->feedDAO->searchByUrl($feed->url()); - if (is_null($feed)) { + if ($feed == null) { // Feed does not exist in DB,we should to try to add it. - if ($nb_feeds >= $limits['max_feeds']) { + if ((!FreshRSS_Context::$isCli) && ($nb_feeds >= $limits['max_feeds'])) { // Oops, no more place! Minz_Log::warning(_t('feedback.sub.feed.over_max', $limits['max_feeds'])); } else { $feed = $this->addFeedJson($item['origin'], $google_compliant); } - if (is_null($feed)) { + if ($feed == null) { // Still null? It means something went wrong. $error = true; } else { - // Nice! Increase the counter. - $nb_feeds += 1; + $nb_feeds++; } } - if (!is_null($feed)) { + if ($feed != null) { $article_to_feed[$item['id']] = $feed->id(); } } @@ -384,7 +443,7 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { if ($google_compliant) { // Remove tags containing "/state/com.google" which are useless. $tags = array_filter($tags, function($var) { - return strpos($var, '/state/com.google') === false; + return strpos($var, '/state/com.google') !== false; }); } @@ -397,7 +456,7 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { $entry->_tags($tags); $entry = Minz_ExtensionManager::callHook('entry_before_insert', $entry); - if (is_null($entry)) { + if ($entry == null) { // An extension has returned a null value, there is nothing to insert. continue; } @@ -415,7 +474,7 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { } $this->entryDAO->commit(); - return $error; + return !$error; } /** @@ -427,8 +486,6 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { * else null. */ private function addFeedJson($origin, $google_compliant) { - $default_cat = $this->catDAO->getDefault(); - $return = null; $key = $google_compliant ? 'htmlUrl' : 'feedUrl'; $url = $origin[$key]; @@ -438,13 +495,13 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { try { // Create a Feed object and add it in database. $feed = new FreshRSS_Feed($url); - $feed->_category($default_cat->id()); + $feed->_category(FreshRSS_CategoryDAO::defaultCategoryId); $feed->_name($name); $feed->_website($website); // Call the extension hook $feed = Minz_ExtensionManager::callHook('feed_before_insert', $feed); - if (!is_null($feed)) { + if ($feed != null) { // addFeedObject checks if feed is already in DB so nothing else to // check here. $id = $this->feedDAO->addFeedObject($feed); @@ -455,7 +512,11 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { } } } catch (FreshRSS_Feed_Exception $e) { - Minz_Log::warning($e->getMessage()); + if (FreshRSS_Context::$isCli) { + fwrite(STDERR, 'FreshRSS error during JSON feed import: ' . $e->getMessage() . "\n"); + } else { + Minz_Log::warning($e->getMessage()); + } } return $return; @@ -503,18 +564,18 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { $nb_files = count($export_files); if ($nb_files > 1) { - // If there are more than 1 file to export, we need a zip archive. + // If there are more than 1 file to export, we need a ZIP archive. try { $this->exportZip($export_files); } catch (Exception $e) { - # Oops, there is no Zip extension! + # Oops, there is no ZIP extension! Minz_Request::bad(_t('feedback.import_export.export_no_zip_extension'), array('c' => 'importExport', 'a' => 'index')); } } elseif ($nb_files === 1) { // Only one file? Guess its type and export it. $filename = key($export_files); - $type = $this->guessFileType($filename); + $type = self::guessFileType($filename); $this->exportFile('freshrss_' . $filename, $export_files[$filename], $type); } else { // Nothing to do... @@ -555,7 +616,7 @@ class FreshRSS_importExport_Controller extends Minz_ActionController { $this->view->entries = $this->entryDAO->listWhere( 's', '', FreshRSS_Entry::STATE_ALL, 'ASC', $unread_fav['all'] ); - } elseif ($type == 'feed' && !is_null($feed)) { + } elseif ($type === 'feed' && $feed != null) { $this->view->list_title = _t('sub.import_export.feed_list', $feed->name()); $this->view->type = 'feed/' . $feed->id(); $this->view->entries = $this->entryDAO->listWhere( diff --git a/app/Exceptions/ZipException.php b/app/Exceptions/ZipException.php new file mode 100644 index 000000000..8441daedf --- /dev/null +++ b/app/Exceptions/ZipException.php @@ -0,0 +1,14 @@ +zipErrorCode = $zipErrorCode; + } + + public function zipErrorCode() { + return $this->zipErrorCode; + } +} diff --git a/app/Exceptions/ZipMissingException.php b/app/Exceptions/ZipMissingException.php new file mode 100644 index 000000000..864cc3991 --- /dev/null +++ b/app/Exceptions/ZipMissingException.php @@ -0,0 +1,4 @@ +prefix . 'category`(name) VALUES(?)'; $stm = $this->bd->prepare($sql); @@ -50,7 +53,7 @@ class FreshRSS_CategoryDAO extends Minz_ModelPdo implements FreshRSS_Searchable } public function deleteCategory($id) { - if ($id <= 1) { + if ($id <= self::defaultCategoryId) { return false; } $sql = 'DELETE FROM `' . $this->prefix . 'category` WHERE id=?'; @@ -120,7 +123,7 @@ class FreshRSS_CategoryDAO extends Minz_ModelPdo implements FreshRSS_Searchable } public function getDefault() { - $sql = 'SELECT * FROM `' . $this->prefix . 'category` WHERE id=1'; + $sql = 'SELECT * FROM `' . $this->prefix . 'category` WHERE id=' . self::defaultCategoryId; $stm = $this->bd->prepare($sql); $stm->execute(); @@ -134,11 +137,11 @@ class FreshRSS_CategoryDAO extends Minz_ModelPdo implements FreshRSS_Searchable } } public function checkDefault() { - $def_cat = $this->searchById(1); + $def_cat = $this->searchById(self::defaultCategoryId); if ($def_cat == null) { $cat = new FreshRSS_Category(_t('gen.short.default_category')); - $cat->_id(1); + $cat->_id(self::defaultCategoryId); $values = array( 'id' => $cat->id(), diff --git a/app/i18n/cz/feedback.php b/app/i18n/cz/feedback.php index 81302afca..f2bd87c77 100644 --- a/app/i18n/cz/feedback.php +++ b/app/i18n/cz/feedback.php @@ -43,12 +43,12 @@ return array( 'not_found' => '%s neexistuje', ), 'import_export' => array( - 'export_no_zip_extension' => 'Na serveru není naistalována podpora zip. Zkuste prosím exportovat soubory jeden po druhém.', + 'export_no_zip_extension' => 'Na serveru není naistalována podpora ZIP. Zkuste prosím exportovat soubory jeden po druhém.', 'feeds_imported' => 'Vaše kanály byly naimportovány a nyní budou aktualizovány', 'feeds_imported_with_errors' => 'Vaše kanály byly naimportovány, došlo ale k nějakým chybám', 'file_cannot_be_uploaded' => 'Soubor nelze nahrát!', - 'no_zip_extension' => 'Na serveru není naistalována podpora zip.', - 'zip_error' => 'Během importu zip souboru došlo k chybě.', + 'no_zip_extension' => 'Na serveru není naistalována podpora ZIP.', + 'zip_error' => 'Během importu ZIP souboru došlo k chybě.', ), 'sub' => array( 'actualize' => 'Aktualizovat', diff --git a/app/i18n/cz/sub.php b/app/i18n/cz/sub.php index cea0541e3..274cf16e1 100644 --- a/app/i18n/cz/sub.php +++ b/app/i18n/cz/sub.php @@ -44,8 +44,8 @@ return array( 'export_opml' => 'Exportovat seznam kanálů (OPML)', 'export_starred' => 'Exportovat oblíbené', 'feed_list' => 'Seznam %s článků', - 'file_to_import' => 'Soubor k importu
    (OPML, Json nebo Zip)', - 'file_to_import_no_zip' => 'Soubor k importu
    (OPML nebo Json)', + 'file_to_import' => 'Soubor k importu
    (OPML, JSON nebo ZIP)', + 'file_to_import_no_zip' => 'Soubor k importu
    (OPML nebo JSON)', 'import' => 'Import', 'starred_list' => 'Seznam oblíbených článků', 'title' => 'Import / export', diff --git a/app/i18n/de/feedback.php b/app/i18n/de/feedback.php index f93992982..195083b36 100644 --- a/app/i18n/de/feedback.php +++ b/app/i18n/de/feedback.php @@ -43,12 +43,12 @@ return array( 'not_found' => '%s existiert nicht', ), 'import_export' => array( - 'export_no_zip_extension' => 'Die Zip-Erweiterung fehlt auf Ihrem Server. Bitte versuchen Sie die Dateien eine nach der anderen zu exportieren.', + 'export_no_zip_extension' => 'Die ZIP-Erweiterung fehlt auf Ihrem Server. Bitte versuchen Sie die 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' => 'Die 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.', + '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', diff --git a/app/i18n/de/sub.php b/app/i18n/de/sub.php index 0f05a5635..cc98fd25c 100644 --- a/app/i18n/de/sub.php +++ b/app/i18n/de/sub.php @@ -44,7 +44,7 @@ return array( 'export_opml' => 'Liste der Feeds exportieren (OPML)', 'export_starred' => 'Ihre Favoriten exportieren', 'feed_list' => 'Liste von %s Artikeln', - 'file_to_import' => 'Zu importierende Datei
    (OPML, JSON oder Zip)', + 'file_to_import' => 'Zu importierende Datei
    (OPML, JSON oder ZIP)', 'file_to_import_no_zip' => 'Zu importierende Datei
    (OPML oder JSON)', 'import' => 'Importieren', 'starred_list' => 'Liste der Lieblingsartikel', diff --git a/app/i18n/en/feedback.php b/app/i18n/en/feedback.php index 7ce2ae9cf..e7f6b9f85 100644 --- a/app/i18n/en/feedback.php +++ b/app/i18n/en/feedback.php @@ -43,12 +43,12 @@ return array( '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.', + '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.', + 'no_zip_extension' => 'ZIP extension is not present on your server.', + 'zip_error' => 'An error occured during ZIP import.', ), 'sub' => array( 'actualize' => 'Actualise', diff --git a/app/i18n/en/sub.php b/app/i18n/en/sub.php index aaaa02827..789433ee6 100644 --- a/app/i18n/en/sub.php +++ b/app/i18n/en/sub.php @@ -44,8 +44,8 @@ return array( 'export_opml' => 'Export list of feeds (OPML)', 'export_starred' => 'Export your favourites', 'feed_list' => 'List of %s articles', - 'file_to_import' => 'File to import
    (OPML, Json or Zip)', - 'file_to_import_no_zip' => 'File to import
    (OPML or Json)', + 'file_to_import' => 'File to import
    (OPML, JSON or ZIP)', + 'file_to_import_no_zip' => 'File to import
    (OPML or JSON)', 'import' => 'Import', 'starred_list' => 'List of favourite articles', 'title' => 'Import / export', diff --git a/app/i18n/fr/feedback.php b/app/i18n/fr/feedback.php index 15f3ab859..5966fc3a7 100644 --- a/app/i18n/fr/feedback.php +++ b/app/i18n/fr/feedback.php @@ -43,12 +43,12 @@ return array( '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.', + '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.', + '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', diff --git a/app/i18n/fr/sub.php b/app/i18n/fr/sub.php index e3631eb8b..bb3f2fefc 100644 --- a/app/i18n/fr/sub.php +++ b/app/i18n/fr/sub.php @@ -44,8 +44,8 @@ return array( '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
    (OPML, Json ou Zip)', - 'file_to_import_no_zip' => 'Fichier à importer
    (OPML ou Json)', + 'file_to_import' => 'Fichier à importer
    (OPML, JSON ou ZIP)', + 'file_to_import_no_zip' => 'Fichier à importer
    (OPML ou JSON)', 'import' => 'Importer', 'starred_list' => 'Liste des articles favoris', 'title' => 'Importer / exporter', diff --git a/app/i18n/it/feedback.php b/app/i18n/it/feedback.php index f217586b0..5851cb2e6 100644 --- a/app/i18n/it/feedback.php +++ b/app/i18n/it/feedback.php @@ -43,12 +43,12 @@ return array( 'not_found' => '%s non disponibile', ), 'import_export' => array( - 'export_no_zip_extension' => 'Estensione Zip non presente sul server. Per favore esporta i files singolarmente.', + 'export_no_zip_extension' => 'Estensione ZIP non presente sul server. Per favore esporta i files singolarmente.', 'feeds_imported' => 'I tuoi feed sono stati importati e saranno aggiornati', 'feeds_imported_with_errors' => 'I tuoi feeds sono stati importati ma si sono verificati alcuni errori', 'file_cannot_be_uploaded' => 'Il file non può essere caricato!', - 'no_zip_extension' => 'Estensione Zip non presente sul server.', - 'zip_error' => 'Si è verificato un errore importando il file Zip', + 'no_zip_extension' => 'Estensione ZIP non presente sul server.', + 'zip_error' => 'Si è verificato un errore importando il file ZIP', ), 'sub' => array( 'actualize' => 'Aggiorna', diff --git a/app/i18n/it/sub.php b/app/i18n/it/sub.php index dfcee2ce3..758e322c5 100644 --- a/app/i18n/it/sub.php +++ b/app/i18n/it/sub.php @@ -44,8 +44,8 @@ return array( 'export_opml' => 'Esporta tutta la lista dei feed (OPML)', 'export_starred' => 'Esporta i tuoi preferiti', 'feed_list' => 'Elenco di %s articoli', - 'file_to_import' => 'File da importare
    (OPML, Json o Zip)', - 'file_to_import_no_zip' => 'File da importare
    (OPML o Json)', + 'file_to_import' => 'File da importare
    (OPML, JSON o ZIP)', + 'file_to_import_no_zip' => 'File da importare
    (OPML o JSON)', 'import' => 'Importa', 'starred_list' => 'Elenco articoli preferiti', 'title' => 'Importa / esporta', diff --git a/app/i18n/nl/feedback.php b/app/i18n/nl/feedback.php index b703c43cf..386b8d415 100644 --- a/app/i18n/nl/feedback.php +++ b/app/i18n/nl/feedback.php @@ -43,12 +43,12 @@ return array( 'not_found' => '%s bestaat niet', ), 'import_export' => array( - 'export_no_zip_extension' => 'Zip uitbreiding is niet aanwezig op uw server. Exporteer a.u.b. uw bestanden één voor één.', + 'export_no_zip_extension' => 'ZIP uitbreiding is niet aanwezig op uw server. Exporteer a.u.b. uw bestanden één voor één.', 'feeds_imported' => 'Uw feeds zijn geimporteerd en worden nu vernieuwd', 'feeds_imported_with_errors' => 'Uw feeds zijn geimporteerd maar er zijn enige fouten opgetreden', 'file_cannot_be_uploaded' => 'Bestand kan niet worden verzonden!', - 'no_zip_extension' => 'Zip uitbreiding is niet aanwezig op uw server.', - 'zip_error' => 'Er is een fout opgetreden tijdens het imporeren van het Zip bestand.', + 'no_zip_extension' => 'ZIP uitbreiding is niet aanwezig op uw server.', + 'zip_error' => 'Er is een fout opgetreden tijdens het imporeren van het ZIP bestand.', ), 'sub' => array( 'actualize' => 'Actualiseren', diff --git a/app/i18n/nl/sub.php b/app/i18n/nl/sub.php index 159a58b27..a1ba3f03d 100644 --- a/app/i18n/nl/sub.php +++ b/app/i18n/nl/sub.php @@ -44,8 +44,8 @@ return array( 'export_opml' => 'Exporteer lijst van feeds (OPML)', 'export_starred' => 'Exporteer je fovorieten', 'feed_list' => 'Lijst van %s artikelen', - 'file_to_import' => 'Bestand om te importeren
    (OPML, Json of Zip)', - 'file_to_import_no_zip' => 'Bestand om te importeren
    (OPML of Json)', + 'file_to_import' => 'Bestand om te importeren
    (OPML, JSON of ZIP)', + 'file_to_import_no_zip' => 'Bestand om te importeren
    (OPML of JSON)', 'import' => 'Importeer', 'starred_list' => 'Lijst van favoriete artikelen', 'title' => 'Importeren / exporteren', diff --git a/app/i18n/ru/feedback.php b/app/i18n/ru/feedback.php index 7ce2ae9cf..e7f6b9f85 100644 --- a/app/i18n/ru/feedback.php +++ b/app/i18n/ru/feedback.php @@ -43,12 +43,12 @@ return array( '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.', + '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.', + 'no_zip_extension' => 'ZIP extension is not present on your server.', + 'zip_error' => 'An error occured during ZIP import.', ), 'sub' => array( 'actualize' => 'Actualise', diff --git a/app/i18n/ru/sub.php b/app/i18n/ru/sub.php index aaaa02827..789433ee6 100644 --- a/app/i18n/ru/sub.php +++ b/app/i18n/ru/sub.php @@ -44,8 +44,8 @@ return array( 'export_opml' => 'Export list of feeds (OPML)', 'export_starred' => 'Export your favourites', 'feed_list' => 'List of %s articles', - 'file_to_import' => 'File to import
    (OPML, Json or Zip)', - 'file_to_import_no_zip' => 'File to import
    (OPML or Json)', + 'file_to_import' => 'File to import
    (OPML, JSON or ZIP)', + 'file_to_import_no_zip' => 'File to import
    (OPML or JSON)', 'import' => 'Import', 'starred_list' => 'List of favourite articles', 'title' => 'Import / export', diff --git a/app/i18n/tr/feedback.php b/app/i18n/tr/feedback.php index a53316206..87361ff51 100644 --- a/app/i18n/tr/feedback.php +++ b/app/i18n/tr/feedback.php @@ -43,12 +43,12 @@ return array( 'not_found' => '%s bulunmamaktadır', ), 'import_export' => array( - 'export_no_zip_extension' => 'Zip eklentisi mevcut sunucunuzda yer almıyor. Lütfen başka dosya formatında dışarı aktarmayı deneyin.', + 'export_no_zip_extension' => 'ZIP eklentisi mevcut sunucunuzda yer almıyor. Lütfen başka dosya formatında dışarı aktarmayı deneyin.', 'feeds_imported' => 'Akışlarınız içe aktarıldı ve şimdi güncellenecek', 'feeds_imported_with_errors' => 'Akışlarınız içeri aktarıldı ama bazı hatalar meydana geldi', 'file_cannot_be_uploaded' => 'Dosya yüklenemedi!', - 'no_zip_extension' => 'Zip eklentisi mevcut sunucunuzda yer almıyor.', - 'zip_error' => 'Zip içe aktarımı sırasında hata meydana geldi.', + 'no_zip_extension' => 'ZIP eklentisi mevcut sunucunuzda yer almıyor.', + 'zip_error' => 'ZIP içe aktarımı sırasında hata meydana geldi.', ), 'sub' => array( 'actualize' => 'Güncelleme', diff --git a/app/i18n/tr/sub.php b/app/i18n/tr/sub.php index 5ab367ebb..7592096d9 100644 --- a/app/i18n/tr/sub.php +++ b/app/i18n/tr/sub.php @@ -44,8 +44,8 @@ return array( 'export_opml' => 'Akış listesini dışarı aktar (OPML)', 'export_starred' => 'Favorileri dışarı aktar', 'feed_list' => '%s makalenin listesi', - 'file_to_import' => 'Dosyadan içe aktar
    (OPML, Json or Zip)', - 'file_to_import_no_zip' => 'Dosyadan içe aktar
    (OPML or Json)', + 'file_to_import' => 'Dosyadan içe aktar
    (OPML, JSON or ZIP)', + 'file_to_import_no_zip' => 'Dosyadan içe aktar
    (OPML or JSON)', 'import' => 'İçe aktar', 'starred_list' => 'Favori makaleleirn listesi', 'title' => 'İçe / dışa aktar', diff --git a/cli/_cli.php b/cli/_cli.php index cb6d8ec32..d81d83d66 100644 --- a/cli/_cli.php +++ b/cli/_cli.php @@ -37,3 +37,8 @@ function cliInitUser($username) { return $username; } + +function done($ok) { + echo 'Result: ', ($ok ? 'success' : 'fail'), ".\n"; + exit($ok ? 0 : 1); +} diff --git a/cli/create-user.php b/cli/create-user.php index 08c057af8..387b503b6 100755 --- a/cli/create-user.php +++ b/cli/create-user.php @@ -15,19 +15,19 @@ if (empty($options['user'])) { fail('Usage: ' . basename(__FILE__) . " --user=username --password='password' --api-password='api_password'" . " --language=en --email=user@example.net --token='longRandomString'"); } -$new_user_name = $options['user']; -if (!ctype_alnum($new_user_name)) { - fail('FreshRSS error: invalid username “' . $new_user_name . '”'); +$username = $options['user']; +if (!ctype_alnum($username)) { + fail('FreshRSS error: invalid username “' . $username . '”'); } $usernames = listUsers(); -if (preg_grep("/^$new_user_name$/i", $usernames)) { - fail('FreshRSS error: username already taken “' . $new_user_name . '”'); +if (preg_grep("/^$username$/i", $usernames)) { + fail('FreshRSS error: username already taken “' . $username . '”'); } -echo 'FreshRSS creating user “', $new_user_name, "”…\n"; +echo 'FreshRSS creating user “', $username, "”…\n"; -$ok = FreshRSS_user_Controller::createUser($new_user_name, +$ok = FreshRSS_user_Controller::createUser($username, empty($options['password']) ? '' : $options['password'], empty($options['api-password']) ? '' : $options['api-password'], array( @@ -37,5 +37,4 @@ $ok = FreshRSS_user_Controller::createUser($new_user_name, invalidateHttpCache(FreshRSS_Context::$system_conf->default_user); -echo 'Result: ', ($ok ? 'success' : 'fail'), ".\n"; -exit($ok ? 0 : 1); +done($ok); diff --git a/cli/delete-user.php b/cli/delete-user.php index 46332fe34..da48103f7 100755 --- a/cli/delete-user.php +++ b/cli/delete-user.php @@ -29,5 +29,4 @@ $ok = FreshRSS_user_Controller::deleteUser($username); invalidateHttpCache(FreshRSS_Context::$system_conf->default_user); -echo 'Result: ', ($ok ? 'success' : 'fail'), ".\n"; -exit($ok ? 0 : 1); +done($ok); diff --git a/cli/import-for-user.php b/cli/import-for-user.php new file mode 100644 index 000000000..308786599 --- /dev/null +++ b/cli/import-for-user.php @@ -0,0 +1,36 @@ +#!/usr/bin/php +importFile($filename, $filename, $username); +} catch (FreshRSS_ZipMissing_Exception $zme) { + fail('FreshRSS error: Lacking php-zip extension!'); +} catch (FreshRSS_Zip_Exception $ze) { + fail('FreshRSS error: ZIP archive cannot be imported! Error code: ' . $ze->zipErrorCode()); +} +invalidateHttpCache($username); + +done($ok); diff --git a/cli/list-users.php b/cli/list-users.php index cc1cf5269..e690ff451 100755 --- a/cli/list-users.php +++ b/cli/list-users.php @@ -4,8 +4,8 @@ require('_cli.php'); $users = listUsers(); sort($users); -if ($system_conf->default_user !== '') { - array_unshift($users, $system_conf->default_user); +if (FreshRSS_Context::$system_conf->default_user !== '') { + array_unshift($users, FreshRSS_Context::$system_conf->default_user); $users = array_unique($users); } diff --git a/lib/Minz/ModelPdo.php b/lib/Minz/ModelPdo.php index da28909df..45139b0d6 100644 --- a/lib/Minz/ModelPdo.php +++ b/lib/Minz/ModelPdo.php @@ -36,22 +36,21 @@ class Minz_ModelPdo { * HOST, BASE, USER et PASS définies dans le fichier de configuration */ public function __construct($currentUser = null) { - if (self::$useSharedBd && self::$sharedBd != null && $currentUser === null) { + if ($currentUser === null) { + $currentUser = Minz_Session::param('currentUser', '_'); + } + if (self::$useSharedBd && self::$sharedBd != null && $currentUser === self::$sharedCurrentUser) { $this->bd = self::$sharedBd; $this->prefix = self::$sharedPrefix; $this->current_user = self::$sharedCurrentUser; return; } + $this->current_user = $currentUser; + self::$sharedCurrentUser = $currentUser; $conf = Minz_Configuration::get('system'); $db = $conf->db; - if ($currentUser === null) { - $currentUser = Minz_Session::param('currentUser', '_'); - } - $this->current_user = $currentUser; - self::$sharedCurrentUser = $currentUser; - $driver_options = isset($conf->db['pdo_options']) && is_array($conf->db['pdo_options']) ? $conf->db['pdo_options'] : array(); $dbServer = parse_url('db://' . $db['host']); -- cgit v1.2.3 From b28b6a4bf273253d1bb57b99a80fa7ae77a48397 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 20 Nov 2016 16:52:07 +0100 Subject: extension_loaded fileinfo https://github.com/FreshRSS/FreshRSS/issues/1375 --- app/i18n/cz/admin.php | 4 ++++ app/i18n/cz/install.php | 4 ++++ app/i18n/de/admin.php | 4 ++++ app/i18n/de/install.php | 4 ++++ app/i18n/en/admin.php | 4 ++++ app/i18n/en/install.php | 4 ++++ app/i18n/fr/admin.php | 4 ++++ app/i18n/fr/install.php | 4 ++++ app/i18n/it/admin.php | 4 ++++ app/i18n/it/install.php | 4 ++++ app/i18n/nl/admin.php | 4 ++++ app/i18n/nl/install.php | 4 ++++ app/i18n/ru/admin.php | 4 ++++ app/i18n/ru/install.php | 4 ++++ app/i18n/tr/admin.php | 4 ++++ app/i18n/tr/install.php | 4 ++++ app/install.php | 6 ++++++ lib/lib_install.php | 4 +++- lib/lib_rss.php | 1 + 19 files changed, 74 insertions(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/cz/admin.php b/app/i18n/cz/admin.php index 84bc58a17..63cee3cca 100644 --- a/app/i18n/cz/admin.php +++ b/app/i18n/cz/admin.php @@ -57,6 +57,10 @@ return array( 'nok' => 'Tabulka kanálů je nastavena špatně.', 'ok' => 'Tabulka kanálů je v pořádku.', ), + 'fileinfo' => array( + 'nok' => 'Nemáte PHP fileinfo (balíček fileinfo).', + 'ok' => 'Máte rozšíření fileinfo.', + ), 'files' => 'Instalace souborů', 'json' => array( 'nok' => 'Nemáte JSON (balíček php5-json).', diff --git a/app/i18n/cz/install.php b/app/i18n/cz/install.php index c40ae46e2..ea4812ea5 100644 --- a/app/i18n/cz/install.php +++ b/app/i18n/cz/install.php @@ -56,6 +56,10 @@ return array( 'nok' => 'Zkontrolujte oprávnění adresáře ./data/favicons. HTTP server musí mít do tohoto adresáře práva zápisu', 'ok' => 'Oprávnění adresáře favicons jsou v pořádku.', ), + 'fileinfo' => array( + 'nok' => 'Nemáte PHP fileinfo (balíček fileinfo).', + 'ok' => 'Máte rozšíření fileinfo.', + ), 'http_referer' => array( 'nok' => 'Zkontrolujte prosím že neměníte HTTP REFERER.', 'ok' => 'Váš HTTP REFERER je znám a odpovídá Vašemu serveru.', diff --git a/app/i18n/de/admin.php b/app/i18n/de/admin.php index c12f32bc8..8fc43a7bb 100644 --- a/app/i18n/de/admin.php +++ b/app/i18n/de/admin.php @@ -57,6 +57,10 @@ return array( 'nok' => 'Die Tabelle feed ist schlecht konfiguriert.', 'ok' => 'Die Tabelle feed ist korrekt konfiguriert.', ), + 'fileinfo' => array( + 'nok' => 'Ihnen fehlt PHP fileinfo (Paket fileinfo).', + 'ok' => 'Sie haben die fileinfo-Erweiterung.', + ), 'files' => 'Datei-Installation', 'json' => array( 'nok' => 'Ihnen fehlt die JSON-Erweiterung (Paket php5-json).', diff --git a/app/i18n/de/install.php b/app/i18n/de/install.php index 178e8ea4c..b747d1551 100644 --- a/app/i18n/de/install.php +++ b/app/i18n/de/install.php @@ -56,6 +56,10 @@ return array( 'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses ./data/favicons. Der HTTP-Server muss Schreibrechte besitzen.', 'ok' => 'Die Berechtigungen des Verzeichnisses ./data/favicons sind in Ordnung.', ), + 'fileinfo' => array( + 'nok' => 'Ihnen fehlt PHP fileinfo (Paket fileinfo).', + 'ok' => 'Sie haben die fileinfo-Erweiterung.', + ), '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.', diff --git a/app/i18n/en/admin.php b/app/i18n/en/admin.php index e5286d948..e94d9fa80 100644 --- a/app/i18n/en/admin.php +++ b/app/i18n/en/admin.php @@ -57,6 +57,10 @@ return array( 'nok' => 'Feed table is bad configured.', 'ok' => 'Feed table is ok.', ), + 'fileinfo' => array( + 'nok' => 'Cannot find the PHP fileinfo library (fileinfo package).', + 'ok' => 'You have the fileinfo library.', + ), 'files' => 'File installation', 'json' => array( 'nok' => 'Cannot find JSON (php5-json package).', diff --git a/app/i18n/en/install.php b/app/i18n/en/install.php index 63d31fe53..40fff37dd 100644 --- a/app/i18n/en/install.php +++ b/app/i18n/en/install.php @@ -56,6 +56,10 @@ return array( 'nok' => 'Check permissions on ./data/favicons directory. HTTP server must have rights to write into', 'ok' => 'Permissions on favicons directory are good.', ), + 'fileinfo' => array( + 'nok' => 'Cannot find the PHP fileinfo library (fileinfo package).', + 'ok' => 'You have the fileinfo library.', + ), '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.', diff --git a/app/i18n/fr/admin.php b/app/i18n/fr/admin.php index e9263a5e2..9a13ecc21 100644 --- a/app/i18n/fr/admin.php +++ b/app/i18n/fr/admin.php @@ -57,6 +57,10 @@ return array( 'nok' => 'La table feed est mal configurée.', 'ok' => 'La table feed est bien configurée.', ), + 'fileinfo' => array( + 'nok' => 'Impossible de trouver la librairie PHP fileinfo (paquet fileinfo).', + 'ok' => 'Vous disposez de la librairie fileinfo.', + ), 'files' => 'Installation des fichiers', 'json' => array( 'nok' => 'Vous ne disposez pas de JSON (paquet php5-json).', diff --git a/app/i18n/fr/install.php b/app/i18n/fr/install.php index c50807107..09625de78 100644 --- a/app/i18n/fr/install.php +++ b/app/i18n/fr/install.php @@ -56,6 +56,10 @@ return array( 'nok' => 'Veuillez vérifier les droits sur le répertoire ./data/favicons. Le serveur HTTP doit être capable d’écrire dedans', 'ok' => 'Les droits sur le répertoire des favicons sont bons.', ), + 'fileinfo' => array( + 'nok' => 'Vous ne disposez pas de PHP fileinfo (paquet fileinfo).', + 'ok' => 'Vous disposez de fileinfo.', + ), '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.', diff --git a/app/i18n/it/admin.php b/app/i18n/it/admin.php index c399bc8c8..ae46818ae 100644 --- a/app/i18n/it/admin.php +++ b/app/i18n/it/admin.php @@ -57,6 +57,10 @@ return array( 'nok' => 'La tabella Feed ha una configurazione errata.', 'ok' => 'Tabella Feed OK.', ), + 'fileinfo' => array( + 'nok' => 'Manca il supporto per PHP fileinfo (pacchetto fileinfo).', + 'ok' => 'Estensione fileinfo presente.', + ), 'files' => 'Installazione files', 'json' => array( 'nok' => 'Manca il supoorto a JSON (pacchetto php5-json).', diff --git a/app/i18n/it/install.php b/app/i18n/it/install.php index 2fa298508..18f8cc337 100644 --- a/app/i18n/it/install.php +++ b/app/i18n/it/install.php @@ -56,6 +56,10 @@ return array( 'nok' => 'Verifica i permessi sulla cartella ./data/favicons. Il server HTTP deve avere i permessi per scriverci dentro', 'ok' => 'I permessi sulla cartella favicons sono corretti.', ), + 'fileinfo' => array( + 'nok' => 'Manca il supporto per PHP fileinfo (pacchetto fileinfo).', + 'ok' => 'Estensione fileinfo presente.', + ), 'http_referer' => array( 'nok' => 'Per favore verifica che non stai alterando il tuo HTTP REFERER.', 'ok' => 'Il tuo HTTP REFERER riconosciuto corrisponde al tuo server.', diff --git a/app/i18n/nl/admin.php b/app/i18n/nl/admin.php index 59637bfef..607fb1892 100644 --- a/app/i18n/nl/admin.php +++ b/app/i18n/nl/admin.php @@ -57,6 +57,10 @@ return array( 'nok' => 'Feed tabel is slecht geconfigureerd.', 'ok' => 'Feed tabel is ok.', ), + 'fileinfo' => array( + 'nok' => 'U mist de PHP fileinfo (fileinfo package).', + 'ok' => 'U hebt de fileinfo uitbreiding.', + ), 'files' => 'Bestanden installatie', 'json' => array( 'nok' => 'U mist JSON (php5-json package).', diff --git a/app/i18n/nl/install.php b/app/i18n/nl/install.php index bd2ba0cce..79db9c794 100644 --- a/app/i18n/nl/install.php +++ b/app/i18n/nl/install.php @@ -56,6 +56,10 @@ return array( 'nok' => 'Controleer permissies van de ./data/favicons map. HTTP server moet rechten hebben om er in te kunnen schrijven', 'ok' => 'Permissies van de favicons map zijn goed.', ), + 'fileinfo' => array( + 'nok' => 'U mist PHP fileinfo (fileinfo package).', + 'ok' => 'U hebt de fileinfo uitbreiding.', + ), 'http_referer' => array( 'nok' => 'Controleer a.u.b. dat u niet uw HTTP REFERER wijzigd.', 'ok' => 'Uw HTTP REFERER is bekend en komt overeen met uw server.', diff --git a/app/i18n/ru/admin.php b/app/i18n/ru/admin.php index 355100689..f5da97371 100644 --- a/app/i18n/ru/admin.php +++ b/app/i18n/ru/admin.php @@ -57,6 +57,10 @@ return array( 'nok' => 'Таблица подписок (feed) неправильно настроена.', 'ok' => 'Таблица подписок (feed) настроена правильно.', ), + 'fileinfo' => array( + 'nok' => 'У вас не установлено расширение PHP fileinfo (пакет fileinfo).', + 'ok' => 'У вас установлено расширение fileinfo.', + ), 'files' => 'Установка файлов', 'json' => array( 'nok' => 'У вас не установлена библиотека для работы с JSON (пакет php5-json).', diff --git a/app/i18n/ru/install.php b/app/i18n/ru/install.php index bad59bbb3..1dea2cd66 100644 --- a/app/i18n/ru/install.php +++ b/app/i18n/ru/install.php @@ -56,6 +56,10 @@ return array( 'nok' => 'Проверьте права доступа к папке ./data/favicons . Сервер HTTP должен иметь права на запись в эту папку.', 'ok' => 'Права на папку значков в порядке.', ), + 'fileinfo' => array( + 'nok' => 'У вас нет расширения PHP fileinfo (пакет fileinfo).', + 'ok' => 'У вас установлено расширение fileinfo.', + ), 'http_referer' => array( 'nok' => 'Убедитесь, что вы не изменяете ваш HTTP REFERER.', 'ok' => 'Ваш HTTP REFERER известен и соотвествует вашему серверу.', diff --git a/app/i18n/tr/admin.php b/app/i18n/tr/admin.php index e0dbd288d..9d10ef9dd 100644 --- a/app/i18n/tr/admin.php +++ b/app/i18n/tr/admin.php @@ -57,6 +57,10 @@ return array( 'nok' => 'Akış tablosu kötü yapılandırılmış.', 'ok' => 'Akış tablosu sorunsuz.', ), + 'fileinfo' => array( + 'nok' => 'PHP fileinfo eksik (fileinfo package).', + 'ok' => 'fileinfo eklentisi sorunsuz.', + ), 'files' => 'Dosya kurulumu', 'json' => array( 'nok' => 'JSON eklentisi eksik (php5-json package).', diff --git a/app/i18n/tr/install.php b/app/i18n/tr/install.php index 4daa45099..d5564297b 100644 --- a/app/i18n/tr/install.php +++ b/app/i18n/tr/install.php @@ -56,6 +56,10 @@ return array( 'nok' => './data/favicons klasör yetkisini kontrol edin. HTTP yazma yetkisi olmalı', 'ok' => 'Site ikonu klasörü yetkileri sorunsuz.', ), + 'fileinfo' => array( + 'nok' => 'PHP fileinfo eksik (fileinfo package).', + 'ok' => 'fileinfo eklentisi sorunsuz.', + ), 'http_referer' => array( 'nok' => 'Lütfen HTTP REFERER değiştirmediğinize emin olun.', 'ok' => 'HTTP REFERER ve sunucunuz arası iletişim sorunsuz.', diff --git a/app/install.php b/app/install.php index 869bf076f..986a7dc60 100644 --- a/app/install.php +++ b/app/install.php @@ -478,6 +478,12 @@ function printStep1() {

    + +

    + +

    + +

    diff --git a/lib/lib_install.php b/lib/lib_install.php index dd8090bcd..c5cae4293 100644 --- a/lib/lib_install.php +++ b/lib/lib_install.php @@ -15,6 +15,7 @@ function checkRequirements() { $pdo = $pdo_mysql || $pdo_sqlite || $pdo_pgsql; $pcre = extension_loaded('pcre'); $ctype = extension_loaded('ctype'); + $fileinfo = extension_loaded('fileinfo'); $dom = class_exists('DOMDocument'); $xml = function_exists('xml_parser_create'); $json = function_exists('json_encode'); @@ -34,6 +35,7 @@ function checkRequirements() { 'pdo' => $pdo ? 'ok' : 'ko', 'pcre' => $pcre ? 'ok' : 'ko', 'ctype' => $ctype ? 'ok' : 'ko', + 'fileinfo' => $fileinfo ? 'ok' : 'ko', 'dom' => $dom ? 'ok' : 'ko', 'xml' => $xml ? 'ok' : 'ko', 'json' => $json ? 'ok' : 'ko', @@ -42,7 +44,7 @@ function checkRequirements() { 'users' => $users ? 'ok' : 'ko', 'favicons' => $favicons ? 'ok' : 'ko', 'http_referer' => $http_referer ? 'ok' : 'ko', - 'all' => $php && $minz && $curl && $pdo && $pcre && $ctype && $dom && $xml && + 'all' => $php && $minz && $curl && $pdo && $pcre && $ctype && $fileinfo && $dom && $xml && $data && $cache && $users && $favicons && $http_referer ? 'ok' : 'ko' ); diff --git a/lib/lib_rss.php b/lib/lib_rss.php index fc68a96d3..560e5b256 100644 --- a/lib/lib_rss.php +++ b/lib/lib_rss.php @@ -398,6 +398,7 @@ function check_install_php() { 'pdo' => $pdo_mysql || $pdo_sqlite, 'pcre' => extension_loaded('pcre'), 'ctype' => extension_loaded('ctype'), + 'fileinfo' => extension_loaded('fileinfo'), 'dom' => class_exists('DOMDocument'), 'json' => extension_loaded('json'), 'zip' => extension_loaded('zip'), -- cgit v1.2.3 From 332a4dec8690b658bcb878a20056aea33c673f69 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 24 Dec 2016 16:33:28 +0100 Subject: Option for cookie duration https://github.com/FreshRSS/FreshRSS/issues/1384 --- app/Controllers/authController.php | 4 ++++ app/Models/Auth.php | 11 ++++++++--- app/i18n/cz/gen.php | 2 +- app/i18n/de/gen.php | 2 +- app/i18n/en/gen.php | 2 +- app/i18n/fr/gen.php | 2 +- app/i18n/it/gen.php | 2 +- app/i18n/nl/gen.php | 2 +- app/i18n/ru/gen.php | 2 +- app/i18n/tr/gen.php | 2 +- app/views/auth/formLogin.phtml | 2 +- data/config.default.php | 3 +++ 12 files changed, 24 insertions(+), 12 deletions(-) (limited to 'app/i18n') diff --git a/app/Controllers/authController.php b/app/Controllers/authController.php index 9decba431..1398e4e49 100644 --- a/app/Controllers/authController.php +++ b/app/Controllers/authController.php @@ -113,6 +113,10 @@ class FreshRSS_auth_Controller extends Minz_ActionController { $file_mtime = @filemtime(PUBLIC_PATH . '/scripts/bcrypt.min.js'); Minz_View::appendScript(Minz_Url::display('/scripts/bcrypt.min.js?' . $file_mtime)); + $conf = Minz_Configuration::get('system'); + $limits = $conf->limits; + $this->view->cookie_days = round($limits['cookie_duration'] / 86400, 1); + if (Minz_Request::isPost()) { $nonce = Minz_Session::param('nonce'); $username = Minz_Request::param('username', ''); diff --git a/app/Models/Auth.php b/app/Models/Auth.php index 3313fdf3f..042210eaf 100644 --- a/app/Models/Auth.php +++ b/app/Models/Auth.php @@ -219,8 +219,8 @@ class FreshRSS_FormAuth { } public static function makeCookie($username, $password_hash) { + $conf = Minz_Configuration::get('system'); do { - $conf = Minz_Configuration::get('system'); $token = sha1($conf->salt . $username . uniqid(mt_rand(), true)); $token_file = DATA_PATH . '/tokens/' . $token . '.txt'; } while (file_exists($token_file)); @@ -229,7 +229,9 @@ class FreshRSS_FormAuth { return false; } - $expire = time() + 2629744; //1 month //TODO: Use a configuration instead + $limits = $conf->limits; + $cookie_duration = empty($limits['cookie_duration']) ? 2629744 : $limits['cookie_duration']; + $expire = time() + $cookie_duration; Minz_Session::setLongTermCookie('FreshRSS_login', $token, $expire); return $token; } @@ -247,7 +249,10 @@ class FreshRSS_FormAuth { } public static function purgeTokens() { - $oldest = time() - 2629744; // 1 month // TODO: Use a configuration instead + $conf = Minz_Configuration::get('system'); + $limits = $conf->limits; + $cookie_duration = empty($limits['cookie_duration']) ? 2629744 : $limits['cookie_duration']; + $oldest = time() - $cookie_duration; foreach (new DirectoryIterator(DATA_PATH . '/tokens/') as $file_info) { // $extension = $file_info->getExtension(); doesn't work in PHP < 5.3.7 $extension = pathinfo($file_info->getFilename(), PATHINFO_EXTENSION); diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index e73325c55..6722a02e5 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -22,7 +22,7 @@ return array( ), 'auth' => array( 'email' => 'Email', - 'keep_logged_in' => 'Zapamatovat přihlášení (1 měsíc)', + 'keep_logged_in' => 'Zapamatovat přihlášení (%s dny)', 'login' => 'Login', 'logout' => 'Odhlášení', 'password' => array( diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index c6e7f1ef3..3f1238edc 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -22,7 +22,7 @@ return array( ), 'auth' => array( 'email' => 'E-Mail-Adresse', - 'keep_logged_in' => 'Eingeloggt bleiben (1 Monat)', + 'keep_logged_in' => 'Eingeloggt bleiben (%s Tage)', 'login' => 'Anmelden', 'logout' => 'Abmelden', 'password' => array( diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 17b47ba2f..c68a0f07b 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -22,7 +22,7 @@ return array( ), 'auth' => array( 'email' => 'Email address', - 'keep_logged_in' => 'Keep me logged in (1 month)', + 'keep_logged_in' => 'Keep me logged in (%s days)', 'login' => 'Login', 'logout' => 'Logout', 'password' => array( diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index d61a716a7..b5dc098ae 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -22,7 +22,7 @@ return array( ), 'auth' => array( 'email' => 'Adresse courriel', - 'keep_logged_in' => 'Rester connecté (1 mois)', + 'keep_logged_in' => 'Rester connecté (%s jours)', 'login' => 'Connexion', 'logout' => 'Déconnexion', 'password' => array( diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index c02ddd13a..01c0afba8 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -22,7 +22,7 @@ return array( ), 'auth' => array( 'email' => 'Indirizzo email', - 'keep_logged_in' => 'Ricorda i dati (1 mese)', + 'keep_logged_in' => 'Ricorda i dati (%s giorni)', 'login' => 'Accedi', 'logout' => 'Esci', 'password' => array( diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index 7e03229c9..a156697d5 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -22,7 +22,7 @@ return array( ), 'auth' => array( 'email' => 'Email adres', - 'keep_logged_in' => 'Ingelogd blijven voor (1 maand)', + 'keep_logged_in' => 'Ingelogd blijven voor (%s dagen)', 'login' => 'Log in', 'logout' => 'Log uit', 'password' => array( diff --git a/app/i18n/ru/gen.php b/app/i18n/ru/gen.php index eecd72749..130fac4ed 100644 --- a/app/i18n/ru/gen.php +++ b/app/i18n/ru/gen.php @@ -22,7 +22,7 @@ return array( ), 'auth' => array( 'email' => 'Email address', - 'keep_logged_in' => 'Keep me logged in (1 month)', + 'keep_logged_in' => 'Keep me logged in (%s дней)', 'login' => 'Login', 'logout' => 'Logout', 'password' => array( diff --git a/app/i18n/tr/gen.php b/app/i18n/tr/gen.php index 865dbd4e2..7f9d3d8e0 100644 --- a/app/i18n/tr/gen.php +++ b/app/i18n/tr/gen.php @@ -22,7 +22,7 @@ return array( ), 'auth' => array( 'email' => 'Email adresleri', - 'keep_logged_in' => '(1 ay) oturumu açık tut', + 'keep_logged_in' => '(%s günler) oturumu açık tut', 'login' => 'Giriş', 'logout' => 'Çıkış', 'password' => array( diff --git a/app/views/auth/formLogin.phtml b/app/views/auth/formLogin.phtml index 4bbc8ed55..a8213b7ae 100644 --- a/app/views/auth/formLogin.phtml +++ b/app/views/auth/formLogin.phtml @@ -20,7 +20,7 @@

    diff --git a/data/config.default.php b/data/config.default.php index 8b07b85cd..433207a9c 100644 --- a/data/config.default.php +++ b/data/config.default.php @@ -74,6 +74,9 @@ return array( 'limits' => array( + # Duration in seconds of the login cookie. + 'cookie_duration' => 2592000, + # Duration in seconds of the SimplePie cache, # during which a query to the RSS feed will return the local cached version. # Especially important for multi-user setups. -- cgit v1.2.3 From 0d6a5048badea8b208ac21a0a5cdcde9ead2b894 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 24 Dec 2016 16:37:46 +0100 Subject: Non-breaking space format --- app/i18n/cz/gen.php | 2 +- app/i18n/de/gen.php | 2 +- app/i18n/en/gen.php | 2 +- app/i18n/it/gen.php | 2 +- app/i18n/nl/gen.php | 2 +- app/i18n/ru/gen.php | 2 +- app/i18n/tr/gen.php | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index 6722a02e5..3db3a31da 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -22,7 +22,7 @@ return array( ), 'auth' => array( 'email' => 'Email', - 'keep_logged_in' => 'Zapamatovat přihlášení (%s dny)', + 'keep_logged_in' => 'Zapamatovat přihlášení (%s dny)', 'login' => 'Login', 'logout' => 'Odhlášení', 'password' => array( diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index 3f1238edc..c73aedbfe 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -22,7 +22,7 @@ return array( ), 'auth' => array( 'email' => 'E-Mail-Adresse', - 'keep_logged_in' => 'Eingeloggt bleiben (%s Tage)', + 'keep_logged_in' => 'Eingeloggt bleiben (%s Tage)', 'login' => 'Anmelden', 'logout' => 'Abmelden', 'password' => array( diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index c68a0f07b..3f86cfd19 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -22,7 +22,7 @@ return array( ), 'auth' => array( 'email' => 'Email address', - 'keep_logged_in' => 'Keep me logged in (%s days)', + 'keep_logged_in' => 'Keep me logged in (%s days)', 'login' => 'Login', 'logout' => 'Logout', 'password' => array( diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index 01c0afba8..a9a8709d3 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -22,7 +22,7 @@ return array( ), 'auth' => array( 'email' => 'Indirizzo email', - 'keep_logged_in' => 'Ricorda i dati (%s giorni)', + 'keep_logged_in' => 'Ricorda i dati (%s giorni)', 'login' => 'Accedi', 'logout' => 'Esci', 'password' => array( diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index a156697d5..83811ce68 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -22,7 +22,7 @@ return array( ), 'auth' => array( 'email' => 'Email adres', - 'keep_logged_in' => 'Ingelogd blijven voor (%s dagen)', + 'keep_logged_in' => 'Ingelogd blijven voor (%s dagen)', 'login' => 'Log in', 'logout' => 'Log uit', 'password' => array( diff --git a/app/i18n/ru/gen.php b/app/i18n/ru/gen.php index 130fac4ed..bc42afaa8 100644 --- a/app/i18n/ru/gen.php +++ b/app/i18n/ru/gen.php @@ -22,7 +22,7 @@ return array( ), 'auth' => array( 'email' => 'Email address', - 'keep_logged_in' => 'Keep me logged in (%s дней)', + 'keep_logged_in' => 'Keep me logged in (%s дней)', 'login' => 'Login', 'logout' => 'Logout', 'password' => array( diff --git a/app/i18n/tr/gen.php b/app/i18n/tr/gen.php index 7f9d3d8e0..bcc839daf 100644 --- a/app/i18n/tr/gen.php +++ b/app/i18n/tr/gen.php @@ -22,7 +22,7 @@ return array( ), 'auth' => array( 'email' => 'Email adresleri', - 'keep_logged_in' => '(%s günler) oturumu açık tut', + 'keep_logged_in' => '(%s günler) oturumu açık tut', 'login' => 'Giriş', 'logout' => 'Çıkış', 'password' => array( -- cgit v1.2.3 From fcc9229fb772be6f99512021454e4a14760301a5 Mon Sep 17 00:00:00 2001 From: tintouli Date: Sat, 4 Feb 2017 13:20:25 +0100 Subject: Share to sites based on Known (http://withknown.com) --- app/i18n/cz/gen.php | 1 + app/i18n/de/gen.php | 1 + app/i18n/en/gen.php | 1 + app/i18n/fr/gen.php | 1 + app/i18n/it/gen.php | 1 + app/i18n/nl/gen.php | 3 ++- app/i18n/ru/gen.php | 1 + app/i18n/tr/gen.php | 1 + data/shares.php | 6 ++++++ 9 files changed, 15 insertions(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index 3db3a31da..b98ee0a64 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -165,6 +165,7 @@ return array( 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', + 'Known' => 'Known based sites', ), 'short' => array( 'attention' => 'Upozornění!', diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index c73aedbfe..9747ec1b8 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -165,6 +165,7 @@ return array( 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', + 'Known' => 'Known based sites', ), 'short' => array( 'attention' => 'Achtung!', diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 3f86cfd19..2a098209f 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -165,6 +165,7 @@ return array( 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', + 'Known' => 'Known based sites', ), 'short' => array( 'attention' => 'Warning!', diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index b5dc098ae..688e6878e 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -165,6 +165,7 @@ return array( 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', + 'Known' => 'Sites basés sur Known', ), 'short' => array( 'attention' => 'Attention !', diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index a9a8709d3..bc4b82c09 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -165,6 +165,7 @@ return array( 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', + 'Known' => 'Siti basati su Known', ), 'short' => array( 'attention' => 'Attenzione!', diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index 83811ce68..a5e793a2b 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -163,8 +163,9 @@ return array( 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', 'wallabag' => 'wallabag v1', - 'wallabagv2' => 'wallabag v2', + 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', + 'Known' => 'Known based sites', ), 'short' => array( 'attention' => 'Attentie!', diff --git a/app/i18n/ru/gen.php b/app/i18n/ru/gen.php index bc42afaa8..47d2993a3 100644 --- a/app/i18n/ru/gen.php +++ b/app/i18n/ru/gen.php @@ -165,6 +165,7 @@ return array( 'twitter' => 'Twitter', 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', + 'Known' => 'Known based sites', ), 'short' => array( 'attention' => 'Warning!', diff --git a/app/i18n/tr/gen.php b/app/i18n/tr/gen.php index bcc839daf..fa7dfc135 100644 --- a/app/i18n/tr/gen.php +++ b/app/i18n/tr/gen.php @@ -165,6 +165,7 @@ return array( 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', + 'Known' => 'Known based sites', ), 'short' => array( 'attention' => 'Tehlike!', diff --git a/data/shares.php b/data/shares.php index 1295a26ac..4db0d36f0 100644 --- a/data/shares.php +++ b/data/shares.php @@ -89,4 +89,10 @@ return array( 'transform' => array('rawurlencode'), 'form' => 'simple', ), + 'Known' => array( + 'url' => '~URL~/share?share_url=~LINK~&share_title=~TITLE~', + 'transform' => array('rawurlencode'), + 'help' => 'https://withknown.com/', + 'form' => 'advanced', + ), ); -- cgit v1.2.3 From 5d78a7a0344ce73ae0a60b163461efabefb2571f Mon Sep 17 00:00:00 2001 From: postblue Date: Sat, 18 Feb 2017 11:20:48 +0100 Subject: Adding locales --- app/i18n/cz/gen.php | 1 + app/i18n/de/gen.php | 1 + app/i18n/en/gen.php | 1 + app/i18n/fr/gen.php | 1 + app/i18n/it/gen.php | 1 + app/i18n/nl/gen.php | 1 + app/i18n/ru/gen.php | 1 + app/i18n/tr/gen.php | 1 + 8 files changed, 8 insertions(+) (limited to 'app/i18n') diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index b98ee0a64..e6aadfc02 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -166,6 +166,7 @@ return array( 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', 'Known' => 'Known based sites', + 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => 'Upozornění!', diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index 9747ec1b8..4b171a04d 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -166,6 +166,7 @@ return array( 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', 'Known' => 'Known based sites', + 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => 'Achtung!', diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 2a098209f..1ee5336bd 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -166,6 +166,7 @@ return array( 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', 'Known' => 'Known based sites', + 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => 'Warning!', diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 688e6878e..43825f798 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -166,6 +166,7 @@ return array( 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', 'Known' => 'Sites basés sur Known', + 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => 'Attention !', diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index bc4b82c09..ec6de84de 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -166,6 +166,7 @@ return array( 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', 'Known' => 'Siti basati su Known', + 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => 'Attenzione!', diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index a5e793a2b..11e82cb4d 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -166,6 +166,7 @@ return array( 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', 'Known' => 'Known based sites', + 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => 'Attentie!', diff --git a/app/i18n/ru/gen.php b/app/i18n/ru/gen.php index 47d2993a3..c913b8720 100644 --- a/app/i18n/ru/gen.php +++ b/app/i18n/ru/gen.php @@ -166,6 +166,7 @@ return array( 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', 'Known' => 'Known based sites', + 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => 'Warning!', diff --git a/app/i18n/tr/gen.php b/app/i18n/tr/gen.php index fa7dfc135..4da0206ec 100644 --- a/app/i18n/tr/gen.php +++ b/app/i18n/tr/gen.php @@ -166,6 +166,7 @@ return array( 'wallabagv2' => 'wallabag v2', 'jdh' => 'Journal du hacker', 'Known' => 'Known based sites', + 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => 'Tehlike!', -- cgit v1.2.3 From fd028c6114ff7d66cf717f9964ae0b9702df46de Mon Sep 17 00:00:00 2001 From: Josh Lefler Date: Tue, 21 Mar 2017 16:32:22 +0000 Subject: Minor changes to english word choice/grammar to improve user experience for english-speaking users. --- app/i18n/en/admin.php | 22 +++++++++++----------- app/i18n/en/conf.php | 20 ++++++++++---------- app/i18n/en/feedback.php | 10 +++++----- app/i18n/en/gen.php | 2 +- app/i18n/en/index.php | 2 +- app/i18n/en/sub.php | 8 ++++---- 6 files changed, 32 insertions(+), 32 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/en/admin.php b/app/i18n/en/admin.php index e94d9fa80..f9761952c 100644 --- a/app/i18n/en/admin.php +++ b/app/i18n/en/admin.php @@ -21,11 +21,11 @@ return array( 'ok' => 'Permissions on cache directory are good.', ), 'categories' => array( - 'nok' => 'Category table is bad configured.', + 'nok' => 'Category table is improperly configured.', 'ok' => 'Category table is ok.', ), 'connection' => array( - 'nok' => 'Connection to the database cannot being established.', + 'nok' => 'Connection to the database cannot be established.', 'ok' => 'Connection to the database is ok.', ), 'ctype' => array( @@ -46,7 +46,7 @@ return array( 'ok' => 'You have the required library to browse the DOM.', ), 'entries' => array( - 'nok' => 'Entry table is bad configured.', + 'nok' => 'Entry table is improperly configured.', 'ok' => 'Entry table is ok.', ), 'favicons' => array( @@ -54,7 +54,7 @@ return array( 'ok' => 'Permissions on favicons directory are good.', ), 'feeds' => array( - 'nok' => 'Feed table is bad configured.', + 'nok' => 'Feed table is improperly configured.', 'ok' => 'Feed table is ok.', ), 'fileinfo' => array( @@ -84,8 +84,8 @@ return array( '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.', + 'nok' => 'There are one or more missing tables in the database.', + 'ok' => 'The appropriate tables exist in the database.', ), 'title' => 'Installation checking', 'tokens' => array( @@ -103,7 +103,7 @@ return array( ), 'extensions' => array( 'disabled' => 'Disabled', - 'empty_list' => 'There is no installed extension', + 'empty_list' => 'There are no installed extensions', 'enabled' => 'Enabled', 'no_configure_view' => 'This extension cannot be configured.', 'system' => array( @@ -138,7 +138,7 @@ return array( 'number_entries' => '%d articles', 'percent_of_total' => '%% of total', 'repartition' => 'Articles repartition', - 'status_favorites' => 'Favourites', + 'status_favorites' => 'Favorites', 'status_read' => 'Read', 'status_total' => 'Total', 'status_unread' => 'Unread', @@ -160,7 +160,7 @@ return array( '_' => 'Update system', 'apply' => 'Apply', 'check' => 'Check for new updates', - 'current_version' => 'Your current version of FreshRSS is the %s.', + 'current_version' => 'Your current version of FreshRSS is %s.', 'last' => 'Last verification: %s', 'none' => 'No update to apply', 'title' => 'Update system', @@ -169,8 +169,8 @@ return array( 'articles_and_size' => '%s articles (%s)', 'create' => 'Create new user', 'language' => 'Language', - 'number' => 'There is %d account created yet', - 'numbers' => 'There are %d accounts created yet', + 'number' => 'There is %d account created', + 'numbers' => 'There are %d accounts created', 'password_form' => 'Password
    (for the Web-form login method)', 'password_format' => 'At least 7 characters', 'title' => 'Manage users', diff --git a/app/i18n/en/conf.php b/app/i18n/en/conf.php index b5ab73510..4c4a003c4 100644 --- a/app/i18n/en/conf.php +++ b/app/i18n/en/conf.php @@ -8,7 +8,7 @@ return array( 'help' => 'More options are available in the individual feed settings', 'keep_history_by_feed' => 'Minimum number of articles to keep by feed', 'optimize' => 'Optimise database', - 'optimize_help' => 'To do occasionally to reduce the size of the database', + 'optimize_help' => 'Do occasionally to reduce the size of the database', 'purge_now' => 'Purge now', 'title' => 'Archiving', 'ttl' => 'Do not automatically refresh more often than', @@ -47,7 +47,7 @@ return array( 'get_favorite' => 'Display favorite articles', 'get_feed' => 'Display "%s" feed', 'no_filter' => 'No filter', - 'none' => 'You haven’t created any user query yet.', + 'none' => 'You haven’t created any user queries yet.', 'number' => 'Query n°%d', 'order_asc' => 'Display oldest articles first', 'order_desc' => 'Display newest articles first', @@ -74,7 +74,7 @@ return array( '_' => 'Profile management', 'delete' => array( '_' => 'Account deletion', - 'warn' => 'Your account and all the related data will be deleted.', + 'warn' => 'Your account and all related data will be deleted.', ), 'password_api' => 'API password
    (e.g., for mobile apps)', 'password_form' => 'Password
    (for the Web-form login method)', @@ -85,13 +85,13 @@ return 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_load_more' => 'Load more articles at the page bottom', 'auto_remove_article' => 'Hide articles after reading', 'mark_updated_article_unread' => 'Mark updated articles as unread', '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)', + 'hide_read_feeds' => 'Hide categories & feeds with no unread articles (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.', @@ -99,7 +99,7 @@ return 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', + 'upon_reception' => 'upon receiving the article', 'when' => 'Mark article as read…', ), 'show' => array( @@ -110,7 +110,7 @@ return array( ), 'sort' => array( '_' => 'Sort order', - 'newer_first' => 'Newer first', + 'newer_first' => 'Newest first', 'older_first' => 'Oldest first', ), 'sticky_post' => 'Stick the article to the top when opened', @@ -142,7 +142,7 @@ return 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.', + 'auto_share_help' => 'If there is only one sharing mode, it is used. Other modes are accessible by their number.', 'close_dropdown' => 'Close menus', 'collapse_article' => 'Collapse', 'first_article' => 'Skip to the first article', @@ -152,7 +152,7 @@ return array( 'last_article' => 'Skip to the last article', 'load_more' => 'Load more articles', 'mark_read' => 'Mark as read', - 'mark_favorite' => 'Mark as favourite', + 'mark_favorite' => 'Mark as favorite', 'navigation' => 'Navigation', 'navigation_help' => 'With the "Shift" modifier, navigation shortcuts apply on feeds.
    With the "Alt" modifier, navigation shortcuts apply on categories.', 'next_article' => 'Skip to the next article', @@ -162,7 +162,7 @@ return array( 'shift_for_all_read' => '+ shift 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_filter_help' => 'If there is only one user filter, it is used. Other filters are accessible by their number.', ), 'user' => array( 'articles_and_size' => '%s articles (%s)', diff --git a/app/i18n/en/feedback.php b/app/i18n/en/feedback.php index e7f6b9f85..67c5fe97d 100644 --- a/app/i18n/en/feedback.php +++ b/app/i18n/en/feedback.php @@ -2,7 +2,7 @@ return array( 'admin' => array( - 'optimization_complete' => 'Optimisation complete', + 'optimization_complete' => 'Optimization complete', ), 'access' => array( 'denied' => 'You don’t have permission to access this page', @@ -39,26 +39,26 @@ return array( 'ok' => '%s is now enabled', ), 'no_access' => 'You have no access on %s', - 'not_enabled' => '%s is not enabled yet', + 'not_enabled' => '%s is not enabled', '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', + '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' => 'Actualise', + 'actualize' => 'Updating', '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_id' => 'You must specify 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!', diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 1ee5336bd..2a5842157 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -2,7 +2,7 @@ return array( 'action' => array( - 'actualize' => 'Actualize', + 'actualize' => 'Updating', 'back_to_rss_feeds' => '← Go back to your RSS feeds', 'cancel' => 'Cancel', 'create' => 'Create', diff --git a/app/i18n/en/index.php b/app/i18n/en/index.php index eb6413e3c..dd07d3ac8 100644 --- a/app/i18n/en/index.php +++ b/app/i18n/en/index.php @@ -21,7 +21,7 @@ return array( 'rss_of' => 'RSS feed of %s', 'title' => 'Your RSS feeds', 'title_global' => 'Global view', - 'title_fav' => 'Your favourites', + 'title_fav' => 'Your favorites', ), 'log' => array( '_' => 'Logs', diff --git a/app/i18n/en/sub.php b/app/i18n/en/sub.php index 789433ee6..6a20f5a69 100644 --- a/app/i18n/en/sub.php +++ b/app/i18n/en/sub.php @@ -10,10 +10,10 @@ return array( 'feed' => array( 'add' => 'Add a RSS feed', 'advanced' => 'Advanced', - 'archiving' => 'Archivage', + 'archiving' => 'Archiving', 'auth' => array( 'configuration' => 'Login', - 'help' => 'Connection allows to access HTTP protected RSS feeds', + 'help' => 'Allows access to HTTP protected RSS feeds', 'http' => 'HTTP Authentication', 'password' => 'HTTP password', 'username' => 'HTTP username', @@ -22,7 +22,7 @@ return array( '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.', + 'error' => 'This feed has encountered a problem. Please verify that it is always reachable then update it.', 'in_main_stream' => 'Show in main stream', 'informations' => 'Information', 'keep_history' => 'Minimum number of articles to keep', @@ -47,7 +47,7 @@ return array( 'file_to_import' => 'File to import
    (OPML, JSON or ZIP)', 'file_to_import_no_zip' => 'File to import
    (OPML or JSON)', 'import' => 'Import', - 'starred_list' => 'List of favourite articles', + 'starred_list' => 'List of favorite articles', 'title' => 'Import / export', ), 'menu' => array( -- cgit v1.2.3 From cae67808fed114d15700e2a9d2f2b556ffc0d63a Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 26 Mar 2017 19:25:17 +0200 Subject: Minor i18n English changes Add credits. Keep British spelling of favourites in the user interface, USA spelling in the code. --- CHANGELOG.md | 2 ++ CREDITS.md | 1 + app/i18n/en/admin.php | 2 +- app/i18n/en/conf.php | 2 +- app/i18n/en/gen.php | 2 +- app/i18n/en/index.php | 6 +++--- 6 files changed, 9 insertions(+), 6 deletions(-) (limited to 'app/i18n') diff --git a/CHANGELOG.md b/CHANGELOG.md index 77c3d6ffc..5d9ffe488 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ ## 2017-xx-xx FreshRSS 1.7.0-dev * Compatibility: * Add support for PHP 7.1 [#1471](https://github.com/FreshRSS/FreshRSS/issues/1471) +* I18n + * Improve English [#1465](https://github.com/FreshRSS/FreshRSS/pull/1465) ## 2017-03-11 FreshRSS 1.6.3 diff --git a/CREDITS.md b/CREDITS.md index 57635669a..c7aa808e3 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -21,6 +21,7 @@ People are sorted by name so please keep this order. * [Guillaume Hayot](https://github.com/postblue): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:postblue), [Web](https://postblue.info/) * [hckweb](https://github.com/hckweb): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=hckweb) * [Jaussoin Timothée](https://github.com/edhelas): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=edhelas), [Web](http://edhelas.movim.eu/) +* [jlefler](https://github.com/jlefler): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:jlefler) * [Julien Reichardt](https://github.com/j8r): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=j8r), [Web](https://blog.jrei.ch/) * [Kevin Papst](https://github.com/kevinpapst): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=kevinpapst), [Web](http://www.kevinpapst.de/) * [Luc Didry](https://github.com/ldidry): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=ldidry), [Web](https://www.fiat-tux.fr/) diff --git a/app/i18n/en/admin.php b/app/i18n/en/admin.php index f9761952c..707627782 100644 --- a/app/i18n/en/admin.php +++ b/app/i18n/en/admin.php @@ -138,7 +138,7 @@ return array( 'number_entries' => '%d articles', 'percent_of_total' => '%% of total', 'repartition' => 'Articles repartition', - 'status_favorites' => 'Favorites', + 'status_favorites' => 'Favourites', 'status_read' => 'Read', 'status_total' => 'Total', 'status_unread' => 'Unread', diff --git a/app/i18n/en/conf.php b/app/i18n/en/conf.php index 4c4a003c4..5810d7c3a 100644 --- a/app/i18n/en/conf.php +++ b/app/i18n/en/conf.php @@ -142,7 +142,7 @@ return array( '_' => 'Shortcuts', 'article_action' => 'Article actions', 'auto_share' => 'Share', - 'auto_share_help' => 'If there is only one sharing mode, it is used. Other modes are accessible by their number.', + 'auto_share_help' => 'If there is only one sharing mode, it is used. Otherwise, modes are accessible by their number.', 'close_dropdown' => 'Close menus', 'collapse_article' => 'Collapse', 'first_article' => 'Skip to the first article', diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 2a5842157..d6ae266b7 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -103,7 +103,7 @@ return array( '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!', + 'confirm_action_feed_cat' => 'Are you sure you want to perform this action? You will lose related favourites 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.', diff --git a/app/i18n/en/index.php b/app/i18n/en/index.php index dd07d3ac8..a4686de4e 100644 --- a/app/i18n/en/index.php +++ b/app/i18n/en/index.php @@ -21,7 +21,7 @@ return array( 'rss_of' => 'RSS feed of %s', 'title' => 'Your RSS feeds', 'title_global' => 'Global view', - 'title_fav' => 'Your favorites', + 'title_fav' => 'Your favourites', ), 'log' => array( '_' => 'Logs', @@ -41,7 +41,7 @@ return array( 'mark_cat_read' => 'Mark category as read', 'mark_feed_read' => 'Mark feed as read', 'newer_first' => 'Newer first', - 'non-starred' => 'Show all but favorites', + 'non-starred' => 'Show all but favourites', 'normal_view' => 'Normal view', 'older_first' => 'Oldest first', 'queries' => 'User queries', @@ -49,7 +49,7 @@ return array( 'reader_view' => 'Reading view', 'rss_view' => 'RSS feed', 'search_short' => 'Search', - 'starred' => 'Show only favorites', + 'starred' => 'Show only favourites', 'stats' => 'Statistics', 'subscription' => 'Subscriptions management', 'unread' => 'Show only unread', -- cgit v1.2.3 From b8cc4a4790cfe157465b7ba6776897674c8d5463 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 26 Mar 2017 19:31:01 +0200 Subject: i18n: A few more favourites --- app/i18n/en/conf.php | 20 ++++++++++---------- app/i18n/en/sub.php | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/en/conf.php b/app/i18n/en/conf.php index 5810d7c3a..7687db1d4 100644 --- a/app/i18n/en/conf.php +++ b/app/i18n/en/conf.php @@ -44,7 +44,7 @@ return array( 'filter' => 'Filter applied:', 'get_all' => 'Display all articles', 'get_category' => 'Display "%s" category', - 'get_favorite' => 'Display favorite articles', + 'get_favorite' => 'Display favourite articles', 'get_feed' => 'Display "%s" feed', 'no_filter' => 'No filter', 'none' => 'You haven’t created any user queries yet.', @@ -56,14 +56,14 @@ return array( '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_4' => 'Display favourite articles', + 'state_5' => 'Display read favourite articles', + 'state_6' => 'Display unread favourite articles', + 'state_7' => 'Display favourite articles', + 'state_8' => 'Display not favourite articles', + 'state_9' => 'Display read not favourite articles', + 'state_10' => 'Display unread not favourite articles', + 'state_11' => 'Display not favourite articles', 'state_12' => 'Display all articles', 'state_13' => 'Display read articles', 'state_14' => 'Display unread articles', @@ -152,7 +152,7 @@ return array( 'last_article' => 'Skip to the last article', 'load_more' => 'Load more articles', 'mark_read' => 'Mark as read', - 'mark_favorite' => 'Mark as favorite', + 'mark_favorite' => 'Mark as favourite', 'navigation' => 'Navigation', 'navigation_help' => 'With the "Shift" modifier, navigation shortcuts apply on feeds.
    With the "Alt" modifier, navigation shortcuts apply on categories.', 'next_article' => 'Skip to the next article', diff --git a/app/i18n/en/sub.php b/app/i18n/en/sub.php index 6a20f5a69..86600e882 100644 --- a/app/i18n/en/sub.php +++ b/app/i18n/en/sub.php @@ -47,7 +47,7 @@ return array( 'file_to_import' => 'File to import
    (OPML, JSON or ZIP)', 'file_to_import_no_zip' => 'File to import
    (OPML or JSON)', 'import' => 'Import', - 'starred_list' => 'List of favorite articles', + 'starred_list' => 'List of favourite articles', 'title' => 'Import / export', ), 'menu' => array( -- cgit v1.2.3 From 8a92bde940442bd58815573f26a7c328070589e8 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 26 Mar 2017 19:33:37 +0200 Subject: i18n English misc. --- app/i18n/en/conf.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/en/conf.php b/app/i18n/en/conf.php index 7687db1d4..8f7b31278 100644 --- a/app/i18n/en/conf.php +++ b/app/i18n/en/conf.php @@ -162,7 +162,7 @@ return array( 'shift_for_all_read' => '+ shift 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. Other filters are accessible by their number.', + 'user_filter_help' => 'If there is only one user filter, it is used. Otherwise, filters are accessible by their number.', ), 'user' => array( 'articles_and_size' => '%s articles (%s)', -- cgit v1.2.3 From 1749a1072a4a0b09bbc535aa279814d74a7bccbf Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 8 Apr 2017 19:47:53 +0200 Subject: Revert i18n en: gen.action.actualize https://github.com/FreshRSS/FreshRSS/pull/1465/files#r109282131 https://github.com/FreshRSS/FreshRSS/pull/1465 https://github.com/FreshRSS/FreshRSS/issues/1464 --- app/i18n/en/gen.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index d6ae266b7..a502e829a 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -2,7 +2,7 @@ return array( 'action' => array( - 'actualize' => 'Updating', + 'actualize' => 'Actualize', 'back_to_rss_feeds' => '← Go back to your RSS feeds', 'cancel' => 'Cancel', 'create' => 'Create', -- cgit v1.2.3 From 67dd80f84250f7e8b1b39693f5fef2ff27ffb85a Mon Sep 17 00:00:00 2001 From: Paulius Šukys Date: Mon, 22 May 2017 09:33:55 +0200 Subject: Added additional configuration setting for #1530 . This includes default settings and translation entry for English --- app/Controllers/configureController.php | 1 + app/Models/ConfigurationSetter.php | 4 ++++ app/i18n/en/conf.php | 1 + app/views/configure/reading.phtml | 10 ++++++++++ app/views/helpers/javascript_vars.phtml | 1 + data/users/_/config.default.php | 1 + p/scripts/main.js | 8 ++++++++ 7 files changed, 26 insertions(+) (limited to 'app/i18n') diff --git a/app/Controllers/configureController.php b/app/Controllers/configureController.php index e73f106a6..155221d19 100755 --- a/app/Controllers/configureController.php +++ b/app/Controllers/configureController.php @@ -109,6 +109,7 @@ class FreshRSS_configure_Controller extends Minz_ActionController { FreshRSS_Context::$user_conf->hide_read_feeds = Minz_Request::param('hide_read_feeds', false); FreshRSS_Context::$user_conf->onread_jump_next = Minz_Request::param('onread_jump_next', false); FreshRSS_Context::$user_conf->lazyload = Minz_Request::param('lazyload', false); + FreshRSS_Context::$user_conf->sides_close_article = Minz_Request::param('sides_close_article', false); FreshRSS_Context::$user_conf->sticky_post = Minz_Request::param('sticky_post', false); FreshRSS_Context::$user_conf->reading_confirm = Minz_Request::param('reading_confirm', false); FreshRSS_Context::$user_conf->auto_remove_article = Minz_Request::param('auto_remove_article', false); diff --git a/app/Models/ConfigurationSetter.php b/app/Models/ConfigurationSetter.php index 046f54955..70e1dea2e 100644 --- a/app/Models/ConfigurationSetter.php +++ b/app/Models/ConfigurationSetter.php @@ -197,6 +197,10 @@ class FreshRSS_ConfigurationSetter { $data['hide_read_feeds'] = $this->handleBool($value); } + private function _sides_close_article(&$data, $value) { + $data['sides_close_article'] = $this->handleBool($value); + } + private function _lazyload(&$data, $value) { $data['lazyload'] = $this->handleBool($value); } diff --git a/app/i18n/en/conf.php b/app/i18n/en/conf.php index b5ab73510..032c5fe4c 100644 --- a/app/i18n/en/conf.php +++ b/app/i18n/en/conf.php @@ -93,6 +93,7 @@ return array( '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', + 'sides_close_article' => 'Clicking outside of article text area closes the article', 'jump_next' => 'jump to next unread sibling (feed or category)', 'number_divided_when_reader' => 'Divided by 2 in the reading view.', 'read' => array( diff --git a/app/views/configure/reading.phtml b/app/views/configure/reading.phtml index 07dabf15f..ebb00c97b 100644 --- a/app/views/configure/reading.phtml +++ b/app/views/configure/reading.phtml @@ -106,6 +106,16 @@
    +
    +
    + +
    +
    +
    diff --git a/cli/_update-or-create-user.php b/cli/_update-or-create-user.php index c7f1008cd..15397f1f6 100644 --- a/cli/_update-or-create-user.php +++ b/cli/_update-or-create-user.php @@ -23,7 +23,8 @@ if (!$isUpdate) { $options = getopt('', $params); if (empty($options['user'])) { - fail('Usage: ' . basename($_SERVER['SCRIPT_FILENAME']) . " --user username ( --password 'password' --api_password 'api_password'" . + fail('Usage: ' . basename($_SERVER['SCRIPT_FILENAME']) . + " --user username ( --password 'password' --api_password 'api_password'" . " --language en --email user@example.net --token 'longRandomString'" . ($isUpdate ? '' : '--no_default_feeds') . " --purge_after_months 3 --feed_min_articles_default 50 --feed_ttl_default 3600" . diff --git a/cli/create-user.php b/cli/create-user.php index add9c1b13..1b6be3153 100755 --- a/cli/create-user.php +++ b/cli/create-user.php @@ -5,7 +5,8 @@ require('_update-or-create-user.php'); $username = $options['user']; if (!FreshRSS_user_Controller::checkUsername($username)) { - fail('FreshRSS error: invalid username “' . $username . '”! Must be matching ' . FreshRSS_user_Controller::USERNAME_PATTERN); + fail('FreshRSS error: invalid username “' . $username . + '”! Must be matching ' . FreshRSS_user_Controller::USERNAME_PATTERN); } $usernames = listUsers(); diff --git a/cli/do-install.php b/cli/do-install.php index 54e3c3d4f..74bbdfcd4 100755 --- a/cli/do-install.php +++ b/cli/do-install.php @@ -81,14 +81,17 @@ if ($requirements['all'] !== 'ok') { } if (!FreshRSS_user_Controller::checkUsername($options['default_user'])) { - fail('FreshRSS error: invalid default username “' . $options['default_user'] . '”! Must be matching ' . FreshRSS_user_Controller::USERNAME_PATTERN); + fail('FreshRSS error: invalid default username “' . $options['default_user'] + . '”! Must be matching ' . FreshRSS_user_Controller::USERNAME_PATTERN); } if (isset($options['auth_type']) && !in_array($options['auth_type'], array('form', 'http_auth', 'none'))) { - fail('FreshRSS invalid authentication method (auth_type must be one of { form, http_auth, none }): ' . $options['auth_type']); + fail('FreshRSS invalid authentication method (auth_type must be one of { form, http_auth, none }): ' + . $options['auth_type']); } -if (file_put_contents(join_path(DATA_PATH, 'config.php'), "default_user !== '' && in_array(FreshRSS_Context::$system_conf->default_user, $users, true)) { +if (FreshRSS_Context::$system_conf->default_user !== '' + && in_array(FreshRSS_Context::$system_conf->default_user, $users, true)) { array_unshift($users, FreshRSS_Context::$system_conf->default_user); $users = array_unique($users); } diff --git a/cli/reconfigure.php b/cli/reconfigure.php index c6902da67..466d35373 100755 --- a/cli/reconfigure.php +++ b/cli/reconfigure.php @@ -51,7 +51,8 @@ if (!FreshRSS_user_Controller::checkUsername($config->default_user)) { } if (isset($config->auth_type) && !in_array($config->auth_type, array('form', 'http_auth', 'none'))) { - fail('FreshRSS invalid authentication method (auth_type must be one of { form, http_auth, none }: ' . $config->auth_type); + fail('FreshRSS invalid authentication method (auth_type must be one of { form, http_auth, none }: ' + . $config->auth_type); } $config->save(); diff --git a/data/shares.php b/data/shares.php index 16e528d14..d73ae3826 100644 --- a/data/shares.php +++ b/data/shares.php @@ -4,7 +4,7 @@ * This is a configuration file. You shouldn't modify it unless you know what * you are doing. If you want to add a share type, this is where you need to do * it. - * + * * For each share there is different configuration options. Here is the description * of those options: * - url is a mandatory option. It is a string representing the share URL. It diff --git a/lib/Minz/ActionController.php b/lib/Minz/ActionController.php index b47c54554..232a4ef9b 100644 --- a/lib/Minz/ActionController.php +++ b/lib/Minz/ActionController.php @@ -1,5 +1,5 @@ */ @@ -24,7 +24,7 @@ class Minz_ActionController { public function view () { return $this->view; } - + /** * Méthodes à redéfinir (ou non) par héritage * firstAction est la première méthode exécutée par le Dispatcher @@ -34,5 +34,3 @@ class Minz_ActionController { public function firstAction () { } public function lastAction () { } } - - diff --git a/lib/Minz/ActionException.php b/lib/Minz/ActionException.php index c566a076f..f1f70c1bc 100644 --- a/lib/Minz/ActionException.php +++ b/lib/Minz/ActionException.php @@ -3,7 +3,7 @@ class Minz_ActionException extends Minz_Exception { public function __construct ($controller_name, $action_name, $code = self::ERROR) { $message = '`' . $action_name . '` cannot be invoked on `' . $controller_name . '`'; - + parent::__construct ($message, $code); } } diff --git a/lib/Minz/Configuration.php b/lib/Minz/Configuration.php index d695d4a53..5470dc85f 100644 --- a/lib/Minz/Configuration.php +++ b/lib/Minz/Configuration.php @@ -104,7 +104,7 @@ class Minz_Configuration { /** * Create a new Minz_Configuration object. - * + * * @param $namespace the name of the current configuration. * @param $config_filename the file containing configuration values. * @param $default_filename the file containing default values, null by default. @@ -145,7 +145,7 @@ class Minz_Configuration { /** * Return the value of the given param. - * + * * @param $key the name of the param. * @param $default default value to return if key does not exist. * @return the value corresponding to the key. diff --git a/lib/Minz/ControllerNotActionControllerException.php b/lib/Minz/ControllerNotActionControllerException.php index 535a1377e..1a8e0729c 100644 --- a/lib/Minz/ControllerNotActionControllerException.php +++ b/lib/Minz/ControllerNotActionControllerException.php @@ -3,7 +3,7 @@ class Minz_ControllerNotActionControllerException extends Minz_Exception { public function __construct ($controller_name, $code = self::ERROR) { $message = 'Controller `' . $controller_name . '` isn\'t instance of ActionController'; - + parent::__construct ($message, $code); } } diff --git a/lib/Minz/ControllerNotExistException.php b/lib/Minz/ControllerNotExistException.php index 523867d11..24a09a635 100644 --- a/lib/Minz/ControllerNotExistException.php +++ b/lib/Minz/ControllerNotExistException.php @@ -3,7 +3,7 @@ class Minz_ControllerNotExistException extends Minz_Exception { public function __construct ($controller_name, $code = self::ERROR) { $message = 'Controller `' . $controller_name . '` doesn\'t exist'; - + parent::__construct ($message, $code); } } diff --git a/lib/Minz/CurrentPagePaginationException.php b/lib/Minz/CurrentPagePaginationException.php index 74214d879..3e3d9d1b4 100644 --- a/lib/Minz/CurrentPagePaginationException.php +++ b/lib/Minz/CurrentPagePaginationException.php @@ -2,7 +2,7 @@ class Minz_CurrentPagePaginationException extends Minz_Exception { public function __construct ($page) { $message = 'Page number `' . $page . '` doesn\'t exist'; - + parent::__construct ($message, self::ERROR); } } diff --git a/lib/Minz/Dispatcher.php b/lib/Minz/Dispatcher.php index 125ce5757..bdb1c76f6 100644 --- a/lib/Minz/Dispatcher.php +++ b/lib/Minz/Dispatcher.php @@ -1,5 +1,5 @@ */ diff --git a/lib/Minz/FileNotExistException.php b/lib/Minz/FileNotExistException.php index f8dfbdf66..f97f161af 100644 --- a/lib/Minz/FileNotExistException.php +++ b/lib/Minz/FileNotExistException.php @@ -2,7 +2,7 @@ class Minz_FileNotExistException extends Minz_Exception { public function __construct ($file_name, $code = self::ERROR) { $message = 'File not found: `' . $file_name.'`'; - + parent::__construct ($message, $code); } } diff --git a/lib/Minz/FrontController.php b/lib/Minz/FrontController.php index 952d983c9..066278b7c 100644 --- a/lib/Minz/FrontController.php +++ b/lib/Minz/FrontController.php @@ -119,12 +119,12 @@ class Minz_FrontController { switch($conf->environment) { case 'production': error_reporting(E_ALL); - ini_set('display_errors','Off'); + ini_set('display_errors', 'Off'); ini_set('log_errors', 'On'); break; case 'development': error_reporting(E_ALL); - ini_set('display_errors','On'); + ini_set('display_errors', 'On'); ini_set('log_errors', 'On'); break; case 'silent': diff --git a/lib/Minz/Helper.php b/lib/Minz/Helper.php index f4a547c4e..c328d9e6b 100644 --- a/lib/Minz/Helper.php +++ b/lib/Minz/Helper.php @@ -1,5 +1,5 @@ */ @@ -13,7 +13,7 @@ class Minz_Helper { * @param $var variable à traiter (tableau ou simple variable) */ public static function stripslashes_r($var) { - if (is_array($var)){ + if (is_array($var)) { return array_map(array('Minz_Helper', 'stripslashes_r'), $var); } else { return stripslashes($var); diff --git a/lib/Minz/Model.php b/lib/Minz/Model.php index adbaba942..1310888cf 100644 --- a/lib/Minz/Model.php +++ b/lib/Minz/Model.php @@ -1,5 +1,5 @@ */ diff --git a/lib/Minz/ModelArray.php b/lib/Minz/ModelArray.php index ff23dbc83..1ac2b313d 100644 --- a/lib/Minz/ModelArray.php +++ b/lib/Minz/ModelArray.php @@ -25,8 +25,7 @@ class Minz_ModelArray { protected function loadArray() { if (!file_exists($this->filename)) { throw new Minz_FileNotExistException($this->filename, Minz_Exception::WARNING); - } - elseif (($handle = $this->getLock()) === false) { + } elseif (($handle = $this->getLock()) === false) { throw new Minz_PermissionDeniedException($this->filename); } else { $data = include($this->filename); diff --git a/lib/Minz/ModelPdo.php b/lib/Minz/ModelPdo.php index caab1d114..d769e0ff4 100644 --- a/lib/Minz/ModelPdo.php +++ b/lib/Minz/ModelPdo.php @@ -39,7 +39,7 @@ class Minz_ModelPdo { if ($currentUser === null) { $currentUser = Minz_Session::param('currentUser'); } - if (self::$useSharedBd && self::$sharedBd != null && + if (self::$useSharedBd && self::$sharedBd != null && ($currentUser == null || $currentUser === self::$sharedCurrentUser)) { $this->bd = self::$sharedBd; $this->prefix = self::$sharedPrefix; diff --git a/lib/Minz/PDOConnectionException.php b/lib/Minz/PDOConnectionException.php index faf2e0fe9..064748708 100644 --- a/lib/Minz/PDOConnectionException.php +++ b/lib/Minz/PDOConnectionException.php @@ -3,7 +3,7 @@ class Minz_PDOConnectionException extends Minz_Exception { public function __construct ($string_connection, $user, $code = self::ERROR) { $message = 'Access to database is denied for `' . $user . '`' . ' (`' . $string_connection . '`)'; - + parent::__construct ($message, $code); } } diff --git a/lib/Minz/Paginator.php b/lib/Minz/Paginator.php index 5858e76a5..795085a30 100644 --- a/lib/Minz/Paginator.php +++ b/lib/Minz/Paginator.php @@ -1,5 +1,5 @@ */ @@ -51,7 +51,7 @@ class Minz_Paginator { */ public function render ($view, $getteur) { $view = APP_PATH . '/views/helpers/'.$view; - + if (file_exists ($view)) { include ($view); } @@ -129,7 +129,7 @@ class Minz_Paginator { $begin = ($this->currentPage - 1) * $this->nbItemsPerPage; $counter = 0; $i = 0; - + foreach ($this->items as $key => $item) { if ($i >= $begin) { $array[$key] = $item; @@ -164,7 +164,7 @@ class Minz_Paginator { if (is_array ($items)) { $this->items = $items; } - + $this->_nbPage (); } public function _nbItemsPerPage ($nbItemsPerPage) { diff --git a/lib/Minz/Translate.php b/lib/Minz/Translate.php index baddcb424..d9cd59f7e 100644 --- a/lib/Minz/Translate.php +++ b/lib/Minz/Translate.php @@ -1,5 +1,5 @@ */ @@ -153,7 +153,7 @@ class Minz_Translate { * @param additional parameters for variable keys. * @return the value corresponding to the key. * If no value is found, return the key itself. - */ + */ public static function t($key) { $group = explode('.', $key); diff --git a/lib/Minz/View.php b/lib/Minz/View.php index 8c5230ab6..d6bf6ea2c 100644 --- a/lib/Minz/View.php +++ b/lib/Minz/View.php @@ -262,5 +262,3 @@ class Minz_View { } } } - - diff --git a/lib/favicons.php b/lib/favicons.php index 48f7c9fda..a7ed966a1 100644 --- a/lib/favicons.php +++ b/lib/favicons.php @@ -16,6 +16,7 @@ function isImgMime($content) { $isImage = strpos(finfo_buffer($fInfo, $content), 'image') !== false; finfo_close($fInfo); } catch (Exception $e) { + echo 'Caught exception: ', $e->getMessage(), "\n"; } return $isImage; } diff --git a/lib/lib_date.php b/lib/lib_date.php index 9533711e3..a3f7efb46 100644 --- a/lib/lib_date.php +++ b/lib/lib_date.php @@ -63,8 +63,7 @@ function _dateCeiling($isoDate) { } function _noDelimit($isoDate) { - return $isoDate === null || $isoDate === '' ? null : - str_replace(array('-', ':'), '', $isoDate); //FIXME: Bug with negative time zone + return $isoDate === null || $isoDate === '' ? null : str_replace(array('-', ':'), '', $isoDate); //FIXME: Bug with negative time zone } function _dateRelative($d1, $d2) { diff --git a/lib/lib_install.php b/lib/lib_install.php index cc0dc3128..7305d8e28 100644 --- a/lib/lib_install.php +++ b/lib/lib_install.php @@ -68,8 +68,7 @@ function checkRequirements($dbType = '') { 'http_referer' => $http_referer ? 'ok' : 'ko', 'message' => $message ?: 'ok', 'all' => $php && $minz && $curl && $pdo && $pcre && $ctype && $dom && $xml && - $data && $cache && $users && $favicons && $http_referer && $message == '' ? - 'ok' : 'ko' + $data && $cache && $users && $favicons && $http_referer && $message == '' ? 'ok' : 'ko' ); } diff --git a/lib/lib_rss.php b/lib/lib_rss.php index dcce8a02c..959cb064c 100644 --- a/lib/lib_rss.php +++ b/lib/lib_rss.php @@ -348,6 +348,7 @@ function get_user_configuration($username) { join_path(FRESHRSS_PATH, 'config-user.default.php')); } catch (Minz_ConfigurationNamespaceException $e) { // namespace already exists, do nothing. + Minz_Log::warning($e->getMessage()); } catch (Minz_FileNotExistException $e) { Minz_Log::warning($e->getMessage()); return null; @@ -366,6 +367,7 @@ function cryptAvailable() { $hash = '$2y$04$usesomesillystringfore7hnbRJHxXVLeakoG8K30oukPsA.ztMG'; return $hash === @crypt('password', $hash); } catch (Exception $e) { + Minz_Log::warning($e->getMessage()); } return false; } diff --git a/p/api/greader.php b/p/api/greader.php index 7f6f0b04f..e5275b3a3 100644 --- a/p/api/greader.php +++ b/p/api/greader.php @@ -94,7 +94,16 @@ function debugInfo() { } } global $ORIGINAL_INPUT; - return print_r(array('date' => date('c'), 'headers' => $ALL_HEADERS, '_SERVER' => $_SERVER, '_GET' => $_GET, '_POST' => $_POST, '_COOKIE' => $_COOKIE, 'INPUT' => $ORIGINAL_INPUT), true); + return print_r( + array( + 'date' => date('c'), + 'headers' => $ALL_HEADERS, + '_SERVER' => $_SERVER, + '_GET' => $_GET, + '_POST' => $_POST, + '_COOKIE' => $_COOKIE, + 'INPUT' => $ORIGINAL_INPUT + ), true); } function badRequest() { @@ -694,8 +703,8 @@ $pathInfo = empty($_SERVER['PATH_INFO']) ? '/Error' : urldecode($_SERVER['PATH_I $pathInfos = explode('/', $pathInfo); Minz_Configuration::register('system', - DATA_PATH . '/config.php', - FRESHRSS_PATH . '/config.default.php'); + DATA_PATH . '/config.php', + FRESHRSS_PATH . '/config.default.php'); FreshRSS_Context::$system_conf = Minz_Configuration::get('system'); if (!FreshRSS_Context::$system_conf->api_enabled) { serviceUnavailable(); @@ -715,24 +724,34 @@ Minz_Session::_param('currentUser', $user); if (count($pathInfos) < 3) { badRequest(); -} -elseif ($pathInfos[1] === 'accounts') { +} elseif ($pathInfos[1] === 'accounts') { if (($pathInfos[2] === 'ClientLogin') && isset($_REQUEST['Email']) && isset($_REQUEST['Passwd'])) { clientLogin($_REQUEST['Email'], $_REQUEST['Passwd']); } -} -elseif ($pathInfos[1] === 'reader' && $pathInfos[2] === 'api' && isset($pathInfos[3]) && $pathInfos[3] === '0' && isset($pathInfos[4])) { +} elseif ($pathInfos[1] === 'reader' && $pathInfos[2] === 'api' && isset($pathInfos[3]) && $pathInfos[3] === '0' && isset($pathInfos[4])) { if ($user == '') { unauthorized(); } $timestamp = isset($_GET['ck']) ? intval($_GET['ck']) : 0; //ck=[unix timestamp] : Use the current Unix time here, helps Google with caching. switch ($pathInfos[4]) { case 'stream': - $exclude_target = isset($_GET['xt']) ? $_GET['xt'] : ''; //xt=[exclude target] : Used to exclude certain items from the feed. For example, using xt=user/-/state/com.google/read will exclude items that the current user has marked as read, or xt=feed/[feedurl] will exclude items from a particular feed (obviously not useful in this request, but xt appears in other listing requests). + /* xt=[exclude target] : Used to exclude certain items from the feed. + * For example, using xt=user/-/state/com.google/read will exclude items + * that the current user has marked as read, or xt=feed/[feedurl] will + * exclude items from a particular feed (obviously not useful in this + * request, but xt appears in other listing requests). */ + $exclude_target = isset($_GET['xt']) ? $_GET['xt'] : ''; $count = isset($_GET['n']) ? intval($_GET['n']) : 20; //n=[integer] : The maximum number of results to return. $order = isset($_GET['r']) ? $_GET['r'] : 'd'; //r=[d|n|o] : Sort order of item results. d or n gives items in descending date order, o in ascending order. - $start_time = isset($_GET['ot']) ? intval($_GET['ot']) : 0; //ot=[unix timestamp] : The time from which you want to retrieve items. Only items that have been crawled by Google Reader after this time will be returned. - $continuation = isset($_GET['c']) ? $_GET['c'] : ''; //Continuation token. If a StreamContents response does not represent all items in a timestamp range, it will have a continuation attribute. The same request can be re-issued with the value of that attribute put in this parameter to get more items + /* ot=[unix timestamp] : The time from which you want to retrieve + * items. Only items that have been crawled by Google Reader after + * this time will be returned. */ + $start_time = isset($_GET['ot']) ? intval($_GET['ot']) : 0; + /* Continuation token. If a StreamContents response does not represent + * all items in a timestamp range, it will have a continuation attribute. + * The same request can be re-issued with the value of that attribute put + * in this parameter to get more items */ + $continuation = isset($_GET['c']) ? $_GET['c'] : ''; if (isset($pathInfos[5]) && $pathInfos[5] === 'contents' && isset($pathInfos[6])) { if (isset($pathInfos[7])) { if ($pathInfos[6] === 'feed') { @@ -757,7 +776,10 @@ elseif ($pathInfos[1] === 'reader' && $pathInfos[2] === 'api' && isset($pathInfo } } elseif ($pathInfos[5] === 'items') { if ($pathInfos[6] === 'ids' && isset($_GET['s'])) { - $streamId = $_GET['s']; //StreamId for which to fetch the item IDs. The parameter may be repeated to fetch the item IDs from multiple streams at once (more efficient from a backend perspective than multiple requests). + /* StreamId for which to fetch the item IDs. The parameter may + * be repeated to fetch the item IDs from multiple streams at once + * (more efficient from a backend perspective than multiple requests). */ + $streamId = $_GET['s']; streamContentsItemsIds($streamId, $start_time, $count, $order, $exclude_target); } } @@ -779,8 +801,12 @@ elseif ($pathInfos[1] === 'reader' && $pathInfos[2] === 'api' && isset($pathInfo break; case 'edit': if (isset($_POST['s']) && isset($_POST['ac'])) { - $streamNames = multiplePosts('s'); //StreamId to operate on. The parameter may be repeated to edit multiple subscriptions at once - $titles = multiplePosts('t'); //Title to use for the subscription. For the `subscribe` action, if not specified then the feed's current title will be used. Can be used with the `edit` action to rename a subscription + //StreamId to operate on. The parameter may be repeated to edit multiple subscriptions at once + $streamNames = multiplePosts('s'); + /* Title to use for the subscription. For the `subscribe` action, + * if not specified then the feed's current title will be used. Can + * be used with the `edit` action to rename a subscription */ + $titles = multiplePosts('t'); $action = $_POST['ac']; //Action to perform on the given StreamId. Possible values are `subscribe`, `unsubscribe` and `edit` $add = isset($_POST['a']) ? $_POST['a'] : ''; //StreamId to add the subscription to (generally a user label) $remove = isset($_POST['r']) ? $_POST['r'] : ''; //StreamId to remove the subscription from (generally a user label) diff --git a/p/api/index.php b/p/api/index.php index 580c90255..08f7b6b7b 100644 --- a/p/api/index.php +++ b/p/api/index.php @@ -22,7 +22,8 @@ echo Minz_Url::display('/api/greader.php', 'html', true); diff --git a/phpcs.xml b/phpcs.xml new file mode 100644 index 000000000..5743466ec --- /dev/null +++ b/phpcs.xml @@ -0,0 +1,100 @@ + + + Created with the PHP Coding Standard Generator. http://edorian.github.com/php-coding-standard-generator/ + + + ./static + ./vendor + ./lib/SimplePie/ + ./lib/http-conditional.php + ./lib/JSON.php + ./lib/lib_phpQuery.php + ./lib/password_compat.php + + + + + + + + + + + + + + + ./app/i18n/ + + ./app/install.php + + ./tests/app/ + + ./app/SQL/install.sql.mysql.php + ./app/SQL/install.sql.pgsql.php + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/app/Models/CategoryTest.php b/tests/app/Models/CategoryTest.php index 2fd153aee..a1edb17b6 100644 --- a/tests/app/Models/CategoryTest.php +++ b/tests/app/Models/CategoryTest.php @@ -20,12 +20,12 @@ class FreshRSS_CategoryTest extends PHPUnit\Framework\TestCase { public function provideValidNames() { return array( - array('', ''), - array('this string does not need trimming', 'this string does not need trimming'), - array(' this string needs trimming on left', 'this string needs trimming on left'), - array('this string needs trimming on right ', 'this string needs trimming on right'), - array(' this string needs trimming on both ends ', 'this string needs trimming on both ends'), - array(str_repeat('This string needs to be shortened because its length is way too long. ', 4), str_repeat('This string needs to be shortened because its length is way too long. ', 3) . 'This string needs to be shortened because its'), + array('', ''), + array('this string does not need trimming', 'this string does not need trimming'), + array(' this string needs trimming on left', 'this string needs trimming on left'), + array('this string needs trimming on right ', 'this string needs trimming on right'), + array(' this string needs trimming on both ends ', 'this string needs trimming on both ends'), + array(str_repeat('This string needs to be shortened because its length is way too long. ', 4), str_repeat('This string needs to be shortened because its length is way too long. ', 3) . 'This string needs to be shortened because its'), ); } diff --git a/tests/app/Models/SearchTest.php b/tests/app/Models/SearchTest.php index 4a7afc6f9..5c0469a48 100644 --- a/tests/app/Models/SearchTest.php +++ b/tests/app/Models/SearchTest.php @@ -28,8 +28,8 @@ class SearchTest extends PHPUnit\Framework\TestCase { */ public function provideEmptyInput() { return array( - array(''), - array(null), + array(''), + array(null), ); } @@ -50,22 +50,22 @@ class SearchTest extends PHPUnit\Framework\TestCase { */ public function provideIntitleSearch() { return array( - array('intitle:word1', array('word1'), null), - array('intitle:word1 word2', array('word1'), array('word2')), - array('intitle:"word1 word2"', array('word1 word2'), null), - array("intitle:'word1 word2'", array('word1 word2'), null), - array('word1 intitle:word2', array('word2'), array('word1')), - array('word1 intitle:word2 word3', array('word2'), array('word1', 'word3')), - array('word1 intitle:"word2 word3"', array('word2 word3'), array('word1')), - array("word1 intitle:'word2 word3'", array('word2 word3'), array('word1')), - array('intitle:word1 intitle:word2', array('word1', 'word2'), null), - array('intitle: word1 word2', array(), array('word1', 'word2')), - array('intitle:123', array('123'), null), - array('intitle:"word1 word2" word3"', array('word1 word2'), array('word3"')), - array("intitle:'word1 word2' word3'", array('word1 word2'), array("word3'")), - array('intitle:"word1 word2\' word3"', array("word1 word2' word3"), null), - array("intitle:'word1 word2\" word3'", array('word1 word2" word3'), null), - array("intitle:word1 'word2 word3' word4", array('word1'), array('word2 word3', 'word4')), + array('intitle:word1', array('word1'), null), + array('intitle:word1 word2', array('word1'), array('word2')), + array('intitle:"word1 word2"', array('word1 word2'), null), + array("intitle:'word1 word2'", array('word1 word2'), null), + array('word1 intitle:word2', array('word2'), array('word1')), + array('word1 intitle:word2 word3', array('word2'), array('word1', 'word3')), + array('word1 intitle:"word2 word3"', array('word2 word3'), array('word1')), + array("word1 intitle:'word2 word3'", array('word2 word3'), array('word1')), + array('intitle:word1 intitle:word2', array('word1', 'word2'), null), + array('intitle: word1 word2', array(), array('word1', 'word2')), + array('intitle:123', array('123'), null), + array('intitle:"word1 word2" word3"', array('word1 word2'), array('word3"')), + array("intitle:'word1 word2' word3'", array('word1 word2'), array("word3'")), + array('intitle:"word1 word2\' word3"', array("word1 word2' word3"), null), + array("intitle:'word1 word2\" word3'", array('word1 word2" word3'), null), + array("intitle:word1 'word2 word3' word4", array('word1'), array('word2 word3', 'word4')), ); } @@ -86,22 +86,22 @@ class SearchTest extends PHPUnit\Framework\TestCase { */ public function provideAuthorSearch() { return array( - array('author:word1', array('word1'), null), - array('author:word1 word2', array('word1'), array('word2')), - array('author:"word1 word2"', array('word1 word2'), null), - array("author:'word1 word2'", array('word1 word2'), null), - array('word1 author:word2', array('word2'), array('word1')), - array('word1 author:word2 word3', array('word2'), array('word1', 'word3')), - array('word1 author:"word2 word3"', array('word2 word3'), array('word1')), - array("word1 author:'word2 word3'", array('word2 word3'), array('word1')), - array('author:word1 author:word2', array('word1', 'word2'), null), - array('author: word1 word2', array(), array('word1', 'word2')), - array('author:123', array('123'), null), - array('author:"word1 word2" word3"', array('word1 word2'), array('word3"')), - array("author:'word1 word2' word3'", array('word1 word2'), array("word3'")), - array('author:"word1 word2\' word3"', array("word1 word2' word3"), null), - array("author:'word1 word2\" word3'", array('word1 word2" word3'), null), - array("author:word1 'word2 word3' word4", array('word1'), array('word2 word3', 'word4')), + array('author:word1', array('word1'), null), + array('author:word1 word2', array('word1'), array('word2')), + array('author:"word1 word2"', array('word1 word2'), null), + array("author:'word1 word2'", array('word1 word2'), null), + array('word1 author:word2', array('word2'), array('word1')), + array('word1 author:word2 word3', array('word2'), array('word1', 'word3')), + array('word1 author:"word2 word3"', array('word2 word3'), array('word1')), + array("word1 author:'word2 word3'", array('word2 word3'), array('word1')), + array('author:word1 author:word2', array('word1', 'word2'), null), + array('author: word1 word2', array(), array('word1', 'word2')), + array('author:123', array('123'), null), + array('author:"word1 word2" word3"', array('word1 word2'), array('word3"')), + array("author:'word1 word2' word3'", array('word1 word2'), array("word3'")), + array('author:"word1 word2\' word3"', array("word1 word2' word3"), null), + array("author:'word1 word2\" word3'", array('word1 word2" word3'), null), + array("author:word1 'word2 word3' word4", array('word1'), array('word2 word3', 'word4')), ); } @@ -122,13 +122,13 @@ class SearchTest extends PHPUnit\Framework\TestCase { */ public function provideInurlSearch() { return array( - array('inurl:word1', array('word1'), null), - array('inurl: word1', array(), array('word1')), - array('inurl:123', array('123'), null), - array('inurl:word1 word2', array('word1'), array('word2')), - array('inurl:"word1 word2"', array('"word1'), array('word2"')), - array('inurl:word1 word2 inurl:word3', array('word1', 'word3'), array('word2')), - array("inurl:word1 'word2 word3' word4", array('word1'), array('word2 word3', 'word4')), + array('inurl:word1', array('word1'), null), + array('inurl: word1', array(), array('word1')), + array('inurl:123', array('123'), null), + array('inurl:word1 word2', array('word1'), array('word2')), + array('inurl:"word1 word2"', array('"word1'), array('word2"')), + array('inurl:word1 word2 inurl:word3', array('word1', 'word3'), array('word2')), + array("inurl:word1 'word2 word3' word4", array('word1'), array('word2 word3', 'word4')), ); } @@ -149,12 +149,12 @@ class SearchTest extends PHPUnit\Framework\TestCase { */ public function provideDateSearch() { return array( - array('date:2007-03-01T13:00:00Z/2008-05-11T15:30:00Z', '1172754000', '1210519800'), - array('date:2007-03-01T13:00:00Z/P1Y2M10DT2H30M', '1172754000', '1210516199'), - array('date:P1Y2M10DT2H30M/2008-05-11T15:30:00Z', '1172757601', '1210519800'), - array('date:2007-03-01/2008-05-11', strtotime('2007-03-01'), strtotime('2008-05-12') - 1), - array('date:2007-03-01/', strtotime('2007-03-01'), ''), - array('date:/2008-05-11', '', strtotime('2008-05-12') - 1), + array('date:2007-03-01T13:00:00Z/2008-05-11T15:30:00Z', '1172754000', '1210519800'), + array('date:2007-03-01T13:00:00Z/P1Y2M10DT2H30M', '1172754000', '1210516199'), + array('date:P1Y2M10DT2H30M/2008-05-11T15:30:00Z', '1172757601', '1210519800'), + array('date:2007-03-01/2008-05-11', strtotime('2007-03-01'), strtotime('2008-05-12') - 1), + array('date:2007-03-01/', strtotime('2007-03-01'), ''), + array('date:/2008-05-11', '', strtotime('2008-05-12') - 1), ); } @@ -175,12 +175,12 @@ class SearchTest extends PHPUnit\Framework\TestCase { */ public function providePubdateSearch() { return array( - array('pubdate:2007-03-01T13:00:00Z/2008-05-11T15:30:00Z', '1172754000', '1210519800'), - array('pubdate:2007-03-01T13:00:00Z/P1Y2M10DT2H30M', '1172754000', '1210516199'), - array('pubdate:P1Y2M10DT2H30M/2008-05-11T15:30:00Z', '1172757601', '1210519800'), - array('pubdate:2007-03-01/2008-05-11', strtotime('2007-03-01'), strtotime('2008-05-12') - 1), - array('pubdate:2007-03-01/', strtotime('2007-03-01'), ''), - array('pubdate:/2008-05-11', '', strtotime('2008-05-12') - 1), + array('pubdate:2007-03-01T13:00:00Z/2008-05-11T15:30:00Z', '1172754000', '1210519800'), + array('pubdate:2007-03-01T13:00:00Z/P1Y2M10DT2H30M', '1172754000', '1210516199'), + array('pubdate:P1Y2M10DT2H30M/2008-05-11T15:30:00Z', '1172757601', '1210519800'), + array('pubdate:2007-03-01/2008-05-11', strtotime('2007-03-01'), strtotime('2008-05-12') - 1), + array('pubdate:2007-03-01/', strtotime('2007-03-01'), ''), + array('pubdate:/2008-05-11', '', strtotime('2008-05-12') - 1), ); } @@ -201,13 +201,13 @@ class SearchTest extends PHPUnit\Framework\TestCase { */ public function provideTagsSearch() { return array( - array('#word1', array('word1'), null), - array('# word1', array(), array('#', 'word1')), - array('#123', array('123'), null), - array('#word1 word2', array('word1'), array('word2')), - array('#"word1 word2"', array('"word1'), array('word2"')), - array('#word1 #word2', array('word1', 'word2'), null), - array("#word1 'word2 word3' word4", array('word1'), array('word2 word3', 'word4')), + array('#word1', array('word1'), null), + array('# word1', array(), array('#', 'word1')), + array('#123', array('123'), null), + array('#word1 word2', array('word1'), array('word2')), + array('#"word1 word2"', array('"word1'), array('word2"')), + array('#word1 #word2', array('word1', 'word2'), null), + array("#word1 'word2 word3' word4", array('word1'), array('word2 word3', 'word4')), ); } @@ -240,54 +240,54 @@ class SearchTest extends PHPUnit\Framework\TestCase { public function provideMultipleSearch() { return array( - array( - 'author:word1 date:2007-03-01/2008-05-11 intitle:word2 inurl:word3 pubdate:2007-03-01/2008-05-11 #word4 #word5', - array('word1'), - strtotime('2007-03-01'), - strtotime('2008-05-12') - 1, - array('word2'), - array('word3'), - strtotime('2007-03-01'), - strtotime('2008-05-12') - 1, - array('word4', 'word5'), - null, - ), - array( - 'word6 intitle:word2 inurl:word3 pubdate:2007-03-01/2008-05-11 #word4 author:word1 #word5 date:2007-03-01/2008-05-11', - array('word1'), - strtotime('2007-03-01'), - strtotime('2008-05-12') - 1, - array('word2'), - array('word3'), - strtotime('2007-03-01'), - strtotime('2008-05-12') - 1, - array('word4', 'word5'), - array('word6'), - ), - array( - 'word6 intitle:word2 inurl:word3 pubdate:2007-03-01/2008-05-11 #word4 author:word1 #word5 word7 date:2007-03-01/2008-05-11', - array('word1'), - strtotime('2007-03-01'), - strtotime('2008-05-12') - 1, - array('word2'), - array('word3'), - strtotime('2007-03-01'), - strtotime('2008-05-12') - 1, - array('word4', 'word5'), - array('word6', 'word7'), - ), - array( - 'word6 intitle:word2 inurl:word3 pubdate:2007-03-01/2008-05-11 #word4 author:word1 #word5 "word7 word8" date:2007-03-01/2008-05-11', - array('word1'), - strtotime('2007-03-01'), - strtotime('2008-05-12') - 1, - array('word2'), - array('word3'), - strtotime('2007-03-01'), - strtotime('2008-05-12') - 1, - array('word4', 'word5'), - array('word7 word8', 'word6'), - ), + array( + 'author:word1 date:2007-03-01/2008-05-11 intitle:word2 inurl:word3 pubdate:2007-03-01/2008-05-11 #word4 #word5', + array('word1'), + strtotime('2007-03-01'), + strtotime('2008-05-12') - 1, + array('word2'), + array('word3'), + strtotime('2007-03-01'), + strtotime('2008-05-12') - 1, + array('word4', 'word5'), + null, + ), + array( + 'word6 intitle:word2 inurl:word3 pubdate:2007-03-01/2008-05-11 #word4 author:word1 #word5 date:2007-03-01/2008-05-11', + array('word1'), + strtotime('2007-03-01'), + strtotime('2008-05-12') - 1, + array('word2'), + array('word3'), + strtotime('2007-03-01'), + strtotime('2008-05-12') - 1, + array('word4', 'word5'), + array('word6'), + ), + array( + 'word6 intitle:word2 inurl:word3 pubdate:2007-03-01/2008-05-11 #word4 author:word1 #word5 word7 date:2007-03-01/2008-05-11', + array('word1'), + strtotime('2007-03-01'), + strtotime('2008-05-12') - 1, + array('word2'), + array('word3'), + strtotime('2007-03-01'), + strtotime('2008-05-12') - 1, + array('word4', 'word5'), + array('word6', 'word7'), + ), + array( + 'word6 intitle:word2 inurl:word3 pubdate:2007-03-01/2008-05-11 #word4 author:word1 #word5 "word7 word8" date:2007-03-01/2008-05-11', + array('word1'), + strtotime('2007-03-01'), + strtotime('2008-05-12') - 1, + array('word2'), + array('word3'), + strtotime('2007-03-01'), + strtotime('2008-05-12') - 1, + array('word4', 'word5'), + array('word7 word8', 'word6'), + ), ); } diff --git a/tests/app/Models/UserQueryTest.php b/tests/app/Models/UserQueryTest.php index 5c12a12fc..1959fd492 100644 --- a/tests/app/Models/UserQueryTest.php +++ b/tests/app/Models/UserQueryTest.php @@ -33,14 +33,14 @@ class UserQueryTest extends PHPUnit\Framework\TestCase { $category_name = 'some category name'; $cat = $this->getMock('FreshRSS_Category'); $cat->expects($this->atLeastOnce()) - ->method('name') - ->withAnyParameters() - ->willReturn($category_name); + ->method('name') + ->withAnyParameters() + ->willReturn($category_name); $cat_dao = $this->getMock('FreshRSS_Searchable'); $cat_dao->expects($this->atLeastOnce()) - ->method('searchById') - ->withAnyParameters() - ->willReturn($cat); + ->method('searchById') + ->withAnyParameters() + ->willReturn($cat); $query = array('get' => 'c_1'); $user_query = new FreshRSS_UserQuery($query, null, $cat_dao); $this->assertEquals($category_name, $user_query->getGetName()); @@ -61,14 +61,14 @@ class UserQueryTest extends PHPUnit\Framework\TestCase { $feed_name = 'some feed name'; $feed = $this->getMock('FreshRSS_Feed', array(), array('', false)); $feed->expects($this->atLeastOnce()) - ->method('name') - ->withAnyParameters() - ->willReturn($feed_name); + ->method('name') + ->withAnyParameters() + ->willReturn($feed_name); $feed_dao = $this->getMock('FreshRSS_Searchable'); $feed_dao->expects($this->atLeastOnce()) - ->method('searchById') - ->withAnyParameters() - ->willReturn($feed); + ->method('searchById') + ->withAnyParameters() + ->willReturn($feed); $query = array('get' => 'f_1'); $user_query = new FreshRSS_UserQuery($query, $feed_dao, null); $this->assertEquals($feed_name, $user_query->getGetName()); @@ -118,12 +118,12 @@ class UserQueryTest extends PHPUnit\Framework\TestCase { public function testToArray_whenData_returnsArray() { $query = array( - 'get' => 's', - 'name' => 'some name', - 'order' => 'some order', - 'search' => 'some search', - 'state' => 'some state', - 'url' => 'some url', + 'get' => 's', + 'name' => 'some name', + 'order' => 'some order', + 'search' => 'some search', + 'state' => 'some state', + 'url' => 'some url', ); $user_query = new FreshRSS_UserQuery($query); $this->assertInternalType('array', $user_query->toArray()); @@ -133,7 +133,7 @@ class UserQueryTest extends PHPUnit\Framework\TestCase { public function testHasSearch_whenSearch_returnsTrue() { $query = array( - 'search' => 'some search', + 'search' => 'some search', ); $user_query = new FreshRSS_UserQuery($query); $this->assertTrue($user_query->hasSearch()); @@ -166,9 +166,9 @@ class UserQueryTest extends PHPUnit\Framework\TestCase { $cat = $this->getMock('FreshRSS_Category'); $cat_dao = $this->getMock('FreshRSS_Searchable'); $cat_dao->expects($this->atLeastOnce()) - ->method('searchById') - ->withAnyParameters() - ->willReturn($cat); + ->method('searchById') + ->withAnyParameters() + ->willReturn($cat); $query = array('get' => 'c_1'); $user_query = new FreshRSS_UserQuery($query, null, $cat_dao); $this->assertFalse($user_query->isDeprecated()); @@ -177,9 +177,9 @@ class UserQueryTest extends PHPUnit\Framework\TestCase { public function testIsDeprecated_whenCategoryDoesNotExist_returnTrue() { $cat_dao = $this->getMock('FreshRSS_Searchable'); $cat_dao->expects($this->atLeastOnce()) - ->method('searchById') - ->withAnyParameters() - ->willReturn(null); + ->method('searchById') + ->withAnyParameters() + ->willReturn(null); $query = array('get' => 'c_1'); $user_query = new FreshRSS_UserQuery($query, null, $cat_dao); $this->assertTrue($user_query->isDeprecated()); @@ -189,9 +189,9 @@ class UserQueryTest extends PHPUnit\Framework\TestCase { $feed = $this->getMock('FreshRSS_Feed', array(), array('', false)); $feed_dao = $this->getMock('FreshRSS_Searchable'); $feed_dao->expects($this->atLeastOnce()) - ->method('searchById') - ->withAnyParameters() - ->willReturn($feed); + ->method('searchById') + ->withAnyParameters() + ->willReturn($feed); $query = array('get' => 'f_1'); $user_query = new FreshRSS_UserQuery($query, $feed_dao, null); $this->assertFalse($user_query->isDeprecated()); @@ -200,9 +200,9 @@ class UserQueryTest extends PHPUnit\Framework\TestCase { public function testIsDeprecated_whenFeedDoesNotExist_returnTrue() { $feed_dao = $this->getMock('FreshRSS_Searchable'); $feed_dao->expects($this->atLeastOnce()) - ->method('searchById') - ->withAnyParameters() - ->willReturn(null); + ->method('searchById') + ->withAnyParameters() + ->willReturn(null); $query = array('get' => 'f_1'); $user_query = new FreshRSS_UserQuery($query, $feed_dao, null); $this->assertTrue($user_query->isDeprecated()); diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 24340b15c..896929649 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -4,4 +4,4 @@ error_reporting(E_ALL); ini_set('display_errors', 1); require('../constants.php'); -require(LIB_PATH . '/lib_rss.php'); //Includes class autoloader \ No newline at end of file +require(LIB_PATH . '/lib_rss.php'); //Includes class autoloader -- cgit v1.2.3 From cb5d6997a34b9489282275af6d325e14b7a1d192 Mon Sep 17 00:00:00 2001 From: Ramón Cutanda Date: Fri, 22 Sep 2017 07:41:59 -0600 Subject: Spanish language (#1631) Based on the informal style spoken in Spain --- app/i18n/es/admin.php | 181 +++++++++++++++++++++++++++++++++++++++++++++ app/i18n/es/conf.php | 174 ++++++++++++++++++++++++++++++++++++++++++++ app/i18n/es/feedback.php | 109 +++++++++++++++++++++++++++ app/i18n/es/gen.php | 186 +++++++++++++++++++++++++++++++++++++++++++++++ app/i18n/es/index.php | 61 ++++++++++++++++ app/i18n/es/install.php | 119 ++++++++++++++++++++++++++++++ app/i18n/es/sub.php | 62 ++++++++++++++++ 7 files changed, 892 insertions(+) create mode 100755 app/i18n/es/admin.php create mode 100755 app/i18n/es/conf.php create mode 100755 app/i18n/es/feedback.php create mode 100755 app/i18n/es/gen.php create mode 100755 app/i18n/es/index.php create mode 100755 app/i18n/es/install.php create mode 100755 app/i18n/es/sub.php (limited to 'app/i18n') diff --git a/app/i18n/es/admin.php b/app/i18n/es/admin.php new file mode 100755 index 000000000..c9d9368eb --- /dev/null +++ b/app/i18n/es/admin.php @@ -0,0 +1,181 @@ + array( + 'allow_anonymous' => 'Permitir la lectura anónima de los artículos del usuario por defecto (%s)', + 'allow_anonymous_refresh' => 'Permitir la actualización anónima de los artículos', + 'api_enabled' => 'Concederle acceso a la API (necesario para apps de móvil)', + 'form' => 'Formulario Web (el más habitual, requiere JavaScript)', + 'http' => 'HTTP (para usuarios avanzados con HTTPS)', + 'none' => 'Ninguno (peligroso)', + 'title' => 'Identificación', + 'title_reset' => 'Reinicio de la identificación', + 'token' => 'Clave de identificación', + 'token_help' => 'Permite el acceso a la salida RSS del usuario por defecto sin necesidad de identificación:', + 'type' => 'Método de identificación', + 'unsafe_autologin' => 'Permite la identificación automática insegura usando el formato: ', + ), + 'check_install' => array( + 'cache' => array( + 'nok' => 'Comprueba los permisos en el directorio ./data/cache . El servidor HTTP debe contar con permiso de escritura', + 'ok' => 'Los permisos en el cache son correctos.', + ), + 'categories' => array( + 'nok' => 'La tabla Categorías está configurada de forma incorrecta.', + 'ok' => 'La tabla Categorías está correcta.', + ), + 'connection' => array( + 'nok' => 'No se pudo establecer una conexión con la base de datos.', + 'ok' => 'La conexión con la base de datos es correcta.', + ), + 'ctype' => array( + 'nok' => 'No se puedo encontrar la librería necesaria para compropbar el tipo de caracteres (php-ctype).', + 'ok' => 'Dispones de la librería necesaria para la verificación del tipo de caracteres (ctype).', + ), + 'curl' => array( + 'nok' => 'No se pudo encontrar la librería cURL (paquete php-curl).', + 'ok' => 'Dispones de la librería cURL.', + ), + 'data' => array( + 'nok' => 'Comprueba los permisos en el directorio ./data. El servidor HTTP debe contar con permisos de escritura.', + 'ok' => 'Los permisos en el directorio data son correctos.', + ), + 'database' => 'Instalación de la base de datos', + 'dom' => array( + 'nok' => 'No se ha podido localizar la librería necesaria para explorar el DOM (paquete php-xml).', + 'ok' => 'Dispones de la librería necesaria para explorar el DOM.', + ), + 'entries' => array( + 'nok' => 'La tabla de entrada no está configurada correctamente.', + 'ok' => 'La tabla de entrada está correcta.', + ), + 'favicons' => array( + 'nok' => 'Comprueba los permisos en el directorio ./data/favicons. El servidor HTTP debe contar con permisos de escritura.', + 'ok' => 'Los permisos en el directorio favicons son correctos.', + ), + 'feeds' => array( + 'nok' => 'La tabla Feed está configurada de forma incorrecta.', + 'ok' => 'La tabla Feed está correcta.', + ), + 'fileinfo' => array( + 'nok' => 'No se ha podido localizar la librería PHP fileinfo (paquete fileinfo).', + 'ok' => 'Dispones de la librería fileinfo.', + ), + 'files' => 'Instalación de Archivos', + 'json' => array( + 'nok' => 'No se ha podido localizar JSON (paquete php5-json).', + 'ok' => 'Dispones de la extensión JSON.', + ), + 'minz' => array( + 'nok' => 'No se ha podido localizar el entorno Minz.', + 'ok' => 'Dispones del entorno Minz.', + ), + 'pcre' => array( + 'nok' => 'No se ha podido localizar la librería para las expresiones regulares (php-pcre).', + 'ok' => 'Dispones de la librería necesaria para expresiones regulares (PCRE).', + ), + 'pdo' => array( + 'nok' => 'No se ha podido localiar PDO o uno de los controladores compatibles (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'Dispones de PDO y, al menos, de uno de los controladores compatibles (pdo_mysql, pdo_sqlite, pdo_pgsql).', + ), + 'php' => array( + '_' => 'Instalación PHP', + 'nok' => 'Dispones de la versión PHP %s pero FreshRSS requiere de, al menos, la versión %s.', + 'ok' => 'Dispones de la versión PHP %s, que es compatible con FreshRSS.', + ), + 'tables' => array( + 'nok' => 'Falta al menos una tabla en la base de datos.', + 'ok' => 'Todas las tablas necesarias están disponibles en la base de datos.', + ), + 'title' => 'Verificación de instalación', + 'tokens' => array( + 'nok' => 'Comprueba los permisos en el directorio ./data/tokens. El servidor HTTP debe contar con permisos de escritura.', + 'ok' => 'Los permisos en el directorio de tokens de identificación son correctos.', + ), + 'users' => array( + 'nok' => 'Comprueba los permisos en el directorio ./data/users. El servidor HTTP debe contar con permisos de escritura.', + 'ok' => 'Los permisos en el directorio users son correctos.', + ), + 'zip' => array( + 'nok' => 'No se ha podido localizar la extensión ZIP (paquete php-zip).', + 'ok' => 'Dispones de la extensión ZIP.', + ), + ), + 'extensions' => array( + 'disabled' => 'Desactivado', + 'empty_list' => 'No hay extensiones instaladas', + 'enabled' => 'Activado', + 'no_configure_view' => 'Esta extensión no puede ser configurada.', + 'system' => array( + '_' => 'Sistema de extensiones', + 'no_rights' => 'Sistema de extensiones (careces de los permisos necesarios)', + ), + 'title' => 'Extensiones', + 'user' => 'Extensiones de usuario', + ), + 'stats' => array( + '_' => 'Estadísticas', + 'all_feeds' => 'Todas las fuentes', + 'category' => 'Categoría', + 'entry_count' => 'Cómputo total', + 'entry_per_category' => 'Entradas por categoría', + 'entry_per_day' => 'Entradas por día (últimos 30 días)', + 'entry_per_day_of_week' => 'Por día de la semana (mnedia: %.2f mensajes)', + 'entry_per_hour' => 'Por hora (media: %.2f mensajes)', + 'entry_per_month' => 'Por mes (media: %.2f mensajes)', + 'entry_repartition' => 'Reparto de entradas', + 'feed' => 'Fuente', + 'feed_per_category' => 'Fuentes por categoría', + 'idle' => 'Fuentes inactivas', + 'main' => 'Estadísticas principales', + 'main_stream' => 'Salida principal', + 'menu' => array( + 'idle' => 'Fuentes inactivas', + 'main' => 'Estadísticas principañes', + 'repartition' => 'Reparto de artículos', + ), + 'no_idle' => 'No hay fuentes inactivas', + 'number_entries' => '%d artículos', + 'percent_of_total' => '%% del total', + 'repartition' => 'Reprto de artículos', + 'status_favorites' => 'Favoritos', + 'status_read' => 'Leídos', + 'status_total' => 'Total', + 'status_unread' => 'Pendientes', + 'title' => 'Estadísticas', + 'top_feed' => 'Las 10 fuentes más activas', + ), + 'system' => array( + '_' => 'Configuración del sistema', + 'auto-update-url' => 'URL de auto-actualización', + 'instance-name' => 'Nombre de la fuente', + 'max-categories' => 'Límite de categorías por usuario', + 'max-feeds' => 'Límite de fuentes por usuario', + 'registration' => array( + 'help' => '0 significa que no hay límite en la cuenta', + 'number' => 'Número máximo de cuentas', + ), + ), + 'update' => array( + '_' => 'Actualizar sistema', + 'apply' => 'Aplicar', + 'check' => 'Buscar actualizaciones', + 'current_version' => 'Dispones de la versión %s de FreshRSS.', + 'last' => 'Última comprobación: %s', + 'none' => 'No hay actualizaciones disponibles', + 'title' => 'Actualizar sistema', + ), + 'user' => array( + 'articles_and_size' => '%s articles (%s)', + 'create' => 'Crear nuevo usuario', + 'language' => 'Idioma', + 'number' => 'Hay %d cuenta creada', + 'numbers' => 'Hay %d cuentas creadas', + 'password_form' => 'Contraseña
    (para el método de identificación por formulario web)', + 'password_format' => 'Mínimo de 7 caracteres', + 'title' => 'Administrar usuarios', + 'user_list' => 'Lista de usuarios', + 'username' => 'Nombre de usuario', + 'users' => 'Usuarios', + ), +); diff --git a/app/i18n/es/conf.php b/app/i18n/es/conf.php new file mode 100755 index 000000000..1ccd76b2e --- /dev/null +++ b/app/i18n/es/conf.php @@ -0,0 +1,174 @@ + array( + '_' => 'Archivo', + 'advanced' => 'Avanzado', + 'delete_after' => 'Eliminar artículos tras', + 'help' => 'Hay más opciones disponibles en los ajustes de la fuente', + 'keep_history_by_feed' => 'Número mínimo de artículos a conservar por fuente', + 'optimize' => 'Optimizar la base de datos', + 'optimize_help' => 'Ejecuta la optimización de vez en cuando para reducir el tamaño de la base de datos', + 'purge_now' => 'Limpiar ahora', + 'title' => 'Archivo', + 'ttl' => 'No actualizar automáticamente más de', + ), + 'display' => array( + '_' => 'Visualización', + 'icon' => array( + 'bottom_line' => 'Línea inferior', + 'entry' => 'Iconos de artículos', + 'publication_date' => 'Fecha de publicación', + 'related_tags' => 'Etiquetas relacionadas', + 'sharing' => 'Compartir', + 'top_line' => 'Línea superior', + ), + 'language' => 'Idioma', + 'notif_html5' => array( + 'seconds' => 'segundos (0 significa sin límite de espera)', + 'timeout' => 'Notificación de fin de espera HTML5', + ), + 'theme' => 'Tema', + 'title' => 'Visualización', + 'width' => array( + 'content' => 'Ancho de contenido', + 'large' => 'Grande', + 'medium' => 'Mediano', + 'no_limit' => 'Sin límite', + 'thin' => 'Estrecho', + ), + ), + 'query' => array( + '_' => 'Consultas de usuario', + 'deprecated' => 'Esta consulta ya no es válida. La categoría referenciada o fuente ha sido eliminada.', + 'filter' => 'Filtro aplicado:', + 'get_all' => 'Mostrar todos los artículos', + 'get_category' => 'Mostrar la categoría "%s"', + 'get_favorite' => 'Mostrar artículos favoritos', + 'get_feed' => 'Mostrar fuente "%s"', + 'no_filter' => 'Sin filtro', + 'none' => 'Todavía no has creado ninguna consulta de usuario.', + 'number' => 'Consulta n° %d', + 'order_asc' => 'Mostrar primero los artículos más antiguos', + 'order_desc' => 'Mostrar primero los artículos más recientes', + 'search' => 'Buscar "%s"', + 'state_0' => 'Mostrar todos los artículos', + 'state_1' => 'Mostrar artículos leídos', + 'state_2' => 'Mostrar artículos pendientes', + 'state_3' => 'Mostrar todos los artículos', + 'state_4' => 'Mostrar artículos favoritos', + 'state_5' => 'Mostrar artículos favoritos leídos', + 'state_6' => 'Mostrar artículos favoritos pendientes', + 'state_7' => 'Mostrar artículos favoritos', + 'state_8' => 'Mostrar artículos no favoritos', + 'state_9' => 'Mostrar artículos no favoritos leídos', + 'state_10' => 'Mostrar artículos no favoritos pendientes', + 'state_11' => 'Mostrar artículos no favoritos', + 'state_12' => 'Mostrar todos los artículos', + 'state_13' => 'Mostrar artículos leídos', + 'state_14' => 'Mostrar artículos sin leer', + 'state_15' => 'Mostrar todos los artículos', + 'title' => 'Consultas de usuario', + ), + 'profile' => array( + '_' => 'Administración de perfiles', + 'delete' => array( + '_' => 'Borrar cuenta', + 'warn' => 'Tu cuenta y todos los datos asociados serán eliminados.', + ), + 'password_api' => 'Contraseña API
    (para apps móviles, por ej.)', + 'password_form' => 'Contraseña
    (para el método de identificación por formulario web)', + 'password_format' => 'Mínimo de 7 caracteres', + 'title' => 'Perfil', + ), + 'reading' => array( + '_' => 'Lectura', + 'after_onread' => 'Tras “marcar todo como leído”,', + 'articles_per_page' => 'Número de artículos por página', + 'auto_load_more' => 'Cargar más artículos al final de la página', + 'auto_remove_article' => 'Ocultar artículos tras la lectura', + 'mark_updated_article_unread' => 'Marcar artículos actualizados como no leídos', + 'confirm_enabled' => 'Mostrar ventana de confirmación al usar la función “marcar todos como leídos”', + 'display_articles_unfolded' => 'Mostrar los artículos sin expandir por defecto', + 'display_categories_unfolded' => 'Mostrar categorías expandidas por defecto', + 'hide_read_feeds' => 'Ocultar categorías & fuentes sin artículos no leídos (no funciona con la configuración "Mostrar todos los artículos")', + 'img_with_lazyload' => 'Usar el modo de "carga perezosa" para las imágenes', + 'sides_close_article' => 'Pinchar fuera del área de texto del artículo lo cerrará', + 'jump_next' => 'saltar al siguiente archivo sin leer emparentado (fuente o categoría)', + 'number_divided_when_reader' => 'Dividido en 2 en la vista de lectura.', + 'read' => array( + 'article_open_on_website' => 'cuando el artículo se abra en su web original', + 'article_viewed' => 'cuando se muestre el artículo', + 'scroll' => 'durante el desplazamiento', + 'upon_reception' => 'al recibir el artículo', + 'when' => 'Marcar el artículo como leído…', + ), + 'show' => array( + '_' => 'Artículos a mostrar', + 'adaptive' => 'Ajustar la visualización', + 'all_articles' => 'Mostrar todos los artículos', + 'unread' => 'Mostrar solo pendientes', + ), + 'sort' => array( + '_' => 'Orden', + 'newer_first' => 'Nuevos primero', + 'older_first' => 'Antiguos primero', + ), + 'sticky_post' => 'Pegar el artículo a la parte superior al abrirlo', + 'title' => 'Lectura', + 'view' => array( + 'default' => 'Vista por defecto', + 'global' => 'Vista Global', + 'normal' => 'Vista Normal', + 'reader' => 'Vista de Lectura', + ), + ), + 'sharing' => array( + '_' => 'Compartir', + 'blogotext' => 'Blogotext', + 'diaspora' => 'Diaspora*', + 'email' => 'Email', + 'facebook' => 'Facebook', + 'g+' => 'Google+', + 'more_information' => 'Más información', + 'print' => 'Print', + 'shaarli' => 'Shaarli', + 'share_name' => 'Compartir nombre a mostrar', + 'share_url' => 'Compatir URL a usar', + 'title' => 'Compartir', + 'twitter' => 'Twitter', + 'wallabag' => 'wallabag', + ), + 'shortcut' => array( + '_' => 'Atajos de teclado', + 'article_action' => 'Acciones de artículo', + 'auto_share' => 'Compartir', + 'auto_share_help' => 'Si solo hay un modo para compartir, ese será el que se use. En caso contrario los modos quedarán accesibles por su numeración.', + 'close_dropdown' => 'Cerrar menús', + 'collapse_article' => 'Contraer', + 'first_article' => 'Saltar al primer artículo', + 'focus_search' => 'Acceso a la casilla de búsqueda', + 'help' => 'Mostrar documentación', + 'javascript' => 'JavaScript debe estar activado para poder usar atajos de teclado', + 'last_article' => 'Saltar al último artículo', + 'load_more' => 'Cargar más artículos', + 'mark_read' => 'Marcar como leído', + 'mark_favorite' => 'Marcar como favorito', + 'navigation' => 'Navegación', + 'navigation_help' => 'Con el modificador "Mayúsculas" es posible usar los atajos de teclado en las fuentes.
    Con el modificador "Alt" es posible aplicar los atajos de teclado en las categorías.', + 'next_article' => 'Saltar al siguiente artículo', + 'other_action' => 'Otras acciones', + 'previous_article' => 'Saltar al artículo anterior', + 'see_on_website' => 'Ver en la web original', + 'shift_for_all_read' => '+ mayúsculas para marcar todos los artículos como leídos', + 'title' => 'Atajos de teclado', + 'user_filter' => 'Acceso a filtros de usuario', + 'user_filter_help' => 'Si solo hay un filtro de usuario, ese será el que se use. En caso contrario, los filtros están accesibles por su númeración.', + ), + 'user' => array( + 'articles_and_size' => '%s artículos (%s)', + 'current' => 'Usuario actual', + 'is_admin' => 'es administrador', + 'users' => 'Usuarios', + ), +); diff --git a/app/i18n/es/feedback.php b/app/i18n/es/feedback.php new file mode 100755 index 000000000..136e70179 --- /dev/null +++ b/app/i18n/es/feedback.php @@ -0,0 +1,109 @@ + array( + 'optimization_complete' => 'Optimimización completada', + ), + 'access' => array( + 'denied' => 'No dispones de permiso para acceder a esta página', + 'not_found' => 'La página que buscas no existe', + ), + 'auth' => array( + 'form' => array( + 'not_set' => 'Hubo un problema durante la configuración del sistema de idenfificación. Por favor, inténtalo más tarde.', + 'set' => 'El formulario será desde ahora tu sistema de identificación por defecto.', + ), + 'login' => array( + 'invalid' => 'Identificación incorrecta', + 'success' => 'Conexión', + ), + 'logout' => array( + 'success' => 'Desconexión', + ), + 'no_password_set' => 'Esta opción no está disponible porque no se ha definido una contraseña de administrador.', + ), + 'conf' => array( + 'error' => 'Hubo un error durante el guardado de la configuración.', + 'query_created' => 'Se ha creado la petición "%s".', + 'shortcuts_updated' => 'Se han actualizado los atajos de teclado', + 'updated' => 'Se ha actualizado la configuración', + ), + 'extensions' => array( + 'already_enabled' => '%s ya está activado', + 'disable' => array( + 'ko' => '%s no se puede desactivar. Revisa el registro de FressRSS para más información.', + 'ok' => '%s ha quedado desactivado', + ), + 'enable' => array( + 'ko' => '%s no se puede activar. Revisa el registro de FressRSS para más información.', + 'ok' => '%s ha quedado activado', + ), + 'no_access' => 'No tienes acceso a %s', + 'not_enabled' => '%s no está activado', + 'not_found' => '%s no existe', + ), + 'import_export' => array( + 'export_no_zip_extension' => 'La extensión ZIP no está disponible en tu servidor. Por favor, exporta estos archivos uno a uno.', + 'feeds_imported' => 'Se han importado tus fuentes y quedarán actualizadas', + 'feeds_imported_with_errors' => 'Se importaron tus fuentes; pero hubo algunos errores', + 'file_cannot_be_uploaded' => 'No es posible enviar el archivo', + 'no_zip_extension' => 'La extensión ZIP no está disponible en tu servidor.', + 'zip_error' => 'Hubo un error durante la importación ZIP.', + ), + 'sub' => array( + 'actualize' => 'Actualización', + 'category' => array( + 'created' => 'Se ha creado la categoría %s.', + 'deleted' => 'Se ha eliminado la categoría.', + 'emptied' => 'Se ha vaciado la categoría', + 'error' => 'No es posible actualizar la categoría', + 'name_exists' => 'Ya existe una categoría con ese nombre.', + 'no_id' => 'Debes especificar la id de la categoría.', + 'no_name' => '¡El nombre de la categoría no puede dejarse en blanco!.', + 'not_delete_default' => '¡No puedes borrar la categoría por defecto!', + 'not_exist' => 'La categoría no existe', + 'over_max' => 'Has alcanzado el límite de categorías (%d)', + 'updated' => 'La categoría se ha actualizado.', + ), + 'feed' => array( + 'actualized' => '%s ha sido actualizada', + 'actualizeds' => 'Las fuentes RSS se han actualizado', + 'added' => 'Fuente RSS agregada %s', + 'already_subscribed' => 'Ya estás suscrito a %s', + 'deleted' => 'Fuente eliminada', + 'error' => 'No es posible actualizar la fuente', + 'internal_problem' => 'No ha sido posible agregar la fuente RSS. Revisa el registro de FressRSS para más información.', + 'invalid_url' => 'La URL %s es inválida', + 'marked_read' => 'Fuentes marcadas como leídas', + 'n_actualized' => 'Se han actualiado %d fuentes', + 'n_entries_deleted' => 'Se han eliminado %d artículos', + 'no_refresh' => 'No hay fuente a actualizar…', + 'not_added' => '%s no ha podido se añadida', + 'over_max' => 'Has alcanzado tu límite de fuentes (%d)', + 'updated' => 'Fuente actualizada', + ), + 'purge_completed' => 'Limpieza completada (se han eliminado %d artículos)', + ), + 'update' => array( + 'can_apply' => 'FreshRSS se va a actualizar a la versión %s.', + 'error' => 'Hubo un error durante el proceso de actualización: %s', + 'file_is_nok' => 'Disponible la nueva versión %s. Sin embargo, debes revisar los permisos en el directorio %s. El servidor HTTP debe contar con permisos de escritura', + 'finished' => '¡Actualización completada!', + 'none' => 'No hay actualizaciones para procesar', + 'server_not_found' => 'No se ha podido conectar con el servidor de actualizaciones. [%s]', + ), + 'user' => array( + 'created' => array( + '_' => 'Se ha creado el usuario %s', + 'error' => 'No se ha podido crear al usuario %s', + ), + 'deleted' => array( + '_' => 'El usuario %s ha sido eliminado', + 'error' => 'El usuario %s no ha podido ser eliminado', + ), + ), + 'profile' => array( + 'error' => 'Tu perfil no puede ser modificado', + 'updated' => 'Tu perfil ha sido modificado', + ), +); diff --git a/app/i18n/es/gen.php b/app/i18n/es/gen.php new file mode 100755 index 000000000..41c591e1c --- /dev/null +++ b/app/i18n/es/gen.php @@ -0,0 +1,186 @@ + array( + 'actualize' => 'Actualizar', + 'back_to_rss_feeds' => '← regresar a tus fuentes RSS', + 'cancel' => 'Cancelar', + 'create' => 'Crear', + 'disable' => 'Desactivar', + 'empty' => 'Vaciar', + 'enable' => 'Activar', + 'export' => 'Exportar', + 'filter' => 'Filtrar', + 'import' => 'Importar', + 'manage' => 'Administrar', + 'mark_read' => 'Marcar como leído', + 'mark_favorite' => 'Marcar como favorita', + 'remove' => 'Borrar', + 'see_website' => 'Ver web', + 'submit' => 'Enviar', + 'truncate' => 'Borrar todos los artículos', + ), + 'auth' => array( + 'email' => 'Correo electrónico', + 'keep_logged_in' => 'Mantenerme identificado (%s días)', + 'login' => 'Conectar', + 'logout' => 'Desconectar', + 'password' => array( + '_' => 'Contraseña', + 'format' => 'Mínimo de 7 caracteres', + ), + 'registration' => array( + '_' => 'Nueva cuenta', + 'ask' => '¿Crear una cuenta?', + 'title' => 'Creación de cuenta', + ), + 'reset' => 'Reinicar identificación', + 'username' => array( + '_' => 'Nombre de usuario', + 'admin' => 'Nombre de usuario del Administrador', + 'format' => 'máximo 16 caracteres alfanuméricos', + ), + ), + 'date' => array( + 'Apr' => '\\A\\b\\r\\i\\l', + 'Aug' => '\\A\\g\\o\\s\\t\\o', + 'Dec' => '\\D\\i\\c\\i\\e\\m\\b\\r\\e', + 'Feb' => '\\F\\e\\b\\r\\e\\r\\o', + 'Jan' => '\\E\\n\\e\\r\\o', + 'Jul' => '\\J\\u\\l\\i\\o', + 'Jun' => '\\J\\u\\n\\i\\o', + 'Mar' => '\\M\\a\\r\\z\\o', + 'May' => '\\M\\a\\y\\o', + 'Nov' => '\\N\\o\\v\\i\\e\\m\\b\\r\\e', + 'Oct' => '\\O\\c\\t\\u\\b\\r\\e', + 'Sep' => '\\S\\e\\p\\t\\i\\e\\m\\b\\r\\e', + 'apr' => 'abr', + 'april' => 'Abr', + 'aug' => 'ago', + 'august' => 'Ago', + 'before_yesterday' => 'Anteayer', + 'dec' => 'dic', + 'december' => 'Dic', + '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' => 'Vie', + 'jan' => 'ene', + 'january' => 'Ene', + 'jul' => 'jul', + 'july' => 'Jul', + 'jun' => 'jun', + 'june' => 'Jun', + 'last_3_month' => 'Últimos tres meses', + 'last_6_month' => 'Últimos seis meses', + 'last_month' => 'Mes pasado', + 'last_week' => 'Semana pasada', + 'last_year' => 'Año pasado', + 'mar' => 'mar', + 'march' => 'Mar', + 'may' => 'May', + 'mon' => 'Lun', + 'month' => 'meses', + 'nov' => 'nov', + 'november' => 'Nov', + 'oct' => 'oct', + 'october' => 'Oct', + 'sat' => 'Sab', + 'sep' => 'sep', + 'september' => 'Sep', + 'sun' => 'Dom', + 'thu' => 'Jue', + 'today' => 'Hoy', + 'tue' => 'Mar', + 'wed' => 'Mie', + 'yesterday' => 'Ayer', + ), + 'freshrss' => array( + '_' => 'FreshRSS', + 'about' => 'Acerca de FreshRSS', + ), + 'js' => array( + 'category_empty' => 'Vaciar categoría', + 'confirm_action' => '¿Seguyro que quieres hacerlo? No hay marcha atrás...', + 'confirm_action_feed_cat' => '¿Seguro que quieres hacerlo? Perderás todos los favoritos relacionados y las peticiones de usuario. ¡Y no hay marcha atrás!', + 'feedback' => array( + 'body_new_articles' => 'Hay %%d nuevos artículos para leer en FreshRSS.', + 'request_failed' => 'La petición ha fallado. Puede ser debido a problemas de conexión a internet.', + 'title_new_articles' => 'FreshRSS: ¡Nuevos artículos!', + ), + 'new_article' => 'Hay nuevos artículos disponibles. Pincha para refrescar la página.', + 'should_be_activated' => 'JavaScript debe estar activado', + ), + 'lang' => array( + 'cz' => 'Čeština', + 'de' => 'Deutsch', + 'en' => 'English', + 'fr' => 'Français', + 'it' => 'Italiano', + 'nl' => 'Nederlands', + 'ru' => 'Русский', + 'tr' => 'Türkçe', + 'zh-cn' => '简体中文' + 'es' => 'Español' + ), + 'menu' => array( + 'about' => 'Acerca de', + 'admin' => 'Administración', + 'archiving' => 'Archivo', + 'authentication' => 'Identificación', + 'check_install' => 'Verificación de instalación', + 'configuration' => 'Configuración', + 'display' => 'Visualización', + 'extensions' => 'Extensiones', + 'logs' => 'Registros', + 'queries' => 'Peticiones de usuario', + 'reading' => 'Lectura', + 'search' => 'Buscar palabras o #etiquetas', + 'sharing' => 'Compartir', + 'shortcuts' => 'Atajos', + 'stats' => 'Estadísticas', + 'system' => 'Configuración del sistema', + 'update' => 'Actualización', + 'user_management' => 'Administrar usuarios', + 'user_profile' => 'Perfil', + ), + 'pagination' => array( + 'first' => 'Primero', + 'last' => 'Último', + 'load_more' => 'Cargar más artículos', + 'mark_all_read' => 'Marcar todo como leído', + 'next' => 'Siguiente', + 'nothing_to_load' => 'No hay más artículos', + 'previous' => 'Anterior', + ), + 'share' => array( + 'blogotext' => 'Blogotext', + 'diaspora' => 'Diaspora*', + 'email' => 'Email', + 'facebook' => 'Facebook', + 'g+' => 'Google+', + 'movim' => 'Movim', + 'print' => 'Print', + 'shaarli' => 'Shaarli', + 'twitter' => 'Twitter', + 'wallabag' => 'wallabag v1', + 'wallabagv2' => 'wallabag v2', + 'jdh' => 'Journal du hacker', + 'Known' => 'Known based sites', + 'gnusocial' => 'GNU social', + ), + 'short' => array( + 'attention' => '¡Aviso!', + 'blank_to_disable' => 'Deja en blanco para desactivar', + 'by_author' => 'Por %s', + 'by_default' => 'Por defecto', + 'damn' => '¡Córcholis!', + 'default_category' => 'Sin categorizar', + 'no' => 'No', + 'not_applicable' => 'No disponible', + 'ok' => '¡Vale!', + 'or' => 'o', + 'yes' => 'Sí', + ), +); diff --git a/app/i18n/es/index.php b/app/i18n/es/index.php new file mode 100755 index 000000000..03054e23a --- /dev/null +++ b/app/i18n/es/index.php @@ -0,0 +1,61 @@ + array( + '_' => 'Acerca de', + 'agpl3' => 'AGPL 3', + 'bugs_reports' => 'Informe de fallos', + 'credits' => 'Créditos', + 'credits_content' => 'Aunque FreshRSS no usa ese entorno, algunos elementos del diseño están obtenidos de Bootstrap. Los Iconos han sido obtenidos del proyecto GNOME. La fuente Open Sans es una creación de Steve Matteson. FreshRSS usa el entorno PHP Minz.', + 'freshrss_description' => 'FreshRSS es un agregador de fuentes RSS de alojamiento privado al estilo de Kriss Feed o Leed. Es una herramienta potente, pero ligera y fácil de usar y configurar.', + 'github' => 'en Github', + 'license' => 'Licencia', + 'project_website' => 'Web del proyecto', + 'title' => 'Acerca de', + 'version' => 'Versión', + 'website' => 'Web', + ), + 'feed' => array( + 'add' => 'Puedes añadir fuentes.', + 'empty' => 'No hay artículos a mostrar.', + 'rss_of' => 'Fuente RSS de %s', + 'title' => 'Tus fuentes RSS', + 'title_global' => 'Vista global', + 'title_fav' => 'Tus favoritos', + ), + 'log' => array( + '_' => 'Registros', + 'clear' => 'Limpiar registros', + 'empty' => 'El archivo de registro está vacío', + 'title' => 'Registros', + ), + 'menu' => array( + 'about' => 'Acerca de FreshRSS', + 'add_query' => 'Añadir petición', + 'before_one_day' => 'Con más de 1 día', + 'before_one_week' => 'Con más de una semana', + 'favorites' => 'Favoritos (%s)', + 'global_view' => 'Vista Global', + 'main_stream' => 'Salida Principal', + 'mark_all_read' => 'Marcar todo como leído', + 'mark_cat_read' => 'Marcar categoría como leída', + 'mark_feed_read' => 'Marcar fuente como leída', + 'newer_first' => 'Nuevos primero', + 'non-starred' => 'Mostrar todos menos los favoritos', + 'normal_view' => 'Vista normal', + 'older_first' => 'Más antiguos primero', + 'queries' => 'Peticiones de usuario', + 'read' => 'Mostrar solo los leídos', + 'reader_view' => 'Vista de lectura', + 'rss_view' => 'Fuente RSS', + 'search_short' => 'Buscar', + 'starred' => 'Mostrar solo los favoritos', + 'stats' => 'Estadísticas', + 'subscription' => 'Administración de suscripciones', + 'unread' => 'Mostar solo no leídos', + ), + 'share' => 'Compartir', + 'tag' => array( + 'related' => 'Etiquetas relacionadas', + ), +); diff --git a/app/i18n/es/install.php b/app/i18n/es/install.php new file mode 100755 index 000000000..cd6f63432 --- /dev/null +++ b/app/i18n/es/install.php @@ -0,0 +1,119 @@ + array( + 'finish' => 'Completar instalación', + 'fix_errors_before' => 'Por favor, soluciona los errores detectados antes de continuar con el siguiente paso.', + 'keep_install' => 'Conservar la configuración anterior', + 'next_step' => 'Ir al siguiente paso', + 'reinstall' => 'Reinstalar FreshRSS', + ), + 'auth' => array( + 'form' => 'Formulario Web (método más habitual, requiere JavaScript)', + 'http' => 'HTTP (para usuarios avanzados con HTTPS)', + 'none' => 'Ninguna (peligroso)', + 'password_form' => 'Contraseña
    (para el método de acceso mediante formulario web)', + 'password_format' => 'Al menos 7 caracteres', + 'type' => 'Método de identificación', + ), + 'bdd' => array( + '_' => 'Base de datos', + 'conf' => array( + '_' => 'Configuración de la base de datos', + 'ko' => 'Verificar la información de tu base de datos.', + 'ok' => 'La configuración de la base de datos ha sido guardada.', + ), + 'host' => 'Servidor', + 'prefix' => 'Prefijo de la tabla', + 'password' => 'Contraseña de la base de datos', + 'type' => 'Tipo de base de datos', + 'username' => 'Nombre de usuario de la base de datos', + ), + 'check' => array( + '_' => 'Verificaciones', + 'already_installed' => '¡FreshRSS ya está instalado!', + 'cache' => array( + 'nok' => 'Comprueba los permisos en el directorio ./data/cache. El servidor HTTP debe contar con permisos de escritura.', + 'ok' => 'Los permisos del directorio cache son correctos.', + ), + 'ctype' => array( + 'nok' => 'No se ha podido localizar la librería para la verificación del tipo de caracteres (php-ctype).', + 'ok' => 'Cuentas con la librería necesaria para la verificación del tipo de caracteres (ctype).', + ), + 'curl' => array( + 'nok' => 'No se ha podido localizar la librería cURL (paquete php-curl).', + 'ok' => 'Dispones de la librería cURL.', + ), + 'data' => array( + 'nok' => 'Comprueba los permisos del directorio ./data. El servidor HTTP debe contar con permisos de escritura.', + 'ok' => 'Los permisos del directorio data son correctos.', + ), + 'dom' => array( + 'nok' => 'No se ha podido localizar la librería necesaria para explorar la DOM.', + 'ok' => 'Dispones de la librería necesaria para explorar la DOM.', + ), + 'favicons' => array( + 'nok' => 'Verifica los permisos en el directorio ./data/favicons. El servidor HTTP debe contar con permisos de escritura.', + 'ok' => 'Los permisos del directorio favicons son correctos.', + ), + 'fileinfo' => array( + 'nok' => 'No se ha podido localizar la librería PHP fileinfo (paquete fileinfo).', + 'ok' => 'Dispones de la librería fileinfo.', + ), + 'http_referer' => array( + 'nok' => 'Por favor, comprueba que no estás alterando tu configuración HTTP REFERER.', + 'ok' => 'La configuración HTTP REFERER es conocida y se corresponde con la de tu servidor.', + ), + 'json' => array( + 'nok' => 'No se ha podido localizar la librería para procesar JSON.', + 'ok' => 'Dispones de la librería recomendada para procesar JSON.', + ), + 'minz' => array( + 'nok' => 'No se ha podido localizar el entorno Minz.', + 'ok' => 'Dispones del entorno Minz.', + ), + 'pcre' => array( + 'nok' => 'No se ha podido encontrar la librería necesaria para las expresiones regulares (php-pcre).', + 'ok' => 'Dispones de la librería necesaria para las expresiones regulares (PCRE).', + ), + 'pdo' => array( + 'nok' => 'No se ha podido localizar PDO o uno de los controladores compatibles (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'Dispones de PDO y al menos uno de los controladores compatibles (pdo_mysql, pdo_sqlite, pdo_pgsql).', + ), + 'php' => array( + 'nok' => 'Dispones de la versión PHP %s, pero FreshRSS necesita de, al menos, la versión %s.', + 'ok' => 'Dispones de la versión PHP %s, que es compatible con FreshRSS.', + ), + 'users' => array( + 'nok' => 'Revisa los permisos en el directorio ./data/users. El servidor HTTP debe contar con permisos de escritura.', + 'ok' => 'Los permisos en el directorio users son correctos.', + ), + 'xml' => array( + 'nok' => 'No se ha podido localizar la librería necesaria para procesar XML.', + 'ok' => 'Dispones de la librería necesaria para procesar XML.', + ), + ), + 'conf' => array( + '_' => 'Configuración general', + 'ok' => 'La configuración general se ha guardado.', + ), + 'congratulations' => '¡Enhorabuena!', + 'default_user' => 'Nombre de usuario para el usuario por defecto (máximo de 16 caracteres alfanuméricos)', + 'delete_articles_after' => 'Eliminar los artículos tras', + 'fix_errors_before' => 'Por favor, soluciona los errores detectados antes de proceder con el siguiente paso.', + 'javascript_is_better' => 'FreshRSS funciona mejor con JavaScript activado', + 'js' => array( + 'confirm_reinstall' => 'Al reinstalar FreshRSS perderás cualquier configuración anterior. ¿Seguro que quieres continuar?', + ), + 'language' => array( + '_' => 'Idioma', + 'choose' => 'Selecciona el idioma para FreshRSS', + 'defined' => 'Idioma seleccionado.', + ), + 'not_deleted' => 'Parece que ha habido un error. Debes eliminar el archivo %s de forma manual.', + 'ok' => 'La instalación se ha completado correctamente.', + 'step' => 'paso %d', + 'steps' => 'Pasos', + 'title' => 'Instalación · FreshRSS', + 'this_is_the_end' => '¡Terminamos!', +); diff --git a/app/i18n/es/sub.php b/app/i18n/es/sub.php new file mode 100755 index 000000000..c18f0b786 --- /dev/null +++ b/app/i18n/es/sub.php @@ -0,0 +1,62 @@ + array( + '_' => 'Categoría', + 'add' => 'Añadir a la categoría', + 'empty' => 'Vaciar categoría', + 'new' => 'Nueva categoría', + ), + 'feed' => array( + 'add' => 'Añadir fuente RSS', + 'advanced' => 'Avanzado', + 'archiving' => 'Archivo', + 'auth' => array( + 'configuration' => 'Identificación', + 'help' => 'Permitir acceso a fuentes RSS protegidas con HTTP', + 'http' => 'Identificación HTTP', + 'password' => 'Contraseña HTTP', + 'username' => 'Nombre de usuario HTTP', + ), + 'css_help' => 'Recibir fuentes RSS truncadas (aviso, ¡necesita más tiempo!)', + 'css_path' => 'Ruta a la CSS de los artículos en la web original', + 'description' => 'Descripción', + 'empty' => 'La fuente está vacía. Por favor, verifica que siga activa.', + 'error' => 'Hay un problema con esta fuente. Por favor, veritica que esté disponible y prueba de nuevo.', + 'in_main_stream' => 'Mostrar en salida principal', + 'informations' => 'Información', + 'keep_history' => 'Número mínimo de artículos a conservar', + 'moved_category_deleted' => 'Al borrar una categoría todas sus fuentes pasan automáticamente a la categoría %s.', + 'no_selected' => 'No hay funentes seleccionadas.', + 'number_entries' => '%d artículos', + 'stats' => 'Estadísticas', + 'think_to_add' => 'Puedes añadir fuentes.', + 'title' => 'Título', + 'title_add' => 'Añadir fuente RSS', + 'ttl' => 'No actualizar de forma automática con una frecuencia mayor a', + 'url' => 'URL de la fuente', + 'validator' => 'Verifica la validez de la fuente', + 'website' => 'Web de la URL', + 'pubsubhubbub' => 'Notificación inmedaiata con PubSubHubbub', + ), + 'import_export' => array( + 'export' => 'Exportar', + 'export_opml' => 'Exportar la lista de fuentes (OPML)', + 'export_starred' => 'Exportar tus favoritos', + 'feed_list' => 'Lista de %s artículos', + 'file_to_import' => 'Archivo a importar
    (OPML, JSON o ZIP)', + 'file_to_import_no_zip' => 'Archivo a importar
    (OPML o JSON)', + 'import' => 'Importar', + 'starred_list' => 'Lista de artículos favoritos', + 'title' => 'Importar / exportar', + ), + 'menu' => array( + 'bookmark' => 'Suscribirse (favorito FreshRSS)', + 'import_export' => 'Importar / exportar', + 'subscription_management' => 'Administración de suscripciones', + ), + 'title' => array( + '_' => 'Administración de suscripciones', + 'feed_management' => 'Administración de fuentes RSS', + ), +); -- cgit v1.2.3 From 3fa63217cdf339b894c29ffe7f9af8c477c724fb Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Fri, 22 Sep 2017 16:21:37 +0200 Subject: Quick fix i18n es and zh (#1636) https://github.com/FreshRSS/FreshRSS/pull/1631 --- app/i18n/cz/gen.php | 2 ++ app/i18n/de/gen.php | 2 ++ app/i18n/en/gen.php | 1 + app/i18n/es/gen.php | 30 ++++++++++++++++-------------- app/i18n/fr/gen.php | 2 ++ app/i18n/it/gen.php | 2 ++ app/i18n/kr/gen.php | 1 + app/i18n/nl/gen.php | 2 ++ app/i18n/ru/gen.php | 2 ++ app/i18n/tr/gen.php | 2 ++ app/i18n/zh-cn/gen.php | 5 +++-- 11 files changed, 35 insertions(+), 16 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index 405c05de9..f243745d0 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -117,12 +117,14 @@ return array( 'cz' => 'Čeština', 'de' => 'Deutsch', 'en' => 'English', + 'es' => 'Español', 'fr' => 'Français', 'it' => 'Italiano', 'kr' => '한국어', 'nl' => 'Nederlands', 'ru' => 'Русский', 'tr' => 'Türkçe', + 'zh-cn' => '简体中文', ), 'menu' => array( 'about' => 'O aplikaci', diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index dccf38383..c6b659f27 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -117,12 +117,14 @@ return array( 'cz' => 'Čeština', 'de' => 'Deutsch', 'en' => 'English', + 'es' => 'Español', 'fr' => 'Français', 'it' => 'Italiano', 'kr' => '한국어', 'nl' => 'Nederlands', 'ru' => 'Русский', 'tr' => 'Türkçe', + 'zh-cn' => '简体中文', ), 'menu' => array( 'about' => 'Über', diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 0173b832f..29acfaf3c 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -117,6 +117,7 @@ return array( 'cz' => 'Čeština', 'de' => 'Deutsch', 'en' => 'English', + 'es' => 'Español', 'fr' => 'Français', 'it' => 'Italiano', 'kr' => '한국어', diff --git a/app/i18n/es/gen.php b/app/i18n/es/gen.php index 41c591e1c..e2ce7e8a1 100755 --- a/app/i18n/es/gen.php +++ b/app/i18n/es/gen.php @@ -55,40 +55,41 @@ return array( 'Oct' => '\\O\\c\\t\\u\\b\\r\\e', 'Sep' => '\\S\\e\\p\\t\\i\\e\\m\\b\\r\\e', 'apr' => 'abr', - 'april' => 'Abr', + 'april' => 'abril', 'aug' => 'ago', - 'august' => 'Ago', + 'august' => 'agosto', 'before_yesterday' => 'Anteayer', 'dec' => 'dic', - 'december' => 'Dic', + 'december' => 'diciembre', 'feb' => 'feb', - 'february' => 'Feb', + 'february' => 'febrero', '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' => 'Vie', 'jan' => 'ene', - 'january' => 'Ene', + 'january' => 'ene', 'jul' => 'jul', - 'july' => 'Jul', + 'july' => 'julio', 'jun' => 'jun', - 'june' => 'Jun', + 'june' => 'junio', 'last_3_month' => 'Últimos tres meses', 'last_6_month' => 'Últimos seis meses', 'last_month' => 'Mes pasado', 'last_week' => 'Semana pasada', 'last_year' => 'Año pasado', 'mar' => 'mar', - 'march' => 'Mar', - 'may' => 'May', + 'march' => 'marzo', + 'may_' => 'may', + 'may' => 'mayo', 'mon' => 'Lun', 'month' => 'meses', 'nov' => 'nov', - 'november' => 'Nov', + 'november' => 'noviembre', 'oct' => 'oct', - 'october' => 'Oct', + 'october' => 'octubre', 'sat' => 'Sab', 'sep' => 'sep', - 'september' => 'Sep', + 'september' => 'septiembre', 'sun' => 'Dom', 'thu' => 'Jue', 'today' => 'Hoy', @@ -116,13 +117,14 @@ return array( 'cz' => 'Čeština', 'de' => 'Deutsch', 'en' => 'English', + 'es' => 'Español', 'fr' => 'Français', 'it' => 'Italiano', + 'kr' => '한국어', 'nl' => 'Nederlands', 'ru' => 'Русский', 'tr' => 'Türkçe', - 'zh-cn' => '简体中文' - 'es' => 'Español' + 'zh-cn' => '简体中文', ), 'menu' => array( 'about' => 'Acerca de', diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 705cbd4ea..759ceb16b 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -117,12 +117,14 @@ return array( 'cz' => 'Čeština', 'de' => 'Deutsch', 'en' => 'English', + 'es' => 'Español', 'fr' => 'Français', 'it' => 'Italiano', 'kr' => '한국어', 'nl' => 'Nederlands', 'ru' => 'Русский', 'tr' => 'Türkçe', + 'zh-cn' => '简体中文', ), 'menu' => array( 'about' => 'À propos', diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index e7403b603..d795a5e08 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -117,12 +117,14 @@ return array( 'cz' => 'Čeština', 'de' => 'Deutsch', 'en' => 'English', + 'es' => 'Español', 'fr' => 'Français', 'it' => 'Italiano', 'kr' => '한국어', 'nl' => 'Nederlands', 'ru' => 'Русский', 'tr' => 'Türkçe', + 'zh-cn' => '简体中文', ), 'menu' => array( 'about' => 'Informazioni', diff --git a/app/i18n/kr/gen.php b/app/i18n/kr/gen.php index 0c19b5871..161b80894 100644 --- a/app/i18n/kr/gen.php +++ b/app/i18n/kr/gen.php @@ -117,6 +117,7 @@ return array( 'cz' => 'Čeština', 'de' => 'Deutsch', 'en' => 'English', + 'es' => 'Español', 'fr' => 'Français', 'it' => 'Italiano', 'kr' => '한국어', diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index 2a1d40e7e..df62620a0 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -117,12 +117,14 @@ return array( 'cz' => 'Čeština', 'de' => 'Deutsch', 'en' => 'English', + 'es' => 'Español', 'fr' => 'Français', 'it' => 'Italiano', 'kr' => '한국어', 'nl' => 'Nederlands', 'ru' => 'Русский', 'tr' => 'Türkçe', + 'zh-cn' => '简体中文', ), 'menu' => array( 'about' => 'Over', diff --git a/app/i18n/ru/gen.php b/app/i18n/ru/gen.php index 2518e0d0e..b67da4861 100644 --- a/app/i18n/ru/gen.php +++ b/app/i18n/ru/gen.php @@ -117,12 +117,14 @@ return array( 'cz' => 'Čeština', 'de' => 'Deutsch', 'en' => 'English', + 'es' => 'Español', 'fr' => 'Français', 'it' => 'Italiano', 'kr' => '한국어', 'nl' => 'Nederlands', 'ru' => 'Русский', 'tr' => 'Türkçe', + 'zh-cn' => '简体中文', ), 'menu' => array( 'about' => 'About', diff --git a/app/i18n/tr/gen.php b/app/i18n/tr/gen.php index a6dda7478..ad0c72f9f 100644 --- a/app/i18n/tr/gen.php +++ b/app/i18n/tr/gen.php @@ -117,12 +117,14 @@ return array( 'cz' => 'Čeština', 'de' => 'Deutsch', 'en' => 'English', + 'es' => 'Español', 'fr' => 'Français', 'it' => 'Italiano', 'kr' => '한국어', 'nl' => 'Nederlands', 'ru' => 'Русский', 'tr' => 'Türkçe', + 'zh-cn' => '简体中文', ), 'menu' => array( 'about' => 'Hakkında', diff --git a/app/i18n/zh-cn/gen.php b/app/i18n/zh-cn/gen.php index 936f7d6ee..1cfc4ddff 100644 --- a/app/i18n/zh-cn/gen.php +++ b/app/i18n/zh-cn/gen.php @@ -116,9 +116,10 @@ return array( 'lang' => array( 'cz' => 'Čeština', 'de' => 'Deutsch', - 'en' => 'English1', + 'en' => 'English', + 'es' => 'Español', 'fr' => 'Français', - 'it' => 'Italiano1', + 'it' => 'Italiano', 'kr' => '한국어', 'nl' => 'Nederlands', 'ru' => 'Русский', -- cgit v1.2.3 From bc109cff50833fc378832def77fb1e4a5b343bff Mon Sep 17 00:00:00 2001 From: Frans de Jonge Date: Fri, 22 Sep 2017 18:14:41 +0200 Subject: [fix] Spanish lang double space (#1637) --- app/i18n/es/conf.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/es/conf.php b/app/i18n/es/conf.php index 1ccd76b2e..aad5cc66d 100755 --- a/app/i18n/es/conf.php +++ b/app/i18n/es/conf.php @@ -104,7 +104,7 @@ return array( 'when' => 'Marcar el artículo como leído…', ), 'show' => array( - '_' => 'Artículos a mostrar', + '_' => 'Artículos a mostrar', 'adaptive' => 'Ajustar la visualización', 'all_articles' => 'Mostrar todos los artículos', 'unread' => 'Mostrar solo pendientes', -- cgit v1.2.3 From ac3c24dd83cd60bea50008ecf990900433c729ca Mon Sep 17 00:00:00 2001 From: David souza Date: Sat, 30 Sep 2017 04:26:09 -0300 Subject: Language portugue (#1648) * Create folder pt-br to translate to portuguese-brazil; Translate file admin.php; Trnaslate file index.php; * Translate the files: - conf.php - feedback.php - gen.php * Translate sub.php e install.php; add pt-br in file gen.php inside another languages * fix bug * Configure display date * Add pt-br to es, kr, zh, and fix whitespace https://github.com/FreshRSS/FreshRSS/pull/1648 * Changelog 1648 https://github.com/FreshRSS/FreshRSS/pull/1648 * Fix whitespace (caught by Travis) --- CHANGELOG.md | 1 + CREDITS.md | 3 +- app/i18n/cz/gen.php | 1 + app/i18n/de/gen.php | 1 + app/i18n/en/gen.php | 1 + app/i18n/es/gen.php | 1 + app/i18n/fr/gen.php | 1 + app/i18n/it/gen.php | 1 + app/i18n/kr/gen.php | 1 + app/i18n/nl/gen.php | 1 + app/i18n/pt-br/admin.php | 181 ++++++++++++++++++++++++++++++++++++++++++ app/i18n/pt-br/conf.php | 174 +++++++++++++++++++++++++++++++++++++++++ app/i18n/pt-br/feedback.php | 109 ++++++++++++++++++++++++++ app/i18n/pt-br/gen.php | 186 ++++++++++++++++++++++++++++++++++++++++++++ app/i18n/pt-br/index.php | 61 +++++++++++++++ app/i18n/pt-br/install.php | 119 ++++++++++++++++++++++++++++ app/i18n/pt-br/sub.php | 62 +++++++++++++++ app/i18n/ru/gen.php | 1 + app/i18n/tr/gen.php | 1 + app/i18n/zh-cn/gen.php | 1 + 20 files changed, 906 insertions(+), 1 deletion(-) create mode 100644 app/i18n/pt-br/admin.php create mode 100644 app/i18n/pt-br/conf.php create mode 100644 app/i18n/pt-br/feedback.php create mode 100644 app/i18n/pt-br/gen.php create mode 100644 app/i18n/pt-br/index.php create mode 100644 app/i18n/pt-br/install.php create mode 100644 app/i18n/pt-br/sub.php (limited to 'app/i18n') diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f126373c..804631b7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ * New command `./cli/update-user` to update user settings [#1600](https://github.com/FreshRSS/FreshRSS/issues/1600) * I18n * Korean [#1578](https://github.com/FreshRSS/FreshRSS/pull/1578) + * Portuguese (Brazilian) [#1648](https://github.com/FreshRSS/FreshRSS/pull/1648) * Fix month abbreviations [#1560](https://github.com/FreshRSS/FreshRSS/issues/1560) * Bug fixing * Fix API compatibility bug between PostgreSQL and EasyRSS [#1603](https://github.com/FreshRSS/FreshRSS/pull/1603) diff --git a/CREDITS.md b/CREDITS.md index 17fc490ab..cbbef73d6 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -16,6 +16,7 @@ People are sorted by name so please keep this order. * [Crupuk](https://github.com/Crupuk): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Crupuk) * [Damstre](https://github.com/Damstre): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Damstre) * [danc](https://github.com/danc): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=danc), [Web](http://tintouli.free.fr/) +* [David Souza](https://github.com/araujo0205): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:araujo0205), [Web](http://davidsouza.tech/) * [dswd](https://github.com/dswd): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:dswd) * [ealdraed](https://github.com/ealdraed): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=ealdraed) * [Frans de Jonge](https://github.com/Frenzie): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=Frenzie), [Web](http://fransdejonge.com/) @@ -34,6 +35,7 @@ People are sorted by name so please keep this order. * [Marcus Rohrmoser](https://github.com/mro): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=mro), [Web](http://mro.name/~me) * [Marien Fressinaud](https://github.com/marienfressinaud): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=marienfressinaud), [Web](https://marienfressinaud.fr/) * [Melvyn Laïly](https://github.com/yaurthek): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=yaurthek), [Web](http://x2a.yt/) +* [MSZ](https://github.com/mszkb): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=mszkb) * [Nicolas Elie](https://github.com/nicolaselie): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=nicolaselie) * [Nicolas Lœuillet](https://github.com/nicosomb): [contributions](https://github.com/FreshRSS/documentation/commits?author=nicosomb), [Web](http://www.loeuillet.org/) * [plopoyop](https://github.com/plopoyop): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=plopoyop) @@ -47,4 +49,3 @@ People are sorted by name so please keep this order. * [Thomas Citharel](https://github.com/tcitworld): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tomgue), [Web](https://www.tcit.fr/) * [tomgue](https://github.com/tomgue): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=tomgue) * [Wanabo](https://github.com/Wanabo): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=Wanabo) -* [mszkb](https://github.com/mszkb): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=mszkb) diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index f243745d0..a9c7dc875 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -122,6 +122,7 @@ return array( 'it' => 'Italiano', 'kr' => '한국어', 'nl' => 'Nederlands', + 'pt-br' => 'Português (Brasil)', 'ru' => 'Русский', 'tr' => 'Türkçe', 'zh-cn' => '简体中文', diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index c6b659f27..43d0a2c05 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -122,6 +122,7 @@ return array( 'it' => 'Italiano', 'kr' => '한국어', 'nl' => 'Nederlands', + 'pt-br' => 'Português (Brasil)', 'ru' => 'Русский', 'tr' => 'Türkçe', 'zh-cn' => '简体中文', diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 29acfaf3c..095eb17d3 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -122,6 +122,7 @@ return array( 'it' => 'Italiano', 'kr' => '한국어', 'nl' => 'Nederlands', + 'pt-br' => 'Português (Brasil)', 'ru' => 'Русский', 'tr' => 'Türkçe', 'zh-cn' => '简体中文', diff --git a/app/i18n/es/gen.php b/app/i18n/es/gen.php index e2ce7e8a1..68fdaf429 100755 --- a/app/i18n/es/gen.php +++ b/app/i18n/es/gen.php @@ -122,6 +122,7 @@ return array( 'it' => 'Italiano', 'kr' => '한국어', 'nl' => 'Nederlands', + 'pt-br' => 'Português (Brasil)', 'ru' => 'Русский', 'tr' => 'Türkçe', 'zh-cn' => '简体中文', diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 759ceb16b..16935c3c4 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -122,6 +122,7 @@ return array( 'it' => 'Italiano', 'kr' => '한국어', 'nl' => 'Nederlands', + 'pt-br' => 'Português (Brasil)', 'ru' => 'Русский', 'tr' => 'Türkçe', 'zh-cn' => '简体中文', diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index d795a5e08..ae39d7324 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -122,6 +122,7 @@ return array( 'it' => 'Italiano', 'kr' => '한국어', 'nl' => 'Nederlands', + 'pt-br' => 'Português (Brasil)', 'ru' => 'Русский', 'tr' => 'Türkçe', 'zh-cn' => '简体中文', diff --git a/app/i18n/kr/gen.php b/app/i18n/kr/gen.php index 161b80894..35d5e8143 100644 --- a/app/i18n/kr/gen.php +++ b/app/i18n/kr/gen.php @@ -122,6 +122,7 @@ return array( 'it' => 'Italiano', 'kr' => '한국어', 'nl' => 'Nederlands', + 'pt-br' => 'Português (Brasil)', 'ru' => 'Русский', 'tr' => 'Türkçe', 'zh-cn' => '简体中文', diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index df62620a0..1617936ab 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -122,6 +122,7 @@ return array( 'it' => 'Italiano', 'kr' => '한국어', 'nl' => 'Nederlands', + 'pt-br' => 'Português (Brasil)', 'ru' => 'Русский', 'tr' => 'Türkçe', 'zh-cn' => '简体中文', diff --git a/app/i18n/pt-br/admin.php b/app/i18n/pt-br/admin.php new file mode 100644 index 000000000..1076534b2 --- /dev/null +++ b/app/i18n/pt-br/admin.php @@ -0,0 +1,181 @@ + array( + 'allow_anonymous' => 'Permitir a leitura anónima dos artidos pelo usuário padrão (%s)', + 'allow_anonymous_refresh' => 'Permitir atualização anónima dos artigos', + 'api_enabled' => 'Permitir acesso à API (Necessáiro para aplicativos móveis)', + 'form' => 'Formulário Web(traditional, Necessita de JavaScript)', + 'http' => 'HTTP (Para usuários avançados com HTTPS)', + 'none' => 'Nenhum (Perigoso)', + 'title' => 'Autenticação', + 'title_reset' => 'Reset autenticação', + 'token' => 'Token de autenticação ', + 'token_help' => 'Permitir acesso a saída RSS para o usuário padrão sem autenticação', + 'type' => 'Método de autenticação', + 'unsafe_autologin' => 'Permitir login automática insegura usando o seguinte formato: ', + ), + 'check_install' => array( + 'cache' => array( + 'nok' => 'Verifique as permissões no diretório ./data/cache. O servidor HTTP deve ter direitos para escrever dentro desta pasta.', + 'ok' => 'Permissões no diretório cache estão corretos.', + ), + 'categories' => array( + 'nok' => 'Tabela Category está configurada incorretamente.', + 'ok' => 'Tabela Category está ok.', + ), + 'connection' => array( + 'nok' => 'Conexão ao banco de dados não pode ser estabelecida.', + 'ok' => 'Conexão ao banco de dados está ok.', + ), + 'ctype' => array( + 'nok' => 'Não foi possível encontrar uma biblioteca necessária para verificação do tipo de caractere (php-ctype).', + 'ok' => 'Você tem a biblioteca necessária para verificação do tipo de caractere (ctype).', + ), + 'curl' => array( + 'nok' => 'Não foi possível encontrar a biblioteca cURL (php-curl).', + 'ok' => 'Você tem a biblioteca cURL.', + ), + 'data' => array( + 'nok' => 'Verifique as permissões no diretório ./data. O servidor HTTP deve ter direitos para escrever dentro desta pasta.', + 'ok' => 'Permissões no diretório data estão corretos.', + ), + 'database' => 'Instalação do banco de dados', + 'dom' => array( + 'nok' => 'Não foi possível encontrar uma biblioteca necessária para navegar pelo DOM (php-xml).', + 'ok' => 'Você tem a biblioteca necessária para navegar pelo DOM.', + ), + 'entries' => array( + 'nok' => 'Tabela Entry está configurada incorretamente.', + 'ok' => 'Tabela Entry está ok.', + ), + 'favicons' => array( + 'nok' => 'Verifique as permissões no diretório ./data/favicons. O servidor HTTP deve ter direitos para escrever dentro desta pasta.', + 'ok' => 'Permissões no diretório favicons estão corretos.', + ), + 'feeds' => array( + 'nok' => 'Tabela Feed está configurada incorretamente.', + 'ok' => 'Tabela Feed está ok.', + ), + 'fileinfo' => array( + 'nok' => 'Não foi possível encontrar a biblioteca fileinfo do PHP (fileinfo).', + 'ok' => 'Você tem a biblioteca fileinfo.', + ), + 'files' => 'Instalação de arquivos', + 'json' => array( + 'nok' => 'Não foi possível encontrar JSON (php5-json).', + 'ok' => 'Você tem a extensão JSON.', + ), + 'minz' => array( + 'nok' => 'Não foi possível encontrar o framework Minz.', + 'ok' => 'Você tem o framework Minz.', + ), + 'pcre' => array( + 'nok' => 'Não foi possível encontrar uma biblioteca necessário para expressões regulares (php-pcre).', + 'ok' => 'Você tem a biblioteca necessária para expressões regulares (php-pcre).', + ), + 'pdo' => array( + 'nok' => 'Não foi encontrado o PDO ou um dos drivers suportados (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'Você tem o PDO e ao menos um dos drivers suportados (pdo_mysql, pdo_sqlite, pdo_pgsql).', + ), + 'php' => array( + '_' => 'Instação do PHP', + 'nok' => 'Sua versão do PHP é %s mas FreshRSS requer ao menos a versão %s.', + 'ok' => 'Sua versão do PHP é %s, que é compatível com o FreshRSS.', + ), + 'tables' => array( + 'nok' => 'Há uma ou mais tabelas inexistentes no banco de dados.', + 'ok' => 'As tabelas apropriadas existem no banco de dados.', + ), + 'title' => 'Verificação de instalação', + 'tokens' => array( + 'nok' => 'Verifique as permissões no diretório ./data/tokens. O servidor HTTP deve ter direitos para escrever dentro desta pasta.', + 'ok' => 'Permissões no diretório tokens estão corretos.', + ), + 'users' => array( + 'nok' => 'Verifiquei as permissões no diretório ./data/users. O servidor HTTP deve ter direitos para escrever dentro desta pasta.', + 'ok' => 'Permissões no diretório users estão corretos.', + ), + 'zip' => array( + 'nok' => 'Não foi possível localizar a extensão ZIP (php-zip).', + 'ok' => 'Você tem a extensão ZIP.', + ), + ), + 'extensions' => array( + 'disabled' => 'Desabilitado', + 'empty_list' => 'Não há extensões instaladas', + 'enabled' => 'Habilitada', + 'no_configure_view' => 'Esta extensão não pode ser configurada.', + 'system' => array( + '_' => 'Extensões do sistema', + 'no_rights' => 'Extensões do sistema (Você não tem direitos para isto)', + ), + 'title' => 'Extensões', + 'user' => 'Extensões do usuário', + ), + 'stats' => array( + '_' => 'Estatísticas', + 'all_feeds' => 'Todos os feeds', + 'category' => 'Categoria', + 'entry_count' => 'Contagem de entrada', + 'entry_per_category' => 'Entradas por categoria', + 'entry_per_day' => 'Entradas por dia (últimos 30 dias)', + 'entry_per_day_of_week' => 'Por dia da semana(média: %.2f mensagens)', + 'entry_per_hour' => 'Por hora (média: %.2f mensagens)', + 'entry_per_month' => 'Por mês(média: %.2f mensagens)', + 'entry_repartition' => 'Repartição de entradas', + 'feed' => 'Feed', + 'feed_per_category' => 'Feeds por categoria', + 'idle' => 'Feeds inativos', + 'main' => 'Estatísticas principais', + 'main_stream' => 'Stream principal', + 'menu' => array( + 'idle' => 'Feeds inativos', + 'main' => 'Estatísticas principais', + 'repartition' => 'Repartição de artigos', + ), + 'no_idle' => 'Não há nenhum feed inativo!', + 'number_entries' => '%d artigos', + 'percent_of_total' => '%% do total', + 'repartition' => 'Repartição de artigos', + 'status_favorites' => 'Favoritos', + 'status_read' => 'Lido', + 'status_total' => 'Total', + 'status_unread' => 'Não lidos', + 'title' => 'Estatísticas', + 'top_feed' => 'Top10 feeds', + ), + 'system' => array( + '_' => 'Configuração do sistema', + 'auto-update-url' => 'URL do servidor para atualização automática', + 'instance-name' => 'Nome da instância', + 'max-categories' => 'Limite de categorias por usuário', + 'max-feeds' => 'Limite de Feeds por usuário', + 'registration' => array( + 'help' => '0 significa que não há limite para a conta', + 'number' => 'Máximo número de contas', + ), + ), + 'update' => array( + '_' => 'Atualização do sistema', + 'apply' => 'Aplicar', + 'check' => 'Buscar por novas atualizações', + 'current_version' => 'Sua versão do FreshRSS é %s.', + 'last' => 'Última verificação: %s', + 'none' => 'Nenhuma atualização para se aplicar', + 'title' => 'Sistema de atualização', + ), + 'user' => array( + 'articles_and_size' => '%s artigos (%s)', + 'create' => 'Criar novo usuário', + 'language' => 'Idioma', + 'number' => 'Há %d conta criada', + 'numbers' => 'Há %d contas criadas', + 'password_form' => 'Senha
    (para o login pelo método do formulário)', + 'password_format' => 'Ao menos 7 caracteres', + 'title' => 'Gerenciar usuários', + 'user_list' => 'Lista de usuários', + 'username' => 'Usuário', + 'users' => 'Usuários', + ), +); diff --git a/app/i18n/pt-br/conf.php b/app/i18n/pt-br/conf.php new file mode 100644 index 000000000..4eaf599db --- /dev/null +++ b/app/i18n/pt-br/conf.php @@ -0,0 +1,174 @@ + array( + '_' => 'Arquivar', + 'advanced' => 'Avançado', + 'delete_after' => 'Remover artigos depois', + 'help' => 'Mais opções estão disponíveis nas configurações individuais do feed', + 'keep_history_by_feed' => 'Número mínimo de artigos para deixar no feed', + 'optimize' => 'Otimizar banco de dados', + 'optimize_help' => 'Faça ocasionalmente para reduzir o tamanho do banco de dados', + 'purge_now' => 'Purge agora', + 'title' => 'Arquivar', + 'ttl' => 'Não atualize automaticamente mais frequente que', + ), + 'display' => array( + '_' => 'Exibição', + 'icon' => array( + 'bottom_line' => 'Linha inferior', + 'entry' => 'Ícones de artigos', + 'publication_date' => 'Data da publicação', + 'related_tags' => 'Tags relacionadas', + 'sharing' => 'Compartilhar', + 'top_line' => 'Linha superior', + ), + 'language' => 'Ídioma', + 'notif_html5' => array( + 'seconds' => 'segundos (0 significa sem timeout)', + 'timeout' => 'Notificação em HTML5 de timeout', + ), + 'theme' => 'Tema', + 'title' => 'Exibição', + 'width' => array( + 'content' => 'Largura do conteúdo', + 'large' => 'Largo', + 'medium' => 'Médio', + 'no_limit' => 'Sem lmite', + 'thin' => 'Fino', + ), + ), + 'query' => array( + '_' => 'Queries do usuário', + 'deprecated' => 'Esta não é mais válida. A categoria ou feed relacionado foi deletado.', + 'filter' => 'Filtro aplicado:', + 'get_all' => 'Mostrar todos os artigos', + 'get_category' => 'Visualizar "%s" categoria', + 'get_favorite' => 'Visualizar artigos favoritos', + 'get_feed' => 'Visualizar "%s" feed', + 'no_filter' => 'Sem filtro', + 'none' => 'Você não criou nenhuma query de usuário ainda.', + 'number' => 'Query n°%d', + 'order_asc' => 'Exibir artigos mais antigos primeiro', + 'order_desc' => 'Exibir artigos mais novos primeiro', + 'search' => 'Busca por "%s"', + 'state_0' => 'Exibir todos os artigos', + 'state_1' => 'Exibir artigos lidos', + 'state_2' => 'Exibir artigos não lidos', + 'state_3' => 'Exibir todos os artigos', + 'state_4' => 'Exibir artigos favoritos', + 'state_5' => 'Exibir artigos favoritos lidos', + 'state_6' => 'Exibir artigos favoritos não lidos', + 'state_7' => 'Exibir artigos favoritos', + 'state_8' => 'Exibir artigos que não são favoritos', + 'state_9' => 'Exibir artigos que não são favoritos lidos', + 'state_10' => 'Exibir artigos que não são favoritos não lidos', + 'state_11' => 'Exibir artigos que não são favoritos', + 'state_12' => 'Exibir todos os artigos', + 'state_13' => 'Exibir artigos lidos', + 'state_14' => 'Exibir artigos não lidos', + 'state_15' => 'Exibir todos os artigos', + 'title' => 'Queries de usuários', + ), + 'profile' => array( + '_' => 'Gerenciamento de perfil', + 'delete' => array( + '_' => 'Remover conta', + 'warn' => 'Sua conta e todos os dados relacionados serão removidos.', + ), + 'password_api' => 'Senha da API
    (p.s., para aplicativos móveis)', + 'password_form' => 'Senha
    (para o método de formulário web)', + 'password_format' => 'Ao menos 7 caracteres', + 'title' => 'Perfil', + ), + 'reading' => array( + '_' => 'Leitura', + 'after_onread' => 'Depois de "marcar todos como lido",', + 'articles_per_page' => 'Número de artigos por página', + 'auto_load_more' => 'Carregar mais artigos no final da página', + 'auto_remove_article' => 'Esconder artigos depois de lidos', + 'mark_updated_article_unread' => 'Marcar artigos atualizados como não lidos', + 'confirm_enabled' => 'Exibir uma caixa de diálogo de confirmação quando acionar "marcar todos como lido"', + 'display_articles_unfolded' => 'Mostrar aritogs abertos por padrão', + 'display_categories_unfolded' => 'Mostrar artigos fechados por padrão', + 'hide_read_feeds' => 'Esconder categorias e feeds com nenhum artigo não lido (não funciona com a configuração "Mostrar todos os artigos”)', + 'img_with_lazyload' => 'Utilizar o modo "lazy load" para carregar as imagens', + 'sides_close_article' => 'Clicando fora da área do texto do artigo fecha o mesmo', + 'jump_next' => 'Vá para o próximo irmão não lido (feed ou categoria)', + 'number_divided_when_reader' => 'Dividido por 2 no modo de leitura .', + 'read' => array( + 'article_open_on_website' => 'quando o artigo é aberto no site original', + 'article_viewed' => 'Quando o artigo é visualizado', + 'scroll' => 'enquando scrolling', + 'upon_reception' => 'ao receber um artigo', + 'when' => 'Marcar artigo como lido…', + ), + 'show' => array( + '_' => 'Artigos para exibir', + 'adaptive' => 'Ajustar visualização', + 'all_articles' => 'Exibir todos os artigos', + 'unread' => 'Exibir apenas não lido', + ), + 'sort' => array( + '_' => 'Ordem de visualização', + 'newer_first' => 'Novos primeiro', + 'older_first' => 'Antigos primeiro', + ), + 'sticky_post' => 'Coloque o artigo no topo quando aberto', + 'title' => 'Lendo', + 'view' => array( + 'default' => 'Visualização padrão', + 'global' => 'Visualização global', + 'normal' => 'Visualização normal', + 'reader' => 'Visualização de leitura', + ), + ), + 'sharing' => array( + '_' => 'Compartilhando', + 'blogotext' => 'Blogotext', + 'diaspora' => 'Diaspora*', + 'email' => 'Email', + 'facebook' => 'Facebook', + 'g+' => 'Google+', + 'more_information' => 'Mais informação', + 'print' => 'Imprimir', + 'shaarli' => 'Shaarli', + 'share_name' => 'Nome de visualização para compartilhar', + 'share_url' => 'URL utilizada para compartilhar', + 'title' => 'Compartilhando', + 'twitter' => 'Twitter', + 'wallabag' => 'wallabag', + ), + 'shortcut' => array( + '_' => 'Atalhos', + 'article_action' => 'Ações no artigo', + 'auto_share' => 'Compartilhar', + 'auto_share_help' => 'Se há apenas um modo de compartilhamento, ele é usado. Caso contrário, serão acessíveis pelo seu número.', + 'close_dropdown' => 'Fechar menus', + 'collapse_article' => 'Fechar', + 'first_article' => 'Ir para o primeiro artigo', + 'focus_search' => 'Acessar a caixa de busca', + 'help' => 'Mostrar documentação', + 'javascript' => 'JavaScript deve ser habilitado para utilizar atalhos', + 'last_article' => 'Ir para o último artigo', + 'load_more' => 'Carregar mais artigos', + 'mark_read' => 'Marcar como lido', + 'mark_favorite' => 'Marcar como favorito', + 'navigation' => 'Navegação', + 'navigation_help' => 'Com o modificador "Shift", atalhos de navegação aplicam aos feeds.
    Com o "Alt" modificador, atalhos de navegação aplicam as categorias.', + 'next_article' => 'Pule para o próximo artigo', + 'other_action' => 'Outras ações', + 'previous_article' => 'Pule para o artigo anterior', + 'see_on_website' => 'Visualize o site original', + 'shift_for_all_read' => '+ shift para marcar todos os artigos como lido', + 'title' => 'Atalhos', + 'user_filter' => 'Acesse filtros de usuário', + 'user_filter_help' => 'Se há apenas um filtro, ele é utilizado. Caso contrário, os filtros serão acessíveis pelos seus números.', + ), + 'user' => array( + 'articles_and_size' => '%s artigos (%s)', + 'current' => 'Usuário atual', + 'is_admin' => 'é administrador', + 'users' => 'Usuários', + ), +); diff --git a/app/i18n/pt-br/feedback.php b/app/i18n/pt-br/feedback.php new file mode 100644 index 000000000..0959ad38e --- /dev/null +++ b/app/i18n/pt-br/feedback.php @@ -0,0 +1,109 @@ + array( + 'optimization_complete' => 'Otimização Completa', + ), + 'access' => array( + 'denied' => 'Você não tem permissão para acessar esta página', + 'not_found' => 'VocÊ está buscando por uma página que não existe', + ), + 'auth' => array( + 'form' => array( + 'not_set' => 'Um problema ocorreu durante o sistema de configuração para autenticação. Por favor tente mais tarde.', + 'set' => 'Formulário é agora seu sistema de autenticação padrão.', + ), + 'login' => array( + 'invalid' => 'Login está incorreto', + 'success' => 'Vocé está conectado', + ), + 'logout' => array( + 'success' => 'Você está desconectado', + ), + 'no_password_set' => 'A senha do administrador não foi definida. Este recurso não está disponível.', + ), + 'conf' => array( + 'error' => 'Um erro ocorreu durante o salvamento das configurações', + 'query_created' => 'Query "%s" foi criada.', + 'shortcuts_updated' => 'Atalhos foram criados', + 'updated' => 'Configuração foi atualizada', + ), + 'extensions' => array( + 'already_enabled' => '%s já está habilitado', + 'disable' => array( + 'ko' => '%s não pode ser desabilitado. verifique os logs do FressRSS para detalhes.', + 'ok' => '%s agora está desabilitado', + ), + 'enable' => array( + 'ko' => '%s não pode ser habilitado. verifique os logs do FressRSS para detalhes.', + 'ok' => '%s agora está habilitado', + ), + 'no_access' => 'Você não tem acesso ao %s', + 'not_enabled' => '%s não está habilitado', + 'not_found' => '%s não existe', + ), + 'import_export' => array( + 'export_no_zip_extension' => 'extensão ZIP não está presente em seu servidor. Por favor tente exportar os arquivos um por vez.', + 'feeds_imported' => 'Seus feeds foram importados e serão atualizados agora', + 'feeds_imported_with_errors' => 'Seus feeds foram importados, mas alguns erros ocorreram', + 'file_cannot_be_uploaded' => 'Arquivo não pôde ser enviado', + 'no_zip_extension' => 'extensão ZIP não está presente em seu servidor.', + 'zip_error' => 'Um erro ocorreu durante a importação do arquivo ZIP.', + ), + 'sub' => array( + 'actualize' => 'Atualizando', + 'category' => array( + 'created' => 'Categoria %s foi criada.', + 'deleted' => 'Categoria foi deletada.', + 'emptied' => 'Categoria foi esvaziada', + 'error' => 'Categoria não pode ser atualizada', + 'name_exists' => 'Este nome de categoria já existe.', + 'no_id' => 'Você precisa especificar um id para a categoria.', + 'no_name' => 'Nome da categoria não pode ser vazio.', + 'not_delete_default' => 'Você não pode deletar uma categoria vazia!', + 'not_exist' => 'A categoria não existe!', + 'over_max' => 'Você atingiu seu limite de categorias (%d)', + 'updated' => 'Categoria foi atualizada.', + ), + 'feed' => array( + 'actualized' => '%s foi atualizado', + 'actualizeds' => 'RSS feeds foi atualizado', + 'added' => 'RSS feed %s foi adicionado', + 'already_subscribed' => 'Você já está inscrito no %s', + 'deleted' => 'o Feed foi deletado', + 'error' => 'O feed não pode ser atualizado', + 'internal_problem' => 'O RSS feed não pôde ser adicionado. Verifique os FressRSS logs para detalhes.', + 'invalid_url' => 'URL %s é inválida', + 'marked_read' => 'Feeds foram marcados como lidos', + 'n_actualized' => '%d feeds foram atualizados', + 'n_entries_deleted' => '%d artigos foram deletados', + 'no_refresh' => 'Não há feed para atualizar…', + 'not_added' => '%s não pode ser atualizado', + 'over_max' => 'Você atingiu seu limite de feeds (%d)', + 'updated' => 'Feed foram atualizados', + ), + 'purge_completed' => 'Limpeza completa (%d artigos deletados)', + ), + 'update' => array( + 'can_apply' => 'FreshRSS será atualizado para a versão %s.', + 'error' => 'O processo de atualização encontrou um erro: %s', + 'file_is_nok' => 'Nova versão %s disponível, mas verifique as permissões no diretório %s. Servidor HTTP deve ter direitos para escrever dentro', + 'finished' => 'Atualização completa!', + 'none' => 'Nenhuma atualização para aplicar', + 'server_not_found' => 'Servidor de atualização não pôde ser localizado. [%s]', + ), + 'user' => array( + 'created' => array( + '_' => 'Usuário %s foi criado', + 'error' => 'Usuário %s não pode ser criado', + ), + 'deleted' => array( + '_' => 'Usuário %s foi deletado', + 'error' => 'Usuário %s não pode ser deletado', + ), + ), + 'profile' => array( + 'error' => 'Your profile cannot be modified', + 'updated' => 'Your profile has been modified', + ), +); diff --git a/app/i18n/pt-br/gen.php b/app/i18n/pt-br/gen.php new file mode 100644 index 000000000..18562deeb --- /dev/null +++ b/app/i18n/pt-br/gen.php @@ -0,0 +1,186 @@ + array( + 'actualize' => 'Atualizar', + 'back_to_rss_feeds' => '← Volte para o seu feeds RSS', + 'cancel' => 'Cancelar', + 'create' => 'Criar', + 'disable' => 'Desabilitar', + 'empty' => 'Vazio', + 'enable' => 'Habilitar', + 'export' => 'Exportar', + 'filter' => 'Filtrar', + 'import' => 'Importar', + 'manage' => 'Gerenciar', + 'mark_read' => 'Marcar como lido', + 'mark_favorite' => 'Marcar como favorito', + 'remove' => 'Remover', + 'see_website' => 'Ver o site', + 'submit' => 'Enviar', + 'truncate' => 'Deletar todos os artigos', + ), + 'auth' => array( + 'email' => 'Endereço de e-mail', + 'keep_logged_in' => 'Mantenha logado por (%s days)', + 'login' => 'Login', + 'logout' => 'Logout', + 'password' => array( + '_' => 'Senha', + 'format' => 'Ao menos 7 caracteres', + ), + 'registration' => array( + '_' => 'Nova conta', + 'ask' => 'Criar novoa conta?', + 'title' => 'Criação de conta', + ), + 'reset' => 'Reset autenticação', + 'username' => array( + '_' => 'Usuário', + 'admin' => 'Usuário administrador', + 'format' => 'máximo 16 caracteres alphanumericos', + ), + ), + 'date' => array( + 'Apr' => '\\A\\b\\r\\i\\l', + 'Aug' => '\\A\\g\\o\\s\\t\\o', + 'Dec' => '\\D\\e\\z\\e\\m\\b\\r\\o', + 'Feb' => '\\F\\e\\v\\e\\r\\e\\i\\r\\o', + 'Jan' => '\\J\\a\\n\\e\\i\\r\\o', + 'Jul' => '\\J\\u\\l\\h\\o', + 'Jun' => '\\J\\u\\n\\h\\o', + 'Mar' => '\\M\\a\\r\\ç\\o', + 'May' => '\\M\\a\\i\\o', + 'Nov' => '\\N\\o\\v\\e\\m\\b\\r\\o', + 'Oct' => '\\O\\u\\t\\u\\b\\r\\o', + 'Sep' => '\\S\\e\\t\\e\\m\\b\\r\\o', + 'apr' => 'abr', + 'april' => 'Abr', + 'aug' => 'ago', + 'august' => 'Ago', + 'before_yesterday' => 'Antes de ontem', + 'dec' => 'dez', + 'december' => 'Dez', + 'feb' => 'fev', + 'february' => 'Fev', + 'format_date' => 'j \\d\\e %s \\d\\e Y', + 'format_date_hour' => 'j \\d\\e %s \\d\\e Y\\, H\\:i', + 'fri' => 'Sex', + 'jan' => 'jan', + 'january' => 'Jan', + 'jul' => 'jul', + 'july' => 'Jul', + 'jun' => 'jun', + 'june' => 'Jun', + 'last_3_month' => 'Últimos três meses', + 'last_6_month' => 'Últimos seis meses', + 'last_month' => 'Últimos mês', + 'last_week' => 'Última semana', + 'last_year' => 'Último ano', + 'mar' => 'mar', + 'march' => 'Mar', + 'may' => 'Mai', + 'mon' => 'Seg', + 'month' => 'meses', + 'nov' => 'nov', + 'november' => 'Nov', + 'oct' => 'out', + 'october' => 'Out', + 'sat' => 'Sab', + 'sep' => 'set', + 'september' => 'Set', + 'sun' => 'Dom', + 'thu' => 'Qui', + 'today' => 'Hoje', + 'tue' => 'Ter', + 'wed' => 'Qua', + 'yesterday' => 'Ontem', + ), + 'freshrss' => array( + '_' => 'FreshRSS', + 'about' => 'Sobre FreshRSS', + ), + 'js' => array( + 'category_empty' => 'Categoria vazia', + 'confirm_action' => 'Você tem certeza que deseja efetuar esta ação? Ela não poderá ser cancelada!', + 'confirm_action_feed_cat' => 'Você tem certeza que deseja efetuar esta ação ? Você irá perder favoritos e queries de usuários. Não poderá ser cancelado!', + 'feedback' => array( + 'body_new_articles' => 'Há %%d novos artigos para ler no FreshRSS.', + 'request_failed' => 'Uma solicitação falhou, isto pode ter sido causado por problemas de conexão com a internet.', + 'title_new_articles' => 'FreshRSS: novos artigos!', + ), + 'new_article' => 'Há novos artigos disponíveis, clique para atualizar a página.', + 'should_be_activated' => 'JavaScript precisa estar ativo', + ), + 'lang' => array( + 'cz' => 'Čeština', + 'de' => 'Deutsch', + 'en' => 'English', + 'fr' => 'Français', + 'it' => 'Italiano', + 'nl' => 'Nederlands', + 'pt-br' => 'Português (Brasil)', + 'ru' => 'Русский', + 'tr' => 'Türkçe', + 'zh-cn' => '简体中文' + ), + 'menu' => array( + 'about' => 'Sobre', + 'admin' => 'Administração', + 'archiving' => 'Arquivar', + 'authentication' => 'Autenticação', + 'check_install' => 'Verificação de instalação', + 'configuration' => 'Configuração', + 'display' => 'Visualização', + 'extensions' => 'Extensões', + 'logs' => 'Logs', + 'queries' => 'Queries de usuário', + 'reading' => 'Leitura', + 'search' => 'Procurar por palavras ou #tags', + 'sharing' => 'Compartilhamento', + 'shortcuts' => 'Atalhos', + 'stats' => 'Estatísticas', + 'system' => 'Configuração do sistema', + 'update' => 'Atualização', + 'user_management' => 'Gerenciamento de usuários', + 'user_profile' => 'Perfil', + ), + 'pagination' => array( + 'first' => 'Primeiro', + 'last' => 'Último', + 'load_more' => 'Carregar mais artigos', + 'mark_all_read' => 'Marcar todos como lidos', + 'next' => 'Próximo', + 'nothing_to_load' => 'Não há mais artigos', + 'previous' => 'Anterior', + ), + 'share' => array( + 'blogotext' => 'Blogotext', + 'diaspora' => 'Diaspora*', + 'email' => 'Email', + 'facebook' => 'Facebook', + 'g+' => 'Google+', + 'movim' => 'Movim', + 'print' => 'Imprimir', + 'shaarli' => 'Shaarli', + 'twitter' => 'Twitter', + 'wallabag' => 'wallabag v1', + 'wallabagv2' => 'wallabag v2', + 'jdh' => 'Journal du hacker', + 'Known' => 'Known based sites', + 'gnusocial' => 'GNU social', + ), + 'short' => array( + 'attention' => 'Atencão!', + 'blank_to_disable' => 'Deixe em branco para desativar', + 'by_author' => 'Por %s', + 'by_default' => 'Por padrão', + 'damn' => 'Buumm!', + 'default_category' => 'Sem categoria', + 'no' => 'Não', + 'not_applicable' => 'Não disponível', + 'ok' => 'Ok!', + 'or' => 'ou', + 'yes' => 'Sim', + ), +); diff --git a/app/i18n/pt-br/index.php b/app/i18n/pt-br/index.php new file mode 100644 index 000000000..610f00840 --- /dev/null +++ b/app/i18n/pt-br/index.php @@ -0,0 +1,61 @@ + array( + '_' => 'Sobre', + 'agpl3' => 'AGPL 3', + 'bugs_reports' => 'Reportar Bugs', + 'credits' => 'Créditos', + 'credits_content' => 'Alguns elementos de design vieram do Bootstrap Embora FreshRRS não utiliza este framework. Ícones vieram do GNOME project. Open Sans font police foi criada por Steve Matteson. FreshRSS é baseado no Minz, um framework PHP.', + 'freshrss_description' => 'FreshRSS é um RSS feeds aggregator para um host próprio como o Kriss Feed ou Leed. É leve e fácil de utilizar enquanto é uma ferramenta poderosa e configurável. ', + 'github' => 'no Github', + 'license' => 'licença', + 'project_website' => 'Site do projeto', + 'title' => 'Sobre', + 'version' => 'Versão', + 'website' => 'Site', + ), + 'feed' => array( + 'add' => 'Você pode adicionar alguns feeds.', + 'empty' => 'Não há nenhum artigo para mostrar.', + 'rss_of' => 'RSS feed do %s', + 'title' => 'Seus RSS feeds', + 'title_global' => 'Visualização Global', + 'title_fav' => 'Seus favoritos', + ), + 'log' => array( + '_' => 'Logs', + 'clear' => 'Limpar logs', + 'empty' => 'Arquivo de log está vazio', + 'title' => 'Logs', + ), + 'menu' => array( + 'about' => 'Sobre o FreshRSS', + 'add_query' => 'Adicionar uma query', + 'before_one_day' => 'Antes de um dia', + 'before_one_week' => 'Antes de uma semana', + 'favorites' => 'Favoritos (%s)', + 'global_view' => 'Visualização global', + 'main_stream' => 'Stream principal', + 'mark_all_read' => 'Marcar todos como lidos', + 'mark_cat_read' => 'Marcar categoria como lida', + 'mark_feed_read' => 'Marcar feed com lido', + 'newer_first' => 'Novos primeiro', + 'non-starred' => 'Mostrar todos, exceto favoritos', + 'normal_view' => 'visualização normal', + 'older_first' => 'Antigos primeiro', + 'queries' => 'Queries do usuário', + 'read' => 'Mostrar apenas lidos', + 'reader_view' => 'Visualização de leitura', + 'rss_view' => 'RSS feed', + 'search_short' => 'Buscar', + 'starred' => 'Mostrar apenas os favoritos', + 'stats' => 'Estatísticas', + 'subscription' => 'Gerenciamento de inscrições', + 'unread' => 'Mostrar apenas os não lidos', + ), + 'share' => 'Compartilhar', + 'tag' => array( + 'related' => 'Tags relacionadas', + ), +); diff --git a/app/i18n/pt-br/install.php b/app/i18n/pt-br/install.php new file mode 100644 index 000000000..3ca5fb854 --- /dev/null +++ b/app/i18n/pt-br/install.php @@ -0,0 +1,119 @@ + array( + 'finish' => 'Instalação completa', + 'fix_errors_before' => 'Por favor resolva os erros antes de ir para o próximo passo.', + 'keep_install' => 'Mantenha as configurações anteriores', + 'next_step' => 'Vá para o próximo passo', + 'reinstall' => 'Reinstale o FreshRSS', + ), + 'auth' => array( + 'form' => 'Formulário web(tradicional, necessita JavaScript)', + 'http' => 'HTTP (Para usuários avançados com HTTPS)', + 'none' => 'None (perigoso)', + 'password_form' => 'Senha
    (Para o método do login pelo formulário)', + 'password_format' => 'Ao menos 7 caracteres', + 'type' => 'Método de autenticação', + ), + 'bdd' => array( + '_' => 'Banco de dados', + 'conf' => array( + '_' => 'Configuração do banco de dados', + 'ko' => 'Verifique as informações do seu banco de dados.', + 'ok' => 'Configurações do banco de dados foram salvas.', + ), + 'host' => 'Host', + 'prefix' => 'Prefixo da tabela', + 'password' => 'Senha do banco de dados', + 'type' => 'Tipo do banco de dados', + 'username' => 'Usuário do banco de dados', + ), + 'check' => array( + '_' => 'Verificações', + 'already_installed' => 'Verificamos que o FreshRSS já está instalado!', + 'cache' => array( + 'nok' => 'Verifique as permissões no diretório ./data/cache. O servidor HTTP deve ter direitos para escrever dentro desta pasta.', + 'ok' => 'Permissões no diretório cache estão corretos.', + ), + 'ctype' => array( + 'nok' => 'Não foi possível encontrar uma biblioteca necessária para verificação do tipo de caractere (php-ctype).', + 'ok' => 'Você tem a biblioteca necessária para verificação do tipo de caractere (ctype).', + ), + 'curl' => array( + 'nok' => 'Não foi possível encontrar a biblioteca cURL (php-curl).', + 'ok' => 'Você tem a biblioteca cURL.', + ), + 'data' => array( + 'nok' => 'Verifique as permissões no diretório ./data. O servidor HTTP deve ter direitos para escrever dentro desta pasta.', + 'ok' => 'Permissões no diretório data estão corretos.', + ), + 'dom' => array( + 'nok' => 'Não foi possível encontrar uma biblioteca necessária para navegar pelo DOM (php-xml).', + 'ok' => 'Você tem a biblioteca necessária para navegar pelo DOM.', + ), + 'favicons' => array( + 'nok' => 'Verifique as permissões no diretório ./data/favicons. O servidor HTTP deve ter direitos para escrever dentro desta pasta.', + 'ok' => 'Permissões no diretório favicons estão corretos.', + ), + 'fileinfo' => array( + 'nok' => 'Não foi possível encontrar a biblioteca fileinfo do PHP (fileinfo).', + 'ok' => 'Você tem a biblioteca fileinfo.', + ), + 'http_referer' => array( + 'nok' => 'Por favor verifique se você não está alterando seu HTTP REFERER.', + 'ok' => 'Seu HTTP REFERER é conhecido e corresponde ao seu servidor.', + ), + 'json' => array( + 'nok' => 'Não foi possível encontrar JSON (php5-json).', + 'ok' => 'Você tem a extensão JSON.', + ), + 'minz' => array( + 'nok' => 'Não foi possível encontrar o framework Minz.', + 'ok' => 'Você tem o framework Minz.', + ), + 'pcre' => array( + 'nok' => 'Não foi possível encontrar uma biblioteca necessário para expressões regulares (php-pcre).', + 'ok' => 'Você tem a biblioteca necessária para expressões regulares (php-pcre).', + ), + 'pdo' => array( + 'nok' => 'Não foi encontrado o PDO ou um dos drivers suportados (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'Você tem o PDO e ao menos um dos drivers suportados (pdo_mysql, pdo_sqlite, pdo_pgsql).', + ), + 'php' => array( + 'nok' => 'Sua versão do PHP é %s mas FreshRSS requer ao menos a versão %s.', + 'ok' => 'Sua versão do PHP é %s, que é compatível com o FreshRSS.', + ), + 'users' => array( + 'nok' => 'Verifiquei as permissões no diretório ./data/users. O servidor HTTP deve ter direitos para escrever dentro desta pasta.', + 'ok' => 'Permissões no diretório users estão corretos.', + ), + 'xml' => array( + 'nok' => 'Não foi possível encontrar a biblioteca necessária para parse o XML.', + 'ok' => 'Você tem a biblioteca necessária para parse o XML.', + ), + ), + 'conf' => array( + '_' => 'Configurações gerais', + 'ok' => 'Configurações gerais foram salvas.', + ), + 'congratulations' => 'Parabéns!', + 'default_user' => 'Usuário do usuário padrão (máximo de 16 caracteres alphanumericos)', + 'delete_articles_after' => 'Remover artigos depois', + 'fix_errors_before' => 'Por favor solucione os erros antes de ir para o próximo passo.', + 'javascript_is_better' => 'FreshRSS é mais agradável com o JavaScript ativo', + 'js' => array( + 'confirm_reinstall' => 'Você irá perder suas configurações anteriores ao reinstalar o FreshRSS. Você está certo que deseja continuar?', + ), + 'language' => array( + '_' => 'Idioma', + 'choose' => 'Escolhar o idioma para o FreshRSS', + 'defined' => 'Idioma foi definido.', + ), + 'not_deleted' => 'Algo deu errado; você deve deletar o arquivo %s manualmente.', + 'ok' => 'O processo de instalação foi um sucesso.', + 'step' => 'passo %d', + 'steps' => 'Passos', + 'title' => 'Instalação · FreshRSS', + 'this_is_the_end' => 'Este é o final', +); diff --git a/app/i18n/pt-br/sub.php b/app/i18n/pt-br/sub.php new file mode 100644 index 000000000..61a80d41e --- /dev/null +++ b/app/i18n/pt-br/sub.php @@ -0,0 +1,62 @@ + array( + '_' => 'Categoria', + 'add' => 'Adicionar uma categoria', + 'empty' => 'Categoria vazia', + 'new' => 'Nova categoria', + ), + 'feed' => array( + 'add' => 'Adicionar um RSS feed', + 'advanced' => 'Avançado', + 'archiving' => 'Arquivar', + 'auth' => array( + 'configuration' => 'Login', + 'help' => 'Permite acesso a feeds RSS protegidos por HTTP', + 'http' => 'Autenticação HTTP', + 'password' => 'Senha HTTP', + 'username' => 'Usuário HTTP', + ), + 'css_help' => 'Retorna RSS feeds truncados (atenção, requer mais tempo!)', + 'css_path' => 'Caminho do CSS do artigo no site original', + 'description' => 'Descrição', + 'empty' => 'Este feed está vazio. Por favor verifique ele ainda é mantido.', + 'error' => 'Este feed encontra-se com problema. Por favor verifique se ele ainda está disponível e atualize-o.', + 'in_main_stream' => 'Mostrar na tela principal', + 'informations' => 'Informações', + 'keep_history' => 'Número mínimo de artigos para manter', + 'moved_category_deleted' => 'Quando você deleta uma categoria, seus feeds são automaticamente classificados como %s.', + 'no_selected' => 'Nenhum feed selecionado.', + 'number_entries' => '%d artigos', + 'stats' => 'Estatísticas', + 'think_to_add' => 'Você deve adicionar alguns feeds.', + 'title' => 'Título', + 'title_add' => 'Adicionar o RSS feed', + 'ttl' => 'Não atualize automáticamente mais que', + 'url' => 'Feed URL', + 'validator' => 'Verifique a validade do feed', + 'website' => 'URL do site', + 'pubsubhubbub' => 'Notificação instantânea com PubSubHubbub', + ), + 'import_export' => array( + 'export' => 'Exportar', + 'export_opml' => 'Exporta a lista dos feeds (OPML)', + 'export_starred' => 'Exportar seus favoritos', + 'feed_list' => 'Lista dos %s artigos', + 'file_to_import' => 'Arquivo para importar
    (OPML, JSON or ZIP)', + 'file_to_import_no_zip' => 'Arquivo para importar
    (OPML or JSON)', + 'import' => 'Importar', + 'starred_list' => 'Listar artigos favoritos', + 'title' => 'Importar / exportar', + ), + 'menu' => array( + 'bookmark' => 'Inscreva-se (FreshRSS favoritos)', + 'import_export' => 'Importar / exportar', + 'subscription_management' => 'Gerenciamento de inscrições', + ), + 'title' => array( + '_' => 'Gerenciamento de inscrições', + 'feed_management' => 'Gerenciamento dos RSS feeds', + ), +); diff --git a/app/i18n/ru/gen.php b/app/i18n/ru/gen.php index b67da4861..3a728016d 100644 --- a/app/i18n/ru/gen.php +++ b/app/i18n/ru/gen.php @@ -122,6 +122,7 @@ return array( 'it' => 'Italiano', 'kr' => '한국어', 'nl' => 'Nederlands', + 'pt-br' => 'Português (Brasil)', 'ru' => 'Русский', 'tr' => 'Türkçe', 'zh-cn' => '简体中文', diff --git a/app/i18n/tr/gen.php b/app/i18n/tr/gen.php index ad0c72f9f..81f926840 100644 --- a/app/i18n/tr/gen.php +++ b/app/i18n/tr/gen.php @@ -122,6 +122,7 @@ return array( 'it' => 'Italiano', 'kr' => '한국어', 'nl' => 'Nederlands', + 'pt-br' => 'Português (Brasil)', 'ru' => 'Русский', 'tr' => 'Türkçe', 'zh-cn' => '简体中文', diff --git a/app/i18n/zh-cn/gen.php b/app/i18n/zh-cn/gen.php index 1cfc4ddff..a69f02b3f 100644 --- a/app/i18n/zh-cn/gen.php +++ b/app/i18n/zh-cn/gen.php @@ -122,6 +122,7 @@ return array( 'it' => 'Italiano', 'kr' => '한국어', 'nl' => 'Nederlands', + 'pt-br' => 'Português (Brasil)', 'ru' => 'Русский', 'tr' => 'Türkçe', 'zh-cn' => '简体中文', -- cgit v1.2.3 From 128ab42227d8bd65068f3536c53c4892020c3e39 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 30 Sep 2017 09:31:31 +0200 Subject: i18 quick fix: forgot es, kr in pt-br https://github.com/FreshRSS/FreshRSS/pull/1648 --- app/i18n/pt-br/gen.php | 2 ++ 1 file changed, 2 insertions(+) (limited to 'app/i18n') diff --git a/app/i18n/pt-br/gen.php b/app/i18n/pt-br/gen.php index 18562deeb..1a74e1437 100644 --- a/app/i18n/pt-br/gen.php +++ b/app/i18n/pt-br/gen.php @@ -116,8 +116,10 @@ return array( 'cz' => 'Čeština', 'de' => 'Deutsch', 'en' => 'English', + 'es' => 'Español', 'fr' => 'Français', 'it' => 'Italiano', + 'kr' => '한국어', 'nl' => 'Nederlands', 'pt-br' => 'Português (Brasil)', 'ru' => 'Русский', -- cgit v1.2.3 From e6fc86b4b110966bf11b1d5ac4755a3163f74945 Mon Sep 17 00:00:00 2001 From: Alexis Degrugillier Date: Mon, 9 Oct 2017 21:01:47 +0200 Subject: Add an entry in the subscription tool page I reworked @Alkarex idea proposed in #1292. I though it was a good idea to merge everything in the same location. --- app/i18n/cz/sub.php | 4 ++++ app/i18n/de/sub.php | 4 ++++ app/i18n/en/sub.php | 4 ++++ app/i18n/es/sub.php | 4 ++++ app/i18n/fr/sub.php | 4 ++++ app/i18n/it/sub.php | 4 ++++ app/i18n/kr/sub.php | 4 ++++ app/i18n/nl/sub.php | 4 ++++ app/i18n/pt-br/sub.php | 9 +++++++++ app/i18n/ru/sub.php | 4 ++++ app/i18n/tr/sub.php | 4 ++++ app/i18n/zh-cn/sub.php | 4 ++++ app/views/subscription/bookmarklet.phtml | 4 ++++ 13 files changed, 57 insertions(+) (limited to 'app/i18n') diff --git a/app/i18n/cz/sub.php b/app/i18n/cz/sub.php index 09b23d222..807c249d3 100644 --- a/app/i18n/cz/sub.php +++ b/app/i18n/cz/sub.php @@ -1,6 +1,10 @@ array( + 'documentation' => 'Copy the following URL to use it within an external tool.',// TODO + 'title' => 'API',// TODO + ), 'bookmarklet' => array( 'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',// TODO 'label' => 'Subscribe',// TODO diff --git a/app/i18n/de/sub.php b/app/i18n/de/sub.php index c16d09db1..4ffef4302 100644 --- a/app/i18n/de/sub.php +++ b/app/i18n/de/sub.php @@ -1,6 +1,10 @@ array( + 'documentation' => 'Copy the following URL to use it within an external tool.',// TODO + 'title' => 'API',// TODO + ), 'bookmarklet' => array( 'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',// TODO 'label' => 'Subscribe',// TODO diff --git a/app/i18n/en/sub.php b/app/i18n/en/sub.php index ca696280a..47b15ae7a 100644 --- a/app/i18n/en/sub.php +++ b/app/i18n/en/sub.php @@ -1,6 +1,10 @@ array( + 'documentation' => 'Copy the following URL to use it within an external tool.', + 'title' => 'API', + ), 'bookmarklet' => array( 'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.', 'label' => 'Subscribe', diff --git a/app/i18n/es/sub.php b/app/i18n/es/sub.php index c18f0b786..72eb06eb7 100755 --- a/app/i18n/es/sub.php +++ b/app/i18n/es/sub.php @@ -1,6 +1,10 @@ array( + 'documentation' => 'Copy the following URL to use it within an external tool.',// TODO + 'title' => 'API',// TODO + ), 'category' => array( '_' => 'Categoría', 'add' => 'Añadir a la categoría', diff --git a/app/i18n/fr/sub.php b/app/i18n/fr/sub.php index 9135b2b7c..607863c8f 100644 --- a/app/i18n/fr/sub.php +++ b/app/i18n/fr/sub.php @@ -1,6 +1,10 @@ array( + 'documentation' => 'Copier l’URL suivante dans l’outil qui utilisera l’API.', + 'title' => 'API', + ), 'bookmarklet' => array( 'documentation' => 'Glisser ce bouton dans la barre des favoris ou cliquer droit dessus et choisir "Enregistrer ce lien". Ensuite, cliquer sur le bouton "S’abonner" sur les pages auxquelles vous voulez vous abonner.', 'label' => 'S’abonner', diff --git a/app/i18n/it/sub.php b/app/i18n/it/sub.php index e730e2bc8..fe18855fb 100644 --- a/app/i18n/it/sub.php +++ b/app/i18n/it/sub.php @@ -1,6 +1,10 @@ array( + 'documentation' => 'Copy the following URL to use it within an external tool.',// TODO + 'title' => 'API',// TODO + ), 'bookmarklet' => array( 'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',// TODO 'label' => 'Subscribe',// TODO diff --git a/app/i18n/kr/sub.php b/app/i18n/kr/sub.php index 8af29422d..b8f2385b3 100644 --- a/app/i18n/kr/sub.php +++ b/app/i18n/kr/sub.php @@ -1,6 +1,10 @@ array( + 'documentation' => 'Copy the following URL to use it within an external tool.',// TODO + 'title' => 'API',// TODO + ), 'bookmarklet' => array( 'documentation' => '이 버튼을 즐겨찾기 막대로 끌어다 놓거나 마우스 오른쪽 클릭으로 나타나는 메뉴에서 "이 링크를 즐겨찾기에 추가"를 선택하세요. 그리고 피드를 구독하길 원하는 페이지에서 "구독하기" 버튼을 클릭하세요.', 'label' => '구독하기', diff --git a/app/i18n/nl/sub.php b/app/i18n/nl/sub.php index bfa0911b7..ae84c37eb 100644 --- a/app/i18n/nl/sub.php +++ b/app/i18n/nl/sub.php @@ -1,6 +1,10 @@ array( + 'documentation' => 'Copy the following URL to use it within an external tool.',// TODO + 'title' => 'API',// TODO + ), 'bookmarklet' => array( 'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',// TODO 'label' => 'Subscribe',// TODO diff --git a/app/i18n/pt-br/sub.php b/app/i18n/pt-br/sub.php index 61a80d41e..4249dcabf 100644 --- a/app/i18n/pt-br/sub.php +++ b/app/i18n/pt-br/sub.php @@ -1,6 +1,15 @@ array( + 'documentation' => 'Copy the following URL to use it within an external tool.',// TODO + 'title' => 'API',// TODO + ), + 'bookmarklet' => array( + 'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',// TODO + 'label' => 'Subscribe',// TODO + 'title' => 'Bookmarklet',// TODO + ), 'category' => array( '_' => 'Categoria', 'add' => 'Adicionar uma categoria', diff --git a/app/i18n/ru/sub.php b/app/i18n/ru/sub.php index fa28a3ec4..6a5530de0 100644 --- a/app/i18n/ru/sub.php +++ b/app/i18n/ru/sub.php @@ -1,6 +1,10 @@ array( + 'documentation' => 'Copy the following URL to use it within an external tool.',// TODO + 'title' => 'API',// TODO + ), 'bookmarklet' => array( 'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',// TODO 'label' => 'Subscribe',// TODO diff --git a/app/i18n/tr/sub.php b/app/i18n/tr/sub.php index e928fae72..0bbaeec5b 100644 --- a/app/i18n/tr/sub.php +++ b/app/i18n/tr/sub.php @@ -1,6 +1,10 @@ array( + 'documentation' => 'Copy the following URL to use it within an external tool.',// TODO + 'title' => 'API',// TODO + ), 'bookmarklet' => array( 'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',// TODO 'label' => 'Subscribe',// TODO diff --git a/app/i18n/zh-cn/sub.php b/app/i18n/zh-cn/sub.php index 159bcd919..48057e74c 100644 --- a/app/i18n/zh-cn/sub.php +++ b/app/i18n/zh-cn/sub.php @@ -1,6 +1,10 @@ array( + 'documentation' => 'Copy the following URL to use it within an external tool.',// TODO + 'title' => 'API',// TODO + ), 'bookmarklet' => array( 'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',// TODO 'label' => 'Subscribe',// TODO diff --git a/app/views/subscription/bookmarklet.phtml b/app/views/subscription/bookmarklet.phtml index 162501be6..76ac700e0 100644 --- a/app/views/subscription/bookmarklet.phtml +++ b/app/views/subscription/bookmarklet.phtml @@ -10,4 +10,8 @@

    browser.contentHandlers.types.number.uri →  'feed', 'a' => 'add'), 'html', true); ?>&url_rss=%s
    + + +

    +
     'feed', 'a' => 'add'), 'html', true); ?>&url_rss=%s
    \ No newline at end of file -- cgit v1.2.3 From 02c5ffa1e06bf7f7863765a63ad0368ada1d2f73 Mon Sep 17 00:00:00 2001 From: Frans de Jonge Date: Tue, 10 Oct 2017 21:21:12 +0200 Subject: [i18] nl/sub: add a few translations --- app/i18n/nl/sub.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/nl/sub.php b/app/i18n/nl/sub.php index ae84c37eb..15c1c9a0d 100644 --- a/app/i18n/nl/sub.php +++ b/app/i18n/nl/sub.php @@ -2,13 +2,13 @@ /* Dutch translation by Wanabo. http://www.nieuwskop.be */ return array( 'api' => array( - 'documentation' => 'Copy the following URL to use it within an external tool.',// TODO - 'title' => 'API',// TODO + 'documentation' => 'Kopieer de volgende URL om hem in een externe toepassing te gebruiken.' + 'title' => 'API', ), 'bookmarklet' => array( - 'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',// TODO - 'label' => 'Subscribe',// TODO - 'title' => 'Bookmarklet',// TODO + 'documentation' => 'Sleep deze knop naar je bladwijzerwerkbalk of klik erop met de rechtermuisknop en kies "Deze link aan bladwijzers toevoegen."', + 'label' => 'Abonneren', + 'title' => 'Bookmarklet', ), 'category' => array( '_' => 'Categorie', @@ -49,8 +49,8 @@ return array( 'website' => 'Website URL', ), 'firefox' => array( - 'documentation' => 'Follow the steps described here to add FreshRSS to Firefox feed reader list.',// TODO - 'title' => 'Firefox feed reader',// TODO + 'documentation' => 'Volg de stappen die hier beschreven wordem om FreshRSS aan de Firefox-nieuwslezerlijst toe te voegen.', + 'title' => 'Firefox-nieuwslezer', ), 'import_export' => array( 'export' => 'Exporteer', -- cgit v1.2.3 From 875b302179e043ad810203852e78896f68ce6478 Mon Sep 17 00:00:00 2001 From: Alexis Degrugillier Date: Tue, 17 Oct 2017 23:15:16 +0200 Subject: Fix typo in nl i18n (#1675) --- app/i18n/nl/sub.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/i18n') diff --git a/app/i18n/nl/sub.php b/app/i18n/nl/sub.php index 15c1c9a0d..ce446778c 100644 --- a/app/i18n/nl/sub.php +++ b/app/i18n/nl/sub.php @@ -2,7 +2,7 @@ /* Dutch translation by Wanabo. http://www.nieuwskop.be */ return array( 'api' => array( - 'documentation' => 'Kopieer de volgende URL om hem in een externe toepassing te gebruiken.' + 'documentation' => 'Kopieer de volgende URL om hem in een externe toepassing te gebruiken.', 'title' => 'API', ), 'bookmarklet' => array( -- cgit v1.2.3 From fe84e6135e7bfb35085fafbc7191ba6306bdb20d Mon Sep 17 00:00:00 2001 From: hoilc Date: Thu, 26 Oct 2017 18:46:53 +0800 Subject: improve zh-cn i18n (#1678) --- app/i18n/zh-cn/admin.php | 34 +++++++++++++++++----------------- app/i18n/zh-cn/conf.php | 14 +++++++------- app/i18n/zh-cn/feedback.php | 6 +++--- app/i18n/zh-cn/gen.php | 4 ++-- app/i18n/zh-cn/install.php | 18 +++++++++--------- app/i18n/zh-cn/sub.php | 28 ++++++++++++++-------------- 6 files changed, 52 insertions(+), 52 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/zh-cn/admin.php b/app/i18n/zh-cn/admin.php index 202114c75..4ecc52e64 100644 --- a/app/i18n/zh-cn/admin.php +++ b/app/i18n/zh-cn/admin.php @@ -9,9 +9,9 @@ return array( 'http' => 'HTTP (面向启用 HTTPS 的高级用户)', 'none' => '无 (危险)', 'title' => '认证', - 'title_reset' => '认证重置', + 'title_reset' => '密码重置', 'token' => '认证口令', - 'token_help' => '允许不经认证访问默认用户的 RSS 输出:', + 'token_help' => '用于不经认证访问默认用户的 RSS 输出:', 'type' => '认证方式', 'unsafe_autologin' => '允许不安全的自动登陆方式:', ), @@ -21,8 +21,8 @@ return array( 'ok' => 'cache 目录权限正常。', ), 'categories' => array( - 'nok' => '分类表配置错误。', - 'ok' => '分类表正常。', + 'nok' => 'Category 表配置错误。', + 'ok' => 'Category 表正常。', ), 'connection' => array( 'nok' => '数据库连接失败。', @@ -30,11 +30,11 @@ return array( ), 'ctype' => array( 'nok' => '找不到字符类型检测库 (php-ctype) 。', - 'ok' => '你已有字符类型检测库 (ctype) 。', + 'ok' => '已找到字符类型检测库 (ctype) 。', ), 'curl' => array( 'nok' => '找不到 cURL 库 (php-curl package) 。', - 'ok' => '你已有 cURL 库。', + 'ok' => '已找到 cURL 库。', ), 'data' => array( 'nok' => '请检查 ./data 目录权限。HTTP 服务器必须有其写入权限。', @@ -43,40 +43,40 @@ return array( 'database' => '数据库相关', 'dom' => array( 'nok' => '找不到用于浏览 DOM 的库 (php-xml) 。', - 'ok' => '你已有用于浏览 DOM 的库。', + 'ok' => '已找到用于浏览 DOM 的库。', ), 'entries' => array( - 'nok' => '条目表配置错误。', - 'ok' => '条目表正常。', + 'nok' => 'Entry 表配置错误。', + 'ok' => 'Entry 表正常。', ), 'favicons' => array( 'nok' => '请检查 ./data/favicons 目录权限。HTTP 服务器必须有其写入权限。', 'ok' => 'favicons 目录权限正常。', ), 'feeds' => array( - 'nok' => 'RSS 源表配置错误。', - 'ok' => 'RSS 源表正常。', + 'nok' => 'Feed 表配置错误。', + 'ok' => 'Feed 表正常。', ), 'fileinfo' => array( 'nok' => '找不到 PHP fileinfo 库 (fileinfo) 。', - 'ok' => '你已有 fileinfo 库。', + 'ok' => '已找到 fileinfo 库。', ), 'files' => '文件相关', 'json' => array( 'nok' => '找不到 JSON 扩展 (php5-json ) 。', - 'ok' => '你已有 JSON 扩展', + 'ok' => '已找到 JSON 扩展', ), 'minz' => array( 'nok' => '找不到 Minz 框架。', - 'ok' => '你已有 Minz 框架。', + 'ok' => '已找到 Minz 框架。', ), 'pcre' => array( 'nok' => '找不到正则表达式解析库 (php-pcre) 。', - 'ok' => '你已有正则表达式解析库 (PCRE) 。', + 'ok' => '已找到正则表达式解析库 (PCRE) 。', ), 'pdo' => array( 'nok' => '找不到 PDO 或支持的驱动 (pdo_mysql, pdo_sqlite, pdo_pgsql) 。', - 'ok' => '你已有 PDO 和支持的至少一种驱动 (pdo_mysql, pdo_sqlite, pdo_pgsql) 。', + 'ok' => '已找到 PDO 和支持的至少一种驱动 (pdo_mysql, pdo_sqlite, pdo_pgsql) 。', ), 'php' => array( '_' => 'PHP 相关', @@ -98,7 +98,7 @@ return array( ), 'zip' => array( 'nok' => '找不到 ZIP 扩展 (php-zip) 。', - 'ok' => '你已有 ZIP 扩展。', + 'ok' => '已找到 ZIP 扩展。', ), ), 'extensions' => array( diff --git a/app/i18n/zh-cn/conf.php b/app/i18n/zh-cn/conf.php index fb62c48ef..1b52ac38f 100644 --- a/app/i18n/zh-cn/conf.php +++ b/app/i18n/zh-cn/conf.php @@ -8,7 +8,7 @@ return array( 'help' => '详细选项位于单独的 RSS 源设置', 'keep_history_by_feed' => '至少保存的文章数', 'optimize' => '优化数据库', - 'optimize_help' => '不时地执行优化可以减少数据库大小', + 'optimize_help' => '偶尔执行优化可以减少数据库大小', 'purge_now' => '立即清除', 'title' => '存档', 'ttl' => '最小自动更新时间', @@ -87,15 +87,15 @@ return array( 'articles_per_page' => '每页文章数', 'auto_load_more' => '在页面底部载入下一篇文章', 'auto_remove_article' => '阅读后隐藏文章', - 'mark_updated_article_unread' => '将有更新的文章设为未读', + 'mark_updated_article_unread' => '有更新的文章设为未读', 'confirm_enabled' => '“全部设为已读”时显示确认对话框', 'display_articles_unfolded' => '默认展开文章', 'display_categories_unfolded' => '默认展开分类', 'hide_read_feeds' => '隐藏没有未读文章的分类或 RSS 源 (启用“显示所有文章”时不生效))', - 'img_with_lazyload' => '使用 "lazy load" 模式加载图片', + 'img_with_lazyload' => '延迟加载图片', 'sides_close_article' => '点击文章外区域以关闭文章', 'jump_next' => '跳转到下一未读项 (RSS 源或分类)', - 'number_divided_when_reader' => '阅读视图除以 2', + 'number_divided_when_reader' => '阅读视图中显示一半', 'read' => array( 'article_open_on_website' => '在打开原文章后', 'article_viewed' => '在文章被浏览后', @@ -134,7 +134,7 @@ return array( 'print' => '打印', 'shaarli' => 'Shaarli', 'share_name' => '名称', - 'share_url' => 'URL', + 'share_url' => '地址', 'title' => '分享', 'twitter' => 'Twitter', 'wallabag' => 'wallabag', @@ -143,7 +143,7 @@ return array( '_' => '快捷键', 'article_action' => '文章操作', 'auto_share' => '分享', - 'auto_share_help' => '如果有多种分享模式,则会按照它们的编号访问。', + 'auto_share_help' => '如果有多种分享模式,则会按照它们的编号依次访问。', 'close_dropdown' => '关闭菜单', 'collapse_article' => '收起文章', 'first_article' => '跳转到第一篇文章', @@ -163,7 +163,7 @@ return array( 'shift_for_all_read' => '+ shift 可以将全部文章设为已读', 'title' => '快捷键', 'user_filter' => '显示自定义查询', - 'user_filter_help' => '如果有多个自定义过滤器,则会按照它们的编号访问。', + 'user_filter_help' => '如果有多个自定义过滤器,则会按照它们的编号依次访问。', ), 'user' => array( 'articles_and_size' => '%s 篇文章 (%s)', diff --git a/app/i18n/zh-cn/feedback.php b/app/i18n/zh-cn/feedback.php index bee5914e9..4ec833668 100644 --- a/app/i18n/zh-cn/feedback.php +++ b/app/i18n/zh-cn/feedback.php @@ -15,10 +15,10 @@ return array( ), 'login' => array( 'invalid' => '用户名或密码无效', - 'success' => '你已成功登录', + 'success' => '登录成功', ), 'logout' => array( - 'success' => '你已登出', + 'success' => '登出成功', ), 'no_password_set' => '管理员密码尚未设置。此特性不可用。', ), @@ -43,7 +43,7 @@ return array( 'not_found' => '%s 不存在', ), 'import_export' => array( - 'export_no_zip_extension' => '服务器未启用 ZIP 扩展。请尝试一个一个导出文件。', + 'export_no_zip_extension' => '服务器未启用 ZIP 扩展。请尝试逐个导出文件。', 'feeds_imported' => '你的 RSS 源已导入,即将更新', 'feeds_imported_with_errors' => '你的 RSS 源已导入,但发生错误', 'file_cannot_be_uploaded' => '文件未能上传!', diff --git a/app/i18n/zh-cn/gen.php b/app/i18n/zh-cn/gen.php index a69f02b3f..3fd2abef6 100644 --- a/app/i18n/zh-cn/gen.php +++ b/app/i18n/zh-cn/gen.php @@ -34,7 +34,7 @@ return array( 'ask' => '创建新账户?', 'title' => '账户创建', ), - 'reset' => '认证重置', + 'reset' => '密码重置', 'username' => array( '_' => '用户名', 'admin' => '管理员用户名', @@ -176,7 +176,7 @@ return array( 'short' => array( 'attention' => '警告!', 'blank_to_disable' => '留空以禁用', - 'by_author' => 'By %s', + 'by_author' => '作者 %s', 'by_default' => '默认', 'damn' => '错误!', 'default_category' => '未分类', diff --git a/app/i18n/zh-cn/install.php b/app/i18n/zh-cn/install.php index f247a20fd..1e172f0d5 100644 --- a/app/i18n/zh-cn/install.php +++ b/app/i18n/zh-cn/install.php @@ -38,11 +38,11 @@ return array( ), 'ctype' => array( 'nok' => '找不到字符类型检测库 (php-ctype) 。', - 'ok' => '你已有字符类型检测库 (ctype) 。', + 'ok' => '已找到字符类型检测库 (ctype) 。', ), 'curl' => array( 'nok' => '找不到 cURL 库 (php-curl package) 。', - 'ok' => '你已有 cURL 库。', + 'ok' => '已找到 cURL 库。', ), 'data' => array( 'nok' => '请检查 ./data 目录权限。HTTP 服务器必须有其写入权限。', @@ -50,7 +50,7 @@ return array( ), 'dom' => array( 'nok' => '找不到用于浏览 DOM 的库 (php-xml) 。', - 'ok' => '你已有用于浏览 DOM 的库。', + 'ok' => '已找到用于浏览 DOM 的库。', ), 'favicons' => array( 'nok' => '请检查 ./data/favicons 目录权限。HTTP 服务器必须有其写入权限。', @@ -58,7 +58,7 @@ return array( ), 'fileinfo' => array( 'nok' => '找不到 PHP fileinfo 库 (fileinfo) 。', - 'ok' => '你已有 fileinfo 库。', + 'ok' => '已找到 fileinfo 库。', ), 'http_referer' => array( 'nok' => '请检查你是否修改了 HTTP REFERER。', @@ -66,19 +66,19 @@ return array( ), 'json' => array( 'nok' => '找不到推荐的 JSON 解析库。', - 'ok' => '你已有推荐的 JSON 解析库。', + 'ok' => '已找到推荐的 JSON 解析库。', ), 'minz' => array( 'nok' => '找不到 Minz 框架。', - 'ok' => '你已有 Minz 框架。', + 'ok' => '已找到 Minz 框架。', ), 'pcre' => array( 'nok' => '找不到正则表达式解析库 (php-pcre) 。', - 'ok' => '你已有正则表达式解析库 (PCRE) 。', + 'ok' => '已找到正则表达式解析库 (PCRE) 。', ), 'pdo' => array( 'nok' => '找不到 PDO 或支持的驱动 (pdo_mysql, pdo_sqlite, pdo_pgsql) 。', - 'ok' => '你已有 PDO 和支持的至少一种驱动 (pdo_mysql, pdo_sqlite, pdo_pgsql) 。', + 'ok' => '已找到 PDO 和支持的至少一种驱动 (pdo_mysql, pdo_sqlite, pdo_pgsql) 。', ), 'php' => array( 'nok' => '你的 PHP 版本为 %s,但 FreshRSS 最低需要 %s。', @@ -90,7 +90,7 @@ return array( ), 'xml' => array( 'nok' => '找不到用于 XML 解析库。', - 'ok' => '你已有 XML 解析库。', + 'ok' => '已找到 XML 解析库。', ), ), 'conf' => array( diff --git a/app/i18n/zh-cn/sub.php b/app/i18n/zh-cn/sub.php index 48057e74c..026f436d7 100644 --- a/app/i18n/zh-cn/sub.php +++ b/app/i18n/zh-cn/sub.php @@ -2,13 +2,13 @@ return array( 'api' => array( - 'documentation' => 'Copy the following URL to use it within an external tool.',// TODO - 'title' => 'API',// TODO + 'documentation' => '复制以下地址,可供外部工具使用', + 'title' => 'API', ), 'bookmarklet' => array( - 'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',// TODO - 'label' => 'Subscribe',// TODO - 'title' => 'Bookmarklet',// TODO + 'documentation' => '拖动此书签到你的书签栏或者右键选择“收藏此链接”,然后在你想要订阅的页面上点击“订阅”按钮', + 'label' => '订阅', + 'title' => '书签应用', ), 'category' => array( '_' => '分类', @@ -22,20 +22,20 @@ return array( 'archiving' => '存档', 'auth' => array( 'configuration' => '认证', - 'help' => '连接启用 HTTP 认证的 RSS 源', + 'help' => '用于连接启用 HTTP 认证的 RSS 源', 'http' => 'HTTP 认证', 'password' => 'HTTP 密码', 'username' => 'HTTP 用户名', ), - 'css_help' => '获取全文(注意,会耗费更多时间!)', - 'css_path' => '原网站中文章的 CSS 路径', + 'css_help' => '用于获取全文(注意,这将耗费更多时间!)', + 'css_path' => '原文的 CSS 选择器', 'description' => '描述', 'empty' => '此源为空。请确认它是否正常更新。', - 'error' => '此源遇到一些问题。请确认它是否可访问后重试。', + 'error' => '此源遇到一些问题。请在确认是否能正常访问后重试。', 'in_main_stream' => '在首页中显示', 'informations' => '信息', 'keep_history' => '至少保存的文章数', - 'moved_category_deleted' => '删除分类时,其中的 RSS 源会自动归类到%s。', + 'moved_category_deleted' => '删除分类时,其中的 RSS 源会自动归类到 %s', 'no_selected' => '未选择 RSS 源。', 'number_entries' => '%d 篇文章', 'stats' => '统计', @@ -49,8 +49,8 @@ return array( 'pubsubhubbub' => 'PubSubHubbub 即时通知', ), 'firefox' => array( - 'documentation' => 'Follow the steps described here to add FreshRSS to Firefox feed reader list.',// TODO - 'title' => 'Firefox feed reader',// TODO + 'documentation' => '按照 这里 描述的步骤可将 FreshRSS 添加到 Firefox 阅读器列表', + 'title' => 'Firefox RSS 阅读器', ), 'import_export' => array( 'export' => '导出', @@ -67,11 +67,11 @@ return array( 'bookmark' => '订阅 (FreshRSS 书签)', 'import_export' => '导入/导出', 'subscription_management' => '订阅管理', - 'subscription_tools' => 'Subscription tools',// TODO + 'subscription_tools' => '订阅工具', ), 'title' => array( '_' => '订阅管理', 'feed_management' => 'RSS 源管理', - 'subscription_tools' => 'Subscription tools',// TODO + 'subscription_tools' => '订阅工具', ), ); -- cgit v1.2.3 From afffbfce0758391a52c8c0c5b9766643a49065e8 Mon Sep 17 00:00:00 2001 From: Alexis Degrugillier Date: Sat, 4 Nov 2017 21:19:51 +0100 Subject: Add a Mastodon share (#1674) See #1521 --- app/FreshRSS.php | 8 +++++- app/Models/Share.php | 31 +++++++++++++++++++++-- app/i18n/cz/gen.php | 13 +++++----- app/i18n/de/gen.php | 10 ++++---- app/i18n/en/gen.php | 10 ++++---- app/i18n/es/gen.php | 11 ++++---- app/i18n/fr/gen.php | 11 ++++---- app/i18n/it/gen.php | 11 ++++---- app/i18n/kr/gen.php | 11 ++++---- app/i18n/nl/gen.php | 17 +++++++------ app/i18n/pt-br/gen.php | 11 ++++---- app/i18n/ru/gen.php | 9 ++++--- app/i18n/tr/gen.php | 11 ++++---- app/i18n/zh-cn/gen.php | 11 ++++---- app/views/configure/sharing.phtml | 6 ++++- app/views/helpers/index/normal/entry_bottom.phtml | 9 ++++++- data/shares.php | 25 ++++++++++++++++++ p/scripts/main.js | 11 ++++++++ 18 files changed, 158 insertions(+), 68 deletions(-) (limited to 'app/i18n') diff --git a/app/FreshRSS.php b/app/FreshRSS.php index 90d6fae06..8f4ee334c 100644 --- a/app/FreshRSS.php +++ b/app/FreshRSS.php @@ -111,7 +111,13 @@ class FreshRSS extends Minz_FrontController { public static function preLayout() { switch (Minz_Request::controllerName()) { case 'index': - header("Content-Security-Policy: default-src 'self'; child-src *; frame-src *; img-src * data:; media-src *"); + $urlToAuthorize = array_filter(array_map(function($a) { + if ('POST' === $a['method']) { + return $a['url']; + } + }, FreshRSS_Context::$user_conf->sharing)); + $connectSrc = count($urlToAuthorize) ? sprintf("; connect-src 'self' %s", implode(' ', $urlToAuthorize)) : ''; + header(sprintf("Content-Security-Policy: default-src 'self'; child-src *; frame-src *; img-src * data:; media-src *%s", $connectSrc)); break; case 'stats': header("Content-Security-Policy: default-src 'self'; style-src 'self' 'unsafe-inline'"); diff --git a/app/Models/Share.php b/app/Models/Share.php index 86b1b9ed9..7378b30df 100644 --- a/app/Models/Share.php +++ b/app/Models/Share.php @@ -21,9 +21,11 @@ class FreshRSS_Share { } $help_url = isset($share_options['help']) ? $share_options['help'] : ''; + $field = isset($share_options['field']) ? $share_options['field'] : null; self::$list_sharing[$type] = new FreshRSS_Share( $type, $share_options['url'], $share_options['transform'], - $share_options['form'], $help_url + $share_options['form'], $help_url, $share_options['method'], + $field ); } @@ -76,6 +78,8 @@ class FreshRSS_Share { private $base_url = null; private $title = null; private $link = null; + private $method = 'GET'; + private $field; /** * Create a FreshRSS_Share object. @@ -86,9 +90,10 @@ class FreshRSS_Share { * is typically for a centralized service while "advanced" is for * decentralized ones. * @param $help_url is an optional url to give help on this option. + * @param $method defines the sharing method (GET or POST) */ private function __construct($type, $url_transform, $transform, - $form_type, $help_url = '') { + $form_type, $help_url, $method, $field) { $this->type = $type; $this->name = _t('gen.share.' . $type); $this->url_transform = $url_transform; @@ -103,6 +108,11 @@ class FreshRSS_Share { $form_type = 'simple'; } $this->form_type = $form_type; + if (!in_array($method, array('GET', 'POST'))) { + $method = 'GET'; + } + $this->method = $method; + $this->field = $field; } /** @@ -116,6 +126,8 @@ class FreshRSS_Share { 'url' => 'base_url', 'title' => 'title', 'link' => 'link', + 'method' => 'method', + 'field' => 'field', ); foreach ($options as $key => $value) { @@ -132,6 +144,21 @@ class FreshRSS_Share { return $this->type; } + /** + * Return the current method of the share option. + */ + public function method() { + return $this->method; + } + + /** + * Return the current field of the share option. It's null for shares + * using the GET method. + */ + public function field() { + return $this->field; + } + /** * Return the current form type of the share option. */ diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index a9c7dc875..e43355f64 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -13,8 +13,8 @@ return array( 'filter' => 'Filtrovat', 'import' => 'Import', 'manage' => 'Spravovat', - 'mark_read' => 'Označit jako přečtené', 'mark_favorite' => 'Označit jako oblíbené', + 'mark_read' => 'Označit jako přečtené', 'remove' => 'Odstranit', 'see_website' => 'Navštívit WWW stránku', 'submit' => 'Odeslat', @@ -79,8 +79,8 @@ return array( 'last_year' => 'Minulý rok', 'mar' => 'bře', 'march' => 'Bře', - 'may_' => 'Kvě', 'may' => 'Květen', + 'may_' => 'Kvě', 'mon' => 'Po', 'month' => 'měsíce', 'nov' => 'lis', @@ -143,7 +143,7 @@ return array( 'sharing' => 'Sdílení', 'shortcuts' => 'Zkratky', 'stats' => 'Statistika', - 'system' => 'System configuration',// @todo translate + 'system' => 'System configuration', // @todo translate 'update' => 'Aktualizace', 'user_management' => 'Správa uživatelů', 'user_profile' => 'Profil', @@ -158,20 +158,21 @@ return array( 'previous' => 'Předchozí', ), 'share' => array( + 'Known' => 'Known based sites', 'blogotext' => 'Blogotext', 'diaspora' => 'Diaspora*', 'email' => 'Email', 'facebook' => 'Facebook', 'g+' => 'Google+', + 'gnusocial' => 'GNU social', + 'jdh' => 'Journal du hacker', + 'mastodon' => 'Mastodon', 'movim' => 'Movim', 'print' => 'Tisk', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', - 'jdh' => 'Journal du hacker', - 'Known' => 'Known based sites', - 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => 'Upozornění!', diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index 43d0a2c05..b42081324 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -13,8 +13,8 @@ return array( 'filter' => 'Filtern', 'import' => 'Importieren', 'manage' => 'Verwalten', - 'mark_read' => 'Als gelesen markieren', 'mark_favorite' => 'Als Favorit markieren', + 'mark_read' => 'Als gelesen markieren', 'remove' => 'Entfernen', 'see_website' => 'Webseite ansehen', 'submit' => 'Abschicken', @@ -79,8 +79,8 @@ return array( 'last_year' => 'Letztes Jahr', 'mar' => 'Mär', 'march' => 'März', - 'may_' => 'Mai', 'may' => 'Mai', + 'may_' => 'Mai', 'mon' => 'Mo', 'month' => 'Monat(en)', 'nov' => 'Nov', @@ -163,15 +163,15 @@ return array( 'email' => 'E-Mail', 'facebook' => 'Facebook', 'g+' => 'Google+', + 'gnusocial' => 'GNU social', + 'jdh' => 'Journal du hacker', + 'mastodon' => 'Mastodon', 'movim' => 'Movim', 'print' => 'Drucken', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', - 'jdh' => 'Journal du hacker', - 'Known' => 'Known based sites', - 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => 'Achtung!', diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 095eb17d3..ef1993dbc 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -13,8 +13,8 @@ return array( 'filter' => 'Filter', 'import' => 'Import', 'manage' => 'Manage', - 'mark_read' => 'Mark as read', 'mark_favorite' => 'Mark as favourite', + 'mark_read' => 'Mark as read', 'remove' => 'Remove', 'see_website' => 'See website', 'submit' => 'Submit', @@ -79,8 +79,8 @@ return array( 'last_year' => 'Last year', 'mar' => 'Mar.', 'march' => 'March', - 'may_' => 'May', 'may' => 'May', + 'may_' => 'May', 'mon' => 'Mon', 'month' => 'months', 'nov' => 'Nov.', @@ -163,15 +163,15 @@ return array( 'email' => 'Email', 'facebook' => 'Facebook', 'g+' => 'Google+', + 'gnusocial' => 'GNU social', + 'jdh' => 'Journal du hacker', + 'mastodon' => 'Mastodon', 'movim' => 'Movim', 'print' => 'Print', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', - 'jdh' => 'Journal du hacker', - 'Known' => 'Known based sites', - 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => 'Warning!', diff --git a/app/i18n/es/gen.php b/app/i18n/es/gen.php index 68fdaf429..0f113e073 100755 --- a/app/i18n/es/gen.php +++ b/app/i18n/es/gen.php @@ -13,8 +13,8 @@ return array( 'filter' => 'Filtrar', 'import' => 'Importar', 'manage' => 'Administrar', - 'mark_read' => 'Marcar como leído', 'mark_favorite' => 'Marcar como favorita', + 'mark_read' => 'Marcar como leído', 'remove' => 'Borrar', 'see_website' => 'Ver web', 'submit' => 'Enviar', @@ -79,8 +79,8 @@ return array( 'last_year' => 'Año pasado', 'mar' => 'mar', 'march' => 'marzo', - 'may_' => 'may', 'may' => 'mayo', + 'may_' => 'may', 'mon' => 'Lun', 'month' => 'meses', 'nov' => 'nov', @@ -158,20 +158,21 @@ return array( 'previous' => 'Anterior', ), 'share' => array( + 'Known' => 'Known based sites', 'blogotext' => 'Blogotext', 'diaspora' => 'Diaspora*', 'email' => 'Email', 'facebook' => 'Facebook', 'g+' => 'Google+', + 'gnusocial' => 'GNU social', + 'jdh' => 'Journal du hacker', + 'mastodon' => 'Mastodon', 'movim' => 'Movim', 'print' => 'Print', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', - 'jdh' => 'Journal du hacker', - 'Known' => 'Known based sites', - 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => '¡Aviso!', diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 16935c3c4..29b7f8e4a 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -13,8 +13,8 @@ return array( 'filter' => 'Filtrer', 'import' => 'Importer', 'manage' => 'Gérer', - 'mark_read' => 'Marquer comme lu', 'mark_favorite' => 'Mettre en favori', + 'mark_read' => 'Marquer comme lu', 'remove' => 'Supprimer', 'see_website' => 'Voir le site', 'submit' => 'Valider', @@ -79,8 +79,8 @@ return array( 'last_year' => 'Depuis l’année dernière', 'mar' => 'mars', 'march' => 'mars', - 'may_' => 'mai', 'may' => 'mai', + 'may_' => 'mai', 'mon' => 'lun.', 'month' => 'mois', 'nov' => 'nov.', @@ -158,20 +158,21 @@ return array( 'previous' => 'Précédent', ), 'share' => array( + 'Known' => 'Sites basés sur Known', 'blogotext' => 'Blogotext', 'diaspora' => 'Diaspora*', 'email' => 'Courriel', 'facebook' => 'Facebook', 'g+' => 'Google+', + 'gnusocial' => 'GNU social', + 'jdh' => 'Journal du hacker', + 'mastodon' => 'Mastodon', 'movim' => 'Movim', 'print' => 'Imprimer', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', - 'jdh' => 'Journal du hacker', - 'Known' => 'Sites basés sur Known', - 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => 'Attention !', diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index ae39d7324..9eaabc2be 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -13,8 +13,8 @@ return array( 'filter' => 'Filtra', 'import' => 'Importa', 'manage' => 'Gestisci', - 'mark_read' => 'Segna come letto', 'mark_favorite' => 'Segna come preferito', + 'mark_read' => 'Segna come letto', 'remove' => 'Rimuovi', 'see_website' => 'Vai al sito', 'submit' => 'Conferma', @@ -79,8 +79,8 @@ return array( 'last_year' => 'Ultimo anno', 'mar' => 'mar.', 'march' => 'marzo', - 'may_' => 'May', 'may' => 'maggio', + 'may_' => 'May', 'mon' => 'Mon', 'month' => 'mesi', 'nov' => 'nov.', @@ -158,20 +158,21 @@ return array( 'previous' => 'Precedente', ), 'share' => array( + 'Known' => 'Siti basati su Known', 'blogotext' => 'Blogotext', 'diaspora' => 'Diaspora*', 'email' => 'Email', 'facebook' => 'Facebook', 'g+' => 'Google+', + 'gnusocial' => 'GNU social', + 'jdh' => 'Journal du hacker', + 'mastodon' => 'Mastodon', 'movim' => 'Movim', 'print' => 'Stampa', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', - 'jdh' => 'Journal du hacker', - 'Known' => 'Siti basati su Known', - 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => 'Attenzione!', diff --git a/app/i18n/kr/gen.php b/app/i18n/kr/gen.php index 35d5e8143..e9b6ea9b8 100644 --- a/app/i18n/kr/gen.php +++ b/app/i18n/kr/gen.php @@ -13,8 +13,8 @@ return array( 'filter' => '해당하는 글 보기', 'import' => '불러오기', 'manage' => '관리', - 'mark_read' => '읽음으로 표시', 'mark_favorite' => '즐겨찾기에 등록', + 'mark_read' => '읽음으로 표시', 'remove' => '삭제', 'see_website' => '웹사이트 열기', 'submit' => '설정 저장', @@ -79,8 +79,8 @@ return array( 'last_year' => '최근 일 년', 'mar' => '3월', 'march' => '3월', - 'may_' => '5월', 'may' => '5월', + 'may_' => '5월', 'mon' => '월', 'month' => '개월', 'nov' => '11월', @@ -158,20 +158,21 @@ return array( 'previous' => 'Previous', ), 'share' => array( + 'Known' => 'Known based sites', 'blogotext' => 'Blogotext', 'diaspora' => 'Diaspora*', 'email' => '메일', 'facebook' => 'Facebook', 'g+' => 'Google+', + 'gnusocial' => 'GNU social', + 'jdh' => 'Journal du hacker', + 'mastodon' => 'Mastodon', 'movim' => 'Movim', 'print' => '인쇄', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', - 'jdh' => 'Journal du hacker', - 'Known' => 'Known based sites', - 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => '경고!', diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index 1617936ab..bccab8310 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -1,5 +1,5 @@ array( 'actualize' => 'Actualiseren', @@ -13,8 +13,8 @@ return array( 'filter' => 'Filteren', 'import' => 'Importeren', 'manage' => 'Beheren', - 'mark_read' => 'Markeer als gelezen', 'mark_favorite' => 'Markeer als favoriet', + 'mark_read' => 'Markeer als gelezen', 'remove' => 'Verwijder', 'see_website' => 'Bekijk website', 'submit' => 'Opslaan', @@ -63,8 +63,8 @@ return array( 'december' => 'Dec', 'feb' => 'feb', 'february' => 'Feb', - 'format_date' => 'j %s Y', //<-- European date format // 'format_date' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y', - 'format_date_hour' => 'j %s Y \\o\\m H\\:i', //<-- European date format // 'format_date_hour' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y \\a\\t H\\:i', + 'format_date' => 'j %s Y', + 'format_date_hour' => 'j %s Y \\o\\m H\\:i', 'fri' => 'Vr', 'jan' => 'jan', 'january' => 'Jan', @@ -79,8 +79,8 @@ return array( 'last_year' => 'Vorig jaar', 'mar' => 'mrt', 'march' => 'Mrt', - 'may_' => 'Mei', 'may' => 'Mei', + 'may_' => 'Mei', 'mon' => 'Ma', 'month' => 'maanden', 'nov' => 'nov', @@ -158,20 +158,21 @@ return array( 'previous' => 'Vorige', ), 'share' => array( + 'Known' => 'Known based sites', 'blogotext' => 'Blogotext', 'diaspora' => 'Diaspora*', 'email' => 'Email', 'facebook' => 'Facebook', 'g+' => 'Google+', + 'gnusocial' => 'GNU social', + 'jdh' => 'Journal du hacker', + 'mastodon' => 'Mastodon', 'movim' => 'Movim', 'print' => 'Print', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', - 'jdh' => 'Journal du hacker', - 'Known' => 'Known based sites', - 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => 'Attentie!', diff --git a/app/i18n/pt-br/gen.php b/app/i18n/pt-br/gen.php index 1a74e1437..e313b0d8b 100644 --- a/app/i18n/pt-br/gen.php +++ b/app/i18n/pt-br/gen.php @@ -13,8 +13,8 @@ return array( 'filter' => 'Filtrar', 'import' => 'Importar', 'manage' => 'Gerenciar', - 'mark_read' => 'Marcar como lido', 'mark_favorite' => 'Marcar como favorito', + 'mark_read' => 'Marcar como lido', 'remove' => 'Remover', 'see_website' => 'Ver o site', 'submit' => 'Enviar', @@ -124,7 +124,7 @@ return array( 'pt-br' => 'Português (Brasil)', 'ru' => 'Русский', 'tr' => 'Türkçe', - 'zh-cn' => '简体中文' + 'zh-cn' => '简体中文', ), 'menu' => array( 'about' => 'Sobre', @@ -157,20 +157,21 @@ return array( 'previous' => 'Anterior', ), 'share' => array( + 'Known' => 'Known based sites', 'blogotext' => 'Blogotext', 'diaspora' => 'Diaspora*', 'email' => 'Email', 'facebook' => 'Facebook', 'g+' => 'Google+', + 'gnusocial' => 'GNU social', + 'jdh' => 'Journal du hacker', + 'mastodon' => 'Mastodon', 'movim' => 'Movim', 'print' => 'Imprimir', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', - 'jdh' => 'Journal du hacker', - 'Known' => 'Known based sites', - 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => 'Atencão!', diff --git a/app/i18n/ru/gen.php b/app/i18n/ru/gen.php index 3a728016d..3283731df 100644 --- a/app/i18n/ru/gen.php +++ b/app/i18n/ru/gen.php @@ -13,8 +13,8 @@ return array( 'filter' => 'Filter', 'import' => 'Import', 'manage' => 'Manage', - 'mark_read' => 'Mark as read', 'mark_favorite' => 'Mark as favourite', + 'mark_read' => 'Mark as read', 'remove' => 'Remove', 'see_website' => 'See website', 'submit' => 'Submit', @@ -79,8 +79,8 @@ return array( 'last_year' => 'Last year', 'mar' => 'mar', 'march' => 'Mar', - 'may_' => 'May', 'may' => 'May', + 'may_' => 'May', 'mon' => 'Mon', 'month' => 'months', 'nov' => 'nov', @@ -158,20 +158,21 @@ return array( 'previous' => 'Previous', ), 'share' => array( + 'Known' => 'Known based sites', 'blogotext' => 'Blogotext', 'diaspora' => 'Diaspora*', 'email' => 'Email', 'facebook' => 'Facebook', 'g+' => 'Google+', + 'gnusocial' => 'GNU social', 'jdh' => 'Journal du hacker', + 'mastodon' => 'Mastodon', 'movim' => 'Movim', 'print' => 'Print', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', - 'Known' => 'Known based sites', - 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => 'Warning!', diff --git a/app/i18n/tr/gen.php b/app/i18n/tr/gen.php index 81f926840..535563542 100644 --- a/app/i18n/tr/gen.php +++ b/app/i18n/tr/gen.php @@ -13,8 +13,8 @@ return array( 'filter' => 'Filtrele', 'import' => 'İçe Aktar', 'manage' => 'Yönet', - 'mark_read' => 'Okundu olarak işaretle', 'mark_favorite' => 'Favoriye ekle', + 'mark_read' => 'Okundu olarak işaretle', 'remove' => 'Sil', 'see_website' => 'Siteyi gör', 'submit' => 'Onayla', @@ -79,8 +79,8 @@ return array( 'last_year' => 'Geçen yıl', 'mar' => 'mar', 'march' => 'Mar', - 'may_' => 'May', 'may' => 'Mayıs', + 'may_' => 'May', 'mon' => 'Pzt', 'month' => 'ay', 'nov' => 'kas', @@ -158,20 +158,21 @@ return array( 'previous' => 'Önceki', ), 'share' => array( + 'Known' => 'Known based sites', 'blogotext' => 'Blogotext', 'diaspora' => 'Diaspora*', 'email' => 'Email', 'facebook' => 'Facebook', 'g+' => 'Google+', + 'gnusocial' => 'GNU social', + 'jdh' => 'Journal du hacker', + 'mastodon' => 'Mastodon', 'movim' => 'Movim', 'print' => 'Print', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', - 'jdh' => 'Journal du hacker', - 'Known' => 'Known based sites', - 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => 'Tehlike!', diff --git a/app/i18n/zh-cn/gen.php b/app/i18n/zh-cn/gen.php index 3fd2abef6..84be9f4ba 100644 --- a/app/i18n/zh-cn/gen.php +++ b/app/i18n/zh-cn/gen.php @@ -13,8 +13,8 @@ return array( 'filter' => '过滤器', 'import' => '导入', 'manage' => '管理', - 'mark_read' => '设为已读', 'mark_favorite' => '加入收藏', + 'mark_read' => '设为已读', 'remove' => '删除', 'see_website' => '查看网站', 'submit' => '提交', @@ -79,8 +79,8 @@ return array( 'last_year' => '去年', 'mar' => '三月', 'march' => '三月', - 'may_' => '五月', 'may' => '五月', + 'may_' => '五月', 'mon' => '周一', 'month' => '个月', 'nov' => '十一月', @@ -158,20 +158,21 @@ return array( 'previous' => '上一页', ), 'share' => array( + 'Known' => 'Known based sites', 'blogotext' => 'Blogotext', 'diaspora' => 'Diaspora*', 'email' => 'Email', 'facebook' => 'Facebook', 'g+' => 'Google+', + 'gnusocial' => 'GNU social', + 'jdh' => 'Journal du hacker', + 'mastodon' => 'Mastodon', 'movim' => 'Movim', 'print' => 'Print', 'shaarli' => 'Shaarli', 'twitter' => 'Twitter', 'wallabag' => 'wallabag v1', 'wallabagv2' => 'wallabag v2', - 'jdh' => 'Journal du hacker', - 'Known' => 'Known based sites', - 'gnusocial' => 'GNU social', ), 'short' => array( 'attention' => '警告!', diff --git a/app/views/configure/sharing.phtml b/app/views/configure/sharing.phtml index ffcfb8b29..b0e6618fa 100644 --- a/app/views/configure/sharing.phtml +++ b/app/views/configure/sharing.phtml @@ -9,6 +9,8 @@
    ' data-advanced='
    + +
    @@ -28,6 +30,8 @@
    + +
    formType() === 'advanced') { ?> @@ -48,7 +52,7 @@
    + + diff --git a/data/shares.php b/data/shares.php index d73ae3826..5403fd48c 100644 --- a/data/shares.php +++ b/data/shares.php @@ -14,6 +14,10 @@ * The ~TITLE~ placeholder represents the title of the shared article. * - transform is an array of transformation to apply on links and titles * - help is a URL to a help page + * - form is the type of form to display during configuration. It's either + * 'simple' or 'advanced'. 'simple' is used when only the name is configurable, + * 'advanced' is used when the name and the location are configurable. + * - method is the HTTP method (POST or GET) used to share a link. */ return array( @@ -22,12 +26,14 @@ return array( 'transform' => array('rawurlencode'), 'help' => 'http://sebsauvage.net/wiki/doku.php?id=php:shaarli', 'form' => 'advanced', + 'method' => 'GET', ), 'blogotext' => array( 'url' => '~URL~/admin/links.php?url=~LINK~', 'transform' => array(), 'help' => 'http://lehollandaisvolant.net/blogotext/fr/', 'form' => 'advanced', + 'method' => 'GET', ), 'wallabag' => array( 'url' => '~URL~?action=add&url=~LINK~', @@ -37,6 +43,7 @@ return array( ), 'help' => 'http://www.wallabag.org/', 'form' => 'advanced', + 'method' => 'GET', ), 'wallabagv2' => array( 'url' => '~URL~/bookmarklet?url=~LINK~', @@ -46,59 +53,77 @@ return array( ), 'help' => 'http://www.wallabag.org/', 'form' => 'advanced', + 'method' => 'GET', ), 'diaspora' => array( 'url' => '~URL~/bookmarklet?url=~LINK~&title=~TITLE~', 'transform' => array('rawurlencode'), 'help' => 'https://diasporafoundation.org/', 'form' => 'advanced', + 'method' => 'GET', ), 'movim' => array( 'url' => '~URL~/?share/~LINK~', 'transform' => array('rawurlencode', 'urlencode'), 'help' => 'https://github.com/edhelas/movim', 'form' => 'advanced', + 'method' => 'GET', ), 'twitter' => array( 'url' => 'https://twitter.com/share?url=~LINK~&text=~TITLE~', 'transform' => array('rawurlencode'), 'form' => 'simple', + 'method' => 'GET', ), 'g+' => array( 'url' => 'https://plus.google.com/share?url=~LINK~', 'transform' => array('rawurlencode'), 'form' => 'simple', + 'method' => 'GET', ), 'facebook' => array( 'url' => 'https://www.facebook.com/sharer.php?u=~LINK~&t=~TITLE~', 'transform' => array('rawurlencode'), 'form' => 'simple', + 'method' => 'GET', ), 'email' => array( 'url' => 'mailto:?subject=~TITLE~&body=~LINK~', 'transform' => array('rawurlencode'), 'form' => 'simple', + 'method' => 'GET', ), 'print' => array( 'url' => '#', 'transform' => array(), 'form' => 'simple', + 'method' => 'GET', ), 'jdh' => array( 'url' => 'https://www.journalduhacker.net/stories/new?url=~LINK~&title=~TITLE~', 'transform' => array('rawurlencode'), 'form' => 'simple', + 'method' => 'GET', ), 'Known' => array( 'url' => '~URL~/share?share_url=~LINK~&share_title=~TITLE~', 'transform' => array('rawurlencode'), 'help' => 'https://withknown.com/', 'form' => 'advanced', + 'method' => 'GET', ), 'gnusocial' => array( 'url' => '~URL~/notice/new?content=~TITLE~%20~LINK~', 'transform' => array('urlencode'), 'help' => 'https://gnu.io/social/', 'form' => 'advanced', + 'method' => 'GET', + ), + 'mastodon' => array( + 'url' => '~URL~/api/v1/statuses', + 'transform' => array(), + 'form' => 'advanced', + 'method' => 'POST', + 'field' => 'status', ), ); diff --git a/p/scripts/main.js b/p/scripts/main.js index 278ecfee9..ce8070008 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -1172,6 +1172,14 @@ function init_print_action() { }); } +function init_post_action() { + $('.item.share > a[href="POST"]').click(function (event) { + event.preventDefault(); + var form = $(this).next('form'); + $.post(form.data('url'), form.serialize()); + }); +} + function init_share_observers() { shares = $('.group-share').length; @@ -1182,6 +1190,8 @@ function init_share_observers() { row = row.replace(/##type##/g, opt.val()); row = row.replace(/##help##/g, opt.data('help')); row = row.replace(/##key##/g, shares); + row = row.replace(/##method##/g, opt.data('method')); + row = row.replace(/##field##/g, opt.data('field')); $(this).parents('.form-group').before(row); shares++; @@ -1398,6 +1408,7 @@ function init_afterDOM() { init_posts(); init_nav_entries(); init_print_action(); + init_post_action(); init_notifs_html5(); window.setInterval(refreshUnreads, 120000); } else { -- cgit v1.2.3 From 6c6d9bdfdcfb0155e8adfaaae679512ec819c0f9 Mon Sep 17 00:00:00 2001 From: Kevin Papst Date: Fri, 1 Dec 2017 13:20:04 +0100 Subject: I18n - DE (#1698) * added missing german translations --- app/i18n/de/admin.php | 10 +++++----- app/i18n/de/gen.php | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'app/i18n') diff --git a/app/i18n/de/admin.php b/app/i18n/de/admin.php index 8fc43a7bb..b5deea989 100644 --- a/app/i18n/de/admin.php +++ b/app/i18n/de/admin.php @@ -146,11 +146,11 @@ return array( 'top_feed' => 'Top 10-Feeds', ), 'system' => array( - '_' => 'System configuration', // @todo translate - 'auto-update-url' => 'Auto-update server URL', // @todo translate - 'instance-name' => 'Instance name', // @todo translate - 'max-categories' => 'Categories per user limit', // @todo translate - 'max-feeds' => 'Feeds per user limit', // @todo translate + '_' => 'Systemeinstellungen', + 'auto-update-url' => 'Auto-update URL', + 'instance-name' => 'Dein Reader Name', + 'max-categories' => 'Anzahl erlaubter Kategorien pro Benutzer', + 'max-feeds' => 'Anzahl erlaubter Feeds pro Benutzer', 'registration' => array( 'help' => '0 meint, dass es kein Account Limit gibt', 'number' => 'Maximale Anzahl von Accounts', diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index b42081324..118de5164 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -143,7 +143,7 @@ return array( 'sharing' => 'Teilen', 'shortcuts' => 'Tastaturkürzel', 'stats' => 'Statistiken', - 'system' => 'System configuration',// @todo translate + 'system' => 'Systemeinstellungen', 'update' => 'Aktualisieren', 'user_management' => 'Benutzer verwalten', 'user_profile' => 'Profil', -- cgit v1.2.3 From 3902d3f43330504945e78627b4c49e67ae88aea9 Mon Sep 17 00:00:00 2001 From: Kevin Papst Date: Wed, 6 Dec 2017 21:04:45 +0100 Subject: Show existing extensions in admin panel (#1708) * first draft * display installed extension state * fixed whitespace vs tabs * added translation in all languages * added error checks and log messages * fixed tabs vs whitespace * another try in fixing whitespaces * another try in fixing whitespaces * improved extension list translations * using JSON from official extension repo * improved version compare * updated translations * French translation --- app/Controllers/extensionController.php | 37 +++++++++++++++++++++++++++++++++ app/i18n/cz/admin.php | 7 +++++++ app/i18n/de/admin.php | 7 +++++++ app/i18n/en/admin.php | 7 +++++++ app/i18n/es/admin.php | 7 +++++++ app/i18n/fr/admin.php | 13 +++++++++--- app/i18n/it/admin.php | 7 +++++++ app/i18n/kr/admin.php | 7 +++++++ app/i18n/nl/admin.php | 7 +++++++ app/i18n/pt-br/admin.php | 7 +++++++ app/i18n/ru/admin.php | 7 +++++++ app/i18n/tr/admin.php | 7 +++++++ app/i18n/zh-cn/admin.php | 7 +++++++ app/views/extension/index.phtml | 37 +++++++++++++++++++++++++++++++-- 14 files changed, 159 insertions(+), 5 deletions(-) (limited to 'app/i18n') diff --git a/app/Controllers/extensionController.php b/app/Controllers/extensionController.php index b6d2d3fe4..bb846e921 100644 --- a/app/Controllers/extensionController.php +++ b/app/Controllers/extensionController.php @@ -25,10 +25,47 @@ class FreshRSS_extension_Controller extends Minz_ActionController { 'user' => array(), ); + $this->view->extensions_installed = array(); + $extensions = Minz_ExtensionManager::listExtensions(); foreach ($extensions as $ext) { $this->view->extension_list[$ext->getType()][] = $ext; + $this->view->extensions_installed[$ext->getEntrypoint()] = $ext->getVersion(); + } + + $availableExtensions = $this->getAvailableExtensionList(); + $this->view->available_extensions = $availableExtensions; + } + + /** + * fetch extension list from GitHub + */ + protected function getAvailableExtensionList() { + $extensionListUrl = 'https://raw.githubusercontent.com/FreshRSS/Extensions/master/extensions.json'; + $json = file_get_contents($extensionListUrl); + + // we ran into problems, simply ignore them + if ($json === false) { + Minz_Log::error('Could not fetch available extension from GitHub'); + return array(); + } + + // fetch the list as an array + $list = json_decode($json, true); + if (empty($list)) { + Minz_Log::warning('Failed to convert extension file list'); + return array(); } + + // we could use that for comparing and caching later + $version = $list['version']; + + // By now, all the needed data is kept in the main extension file. + // In the future we could fetch detail information from the extensions metadata.json, but I tend to stick with + // the current implementation for now, unless it becomes too much effort maintain the extension list manually + $extensions = $list['extensions']; + + return $extensions; } /** diff --git a/app/i18n/cz/admin.php b/app/i18n/cz/admin.php index 63cee3cca..dbfebd4c9 100644 --- a/app/i18n/cz/admin.php +++ b/app/i18n/cz/admin.php @@ -155,6 +155,13 @@ return array( 'help' => '0 znamená žádná omezení účtu', 'number' => 'Maximální počet účtů', ), + 'community' => 'Available community extensions', // @todo translate + 'name' => 'Name', // @todo translate + 'version' => 'Version', // @todo translate + 'description' => 'Description', // @todo translate + 'author' => 'Author', // @todo translate + 'latest' => 'Installed', // @todo translate + 'update' => 'Update available', // @todo translate ), 'update' => array( '_' => 'Aktualizace systému', diff --git a/app/i18n/de/admin.php b/app/i18n/de/admin.php index b5deea989..bb2c9352d 100644 --- a/app/i18n/de/admin.php +++ b/app/i18n/de/admin.php @@ -112,6 +112,13 @@ return array( ), 'title' => 'Erweiterungen', 'user' => 'Benutzer-Erweiterungen', + 'community' => 'Verfügbare Community Erweiterungen', + 'name' => 'Name', + 'version' => 'Version', + 'description' => 'Beschreibungen', + 'author' => 'Autor', + 'latest' => 'Installiert', + 'update' => 'Update verfügbar', ), 'stats' => array( '_' => 'Statistiken', diff --git a/app/i18n/en/admin.php b/app/i18n/en/admin.php index 707627782..d92a016af 100644 --- a/app/i18n/en/admin.php +++ b/app/i18n/en/admin.php @@ -112,6 +112,13 @@ return array( ), 'title' => 'Extensions', 'user' => 'User extensions', + 'community' => 'Available community extensions', + 'name' => 'Name', + 'version' => 'Version', + 'description' => 'Description', + 'author' => 'Author', + 'latest' => 'Installed', + 'update' => 'Update available' ), 'stats' => array( '_' => 'Statistics', diff --git a/app/i18n/es/admin.php b/app/i18n/es/admin.php index c9d9368eb..93b1e6e5c 100755 --- a/app/i18n/es/admin.php +++ b/app/i18n/es/admin.php @@ -112,6 +112,13 @@ return array( ), 'title' => 'Extensiones', 'user' => 'Extensiones de usuario', + 'community' => 'Available community extensions', // @todo translate + 'name' => 'Name', // @todo translate + 'version' => 'Version', // @todo translate + 'description' => 'Description', // @todo translate + 'author' => 'Author', // @todo translate + 'latest' => 'Installed', // @todo translate + 'update' => 'Update available', // @todo translate ), 'stats' => array( '_' => 'Estadísticas', diff --git a/app/i18n/fr/admin.php b/app/i18n/fr/admin.php index 9a13ecc21..b2bc48209 100644 --- a/app/i18n/fr/admin.php +++ b/app/i18n/fr/admin.php @@ -103,15 +103,22 @@ return array( ), 'extensions' => array( 'disabled' => 'Désactivée', - 'empty_list' => 'Il n’y a aucune extension installée.', + 'empty_list' => 'Aucune extension installée', 'enabled' => 'Activée', - 'no_configure_view' => 'Cette extension ne peut pas être configurée.', + 'no_configure_view' => 'Cette extension n’a pas à être configurée', 'system' => array( '_' => 'Extensions système', - 'no_rights' => 'Extension système (vous n’avez aucun droit dessus)', + 'no_rights' => 'Extensions système (contrôlées par l’administrateur)', ), 'title' => 'Extensions', 'user' => 'Extensions utilisateur', + 'community' => 'Extensions utilisateur disponibles', + 'name' => 'Nom', + 'version' => 'Version', + 'description' => 'Description', + 'author' => 'Auteur', + 'latest' => 'Installée', + 'update' => 'Mise à jour disponible', ), 'stats' => array( '_' => 'Statistiques', diff --git a/app/i18n/it/admin.php b/app/i18n/it/admin.php index ae46818ae..0248d9317 100644 --- a/app/i18n/it/admin.php +++ b/app/i18n/it/admin.php @@ -112,6 +112,13 @@ return array( ), 'title' => 'Estensioni', 'user' => 'Estensioni utente', + 'community' => 'Available community extensions', // @todo translate + 'name' => 'Name', // @todo translate + 'version' => 'Version', // @todo translate + 'description' => 'Description', // @todo translate + 'author' => 'Author', // @todo translate + 'latest' => 'Installed', // @todo translate + 'update' => 'Update available', // @todo translate ), 'stats' => array( '_' => 'Statistiche', diff --git a/app/i18n/kr/admin.php b/app/i18n/kr/admin.php index 13f4695e1..9781fb640 100644 --- a/app/i18n/kr/admin.php +++ b/app/i18n/kr/admin.php @@ -112,6 +112,13 @@ return array( ), 'title' => '확장 기능', 'user' => '사용자 확장 기능', + 'community' => 'Available community extensions', // @todo translate + 'name' => 'Name', // @todo translate + 'version' => 'Version', // @todo translate + 'description' => 'Description', // @todo translate + 'author' => 'Author', // @todo translate + 'latest' => 'Installed', // @todo translate + 'update' => 'Update available', // @todo translate ), 'stats' => array( '_' => '통계', diff --git a/app/i18n/nl/admin.php b/app/i18n/nl/admin.php index fdfe6e3bc..384242b4d 100644 --- a/app/i18n/nl/admin.php +++ b/app/i18n/nl/admin.php @@ -112,6 +112,13 @@ return array( ), 'title' => 'Uitbreidingen', 'user' => 'Gebruikersuitbreidingen', + 'community' => 'Gebruikersuitbreidingen beschikbaar', + 'name' => 'Naam', + 'version' => 'Versie', + 'description' => 'Beschrijving', + 'author' => 'Auteur', + 'latest' => 'Geïnstalleerd', + 'update' => 'Update beschikbaar', ), 'stats' => array( '_' => 'Statistieken', diff --git a/app/i18n/pt-br/admin.php b/app/i18n/pt-br/admin.php index 1076534b2..e62718e80 100644 --- a/app/i18n/pt-br/admin.php +++ b/app/i18n/pt-br/admin.php @@ -112,6 +112,13 @@ return array( ), 'title' => 'Extensões', 'user' => 'Extensões do usuário', + 'community' => 'Available community extensions', // @todo translate + 'name' => 'Name', // @todo translate + 'version' => 'Version', // @todo translate + 'description' => 'Description', // @todo translate + 'author' => 'Author', // @todo translate + 'latest' => 'Installed', // @todo translate + 'update' => 'Update available', // @todo translate ), 'stats' => array( '_' => 'Estatísticas', diff --git a/app/i18n/ru/admin.php b/app/i18n/ru/admin.php index f5da97371..d877c5006 100644 --- a/app/i18n/ru/admin.php +++ b/app/i18n/ru/admin.php @@ -112,6 +112,13 @@ return array( ), 'title' => 'Расширения', 'user' => 'Расширения пользователя', + 'community' => 'Available community extensions', // @todo translate + 'name' => 'Name', // @todo translate + 'version' => 'Version', // @todo translate + 'description' => 'Description', // @todo translate + 'author' => 'Author', // @todo translate + 'latest' => 'Installed', // @todo translate + 'update' => 'Update available', // @todo translate ), 'stats' => array( '_' => 'Статистика', diff --git a/app/i18n/tr/admin.php b/app/i18n/tr/admin.php index 9d10ef9dd..aa3aad7b7 100644 --- a/app/i18n/tr/admin.php +++ b/app/i18n/tr/admin.php @@ -112,6 +112,13 @@ return array( ), 'title' => 'Eklentiler', 'user' => 'Kullanıcı eklentileri', + 'community' => 'Available community extensions', // @todo translate + 'name' => 'Name', // @todo translate + 'version' => 'Version', // @todo translate + 'description' => 'Description', // @todo translate + 'author' => 'Author', // @todo translate + 'latest' => 'Installed', // @todo translate + 'update' => 'Update available', // @todo translate ), 'stats' => array( '_' => 'İstatistikler', diff --git a/app/i18n/zh-cn/admin.php b/app/i18n/zh-cn/admin.php index 4ecc52e64..ca18bf63d 100644 --- a/app/i18n/zh-cn/admin.php +++ b/app/i18n/zh-cn/admin.php @@ -112,6 +112,13 @@ return array( ), 'title' => '扩展', 'user' => '用户扩展', + 'community' => 'Available community extensions', // @todo translate + 'name' => 'Name', // @todo translate + 'version' => 'Version', // @todo translate + 'description' => 'Description', // @todo translate + 'author' => 'Author', // @todo translate + 'latest' => 'Installed', // @todo translate + 'update' => 'Update available', // @todo translate ), 'stats' => array( '_' => '统计', diff --git a/app/views/extension/index.phtml b/app/views/extension/index.phtml index 7cb16bfff..6439a0333 100644 --- a/app/views/extension/index.phtml +++ b/app/views/extension/index.phtml @@ -26,13 +26,46 @@ } ?> extension_list['system']) && empty($this->extension_list['user'])) { + if (empty($this->extension_list['system']) && empty($this->extension_list['user'])) { ?>

    + + available_extensions)) { ?> +

    + + + + + + + + available_extensions as $ext) { ?> + + + + + + + +
    + + extensions_installed[$ext['name']])) { ?> + extensions_installed[$ext['name']], $ext['version']) >= 0) { ?> + + + + extensions_installed[$ext['name']] != $ext['version']) { ?> + + + + + +
    +
    extension) ? ' class="active"' : ''; ?> -- cgit v1.2.3