Browse Source

Add Polish localization (#3190)

Bartosz Taudul 5 năm trước cách đây
mục cha
commit
f79194f4a6

+ 1 - 0
app/i18n/cz/gen.php

@@ -138,6 +138,7 @@ return array(
 		'kr' => '한국어',	// TODO - Translation
 		'nl' => 'Nederlands',	// TODO - Translation
 		'oc' => 'Occitan',	// TODO - Translation
+		'pl' => 'Polski',	// TODO - Translation
 		'pt-br' => 'Português (Brasil)',	// TODO - Translation
 		'ru' => 'Русский',	// TODO - Translation
 		'sk' => 'Slovenčina',	// TODO - Translation

+ 1 - 0
app/i18n/de/gen.php

@@ -138,6 +138,7 @@ return array(
 		'kr' => '한국어',
 		'nl' => 'Nederlands',
 		'oc' => 'Occitan',
+		'pl' => 'Polski',	// TODO - Translation
 		'pt-br' => 'Português (Brasil)',
 		'ru' => 'Русский',
 		'sk' => 'Slovenčina',

+ 1 - 0
app/i18n/en-us/gen.php

@@ -138,6 +138,7 @@ return array(
 		'kr' => '한국어',
 		'nl' => 'Nederlands',
 		'oc' => 'Occitan',
+		'pl' => 'Polski',	// TODO - Translation
 		'pt-br' => 'Português (Brasil)',
 		'ru' => 'Русский',
 		'sk' => 'Slovenčina',

+ 1 - 0
app/i18n/en/gen.php

@@ -138,6 +138,7 @@ return array(
 		'kr' => '한국어',
 		'nl' => 'Nederlands',
 		'oc' => 'Occitan',
+		'pl' => 'Polski',
 		'pt-br' => 'Português (Brasil)',
 		'ru' => 'Русский',
 		'sk' => 'Slovenčina',

+ 1 - 0
app/i18n/es/gen.php

@@ -138,6 +138,7 @@ return array(
 		'kr' => '한국어',
 		'nl' => 'Nederlands',
 		'oc' => 'Occitan',
+		'pl' => 'Polski',	// TODO - Translation
 		'pt-br' => 'Português (Brasil)',
 		'ru' => 'Русский',
 		'sk' => 'Slovenčina',

+ 1 - 0
app/i18n/fr/gen.php

@@ -138,6 +138,7 @@ return array(
 		'kr' => '한국어',
 		'nl' => 'Nederlands',
 		'oc' => 'Occitan',
+		'pl' => 'Polski',	// TODO - Translation
 		'pt-br' => 'Português (Brasil)',
 		'ru' => 'Русский',
 		'sk' => 'Slovenčina',

+ 1 - 0
app/i18n/he/gen.php

@@ -138,6 +138,7 @@ return array(
 		'kr' => '한국어',	// TODO - Translation
 		'nl' => 'Nederlands',	// TODO - Translation
 		'oc' => 'Occitan',	// TODO - Translation
+		'pl' => 'Polski',	// TODO - Translation
 		'pt-br' => 'Português (Brasil)',	// TODO - Translation
 		'ru' => 'Русский',	// TODO - Translation
 		'sk' => 'Slovenčina',	// TODO - Translation

+ 1 - 0
app/i18n/it/gen.php

@@ -138,6 +138,7 @@ return array(
 		'kr' => '한국어',	// TODO - Translation
 		'nl' => 'Nederlands',	// TODO - Translation
 		'oc' => 'Occitan',	// TODO - Translation
+		'pl' => 'Polski',	// TODO - Translation
 		'pt-br' => 'Português (Brasil)',	// TODO - Translation
 		'ru' => 'Русский',	// TODO - Translation
 		'sk' => 'Slovenčina',	// TODO - Translation

+ 1 - 0
app/i18n/kr/gen.php

@@ -138,6 +138,7 @@ return array(
 		'kr' => '한국어',
 		'nl' => 'Nederlands',
 		'oc' => 'Occitan',
+		'pl' => 'Polski',	// TODO - Translation
 		'pt-br' => 'Português (Brasil)',
 		'ru' => 'Русский',
 		'sk' => 'Slovenčina',	// TODO - Translation

+ 1 - 0
app/i18n/nl/gen.php

@@ -138,6 +138,7 @@ return array(
 		'kr' => '한국어',
 		'nl' => 'Nederlands',
 		'oc' => 'Occitan',
+		'pl' => 'Polski',	// TODO - Translation
 		'pt-br' => 'Português (Brasil)',
 		'ru' => 'Русский',
 		'sk' => 'Slovenčina',

+ 1 - 0
app/i18n/oc/gen.php

@@ -138,6 +138,7 @@ return array(
 		'kr' => '한국어',
 		'nl' => 'Nederlands',
 		'oc' => 'Occitan',
+		'pl' => 'Polski',	// TODO - Translation
 		'pt-br' => 'Português (Brasil)',
 		'ru' => 'Русский',
 		'sk' => 'Slovenčina',

+ 210 - 0
app/i18n/pl/admin.php

@@ -0,0 +1,210 @@
+<?php
+
+return array(
+	'auth' => array(
+		'allow_anonymous' => 'Pozwól na anonimowy odczyt wiadomości domyślnego użytkownika (%s)',
+		'allow_anonymous_refresh' => 'Pozwól na anonimowe odświeżanie wiadomości',
+		'api_enabled' => 'Pozwól na dostęp przez <abbr>API</abbr> <small>(wymagane dla aplikacji na telefon)</small>',
+		'form' => 'Formularz na stronie (tradycyjna, wymagany JavaScript)',
+		'http' => 'HTTP (dla zaawansowanych użytkowników, z wykorzystaniem HTTPS)',
+		'none' => 'Brak (niebezpieczna)',
+		'title' => 'Uwierzytelnianie',
+		'title_reset' => 'Authentication reset',	// TODO - Translation
+		'token' => 'Token uwierzytelniania',
+		'token_help' => 'Pozwala na dostęp do treści RSS domyślnego użytkownika bez uwierzytelnienia:',
+		'type' => 'Metoda uwierzytelniania',
+		'unsafe_autologin' => 'Pozwól na niebezpieczne automatyczne logowanie następującym schematem:	-> todo',
+	),
+	'check_install' => array(
+		'cache' => array(
+			'nok' => 'Check permissions on <em>./data/cache</em> directory. HTTP server must have write permission.',	// TODO - Translation
+			'ok' => 'Permissions on the cache directory are good.',	// TODO - Translation
+		),
+		'categories' => array(
+			'nok' => 'Category table is improperly configured.',	// TODO - Translation
+			'ok' => 'Category table is okay.',	// TODO - Translation
+		),
+		'connection' => array(
+			'nok' => 'Connection to the database cannot be established.',	// TODO - Translation
+			'ok' => 'Connection to the database is okay.',	// TODO - Translation
+		),
+		'ctype' => array(
+			'nok' => 'Cannot find a required library for character type checking (php-ctype).',	// TODO - Translation
+			'ok' => 'You have the required library for character type checking (ctype).',	// TODO - Translation
+		),
+		'curl' => array(
+			'nok' => 'Cannot find the cURL library (php-curl package).',	// TODO - Translation
+			'ok' => 'You have the cURL library.',	// TODO - Translation
+		),
+		'data' => array(
+			'nok' => 'Check permissions on <em>./data</em> directory. HTTP server must have write permission.',	// TODO - Translation
+			'ok' => 'Permissions on the data directory are good.',	// TODO - Translation
+		),
+		'database' => 'Database installation',	// TODO - Translation
+		'dom' => array(
+			'nok' => 'Cannot find a required library to browse the DOM (php-xml package).',	// TODO - Translation
+			'ok' => 'You have the required library to browse the DOM.',	// TODO - Translation
+		),
+		'entries' => array(
+			'nok' => 'Entry table is improperly configured.',	// TODO - Translation
+			'ok' => 'Entry table is okay.',	// TODO - Translation
+		),
+		'favicons' => array(
+			'nok' => 'Check permissions on <em>./data/favicons</em> directory. HTTP server must have write permission.',	// TODO - Translation
+			'ok' => 'Permissions on the favicons directory are good.',	// TODO - Translation
+		),
+		'feeds' => array(
+			'nok' => 'Feed table is improperly configured.',	// TODO - Translation
+			'ok' => 'Feed table is okay.',	// TODO - Translation
+		),
+		'fileinfo' => array(
+			'nok' => 'Cannot find the PHP fileinfo library (fileinfo package).',	// TODO - Translation
+			'ok' => 'You have the fileinfo library.',	// TODO - Translation
+		),
+		'files' => 'File installation',	// TODO - Translation
+		'json' => array(
+			'nok' => 'Cannot find JSON (php-json package).',	// TODO - Translation
+			'ok' => 'You have the JSON extension.',	// TODO - Translation
+		),
+		'mbstring' => array(
+			'nok' => 'Cannot find the recommended mbstring library for Unicode.',	// TODO - Translation
+			'ok' => 'You have the recommended mbstring library for Unicode.',	// TODO - Translation
+		),
+		'minz' => array(
+			'nok' => 'Cannot find the Minz framework.',	// TODO - Translation
+			'ok' => 'You have the Minz framework.',	// TODO - Translation
+		),
+		'pcre' => array(
+			'nok' => 'Cannot find a required library for regular expressions (php-pcre).',	// TODO - Translation
+			'ok' => 'You have the required library for regular expressions (PCRE).',	// TODO - Translation
+		),
+		'pdo' => array(
+			'nok' => 'Cannot find PDO or one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).',	// TODO - Translation
+			'ok' => 'You have PDO and at least one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).',	// TODO - Translation
+		),
+		'php' => array(
+			'_' => 'PHP installation',	// TODO - Translation
+			'nok' => 'Your PHP version is %s but FreshRSS requires at least version %s.',	// TODO - Translation
+			'ok' => 'Your PHP version (%s) is compatible with FreshRSS.',	// TODO - Translation
+		),
+		'tables' => array(
+			'nok' => 'There are one or more missing tables in the database.',	// TODO - Translation
+			'ok' => 'The appropriate tables exist in the database.',	// TODO - Translation
+		),
+		'title' => 'Installation check',	// TODO - Translation
+		'tokens' => array(
+			'nok' => 'Check permissions on <em>./data/tokens</em> directory. HTTP server must have write permission',	// TODO - Translation
+			'ok' => 'Permissions on the tokens directory are good.',	// TODO - Translation
+		),
+		'users' => array(
+			'nok' => 'Check permissions on <em>./data/users</em> directory. HTTP server must have write permission',	// TODO - Translation
+			'ok' => 'Permissions on the users directory are good.',	// TODO - Translation
+		),
+		'zip' => array(
+			'nok' => 'Cannot find the ZIP extension (php-zip package).',	// TODO - Translation
+			'ok' => 'You have the ZIP extension.',	// TODO - Translation
+		),
+	),
+	'extensions' => array(
+		'author' => 'Autor',
+		'community' => 'Rozszerzenia stworzone przez społeczność',
+		'description' => 'Opis',
+		'disabled' => 'Disabled',	// TODO - Translation
+		'empty_list' => 'There are no installed extensions',	// TODO - Translation
+		'enabled' => 'Enabled',	// TODO - Translation
+		'latest' => 'Zainstalowane',
+		'name' => 'Nazwa',
+		'no_configure_view' => 'To rozszerzenie nie jest konfigurowalne.',
+		'system' => array(
+			'_' => 'Rozszerzenia systemowe',
+			'no_rights' => 'Rozszerzenie systemowe (brak uprawnień)',
+		),
+		'title' => 'Rozszerzenia',
+		'update' => 'Update available',	// TODO - Translation
+		'user' => 'Rozszerzenia użytkownika',
+		'version' => 'Wersja',
+	),
+	'stats' => array(
+		'_' => 'Statystyki',
+		'all_feeds' => 'Wszystkie kanały',
+		'category' => 'Kategoria',
+		'entry_count' => 'Liczba wiadomości',
+		'entry_per_category' => 'Wiadomości w podziale na kategorie',
+		'entry_per_day' => 'Wiadomości na dzień (przez ostatnie 30 dni)',
+		'entry_per_day_of_week' => 'Według dnia tygodnia (średnio: %.2f wiadomości)',
+		'entry_per_hour' => 'Według godzin (średnio: %.2f wiadomości)',
+		'entry_per_month' => 'Według miesięcy (średnio: %.2f wiadomości)',
+		'entry_repartition' => 'Podział wiadomości',
+		'feed' => 'Kanał',
+		'feed_per_category' => 'Kanały w podziale na kategorie',
+		'idle' => 'Bezczynne kanały',
+		'main' => 'Główne statystyki',
+		'main_stream' => 'Kanał główny',
+		'menu' => array(
+			'idle' => 'Bezczynne kanały',
+			'main' => 'Główne statystyki',
+			'repartition' => 'Podział wiadomości',
+		),
+		'no_idle' => 'Brak bezczynnych kanałów!',
+		'number_entries' => '%d wiadomości',
+		'percent_of_total' => '%% wszystkich',
+		'repartition' => 'Podział wiadomości',
+		'status_favorites' => 'Ulubione',
+		'status_read' => 'Przeczytane',
+		'status_total' => 'Wszystkie',
+		'status_unread' => 'Nieprzeczytane',
+		'title' => 'Statystyki',
+		'top_feed' => '10 największych kanałów',
+	),
+	'system' => array(
+		'_' => 'Konfiguracja serwisu',
+		'auto-update-url' => 'Adres serwera automatycznej aktualizacji',
+		'cookie-duration' => array(
+			'help' => 'w sekundach',
+			'number' => 'Czas przez który użytkownik pozostanie zalogowany',
+		),
+		'force_email_validation' => 'Wymuś weryfikację adresu e-mail',
+		'instance-name' => 'Nazwa instancji',
+		'max-categories' => 'Maksymalna liczba kategorii na użytkownika',
+		'max-feeds' => 'Maksymalna liczba kanałów na użytkownika',
+		'registration' => array(
+			'help' => '0 oznacza brak limitu liczby kont',
+			'number' => 'Maksymalna liczba kont',
+		),
+	),
+	'update' => array(
+		'_' => 'Aktualizacja',
+		'apply' => 'Zastosuj',
+		'check' => 'Szukaj uaktualnień',
+		'current_version' => 'Używana wersja FreshRSS to %s.',
+		'last' => 'Ostatnie sprawdzenie: %s',
+		'none' => 'Brak nowych aktualizacji',
+		'title' => 'Aktualizacja',
+	),
+	'user' => array(
+		'admin' => 'Administrator',
+		'article_count' => 'Liczba wiadomości',
+		'articles_and_size' => '%s articles (%s)',	// TODO - Translation
+		'back_to_manage' => '← Powrót do listy użytkowników',
+		'create' => 'Dodaj nowego użytkownika',
+		'database_size' => 'Rozmiar bazy danych',
+		'delete_users' => 'Delete user',	// TODO - Translation
+		'email' => 'Adres e-mail',
+		'enabled' => 'Aktywne',
+		'feed_count' => 'Kanały',
+		'is_admin' => 'Administrator',
+		'language' => 'Język',
+		'last_user_activity' => 'Ostatnia aktywność',
+		'list' => 'Lista użytkowników',
+		'number' => 'Liczba aktywnych kont: %d',
+		'numbers' => 'Liczba aktywnych kont: %d',
+		'password_form' => 'Hasło<br /><small>(dla logowania przez formularz na stronie)</small>',
+		'password_format' => 'Przynajmniej 7 znaków',
+		'selected' => 'Selected user',	// TODO - Translation
+		'title' => 'Zarządzanie użytkownikami',
+		'update_users' => 'Update user',	// TODO - Translation
+		'user_list' => 'List of users',	// TODO - Translation
+		'username' => 'Nazwa użytkownika',
+		'users' => 'Users',	// TODO - Translation
+	),
+);

+ 202 - 0
app/i18n/pl/conf.php

@@ -0,0 +1,202 @@
+<?php
+
+return array(
+	'archiving' => array(
+		'_' => 'Archiwizacja',
+		'delete_after' => 'Remove articles after',	// TODO - Translation
+		'exception' => 'Wyjątki od oczyszczania',
+		'help' => 'Więcej opcji dostępne jest w ustawieniach konkretnych kanałów',
+		'keep_favourites' => 'Nigdy nie usuwaj ulubionych',
+		'keep_labels' => 'Nigdy nie usuwaj oznaczonych etykietą',
+		'keep_max' => 'Maksymalna liczba wiadomości do przechowywania',
+		'keep_min_by_feed' => 'Minimalna liczba wiadomości do przechowywania w każdym kanale',
+		'keep_period' => 'Maksymalny wiek wiadomości do przechowywania',
+		'keep_unreads' => 'Nigdy nie usuwaj nieprzeczytanych wiadomości',
+		'maintenance' => 'Konserwacja',
+		'optimize' => 'Optymalizacja bazy danych',
+		'optimize_help' => 'Uruchom od czasu do czasy, by zmniejszyć rozmiar bazy danych',
+		'policy' => 'Polityka oczyszczania',
+		'policy_warning' => 'Jeżeli nie zostanie wybrana polityka oczyszczania, żadna wiadomość nie zostanie usunięta.',
+		'purge_now' => 'Oczyść teraz',
+		'title' => 'Archiwizacja',
+		'ttl' => 'Nie odświeżaj automatycznie częściej niż',
+	),
+	'display' => array(
+		'_' => 'Wyświetlanie',
+		'icon' => array(
+			'bottom_line' => 'Dolny margines',
+			'display_authors' => 'Autorzy',
+			'entry' => 'Ikony wiadomości',
+			'publication_date' => 'Data publikacji',
+			'related_tags' => 'Tagi',
+			'sharing' => 'Podaj dalej',
+			'top_line' => 'Górny margines',
+		),
+		'language' => 'Język',
+		'notif_html5' => array(
+			'seconds' => 'sekund (0 oznacza wartość domyślną przeglądarki)',
+			'timeout' => 'Czas wyświetlania powiadomienia HTML5',
+		),
+		'show_nav_buttons' => 'Pokaż przyciski nawigacyjne',
+		'theme' => 'Motyw',
+		'title' => 'Wyświetlanie',
+		'width' => array(
+			'content' => 'Rozmiar treści',
+			'large' => 'Szeroka',
+			'medium' => 'Średnia',
+			'no_limit' => 'Pełna szerokość',
+			'thin' => 'Wąska',
+		),
+	),
+	'profile' => array(
+		'_' => 'Zarządzanie profilem',
+		'api' => 'Zarządzanie API',
+		'delete' => array(
+			'_' => 'Usunięcie konta',
+			'warn' => 'Twoje konto i wszystkie powiązane z nim dane zostaną usunięte.',
+		),
+		'email' => 'Adres e-mail',
+		'password_api' => 'Hasło API<br /><small>(np. dla aplikacji na telefony)</small>',
+		'password_form' => 'Hasło<br /><small>(dla logowania przez formularz na stronie)</small>',
+		'password_format' => 'Przynajmniej 7 znaków',
+		'title' => 'Profil',
+	),
+	'query' => array(
+		'_' => 'Zapisane zapytania',
+		'deprecated' => 'To zapytanie nie jest już poprawne. Kategoria lub kanał do którego się odnosi już nie istnieje.',
+		'display' => 'Pokaż wyniki dla tego zapytania',
+		'filter' => 'Zastosowane filtry:',
+		'get_all' => 'Wyświetlenie wszystkich wiadomości',
+		'get_category' => 'Wyświetlenie kategorii "%s"',
+		'get_favorite' => 'Wyświetlenie ulubionych wiadomości',
+		'get_feed' => 'Wyświetlenie kanału "%s"',
+		'no_filter' => 'Brak filtrów',
+		'none' => 'Nie zapisałeś jeszcze żadnego zapytania.',
+		'number' => 'Zapytanie nr %d',
+		'order_asc' => 'Wyświetl najpierw najstarsze wiadomości',
+		'order_desc' => 'Wyświetl najpierw najnowsze wiadomości',
+		'remove' => 'Usuń zapisane zapytanie',
+		'search' => 'Szukaj "%s"',
+		'state_0' => 'Wyświetl wszystkie wiadomości',
+		'state_1' => 'Wyświetl przeczytane wiadomości',
+		'state_2' => 'Wyświetl nieprzeczytane wiadomości',
+		'state_3' => 'Wyświetl wszystkie wiadomości',
+		'state_4' => 'Wyświetl ulubione wiadomości',
+		'state_5' => 'Wyświetl przeczytane ulubione wiadomości',
+		'state_6' => 'Wyświetl nieprzeczytane ulubione wiadomości',
+		'state_7' => 'Wyświetl ulubione wiadomości',
+		'state_8' => 'Wyświetl wiadomości, które nie są ulubione',
+		'state_9' => 'Wyświetl przeczytane wiadomości, które nie są ulubione',
+		'state_10' => 'Wyświetl nieprzeczytane wiadomości, które nie są ulubione',
+		'state_11' => 'Wyświetl wiadomości, które nie są ulubione',
+		'state_12' => 'Wyświetl wszystkie wiadomości',
+		'state_13' => 'Wyświetl przeczytane wiadomości',
+		'state_14' => 'Wyświetl nieprzeczytane wiadomości',
+		'state_15' => 'Wyświetl wszystkie wiadomości',
+		'title' => 'Zapisane zapytania',
+	),
+	'reading' => array(
+		'_' => 'Czytanie',
+		'after_onread' => 'Po oznaczeniu wszystkich jako przeczytane,',
+		'always_show_favorites' => 'Pokaż wszystkie wiadomości po wejściu do ulubionych',
+		'articles_per_page' => 'Liczba wiadomości na stronę',
+		'auto_load_more' => 'Załaduj więcej wiadomości po dojściu na koniec strony',
+		'auto_remove_article' => 'Ukryj wiadomości po przeczytaniu',
+		'confirm_enabled' => 'Pytaj o potwierdzenie przed oznaczeniem wszystkich wiadomości jako przeczytane.',
+		'display_articles_unfolded' => 'Domyślnie wyświetlaj rozwinięte wiadomości',
+		'display_categories_unfolded' => 'Kategorie do rozwinięcia',
+		'hide_read_feeds' => 'Ukryj kategorie i kanały nie zawierające nieprzeczytanych wiadomości (nie działa gdy włączone jest wyświetlanie wszystkich wiadomości)',
+		'img_with_lazyload' => 'Opóźnij ładowanie obrazów dopóki nie będą widoczne',
+		'jump_next' => 'przejdź do następnego nieprzeczytanego kanału bądź kategorii',
+		'mark_updated_article_unread' => 'Oznacz zaktualizowane wiadomości jako nieprzeczytane',
+		'number_divided_when_reader' => 'Dzielone przez 2 w widoku czytania.',
+		'read' => array(
+			'article_open_on_website' => 'gdy wiadomość jest otworzona na pierwotnej stronie',
+			'article_viewed' => 'gdy wiadomość jest otworzona',
+			'scroll' => 'podczas przewijania',
+			'upon_reception' => 'po otrzymaniu wiadomości',
+			'when' => 'Oznacz wiadomość jako przeczytaną…',
+		),
+		'show' => array(
+			'_' => 'Wiadomości do wyświetlenia',
+			'active_category' => 'Aktualna',
+			'adaptive' => 'Dopasuj do sytuacji',
+			'all_articles' => 'Wszystkie wiadomości',
+			'all_categories' => 'Wszystkie',
+			'no_category' => 'Żadna',
+			'unread' => 'Tylko nieprzeczytane',
+		),
+		'sides_close_article' => 'Kliknięcie poza zawartością wiadomości zamyka widok wiadomości',
+		'sort' => array(
+			'_' => 'Porządek sortowania',
+			'newer_first' => 'Najpierw najnowsze',
+			'older_first' => 'Najpierw najstarsze',
+		),
+		'sticky_post' => 'Przesuń wiadomość na górę strony po otworzeniu',
+		'title' => 'Czytanie',
+		'view' => array(
+			'default' => 'Domyślny widok',
+			'global' => 'Widok globalny',
+			'normal' => 'Widok normalny',
+			'reader' => 'Widok czytania',
+		),
+	),
+	'sharing' => array(
+		'_' => 'Podawanie dalej',
+		'add' => 'Dodaj sposób na podanie dalej wiadomości',
+		'blogotext' => 'Blogotext',
+		'diaspora' => 'Diaspora*',
+		'email' => 'E-mail',
+		'facebook' => 'Facebook',
+		'more_information' => 'Więcej informacji',
+		'print' => 'Wydruk',
+		'remove' => 'Usuń sposób na podanie dalej wiadomości',
+		'shaarli' => 'Shaarli',
+		'share_name' => 'Wyświetlana nazwa serwisu',
+		'share_url' => 'Adres API serwisu',
+		'title' => 'Podawanie dalej',
+		'twitter' => 'Twitter',
+		'wallabag' => 'wallabag',
+	),
+	'shortcut' => array(
+		'_' => 'Skróty klawiszowe',
+		'article_action' => 'Akcje wiadomości',
+		'auto_share' => 'Podaj dalej',
+		'auto_share_help' => 'Gdy jest dostępna tylko jedna metoda podawania dalej jest ona od razu wykorzystywana. W pozostałych przypadkach poszczególne metody są dostępne przez wybranie ich numeru.',
+		'close_dropdown' => 'Zamknięcie menu',
+		'collapse_article' => 'Zwinięcie',
+		'first_article' => 'Otworzenie pierwszej wiadomości',
+		'focus_search' => 'Przejdź do pola wyszukiwania',
+		'global_view' => 'Przełączenie na widok globalny',
+		'help' => 'Wyświetlenie dokumentacji',
+		'javascript' => 'JavaScript musi być włączony, aby można było wykorzystać skróty klawiszowe',
+		'last_article' => 'Otworzenie ostatniej wiadomości',
+		'load_more' => 'Załadowanie kolejnych wiadomości',
+		'mark_favorite' => 'Zmiana stanu „ulubione”',
+		'mark_read' => 'Zmiana stanu „przeczytane”',
+		'navigation' => 'Nawigacja',
+		'navigation_help' => 'Z wykorzystaniem modyfikatora <kbd>⇧ Shift</kbd> skróty nawigacyjne stosowane są dla kanałów.<br/>Z wykorzystaniem modyfikatora <kbd>Alt ⎇</kbd> skróty nawigacyjne stosowane są dla kategorii.',
+		'navigation_no_mod_help' => 'Pozostałe skróty nawigacyjne nie wspierają modyfikatorów.',
+		'next_article' => 'Otworzenie następnej wiadomości',
+		'normal_view' => 'Przełączenie na widok normalny',
+		'other_action' => 'Inne akcje',
+		'previous_article' => 'Otworzenie poprzedniej wiadomości',
+		'reading_view' => 'Przełączenie na widok czytania',
+		'rss_view' => 'Otworzenie kanału RSS w nowej karcie',
+		'see_on_website' => 'Otwórz wiadomość na pierwotnej stronie',
+		'shift_for_all_read' => 'Użycie modyfikatora <kbd>Alt ⎇</kbd> powoduje zmianę wszystkich poprzednich wiadomości<br />Użycie modyfikatora <kbd>⇧ Shift</kbd> powoduje zmianę wszystkich wiadomości',
+		'skip_next_article' => 'Przejdź do następnej wiadomości bez otwierania',
+		'skip_previous_article' => 'Przejdź do poprzedniej wiadomości bez otwierania',
+		'title' => 'Skróty klawiszowe',
+		'toggle_media' => 'Odtwarzanie/pauza mediów',
+		'user_filter' => 'Przejdź do zapisanych zapytań',
+		'user_filter_help' => 'Gdy zapisane jest tylko jedno zapytanie jest ono od razu wykorzystywane. W przeciwnym przypadku zapytania są dostępne przez wybranie ich numeru.',
+		'views' => 'Widoki',
+	),
+	'user' => array(
+		'articles_and_size' => '%s wiadomości (%s)',
+		'current' => 'Aktualny użytkownik',
+		'is_admin' => 'jest administratorem',
+		'users' => 'Wszyscy użytkownicy',
+	),
+);

+ 134 - 0
app/i18n/pl/feedback.php

@@ -0,0 +1,134 @@
+<?php
+
+return array(
+	'access' => array(
+		'denied' => 'Nie masz uprawnień dostępu do tej strony',
+		'not_found' => 'You are looking for a page that doesn’t exist',	// TODO - Translation
+	),
+	'admin' => array(
+		'optimization_complete' => 'Optymizacja ukończona',
+	),
+	'api' => array(
+		'password' => array(
+			'failed' => 'Your password cannot be modified',	// TODO - Translation
+			'updated' => 'Your password has been modified',	// TODO - Translation
+		),
+	),
+	'auth' => array(
+		'form' => array(
+			'not_set' => 'A problem occurred during authentication system configuration. Please try again later.',	// TODO - Translation
+			'set' => 'Form is now your default authentication system.',	// TODO - Translation
+		),
+		'login' => array(
+			'invalid' => 'Niepoprawne dane logowania',
+			'success' => 'Zalogowałeś się',
+		),
+		'logout' => array(
+			'success' => 'Zostałeś wylogowany',
+		),
+		'no_password_set' => 'Administrator password hasn’t been set. This feature isn’t available.',	// TODO - Translation
+	),
+	'conf' => array(
+		'error' => 'An error occurred while saving configuration',	// TODO - Translation
+		'query_created' => 'Query "%s" has been created.',	// TODO - Translation
+		'shortcuts_updated' => 'Shortcuts have been updated',	// TODO - Translation
+		'updated' => 'Ustawienia zostały zaktualizowane',
+	),
+	'extensions' => array(
+		'already_enabled' => '%s is already enabled',	// TODO - Translation
+		'cannot_remove' => '%s cannot be removed',	// TODO - Translation
+		'disable' => array(
+			'ko' => '%s cannot be disabled. <a href="%s">Check FreshRSS logs</a> for details.',	// TODO - Translation
+			'ok' => '%s is now disabled',	// TODO - Translation
+		),
+		'enable' => array(
+			'ko' => '%s cannot be enabled. <a href="%s">Check FreshRSS logs</a> for details.',	// TODO - Translation
+			'ok' => '%s is now enabled',	// TODO - Translation
+		),
+		'no_access' => 'You have no access on %s',	// TODO - Translation
+		'not_enabled' => '%s is not enabled',	// TODO - Translation
+		'not_found' => '%s does not exist',	// TODO - Translation
+		'removed' => '%s removed',	// TODO - Translation
+	),
+	'import_export' => array(
+		'export_no_zip_extension' => 'The ZIP extension is not present on your server. Please try to export files one by one.',	// TODO - Translation
+		'feeds_imported' => 'Your feeds have been imported and will now be updated',	// TODO - Translation
+		'feeds_imported_with_errors' => 'Your feeds have been imported, but some errors occurred',	// TODO - Translation
+		'file_cannot_be_uploaded' => 'File cannot be uploaded!',	// TODO - Translation
+		'no_zip_extension' => 'The ZIP extension is not present on your server.',	// TODO - Translation
+		'zip_error' => 'An error occurred during ZIP import.',	// TODO - Translation
+	),
+	'profile' => array(
+		'error' => 'Your profile cannot be modified',	// TODO - Translation
+		'updated' => 'Your profile has been modified',	// TODO - Translation
+	),
+	'sub' => array(
+		'actualize' => 'Aktualizacja',
+		'articles' => array(
+			'marked_read' => 'Wiadomości zostały oznaczone jako przeczytane.',
+			'marked_unread' => 'Wiadomości zostały oznaczone jako nieprzeczytane.',
+		),
+		'category' => array(
+			'created' => 'Category %s has been created.',	// TODO - Translation
+			'deleted' => 'Category has been deleted.',	// TODO - Translation
+			'emptied' => 'Category has been emptied',	// TODO - Translation
+			'error' => 'Category cannot be updated',	// TODO - Translation
+			'name_exists' => 'Category name already exists.',	// TODO - Translation
+			'no_id' => 'You must specify the id of the category.',	// TODO - Translation
+			'no_name' => 'Category name cannot be empty.',	// TODO - Translation
+			'not_delete_default' => 'You cannot delete the default category!',	// TODO - Translation
+			'not_exist' => 'The category does not exist!',	// TODO - Translation
+			'over_max' => 'You have reached your limit of categories (%d)',	// TODO - Translation
+			'updated' => 'Category has been updated.',	// TODO - Translation
+		),
+		'feed' => array(
+			'actualized' => '<em>%s</em> has been updated',	// TODO - Translation
+			'actualizeds' => 'RSS feeds have been updated',	// TODO - Translation
+			'added' => 'RSS feed <em>%s</em> has been added',	// TODO - Translation
+			'already_subscribed' => 'You have already subscribed to <em>%s</em>',	// TODO - Translation
+			'cache_cleared' => '<em>%s</em> cache has been cleared',	// TODO - Translation
+			'deleted' => 'Feed has been deleted',	// TODO - Translation
+			'error' => 'Feed cannot be updated',	// TODO - Translation
+			'internal_problem' => 'The newsfeed could not be added. <a href="%s">Check FreshRSS logs</a> for details. You can try force adding by appending <code>#force_feed</code> to the URL.',	// TODO - Translation
+			'invalid_url' => 'URL <em>%s</em> is invalid',	// TODO - Translation
+			'n_actualized' => '%d feeds have been updated',	// TODO - Translation
+			'n_entries_deleted' => '%d articles have been deleted',	// TODO - Translation
+			'no_refresh' => 'There are no feeds to refresh',	// TODO - Translation
+			'not_added' => '<em>%s</em> could not be added',	// TODO - Translation
+			'not_found' => 'Feed cannot be found',	// TODO - Translation
+			'over_max' => 'You have reached your limit of feeds (%d)',	// TODO - Translation
+			'reloaded' => '<em>%s</em> has been reloaded',	// TODO - Translation
+			'selector_preview' => array(
+				'http_error' => 'Nie udało się załadować zawartości strony.',
+				'no_entries' => 'Nie ma wiadomości na tym kanale. Potrzeba przynajmniej jednej wiadomości aby podgląd był dostępny.',
+				'no_feed' => 'Błąd wewnętrzny (kanał nie został odnaleziony).',
+				'no_result' => 'Selektor nie pasuje do żadnego elementu. W zastępstwie zostanie pokazana pierwotna zawartość kanału.',
+				'selector_empty' => 'Selektor jest pusty. Aby podgląd był dostępny selektor musi być zdefiniowany.',
+			),
+			'updated' => 'Ustawienia kanału zostały zaktualizowane',
+		),
+		'purge_completed' => 'Purge completed (%d articles deleted)',	// TODO - Translation
+	),
+	'update' => array(
+		'can_apply' => 'FreshRSS zostanie zaktualizowany do <strong>wersji %s</strong>.',
+		'error' => 'Proces aktualizacji napotkał błąd: %s',
+		'file_is_nok' => 'Nowa <strong>wersja %s</strong> jest dostępna, ale należy sprawdzić uprawnienia katalogu <em>%s</em>. Serwer HTTP musi mieć możliwość zapisu',
+		'finished' => 'Aktualizacja ukończona!',
+		'none' => 'Brak dostępnych aktualizacji',
+		'server_not_found' => 'Serwer aktualizacji nie może zostać odnaleziony. [%s]',
+	),
+	'user' => array(
+		'created' => array(
+			'_' => 'User %s has been created',	// TODO - Translation
+			'error' => 'User %s cannot be created',	// TODO - Translation
+		),
+		'deleted' => array(
+			'_' => 'User %s has been deleted',	// TODO - Translation
+			'error' => 'User %s cannot be deleted',	// TODO - Translation
+		),
+		'updated' => array(
+			'_' => 'User %s has been updated',	// TODO - Translation
+			'error' => 'User %s has not been updated',	// TODO - Translation
+		),
+	),
+);

+ 218 - 0
app/i18n/pl/gen.php

@@ -0,0 +1,218 @@
+<?php
+
+return array(
+	'action' => array(
+		'actualize' => 'Aktualizuj',
+		'add' => 'Dodaj',
+		'back' => '← Go back',	// TODO - Translation
+		'back_to_rss_feeds' => '← Wróć do subskrybowanych kanałów RSS',
+		'cancel' => 'Anuluj',
+		'create' => 'Stwórz',
+		'demote' => 'Zdegraduj',
+		'disable' => 'Wyłącz',
+		'empty' => 'Opróżnij',
+		'enable' => 'Włącz',
+		'export' => 'Eksportuj',
+		'filter' => 'Filtruj',
+		'import' => 'Importuj',
+		'load_default_shortcuts' => 'Ustaw domyślne skróty',
+		'manage' => 'Ustawienia',
+		'mark_favorite' => 'Oznacz jako ulubione',
+		'mark_read' => 'Oznacz jako przeczytane',
+		'promote' => 'Awansuj',
+		'purge' => 'Oczyść',
+		'remove' => 'Usuń',
+		'rename' => 'Zmień nazwę',
+		'see_website' => 'Przejdź na stronę',
+		'submit' => 'Zatwierdź',
+		'truncate' => 'Usuń wszystkie wiadomości',
+		'update' => 'Aktualizuj',
+	),
+	'auth' => array(
+		'accept_tos' => 'I accept the <a href="%s">Terms of Service</a>.',	// TODO - Translation
+		'email' => 'Adres e-mail',
+		'keep_logged_in' => 'Nie pytaj ponownie o logowanie <small>(przez %s dni)</small>',
+		'login' => 'Logowanie',
+		'logout' => 'Wyloguj',
+		'password' => array(
+			'_' => 'Hasło',
+			'format' => '<small>Przynajmniej 7 znaków</small>',
+		),
+		'registration' => array(
+			'_' => 'New account',	// TODO - Translation
+			'ask' => 'Create an account?',	// TODO - Translation
+			'title' => 'Account creation',	// TODO - Translation
+		),
+		'reset' => 'Authentication reset',	// TODO - Translation
+		'username' => array(
+			'_' => 'Nazwa użytkownika',
+			'admin' => 'Administrator username',	// TODO - Translation
+			'format' => '<small>Maximum 16 alphanumeric characters</small>',	// TODO - Translation
+		),
+	),
+	'date' => array(
+		'Apr' => '\\K\\w\\i\\e\\t\\n\\i\\a',
+		'Aug' => '\\S\\i\\e\\r\\p\\n\\i\\a',
+		'Dec' => '\\G\\r\\u\\d\\n\\i\\a',
+		'Feb' => '\\L\\u\\t\\e\\g\\o',
+		'Jan' => '\\S\\t\\y\\c\\z\\n\\i\\a',
+		'Jul' => '\\L\\i\\p\\c\\a',
+		'Jun' => '\\C\\z\\e\\r\\w\\c\\a',
+		'Mar' => '\\M\\a\\r\\c\\a',
+		'May' => '\\M\\a\\j\\a',
+		'Nov' => '\\L\\i\\s\\t\\o\\p\\a\\d\\a',
+		'Oct' => '\\P\\a\\ź\\d\\z\\i\\e\\r\\n\\i\\k\\a',
+		'Sep' => '\\W\\r\\z\\e\\ś\\n\\i\\a',
+		'apr' => 'Kwi',
+		'april' => 'Kwiecień',
+		'aug' => 'Sie',
+		'august' => 'Sierpień',
+		'before_yesterday' => 'Wcześniejsze',
+		'dec' => 'Gru',
+		'december' => 'Grudzień',
+		'feb' => 'Lut',
+		'february' => 'Luty',
+		'format_date' => 'j %s Y',
+		'format_date_hour' => 'j %s Y\\, H\\:i',
+		'fri' => 'Pt.',
+		'jan' => 'Sty.',
+		'january' => 'Styczeń',
+		'jul' => 'Lip',
+		'july' => 'Lipiec',
+		'jun' => 'Cze',
+		'june' => 'Czerwiec',
+		'last_2_year' => 'Ostatnie dwa lata',
+		'last_3_month' => 'Ostatnie trzy miesiące',
+		'last_3_year' => 'Ostatnie trzy lata',
+		'last_5_year' => 'Ostatnie pięć lat',
+		'last_6_month' => 'Ostatnie sześć miesięcy',
+		'last_month' => 'Ostatni miesiąc',
+		'last_week' => 'Ostatni tydzień',
+		'last_year' => 'Ostatni rok',
+		'mar' => 'Mar',
+		'march' => 'Marzec',
+		'may' => 'Maj',
+		'may_' => 'Maj',
+		'mon' => 'Pon.',
+		'month' => 'months',	// TODO - Translation
+		'nov' => 'Lis.',
+		'november' => 'Listopad',
+		'oct' => 'Paź',
+		'october' => 'Październik',
+		'sat' => 'Sob.',
+		'sep' => 'Wrz',
+		'september' => 'Wrzesień',
+		'sun' => 'Niedz.',
+		'thu' => 'Czw.',
+		'today' => 'Dzisiejsze',
+		'tue' => 'Wt.',
+		'wed' => 'Śr.',
+		'yesterday' => 'Wczorajsze',
+	),
+	'dir' => 'ltr',	// TODO - Translation
+	'freshrss' => array(
+		'_' => 'FreshRSS',
+		'about' => 'O serwisie FreshRSS',
+	),
+	'js' => array(
+		'category_empty' => 'Pusta kategoria',
+		'confirm_action' => 'Czy jesteś pewien, że chcesz przeprowadzić daną operację? Nie można cofnąć jej rezultatów!',
+		'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!',	// TODO - Translation
+		'feedback' => array(
+			'body_new_articles' => 'Na FreshRSS znajduje się %%d wiadomości do przeczytania.',
+			'request_failed' => 'A request has failed, it may have been caused by internet connection problems.',	// TODO - Translation
+			'title_new_articles' => 'FreshRSS: nowe wiadomości!',
+		),
+		'new_article' => 'Dostępne są nowe wiadomości. Kliknij, aby odświeżyć stronę.',
+		'should_be_activated' => 'JavaScript musi być włączony',
+	),
+	'lang' => array(
+		'cz' => 'Čeština',
+		'de' => 'Deutsch',
+		'en' => 'English',
+		'en-us' => 'English (United States)',
+		'es' => 'Español',
+		'fr' => 'Français',
+		'he' => 'עברית',
+		'it' => 'Italiano',
+		'kr' => '한국어',
+		'nl' => 'Nederlands',
+		'oc' => 'Occitan',
+		'pl' => 'Polski',
+		'pt-br' => 'Português (Brasil)',
+		'ru' => 'Русский',
+		'sk' => 'Slovenčina',
+		'tr' => 'Türkçe',
+		'zh-cn' => '简体中文',
+	),
+	'menu' => array(
+		'about' => 'O serwisie',
+		'admin' => 'Administracja',
+		'archiving' => 'Archiwizacja',
+		'authentication' => 'Uwierzytelnianie',
+		'check_install' => 'Sprawdzenie instalacji',
+		'configuration' => 'Konfiguracja',
+		'display' => 'Wyświetlanie',
+		'extensions' => 'Rozszerzenia',
+		'logs' => 'Dziennik',
+		'queries' => 'Zapisane zapytania',
+		'reading' => 'Czytanie',
+		'search' => 'Wyszukaj wyrazy lub #tagi',
+		'sharing' => 'Podawanie dalej',
+		'shortcuts' => 'Skróty klawiszowe',
+		'stats' => 'Statystyki',
+		'system' => 'Konfiguracja serwisu',
+		'update' => 'Aktualizacja',
+		'user_management' => 'Zarządzanie użytkownikami',
+		'user_profile' => 'Profil',
+	),
+	'pagination' => array(
+		'first' => 'First',	// TODO - Translation
+		'last' => 'Last',	// TODO - Translation
+		'load_more' => 'Załaduj więcej wiadomości',
+		'mark_all_read' => 'Oznacz wszystkie jako przeczytane',
+		'next' => 'Next',	// TODO - Translation
+		'nothing_to_load' => 'Koniec listy wiadomości',
+		'previous' => 'Previous',	// TODO - Translation
+	),
+	'period' => array(
+		'days' => 'dni',
+		'hours' => 'godziny',
+		'months' => 'miesiące',
+		'weeks' => 'tygodnie',
+		'years' => 'lata',
+	),
+	'share' => array(
+		'Known' => 'Strony bazujące na usłudze Known',
+		'blogotext' => 'Blogotext',
+		'diaspora' => 'Diaspora*',
+		'email' => 'E-mail',
+		'facebook' => 'Facebook',
+		'gnusocial' => 'GNU social',
+		'jdh' => 'Journal du hacker',
+		'lemmy' => 'Lemmy',
+		'linkedin' => 'LinkedIn',
+		'mastodon' => 'Mastodon',
+		'movim' => 'Movim',
+		'pinboard' => 'Pinboard',
+		'pocket' => 'Pocket',
+		'print' => 'Wydruk',
+		'shaarli' => 'Shaarli',
+		'twitter' => 'Twitter',
+		'wallabag' => 'wallabag v1',
+		'wallabagv2' => 'wallabag v2',
+	),
+	'short' => array(
+		'attention' => 'Uwaga!',
+		'blank_to_disable' => 'Pozostaw puste, by wyłączyć',
+		'by_author' => 'Autor:',
+		'by_default' => 'Domyślnie',
+		'damn' => 'Niech to!',
+		'default_category' => 'Brak kategorii',
+		'no' => 'Nie',
+		'not_applicable' => 'Niedostępne',
+		'ok' => 'Okay!',
+		'or' => 'lub',
+		'yes' => 'Tak',
+	),
+);

+ 66 - 0
app/i18n/pl/index.php

@@ -0,0 +1,66 @@
+<?php
+
+return array(
+	'about' => array(
+		'_' => 'O serwisie',
+		'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',
+		'bugs_reports' => 'Zgłaszanie problemów',
+		'credits' => 'Uznanie autorstwa',
+		'credits_content' => 'Niektóre elementy designu pochodzą z <a href="http://twitter.github.io/bootstrap/">Bootstrapa</a>, przy czym FreshRSS nie używa tego frameworku. <a href="https://git.gnome.org/browse/gnome-icon-theme-symbolic">Ikony</a> zostały pierwotnie stworzone dla <a href="https://www.gnome.org/">projektu GNOME</a>. Font <em>Open Sans</em> jest autorstwa <a href="https://fonts.google.com/specimen/Open+Sans">Steve\'a Mattesona</a>. FreshRSS opiera się na <a href="https://github.com/marienfressinaud/MINZ">Minz</a>, frameworku PHP.',
+		'freshrss_description' => 'FreshRSS jest agregatorem kanałów RSS przeznaczonym do zainstalowania na własnym serwerze, podobnie jak <a href="http://tontof.net/kriss/feed/">Kriss Feed</a>, bądź <a href="https://github.com/LeedRSS/Leed">Leed</a>. Jest lekki i łatwy do schowania w kieszeni, pozostając przy tym potężnym i konfigurowalnym narzędziem.',
+		'github' => '<a href="https://github.com/FreshRSS/FreshRSS/issues">na Githubie</a>',
+		'license' => 'Licencja',
+		'project_website' => 'Strona projektu',
+		'title' => 'O serwisie',
+		'version' => 'Wersja',
+		'website' => 'Strona domowa',
+	),
+	'feed' => array(
+		'add' => 'Dodaj więcej kanałów.',
+		'empty' => 'Brak wiadomości do wyświetlenia.',
+		'rss_of' => 'Kanał RSS: %s',
+		'title' => 'Subskrybowane kanały RSS',
+		'title_fav' => 'Ulubione wiadomości',
+		'title_global' => 'Widok globalny',
+	),
+	'log' => array(
+		'_' => 'Dziennik',
+		'clear' => 'Usuń wpisy z dziennika',
+		'empty' => 'Dziennik jest pusty',
+		'title' => 'Dziennik',
+	),
+	'menu' => array(
+		'about' => 'O serwisie FreshRSS',
+		'add_query' => 'Zapisz wyszukiwanie',
+		'before_one_day' => 'Starsze niż dzień',
+		'before_one_week' => 'Starsze niż tydzień',
+		'favorites' => 'Ulubione (%s)',
+		'global_view' => 'Widok globalny',
+		'main_stream' => 'Kanał główny',
+		'mark_all_read' => 'Oznacz wszystkie jako przeczytane',
+		'mark_cat_read' => 'Oznacz kategorię jako przeczytaną',
+		'mark_feed_read' => 'Oznacz kanał jako przeczytany',
+		'mark_selection_unread' => 'Oznacz wiadomości jako nieprzeczytane',
+		'newer_first' => 'Najpierw najnowsze',
+		'non-starred' => 'Pokaż wiadomości, które nie są ulubione',
+		'normal_view' => 'Widok normalny',
+		'older_first' => 'Najpierw najstarsze',
+		'queries' => 'Zapisane wyszukiwania',
+		'read' => 'Pokaż przeczytane',
+		'reader_view' => 'Widok czytania',
+		'rss_view' => 'Kanał RSS',
+		'search_short' => 'Search',	// TODO - Translation
+		'starred' => 'Pokaż ulubione',
+		'stats' => 'Statystyki',
+		'subscription' => 'Zarządzanie subskrypcjami',
+		'tags' => 'Własne etykiety',
+		'unread' => 'Pokaż nieprzeczytane',
+	),
+	'share' => 'Podaj dalej',
+	'tag' => array(
+		'related' => 'Tagi',
+	),
+	'tos' => array(
+		'title' => 'Warunki użytkowania',
+	),
+);

+ 123 - 0
app/i18n/pl/install.php

@@ -0,0 +1,123 @@
+<?php
+
+return array(
+	'action' => array(
+		'finish' => 'Complete installation',	// TODO - Translation
+		'fix_errors_before' => 'Please all fix errors before continuing to the next step.',	// TODO - Translation
+		'keep_install' => 'Keep previous configuration',	// TODO - Translation
+		'next_step' => 'Go to the next step',	// TODO - Translation
+		'reinstall' => 'Reinstall FreshRSS',	// TODO - Translation
+	),
+	'auth' => array(
+		'form' => 'Web form (traditional, requires JavaScript)',	// TODO - Translation
+		'http' => 'HTTP (for advanced users with HTTPS)',	// TODO - Translation
+		'none' => 'None (dangerous)',	// TODO - Translation
+		'password_form' => 'Password<br /><small>(for the Web-form login method)</small>',	// TODO - Translation
+		'password_format' => 'At least 7 characters',	// TODO - Translation
+		'type' => 'Authentication method',	// TODO - Translation
+	),
+	'bdd' => array(
+		'_' => 'Database',	// TODO - Translation
+		'conf' => array(
+			'_' => 'Database configuration',	// TODO - Translation
+			'ko' => 'Verify your database configuration.',	// TODO - Translation
+			'ok' => 'Database configuration has been saved.',	// TODO - Translation
+		),
+		'host' => 'Host',	// TODO - Translation
+		'password' => 'Database password',	// TODO - Translation
+		'prefix' => 'Table prefix',	// TODO - Translation
+		'type' => 'Type of database',	// TODO - Translation
+		'username' => 'Database username',	// TODO - Translation
+	),
+	'check' => array(
+		'_' => 'Checks',	// TODO - Translation
+		'already_installed' => 'We have detected that FreshRSS is already installed!',	// TODO - Translation
+		'cache' => array(
+			'nok' => 'Check permissions on the <em>./data/cache</em> directory. The HTTP server must have write permission.',	// TODO - Translation
+			'ok' => 'Permissions on the cache directory are good.',	// TODO - Translation
+		),
+		'ctype' => array(
+			'nok' => 'Cannot find the required library for character type checking (php-ctype).',	// TODO - Translation
+			'ok' => 'You have the required library for character type checking (ctype).',	// TODO - Translation
+		),
+		'curl' => array(
+			'nok' => 'Cannot find the cURL library (php-curl package).',	// TODO - Translation
+			'ok' => 'You have the cURL library.',	// TODO - Translation
+		),
+		'data' => array(
+			'nok' => 'Check permissions on the <em>./data</em> directory. The HTTP server must have write permission.',	// TODO - Translation
+			'ok' => 'Permissions on the data directory are good.',	// TODO - Translation
+		),
+		'dom' => array(
+			'nok' => 'Cannot find the required library to browse the DOM.',	// TODO - Translation
+			'ok' => 'You have the required library to browse the DOM.',	// TODO - Translation
+		),
+		'favicons' => array(
+			'nok' => 'Check permissions on the <em>./data/favicons</em> directory. The HTTP server must have write permission.',	// TODO - Translation
+			'ok' => 'Permissions on the favicons directory are good.',	// TODO - Translation
+		),
+		'fileinfo' => array(
+			'nok' => 'Cannot find the PHP fileinfo library (fileinfo package).',	// TODO - Translation
+			'ok' => 'You have the fileinfo library.',	// TODO - Translation
+		),
+		'http_referer' => array(
+			'nok' => 'Please check that you are not altering your HTTP REFERER.',	// TODO - Translation
+			'ok' => 'Your HTTP REFERER is known and corresponds to your server.',	// TODO - Translation
+		),
+		'json' => array(
+			'nok' => 'Cannot find the recommended library to parse JSON.',	// TODO - Translation
+			'ok' => 'You have the recommended library to parse JSON.',	// TODO - Translation
+		),
+		'mbstring' => array(
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	// TODO - Translation
+			'ok' => 'You have the recommended library mbstring for Unicode.',	// TODO - Translation
+		),
+		'minz' => array(
+			'nok' => 'Cannot find the Minz framework.',	// TODO - Translation
+			'ok' => 'You have the Minz framework.',	// TODO - Translation
+		),
+		'pcre' => array(
+			'nok' => 'Cannot find the required library for regular expressions (php-pcre).',	// TODO - Translation
+			'ok' => 'You have the required library for regular expressions (PCRE).',	// TODO - Translation
+		),
+		'pdo' => array(
+			'nok' => 'Cannot find PDO or one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).',	// TODO - Translation
+			'ok' => 'You have PDO and at least one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).',	// TODO - Translation
+		),
+		'php' => array(
+			'nok' => 'Your PHP version is %s, but FreshRSS requires at least version %s.',	// TODO - Translation
+			'ok' => 'Your PHP version, %s, is compatible with FreshRSS.',	// TODO - Translation
+		),
+		'users' => array(
+			'nok' => 'Check permissions on the <em>./data/users</em> directory. The HTTP server must have write permissions',	// TODO - Translation
+			'ok' => 'Permissions on the users directory are good.',	// TODO - Translation
+		),
+		'xml' => array(
+			'nok' => 'Cannot find the required library to parse XML.',	// TODO - Translation
+			'ok' => 'You have the required library to parse XML.',	// TODO - Translation
+		),
+	),
+	'conf' => array(
+		'_' => 'General configuration',	// TODO - Translation
+		'ok' => 'General configuration has been saved.',	// TODO - Translation
+	),
+	'congratulations' => 'Congratulations!',	// TODO - Translation
+	'default_user' => 'Username of the default user <small>(maximum 16 alphanumeric characters)</small>',	// TODO - Translation
+	'delete_articles_after' => 'Remove articles after',	// TODO - Translation
+	'fix_errors_before' => 'Please fix errors before continuing to the next step.',	// TODO - Translation
+	'javascript_is_better' => 'FreshRSS is more pleasant with JavaScript enabled',	// TODO - Translation
+	'js' => array(
+		'confirm_reinstall' => 'You will lose your previous configuration by reinstalling FreshRSS. Are you sure you want to continue?',	// TODO - Translation
+	),
+	'language' => array(
+		'_' => 'Language',	// TODO - Translation
+		'choose' => 'Choose a language for FreshRSS',	// TODO - Translation
+		'defined' => 'Language has been defined.',	// TODO - Translation
+	),
+	'not_deleted' => 'Something went wrong; you must delete the file <em>%s</em> manually.',	// TODO - Translation
+	'ok' => 'The installation process was successful.',	// TODO - Translation
+	'step' => 'step %d',	// TODO - Translation
+	'steps' => 'Steps',	// TODO - Translation
+	'this_is_the_end' => 'This is the end',	// TODO - Translation
+	'title' => 'Installation · FreshRSS',	// TODO - Translation
+);

+ 129 - 0
app/i18n/pl/sub.php

@@ -0,0 +1,129 @@
+<?php
+
+return array(
+	'add' => 'Dodawanie nowych kanałów i kategorii zostało przeniesione <a href=\'%s\'>tutaj</a>. Jest również dostępne w menu po lewej stronie, a także za pomocą ikony ✚ dostępnej na głównej stronie.',
+	'api' => array(
+		'documentation' => 'Skopiuj następujący URL, by wykorzystać go w zewnętrznym narzędziu.',
+		'title' => 'API',
+	),
+	'bookmarklet' => array(
+		'documentation' => 'Przeciągnij ten guzik na pasek zakładek, albo kliknij go prawym przyciskiem myszy i wybierz opcję dodania odnośnika do listy zakładek. Dzięki temu będziesz mógł kliknąć w guzik „Subskrybuj” na dowolnej stronie, którą będziesz chciał zasubskrybować.',
+		'label' => 'Subskrybuj',
+		'title' => 'Skryptozakładka',
+	),
+	'category' => array(
+		'_' => 'Kategoria',
+		'add' => 'Dodaj kategorię',
+		'archiving' => 'Archiwizacja',
+		'empty' => 'Pusta kategoria',
+		'information' => 'Informacje',
+		'position' => 'Miejsce wyświetlania',
+		'position_help' => 'Kontrola porządku sortowania kategorii',
+		'title' => 'Tytuł',
+	),
+	'feed' => array(
+		'add' => 'Dodaj kanał',
+		'advanced' => 'Zaawansowane',
+		'archiving' => 'Archiwizacja',
+		'auth' => array(
+			'configuration' => 'Uwierzytelnianie',
+			'help' => 'Pozwala na dostęp do kanałów chronionych hasłem HTTP',
+			'http' => 'HTTP Authentication',	// TODO - Translation
+			'password' => 'Hasło HTTP',
+			'username' => 'Użytkownik HTTP',
+		),
+		'clear_cache' => 'Zawsze czyść pamięć podręczną',
+		'css_help' => 'Pozwala na ograniczenie zawartości kanałów (uwaga, wymaga więcej czasu!)',
+		'css_path' => 'Selektor CSS dla wiadomości na pierwotnej stronie',
+		'description' => 'Opis',
+		'empty' => 'Ten kanał jest pusty. Należy sprawdzić czy kanał w dalszym ciągu działa.',
+		'error' => 'Napotkano problem podczas dostępu do tego kanału. Należy sprawdzić czy kanał jest zawsze dostępny, a następnie go odświeżyć.',
+		'filteractions' => array(
+			'_' => 'Akcje filtrowania',
+			'help' => 'Jedno zapytanie na linię.',
+		),
+		'information' => 'Informacja',
+		'keep_min' => 'Minimalna liczba wiadomości do do przechowywania',
+		'maintenance' => array(
+			'clear_cache' => 'Wyczyść pamięć podręczną',
+			'clear_cache_help' => 'Czyści pamięć podręczną tego kanału.',
+			'reload_articles' => 'Przeładuj wiadomości',
+			'reload_articles_help' => 'Ponownie pobiera wiadomości i przetwarza treść ze strony pierwotnej, jeżeli zdefiniowany został selektor CSS.',
+			'title' => 'Konserwacja',
+		),
+		'moved_category_deleted' => 'Po usunięciu kategorii znajdujące się w niej kanały zostaną automatycznie przeniesione do <em>%s</em>.',
+		'mute' => 'wycisz',
+		'no_selected' => 'No feed selected.',	// TODO - Translation
+		'number_entries' => '%d wiadomości',
+		'priority' => array(
+			'_' => 'Widoczność',
+			'archived' => 'Nie pokazuj (zarchiwizowany)',
+			'main_stream' => 'Pokaż w kanale głównym',
+			'normal' => 'Pokaż w kategorii kanału',
+		),
+		'selector_preview' => array(
+			'show_raw' => 'Pokaż źródło',
+			'show_rendered' => 'Pokaż zawartość',
+		),
+		'show' => array(
+			'all' => 'Pokaż wszystkie kanały',
+			'error' => 'Pokaż tylko kanały z błędami',
+		),
+		'showing' => array(
+			'error' => 'Wyświetlanie tylko kanałów z błędami',
+		),
+		'ssl_verify' => 'Weryfikuj bezpieczeństwo szyfrowania SSL',
+		'stats' => 'Statystyki',
+		'think_to_add' => 'Możesz dodać kilka kanałów.',
+		'timeout' => 'Limit czasu, w sekundach',
+		'title' => 'Tytuł',
+		'title_add' => 'Dodaj kanał',
+		'ttl' => 'Nie odświeżaj automatycznie częściej niż',
+		'url' => 'Adres kanału',
+		'validator' => 'Sprawdź poprawność kanału',
+		'website' => 'Adres strony',
+		'websub' => 'Instant notification with WebSub',	// TODO - Translation
+	),
+	'firefox' => array(
+		'documentation' => 'Wykonaj kroki opisane <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">tutaj</a>, by dodać FreshRSS do listy czytników kanałów w przeglądarce Firefox.',
+		'obsolete_63' => 'Możliwość dodawania własnych serwisów subskrypcji kanałów, które nie są osobnymi programami, została usunięta w Firefoksie 63.',
+		'title' => 'Czytnik kanałów w Firefoksie',
+	),
+	'import_export' => array(
+		'export' => 'Eksport',
+		'export_labelled' => 'Eksportuj wiadomości z etykietami',
+		'export_opml' => 'Eksportuj listę kanałów (format OPML)',
+		'export_starred' => 'Eksportuj ulubione wiadomości',
+		'feed_list' => 'List of %s articles',	// TODO - Translation
+		'file_to_import' => 'Plik do zaimportowania<br />(formaty OPML, JSON lub ZIP)',
+		'file_to_import_no_zip' => 'Plik do zaimportowania<br />(OPML lub JSON)',
+		'import' => 'Import',
+		'starred_list' => 'List of favourite articles',	// TODO - Translation
+		'title' => 'Import / eksport',
+	),
+	'menu' => array(
+		'add' => 'Dodaj kanał lub kategorię',
+		'add_feed' => 'Dodaj kanał',
+		'bookmark' => 'Subscribe (FreshRSS bookmark)',	// TODO - Translation
+		'import_export' => 'Import / eksport',
+		'subscription_management' => 'Zarządzanie subskrypcjami',
+		'subscription_tools' => 'Narzędzia subskrypcji',
+		'tag_management' => 'Zarządzanie etykietami',
+	),
+	'tag' => array(
+		'name' => 'Nazwa',
+		'new_name' => 'Nowa nazwa',
+		'old_name' => 'Poprzednia nazwa',
+	),
+	'title' => array(
+		'_' => 'Zarządzanie subskrypcjami',
+		'add' => 'Dodaj kanał lub kategorię',
+		'add_category' => 'Dodaj kategorię',
+		'add_feed' => 'Dodaj kanał',
+		'add_tag' => 'Dodaj etykietę',
+		'delete_tag' => 'Usuń etykietę',
+		'feed_management' => 'RSS feeds management',	// TODO - Translation
+		'rename_tag' => 'Zmień nazwę etykiety',
+		'subscription_tools' => 'Narzędzia subskrypcji',
+	),
+);

+ 44 - 0
app/i18n/pl/user.php

@@ -0,0 +1,44 @@
+<?php
+
+return array(
+	'email' => array(
+		'feedback' => array(
+			'invalid' => 'Ten adres e-mailowy jest niepoprawny.',
+			'required' => 'Wymagane jest podanie adresu e-mail.',
+		),
+		'validation' => array(
+			'change_email' => 'You can change your email address <a href="%s">on the profile page</a>.',	// TODO - Translation
+			'email_sent_to' => 'We sent you an email at <strong>%s</strong>. Please follow its instructions to validate your address.',	// TODO - Translation
+			'feedback' => array(
+				'email_failed' => 'We couldn’t send you an email because of a server configuration error.',	// TODO - Translation
+				'email_sent' => 'An email has been sent to your address.',	// TODO - Translation
+				'error' => 'Email address validation failed.',	// TODO - Translation
+				'ok' => 'This email address has been validated.',	// TODO - Translation
+				'unneccessary' => 'This email address was already validated.',	// TODO - Translation
+				'wrong_token' => 'This email address failed to be validated due to a wrong token.',	// TODO - Translation
+			),
+			'need_to' => 'You need to validate your email address before being able to use %s.',	// TODO - Translation
+			'resend_email' => 'Resend the email',	// TODO - Translation
+			'title' => 'Email address validation',	// TODO - Translation
+		),
+	),
+	'mailer' => array(
+		'email_need_validation' => array(
+			'body' => 'You’ve just registered on %s, but you still need to validate your email address. For that, just follow the link:',	// TODO - Translation
+			'title' => 'You need to validate your account',	// TODO - Translation
+			'welcome' => 'Welcome %s,',	// TODO - Translation
+		),
+	),
+	'password' => array(
+		'invalid' => 'The password is invalid.',	// TODO - Translation
+	),
+	'tos' => array(
+		'feedback' => array(
+			'invalid' => 'You must accept the Terms of Service to be able to register.',	// TODO - Translation
+		),
+	),
+	'username' => array(
+		'invalid' => 'This username is invalid.',	// TODO - Translation
+		'taken' => 'This username, %s, is taken.',	// TODO - Translation
+	),
+);

+ 1 - 0
app/i18n/pt-br/gen.php

@@ -138,6 +138,7 @@ return array(
 		'kr' => '한국어',
 		'nl' => 'Nederlands',
 		'oc' => 'Occitan',
+		'pl' => 'Polski',	// TODO - Translation
 		'pt-br' => 'Português (Brasil)',
 		'ru' => 'Русский',
 		'sk' => 'Slovenčina',

+ 1 - 0
app/i18n/ru/gen.php

@@ -138,6 +138,7 @@ return array(
 		'kr' => '한국어',	// TODO - Translation
 		'nl' => 'Nederlands',	// TODO - Translation
 		'oc' => 'Occitan',	// TODO - Translation
+		'pl' => 'Polski',	// TODO - Translation
 		'pt-br' => 'Português (Brasil)',	// TODO - Translation
 		'ru' => 'Русский',	// TODO - Translation
 		'sk' => 'Slovenčina',	// TODO - Translation

+ 1 - 0
app/i18n/sk/gen.php

@@ -138,6 +138,7 @@ return array(
 		'kr' => '한국어',
 		'nl' => 'Nederlands',
 		'oc' => 'Occitan',
+		'pl' => 'Polski',	// TODO - Translation
 		'pt-br' => 'Português (Brasil)',
 		'ru' => 'Русский',
 		'sk' => 'Slovenčina',

+ 1 - 0
app/i18n/tr/gen.php

@@ -138,6 +138,7 @@ return array(
 		'kr' => '한국어',	// TODO - Translation
 		'nl' => 'Nederlands',	// TODO - Translation
 		'oc' => 'Occitan',	// TODO - Translation
+		'pl' => 'Polski',	// TODO - Translation
 		'pt-br' => 'Português (Brasil)',	// TODO - Translation
 		'ru' => 'Русский',	// TODO - Translation
 		'sk' => 'Slovenčina',	// TODO - Translation

+ 1 - 0
app/i18n/zh-cn/gen.php

@@ -138,6 +138,7 @@ return array(
 		'kr' => '한국어',
 		'nl' => 'Nederlands',
 		'oc' => 'Occitan',
+		'pl' => 'Polski',	// TODO - Translation
 		'pt-br' => 'Português (Brasil)',
 		'ru' => 'Русский',
 		'sk' => 'Slovenčina',

+ 48 - 0
cli/i18n/ignore/pl.php

@@ -0,0 +1,48 @@
+<?php
+
+return array(
+	'admin.user.admin',
+	'conf.sharing.blogotext',
+	'conf.sharing.diaspora',
+	'conf.sharing.facebook',
+	'conf.sharing.shaarli',
+	'conf.sharing.twitter',
+	'conf.sharing.wallabag',
+	'gen.freshrss._',
+	'gen.lang.cz',
+	'gen.lang.de',
+	'gen.lang.en',
+	'gen.lang.en-us',
+	'gen.lang.es',
+	'gen.lang.fr',
+	'gen.lang.he',
+	'gen.lang.it',
+	'gen.lang.kr',
+	'gen.lang.nl',
+	'gen.lang.oc',
+	'gen.lang.pl',
+	'gen.lang.pt-br',
+	'gen.lang.ru',
+	'gen.lang.sk',
+	'gen.lang.tr',
+	'gen.lang.zh-cn',
+	'gen.share.blogotext',
+	'gen.share.diaspora',
+	'gen.share.facebook',
+	'gen.share.gnusocial',
+	'gen.share.jdh',
+	'gen.share.lemmy',
+	'gen.share.linkedin',
+	'gen.share.mastodon',
+	'gen.share.movim',
+	'gen.share.pinboard',
+	'gen.share.pocket',
+	'gen.share.shaarli',
+	'gen.share.twitter',
+	'gen.share.wallabag',
+	'gen.share.wallabagv2',
+	'gen.short.ok',
+	'index.about.agpl3',
+	'sub.api.title',
+	'sub.import_export.import',
+);