diff --git a/.github/workflows/dependabot-automerge-js.yml b/.github/workflows/dependabot-automerge-js.yml
new file mode 100644
index 000000000..f29eb4e59
--- /dev/null
+++ b/.github/workflows/dependabot-automerge-js.yml
@@ -0,0 +1,25 @@
+name: Auto-merge Dependabot JS
+on: pull_request_target
+
+permissions:
+ pull-requests: write
+ contents: write
+
+jobs:
+ dependabot:
+ runs-on: ubuntu-latest
+ if: ${{ github.actor == 'dependabot[bot]' }}
+ steps:
+ - name: Dependabot metadata
+ id: metadata
+ uses: dependabot/fetch-metadata@v1.3.4
+ with:
+ github-token: '${{ secrets.GITHUB_TOKEN }}'
+ - name: Approve and merge minor updates
+ if: ${{ steps.metadata.outputs.package-ecosystem == 'npm_and_yarn' && (steps.metadata.outputs.update-type == 'version-update:semver-minor' || steps.metadata.outputs.update-type == 'version-update:semver-patch') }}
+ run: |
+ gh pr review --approve "$PR_URL"
+ gh pr merge --auto --merge "$PR_URL"
+ env:
+ PR_URL: ${{ github.event.pull_request.html_url }}
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.it.yml b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.it.yml
index ebd33344f..8629f3d31 100644
--- a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.it.yml
+++ b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.it.yml
@@ -1,18 +1,18 @@
download_pictures: Scarica le immagini sul tuo server
-carrot: Abilita la condivisione con Carrot
+carrot: Abilita condivisione con Carrot
diaspora_url: URL di diaspora*, se il servizio è abilitato
export_epub: Abilita esportazione ePub
-export_mobi: Abilita esportazione .mobi
+export_mobi: Abilita esportazione .mobi (deprecato, verrà rimosso presto)
export_pdf: Abilita esportazione PDF
export_csv: Abilita esportazione CSV
export_json: Abilita esportazione JSON
export_txt: Abilita esportazione TXT
export_xml: Abilita esportazione XML
-shaarli_url: Shaarli URL, se il servizio è abilitato
-scuttle_url: Scuttle URL, se il servizio è abilitato
-unmark_url: Unmark URL, se il servizio è abilitato
+shaarli_url: URL Shaarli, se il servizio è abilitato
+scuttle_url: URL Scuttle, se il servizio è abilitato
+unmark_url: URL Unmark, se il servizio è abilitato
share_diaspora: Abilita la condivisione con diaspora*
-share_mail: Abilita la condivisione per e-mail
+share_mail: Abilita la condivisione via e-mail
share_shaarli: Abilita la condivisione con Shaarli
share_scuttle: Abilita la condivisione con Scuttle
share_twitter: Abilita la condivisione con Twitter
diff --git a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.pl.yml b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.pl.yml
index f789475ee..83dde93ad 100644
--- a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.pl.yml
+++ b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.pl.yml
@@ -3,7 +3,7 @@ download_pictures: Pobierz obrazy na swój serwer
carrot: Włącz udostępnianie dla Carrot
diaspora_url: Adres URL Diaspora, jeżeli usługa jest włączona
export_epub: Włącz eksport do ePub
-export_mobi: Włącz eksport do .mobi
+export_mobi: Włącz eksport do plików .mobi (przestarzałe, zostanie wkrótce usunięte)
export_pdf: Włącz eksport do PDF
export_csv: Włącz eksport do CSV
export_json: Włącz eksport do JSON
@@ -29,13 +29,12 @@ modify_settings: zatwierdź
matomo_host: Host twojej strony Matomo (bez http:// lub https://)
matomo_site_id: ID twojej strony Matomo
matomo_enabled: Włacz Matomo
-demo_mode_enabled: Włącz tryb demo? (używany wyłącznie dla publicznej demonstracji
- Wallabag)
-demo_mode_username: Użytkownik Demonstracyjny
-share_public: Zezwalaj na publiczne adresy url dla wpisów
+demo_mode_enabled: Włączyć tryb demonstracyjny? (Używany wyłącznie do publicznej demonstracji wallabag)
+demo_mode_username: Użytkownik demonstracyjny
+share_public: Zezwalaj na publiczne adresy URL dla wpisów
download_images_enabled: Pobierz obrazy lokalnie
restricted_access: Włącz autoryzację dla stron za paywallem
api_user_registration: Włącz rejestrację użytkownika przy użyciu API
unmark_url: Odznacz URL, jeżeli usługa jest włączona
-store_article_headers: Włącz, jeżeli Wallabag zapisuje nagłówki HTTP dla każdego artykułu
-shaarli_share_origin_url: Włącz udostępnianie URL Shaarli, jeżeli usługa jest włączona
+store_article_headers: Włącz, jeżeli wallabag zapisuje nagłówki HTTP dla każdego artykułu
+shaarli_share_origin_url: Włącz udostępnianie oryginalnego adresu URL do Shaarli, jeśli usługa jest włączona
diff --git a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.zh_Hant.yml b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.zh_Hant.yml
index 0967ef424..a3f6f83d3 100644
--- a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.zh_Hant.yml
+++ b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.zh_Hant.yml
@@ -1 +1,5 @@
-{}
+download_pictures: 下載圖片至你的服務器上
+diaspora_url: diaspora* URL(如果該服務已啟用)
+settings_changed: 已更新設定
+export_epub: 啟用 ePub 輸出
+carrot: 啟用分享至 Carrot
diff --git a/package.json b/package.json
index bfa2d43c8..ff42b77e9 100644
--- a/package.json
+++ b/package.json
@@ -36,35 +36,35 @@
"url": "https://github.com/wallabag/wallabag/issues"
},
"devDependencies": {
- "@babel/core": "^7.18.13",
- "@babel/eslint-parser": "^7.18.9",
- "@babel/preset-env": "^7.18.10",
- "autoprefixer": "^10.4.8",
+ "@babel/core": "^7.19.3",
+ "@babel/eslint-parser": "^7.19.1",
+ "@babel/preset-env": "^7.19.4",
+ "autoprefixer": "^10.4.12",
"babel-loader": "^8.2.5",
"css-loader": "^6.7.1",
- "eslint": "^8.22.0",
+ "eslint": "^8.25.0",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-plugin-import": "^2.26.0",
"eslint-webpack-plugin": "^3.2.0",
"file-loader": "^6.2.0",
"lato-font": "^3.0.0",
"mini-css-extract-plugin": "^2.6.1",
- "node-sass": "^7.0.1",
- "postcss": "^8.4.16",
+ "node-sass": "^7.0.3",
+ "postcss": "^8.4.18",
"postcss-loader": "^7.0.1",
- "postcss-scss": "^4.0.4",
- "sass": "^1.54.5",
- "sass-loader": "^13.0.2",
+ "postcss-scss": "^4.0.5",
+ "sass": "^1.55.0",
+ "sass-loader": "^13.1.0",
"style-loader": "^3.3.1",
- "stylelint": "^14.11.0",
- "stylelint-config-standard": "^26.0.0",
+ "stylelint": "^14.14.0",
+ "stylelint-config-standard": "^28.0.0",
"stylelint-scss": "^4.3.0",
"stylelint-webpack-plugin": "^3.3.0",
- "terser-webpack-plugin": "^5.3.5",
+ "terser-webpack-plugin": "^5.3.6",
"url-loader": "^4.1.1",
"webpack": "^5.74.0",
"webpack-cli": "^4.10.0",
- "webpack-dev-server": "^4.10.0",
+ "webpack-dev-server": "^4.11.1",
"webpack-manifest-plugin": "^5.0.0",
"webpack-merge": "^5.7.3"
},
@@ -74,7 +74,7 @@
"hammerjs": "^2.0.8",
"highlight.js": "^11.6.0",
"icomoon-free-npm": "^0.0.0",
- "jquery": "^3.6.0",
+ "jquery": "^3.6.1",
"jquery.cookie": "^1.4.1",
"jr-qrcode": "^1.0.7",
"material-design-icons-iconfont": "^6.7.0",
diff --git a/src/Wallabag/ApiBundle/Controller/EntryRestController.php b/src/Wallabag/ApiBundle/Controller/EntryRestController.php
index 6bb90f01d..3b898368c 100644
--- a/src/Wallabag/ApiBundle/Controller/EntryRestController.php
+++ b/src/Wallabag/ApiBundle/Controller/EntryRestController.php
@@ -119,6 +119,7 @@ class EntryRestController extends WallabagRestController
* {"name"="since", "dataType"="integer", "required"=false, "format"="default '0'", "description"="The timestamp since when you want entries updated."},
* {"name"="public", "dataType"="integer", "required"=false, "format"="1 or 0, all entries by default", "description"="filter by entries with a public link"},
* {"name"="detail", "dataType"="string", "required"=false, "format"="metadata or full, metadata by default", "description"="include content field if 'full'. 'full' by default for backward compatibility."},
+ * {"name"="domain_name", "dataType"="string", "required"=false, "format"="example.com", "description"="filter entries with the given domain name"},
* }
* )
*
@@ -138,6 +139,7 @@ class EntryRestController extends WallabagRestController
$tags = \is_array($request->query->get('tags')) ? '' : (string) $request->query->get('tags', '');
$since = $request->query->get('since', 0);
$detail = strtolower($request->query->get('detail', 'full'));
+ $domainName = (null === $request->query->get('domain_name')) ? '' : (string) $request->query->get('domain_name');
try {
/** @var Pagerfanta $pager */
@@ -150,7 +152,8 @@ class EntryRestController extends WallabagRestController
$order,
$since,
$tags,
- $detail
+ $detail,
+ $domainName
);
} catch (\Exception $e) {
throw new BadRequestHttpException($e->getMessage());
diff --git a/src/Wallabag/ApiBundle/Controller/TagRestController.php b/src/Wallabag/ApiBundle/Controller/TagRestController.php
index 7d9cc9b85..7e14e8d1c 100644
--- a/src/Wallabag/ApiBundle/Controller/TagRestController.php
+++ b/src/Wallabag/ApiBundle/Controller/TagRestController.php
@@ -24,7 +24,7 @@ class TagRestController extends WallabagRestController
$tags = $this->getDoctrine()
->getRepository(Tag::class)
- ->findAllTags($this->getUser()->getId());
+ ->findAllFlatTagsWithNbEntries($this->getUser()->getId());
$json = $this->get(SerializerInterface::class)->serialize($tags, 'json');
diff --git a/src/Wallabag/CoreBundle/Helper/ContentProxy.php b/src/Wallabag/CoreBundle/Helper/ContentProxy.php
index d80bec87d..cb64b4b74 100644
--- a/src/Wallabag/CoreBundle/Helper/ContentProxy.php
+++ b/src/Wallabag/CoreBundle/Helper/ContentProxy.php
@@ -346,7 +346,7 @@ class ContentProxy
* parse_url arrays.
*
* As array_diff_assoc only computes changes to go from the left array
- * to the right one, we make two differents arrays to have both
+ * to the right one, we make two different arrays to have both
* directions. We merge these two arrays and sort keys before passing
* the result to the switch.
*
diff --git a/src/Wallabag/CoreBundle/Helper/CryptoProxy.php b/src/Wallabag/CoreBundle/Helper/CryptoProxy.php
index 67d739156..5d73df70e 100644
--- a/src/Wallabag/CoreBundle/Helper/CryptoProxy.php
+++ b/src/Wallabag/CoreBundle/Helper/CryptoProxy.php
@@ -33,7 +33,7 @@ class CryptoProxy
/**
* Ensure the given value will be crypted.
*
- * @param string $secretValue Secret valye to crypt
+ * @param string $secretValue Secret value to crypt
*
* @return string
*/
diff --git a/src/Wallabag/CoreBundle/Helper/DetectActiveTheme.php b/src/Wallabag/CoreBundle/Helper/DetectActiveTheme.php
index 9f90ee3e2..ec951be84 100644
--- a/src/Wallabag/CoreBundle/Helper/DetectActiveTheme.php
+++ b/src/Wallabag/CoreBundle/Helper/DetectActiveTheme.php
@@ -10,7 +10,7 @@ use Wallabag\UserBundle\Entity\User;
* This class intend to detect the active theme for the logged in user.
* It will retrieve the configured theme of the user.
*
- * If no user where logged in, it will returne the default theme
+ * If no user where logged in, it will return the default theme
*/
class DetectActiveTheme implements DeviceDetectionInterface
{
diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php
index 62217079b..30727ba1f 100644
--- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php
+++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php
@@ -167,7 +167,7 @@ class EntriesExport
$book->setAuthor($this->author, $this->author);
- // I hope this is a non existant address :)
+ // I hope this is a non-existent address :)
$book->setPublisher('wallabag', 'wallabag');
// Strictly not needed as the book date defaults to time().
$book->setDate(time());
diff --git a/src/Wallabag/CoreBundle/Repository/EntryRepository.php b/src/Wallabag/CoreBundle/Repository/EntryRepository.php
index 4874f2790..7cadb091a 100644
--- a/src/Wallabag/CoreBundle/Repository/EntryRepository.php
+++ b/src/Wallabag/CoreBundle/Repository/EntryRepository.php
@@ -204,12 +204,13 @@ class EntryRepository extends ServiceEntityRepository
* @param int $since
* @param string $tags
* @param string $detail 'metadata' or 'full'. Include content field if 'full'
+ * @param string $domainName
*
* @todo Breaking change: replace default detail=full by detail=metadata in a future version
*
* @return Pagerfanta
*/
- public function findEntries($userId, $isArchived = null, $isStarred = null, $isPublic = null, $sort = 'created', $order = 'asc', $since = 0, $tags = '', $detail = 'full')
+ public function findEntries($userId, $isArchived = null, $isStarred = null, $isPublic = null, $sort = 'created', $order = 'asc', $since = 0, $tags = '', $detail = 'full', $domainName = '')
{
if (!\in_array(strtolower($detail), ['full', 'metadata'], true)) {
throw new \Exception('Detail "' . $detail . '" parameter is wrong, allowed: full or metadata');
@@ -248,7 +249,7 @@ class EntryRepository extends ServiceEntityRepository
$entryAlias = 'e' . $i;
$tagAlias = 't' . $i;
- // Complexe queries to ensure multiple tags are associated to an entry
+ // Complex queries to ensure multiple tags are associated to an entry
// https://stackoverflow.com/a/6638146/569101
$qb->andWhere($qb->expr()->in(
'e.id',
@@ -264,6 +265,10 @@ class EntryRepository extends ServiceEntityRepository
}
}
+ if (\is_string($domainName) && '' !== $domainName) {
+ $qb->andWhere('e.domainName = :domainName')->setParameter('domainName', $domainName);
+ }
+
if (!\in_array(strtolower($order), ['asc', 'desc'], true)) {
throw new \Exception('Order "' . $order . '" parameter is wrong, allowed: asc or desc');
}
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
index a65b03c8b..a25a4a27c 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
@@ -508,14 +508,14 @@ import:
wallabag_v1:
page_title: Aus wallabag v1 importieren
description: Dieser Import wird all deine Artikel aus wallabag v1 importieren. Klicke in der Konfigurationsseite auf "JSON-Export" im "wallabag-Daten exportieren"-Abschnitt. Du erhältst eine "wallabag-export-1-xxxx-xx-xx.json"-Datei.
- how_to: Wähle die exportierte Datei aus und klicke den nachfolgenden Button, um diese hochzuladen und zu importieren.
+ how_to: Wähle die exportierte Datei aus und klicke auf den nachfolgenden Button, um diese hochzuladen und zu importieren.
wallabag_v2:
page_title: Aus wallabag v2 importieren
description: Dieser Import wird all deine Artikel aus wallabag v2 importieren. Gehe auf "Alle Artikel" und dann, in der Exportieren-Seitenleiste auf "JSON". Dabei erhältst du eine "All articles.json"-Datei.
readability:
page_title: Aus Readability importieren
description: Dieser Importer wird all deine Artikel aus Readability importieren. Auf der Werkzeugseite (https://www.readability.com/tools/) klickst du auf „Exportiere deine Daten“ in dem Abschnitt „Datenexport“. Du wirst eine E-Mail mit einem Herunterladenlink zu einer json Datei, die aber nicht auf .json endet, erhalten.
- how_to: Bitte wähle deinen Readability Export aus und klicke den unteren Button für das Hochladen und Importieren dessen.
+ how_to: Bitte wähl deinen Readability-Export aus und klick den unteren Button für das Hochladen und Importieren dessen an.
worker:
enabled: 'Der Import erfolgt asynchron. Sobald der Import gestartet ist, wird diese Aufgabe extern abgearbeitet. Der aktuelle Service dafür ist:'
download_images_warning: Du hast das Herunterladen von Bildern für deine Artikel aktiviert. Verbunden mit dem klassischen Import kann es ewig dauern fortzufahren (oder sogar fehlschlagen). Wir empfehlen den asynchronen Import zu aktivieren, um Fehler zu vermeiden.
@@ -530,11 +530,11 @@ import:
instapaper:
page_title: Aus Instapaper importieren
description: Dieser Import wird all deine Instapaper Artikel importieren. Auf der Einstellungsseite (https://www.instapaper.com/user) klickst du auf "Download .CSV Datei" in dem Abschnitt "Export". Eine CSV Datei wird heruntergeladen (z.B. "instapaper-export.csv").
- how_to: Bitte wähle deine Instapaper Sicherungsdatei aus und klicke den nachfolgenden Button zum Importieren.
+ how_to: Bitte wähle deine Instapaper-Sicherungsdatei aus und klicke auf den nachfolgenden Button zum Importieren.
pinboard:
page_title: Aus Pinboard importieren
description: Dieser Import wird all deine Pinboard Artikel importieren. Auf der Seite Backup (https://pinboard.in/settings/backup) klickst du auf "JSON" in dem Abschnitt "Lesezeichen". Eine JSON Datei wird dann heruntergeladen (z.B. "pinboard_export").
- how_to: Bitte wähle deinen Pinboard Export aus und klicke den nachfolgenden Button zum Importieren.
+ how_to: Bitte wähle deinen Pinboard-Export aus und klicke auf den nachfolgenden Button zum Importieren.
elcurator:
page_title: Importieren > elCurator
description: Dieses Tool wird all deine ElCurator-Artikel importieren. Öffne die Einstellungen in deinem ElCurator-Konto und exportiere dort den Inhalt; du wirst eine JSON-Datei erhalten.
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
index 8989195e2..bbe3a5366 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
@@ -26,7 +26,7 @@ menu:
howto: Come fare
developer: Gestione client API
logout: Esci
- about: A proposito
+ about: Informazioni
search: Cerca
save_link: Salva collegamento
back_to_unread: Torna ai contenuti non letti
@@ -37,6 +37,7 @@ menu:
theme_toggle_auto: Tema automatico
theme_toggle_dark: Tema scuro
theme_toggle_light: Tema chiaro
+ with_annotations: Con annotazioni
top:
add_new_entry: Aggiungi un nuovo contenuto
search: Cerca
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
index 4c188ac4c..523db54ee 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
@@ -16,14 +16,14 @@ security:
menu:
left:
unread: Nieprzeczytane
- starred: Oznaczone gwiazdką
+ starred: Wyróżnione
archive: Archiwum
all_articles: Wszystkie
config: Konfiguracja
tags: Tagi
internal_settings: Wewnętrzne ustawienia
import: Importuj
- howto: How to
+ howto: Jak to zrobić
developer: Zarządzanie klientami API
logout: Wyloguj
about: O nas
@@ -33,10 +33,11 @@ menu:
users_management: Zarządzanie użytkownikami
site_credentials: Poświadczenia strony
quickstart: Szybki start
- ignore_origin_instance_rules: Ignoruj globalne zasady pochodzenia
+ ignore_origin_instance_rules: Globalne zasady ignorowania pochodzenia
theme_toggle_auto: Automatyczny motyw
theme_toggle_dark: Ciemny motyw
theme_toggle_light: Jasny motyw
+ with_annotations: Z adnotacjami
top:
add_new_entry: Dodaj nowy wpis
search: Szukaj
@@ -63,13 +64,13 @@ config:
rules: Zasady tagowania
new_user: Dodaj użytkownika
reset: Zresetuj obszar
- ignore_origin: Ignoruj zasady pochodzenia
+ ignore_origin: Zasady ignorowania pochodzenia
feed: Źródła
form:
save: Zapisz
form_settings:
theme_label: Temat
- items_per_page_label: Ilość elementów na stronie
+ items_per_page_label: Liczba elementów na stronie
language_label: Język
reading_speed:
label: Prędkość czytania
@@ -86,8 +87,8 @@ config:
android_configuration: Skonfiguruj swoją androidową aplikację
android_instruction: Dotknij tutaj, aby wstępnie uzupełnij androidową aplikację
help_theme: Dopasuj wallabag do swoich potrzeb. Tutaj możesz wybrać preferowany przez ciebie motyw.
- help_items_per_page: Możesz zmienić ilość artykułów wyświetlanych na każdej stronie.
- help_reading_speed: wallabag oblicza czas czytania każdego artykułu. Dzięki tej liście możesz określić swoje tempo. Wallabag przeliczy ponownie czas potrzebny, na przeczytanie każdego z artykułów.
+ help_items_per_page: Możesz zmienić liczbę artykułów wyświetlanych na każdej stronie.
+ help_reading_speed: wallabag oblicza czas czytania każdego artykułu. Możesz tutaj określić, dzięki tej liście, czy jesteś szybkim czy powolnym czytelnikiem. wallabag przeliczy czas czytania każdego artykułu.
help_language: Możesz zmienić język interfejsu wallabag.
help_pocket_consumer_key: Wymagane dla importu z Pocket. Możesz go stworzyć na swoim koncie Pocket.
form_rss:
@@ -106,32 +107,32 @@ config:
form_user:
two_factor_description: Włączenie autoryzacji dwuetapowej oznacza, że będziesz otrzymywał maile z kodem przy każdym nowym, niezaufanym połączeniu.
name_label: Nazwa
- email_label: Adres email
+ email_label: Adres e-mail
twoFactorAuthentication_label: Autoryzacja dwuetapowa
help_twoFactorAuthentication: Jeżeli włączysz autoryzację dwuetapową. Za każdym razem, kiedy będziesz chciał się zalogować, dostaniesz kod na swój e-mail.
delete:
- title: Usuń moje konto (niebezpieczna strefa !)
+ title: Usuń moje konto (niebezpieczna strefa!)
description: Jeżeli usuniesz swoje konto, wszystkie twoje artykuły, tagi, adnotacje, oraz konto zostaną trwale usunięte (operacja jest NIEODWRACALNA). Następnie zostaniesz wylogowany.
confirm: Jesteś pewien? (tej operacji NIE MOŻNA cofnąć)
button: Usuń moje konto
two_factor:
action_app: Użyj aplikacji do jednorazowych kodów
- action_email: Użyj e-mail’a
+ action_email: Użyj e-maila
state_disabled: Wyłączone
state_enabled: Włączone
table_action: Akcja
table_state: Stan
table_method: Metoda
googleTwoFactor_label: Używając aplikacji do jednorazowych kodów logowania (uruchom aplikacje w stylu Google Authenticator, Authy lub FreeOTP by uzyskać kod)
- emailTwoFactor_label: Używając email’a (otrzymasz kod na podany adres)
+ emailTwoFactor_label: Używając e-maila (otrzymasz kod na podany adres)
login_label: Login (nie może zostać później zmieniony)
reset:
title: Reset (niebezpieczna strefa)
description: Poniższe przyciski pozwalają usunąć pewne informacje z twojego konta. Uważaj te operacje są NIEODWRACALNE.
annotations: Usuń WSZYSTKIE adnotacje
tags: Usuń WSZYSTKIE tagi
- entries: usuń WSZYTSTKIE wpisy
- archived: usuń WSZYSTKIE zarchiwizowane wpisy
+ entries: Usuń WSZYTSTKIE wpisy
+ archived: Usuń WSZYSTKIE zarchiwizowane wpisy
confirm: Jesteś pewien? (tej operacji NIE MOŻNA cofnąć)
form_password:
description: Tutaj możesz zmienić swoje hasło. Twoje nowe hasło powinno mieć conajmniej 8 znaków.
@@ -143,7 +144,7 @@ config:
then_tag_as_label: wtedy otaguj jako
delete_rule_label: usuń
edit_rule_label: edytuj
- rule_label: Reguła
+ rule_label: Zasada
tags_label: Tagi
faq:
title: FAQ
@@ -162,7 +163,7 @@ config:
isStarred: Czy wpis został oznaczony gwiazdką czy nie
content: Zawartość wpisu
language: Język wpisu
- mimetype: Mime-type wpisu
+ mimetype: Typ mediów wpisu
readingTime: Szacunkowy czas czytania wpisu w minutach
domainName: Nazwa domeny wpisu
operator_description:
@@ -179,7 +180,7 @@ config:
notmatches: 'Sprawdź czy temat nie zawiera szukaj (duże lub małe litery).
Przykład: tytuł nie zawiera "piłka nożna"
'
card:
export_tagging_rules_detail: Pobierz plik JSON z ustawieniami tagowania.
- import_tagging_rules_detail: Musisz zaznaczyć plik z rozszerzeniem JSON który wcześniej zapisałeś.
+ import_tagging_rules_detail: Musisz wybrać wcześniej wyeksportowany plik JSON.
export_tagging_rules: Eksportuj/zapisz plik z zasadami tagowania
import_tagging_rules: Importuj zasady tagowania
new_tagging_rule: Utwórz zasadę oznaczania tagami
@@ -187,33 +188,61 @@ config:
file_label: Plik JSON
export: Eksportuj
form_feed:
- description: Lista artykułów Atom pozwala czytać zapisane artykuły w twoim ulubionym programie. Musisz najpierw wygenerować token Atom’a.
+ description: Kanały Atom dostarczane przez wallabag umożliwiają czytanie zapisanych artykułów za pomocą ulubionego czytnika Atom. Musisz najpierw wygenerować token.
feed_limit: Liczba artykułów w aktualnościach
feed_link:
all: Wszystko
archive: Zarchiwizowane
starred: Wyróżnione
- unread: Nieodczytane
+ unread: Nieprzeczytane
feed_links: Linki do aktualności
token_revoke: Anuluj token
token_reset: Stwórz ponownie token
token_create: Stwórz swój token
- no_token: Brak token’a
+ no_token: Brak tokena
token_label: Token listy
form_ignore_origin_rules:
faq:
title: FAQ
+ meaning: Znaczenie
+ variable_description:
+ label: Zmienna
+ host: Host adresu
+ _all: Pełny adres, głównie do dopasowywania wzorów
+ ignore_origin_rules_definition_title: Co oznacza "Ignoruj zasady pochodzenia"?
+ how_to_use_them_description: Załóżmy, że chcesz zignorować pochodzenie wpisu pochodzącego z « rss.example.com » (wiedząc, że po przekierowaniu faktyczny adres to example.com).
W takim przypadku należy umieścić « host = "rss.example.com" » w polu Reguła.
+ variables_available_title: Jakich zmiennych i operatorów mogę użyć przy pisaniu reguł?
+ operator_description:
+ matches: 'Sprawdza, czy temat pasuje do wyszukiwania (wielkość liter nie ma znaczenia).
Przykład: _all ~ "https?://rss.example.com/foobar/.*"
'
+ label: Operator
+ equal_to: Równe…
+ ignore_origin_rules_definition_description: Są one używane przez wallabag do automatycznego ignorowania adresu źródłowego po przekierowaniu.
Jeśli przekierowanie nastąpi podczas pobierania nowego wpisu, wszystkie reguły ignorowania pochodzenia (zdefiniowane przez użytkownika i zdefiniowane przez instancję) zostaną użyte do zignorowania adresu pochodzenia.
+ how_to_use_them_title: Jak ich użyć?
+ variables_available_description: 'Następujące zmienne i operatory mogą być użyte do tworzenia reguł ignorowania pochodzenia:'
+ otp:
+ app:
+ enable: Włącz
+ two_factor_code_description_5: 'Jeśli nie widzisz kodu QR lub nie możesz go zeskanować, wprowadź następujący sekret w swojej aplikacji:'
+ two_factor_code_description_4: 'Przetestuj kod OTP ze skonfigurowanej aplikacji:'
+ cancel: Anuluj
+ qrcode_label: Kod QR
+ two_factor_code_description_1: Właśnie włączono uwierzytelnianie dwuskładnikowe OTP, otwórz aplikację OTP i użyj tego kodu, aby uzyskać jednorazowe hasło. Zniknie po przeładowaniu strony.
+ two_factor_code_description_2: 'Możesz zeskanować ten kod QR za pomocą swojej aplikacji:'
+ two_factor_code_description_3: 'Zapisz też te kody zapasowe w bezpiecznym miejscu, możesz ich użyć w przypadku utraty dostępu do aplikacji OTP:'
+ page_title: Uwierzytelnianie dwuskładnikowe
entry:
default_title: Tytuł wpisu
page_titles:
unread: Nieprzeczytane wpisy
- starred: Wpisy oznaczone gwiazdką
+ starred: Wpisy wyróżnione
archived: Zarchiwizowane wpisy
filtered: Odfiltrowane wpisy
filtered_tags: 'Filtrowane po tagach:'
filtered_search: 'Filtrowanie po wyszukiwaniu:'
untagged: Odtaguj wpisy
all: Wszystkie przedmioty
+ with_annotations: Wpisy z adnotacjami
+ same_domain: Ta sama domena
list:
number_on_the_page: '{0} Nie ma wpisów.|{1} Jest jeden wpis.|]1,Inf[ Są %count% wpisy.'
reading_time: szacunkowy czas czytania
@@ -224,14 +253,16 @@ entry:
reading_time_less_one_minute_short: '< 1 min'
original_article: oryginał
toogle_as_read: Oznacz jako przeczytane
- toogle_as_star: Oznacz jako ulubione
+ toogle_as_star: Przełącz wyróżnienie
delete: Usuń
- export_title: Export
+ export_title: Eksportuj
+ show_same_domain: Pokaż artykuły z tej samej domeny
+ assign_search_tag: Przypisz to wyszukiwanie jako tag do każdego wyniku
filters:
title: Filtry
status_label: Status
archived_label: Zarchiwizowane
- starred_label: Oznaczone gwiazdką
+ starred_label: Wyróżnione
unread_label: Nieprzeczytane
preview_picture_label: Posiada podgląd obrazu
preview_picture_help: Podgląd obrazu
@@ -251,26 +282,31 @@ entry:
action:
clear: Wyczyść
filter: Filtruj
+ annotated_label: Z adnotacjami
view:
left_menu:
back_to_top: Wróć na górę
back_to_homepage: Cofnij
set_as_read: Oznacz jako przeczytane
set_as_unread: Oznacz jako nieprzeczytane
- set_as_starred: Ulubione
+ set_as_starred: Przełącz wyróżnienie
view_original_article: Oryginalny artykuł
re_fetch_content: Pobierz ponownie treść
delete: Usuń
add_a_tag: Dodaj tag
share_content: Udostępnij
- share_email_label: Adres email
+ share_email_label: Adres e-mail
public_link: Publiczny link
delete_public_link: Usuń publiczny link
- export: Export
+ export: Eksportuj
print: Drukuj
problem:
label: Problemy?
description: Czy ten artykuł wygląda źle?
+ theme_toggle: Przełącznik motywu
+ theme_toggle_light: Jasny
+ theme_toggle_dark: Ciemny
+ theme_toggle_auto: Automatyczny
edit_title: Edytuj tytuł
original_article: oryginalny
annotations_on_the_entry: '{0} Nie ma adnotacji |{1} Jedna adnotacja |]1,Inf[ %count% adnotacji'
@@ -282,25 +318,26 @@ entry:
page_title: Zapisz nowy wpis
placeholder: http://website.com
form_new:
- url_label: Url
+ url_label: Adres URL
search:
placeholder: Czego szukasz?
edit:
page_title: Edytuj wpis
title_label: Tytuł
url_label: Adres URL
- origin_url_label: Oryginalny url (gdzie znalazłeś ten wpis)
+ origin_url_label: Oryginalny adres URL (gdzie znaleziono ten wpis)
save_label: Zapisz
public:
shared_by_wallabag: Ten artykuł został udostępniony przez wallabag
confirm:
delete: Czy jesteś pewien, że chcesz usunąć ten artykuł?
- delete_tag: Czy jesteś pewien, że chcesz usunąć ten tag, z tego artykułu?
+ delete_tag: Czy jesteś pewien, że chcesz usunąć ten tag z tego artykułu?
metadata:
reading_time: Szacowany czas czytania
reading_time_minutes_short: '%readingTime% min'
address: Adres
added_on: Dodano
+ published_on: Opublikowano dnia
about:
page_title: O nas
top_menu:
@@ -308,7 +345,7 @@ about:
getting_help: Pomoc
helping: Pomóż wallabagowi
contributors: Osoby, które pomogły przy projekcie
- third_party: Biblioteki Third-party
+ third_party: Biblioteki zewnętrzne
who_behind_wallabag:
developped_by: Stworzony przez
website: strona internetowa
@@ -328,11 +365,11 @@ about:
contributors:
description: Podziękuj osobą, które przyczyniły się do projektu przez aplikację webową
third_party:
- description: 'Tutaj znajduje się lista Third-party bibliotek użytych w wallabag (z ich licencjami):'
+ description: 'Tutaj znajduje się lista bibliotek zewnętrznych użytych w wallabag (z ich licencjami):'
package: Paczka
license: Licencja
howto:
- page_title: How to
+ page_title: Jak to zrobić
page_description: 'Sposoby zapisania artykułu:'
tab_menu:
add_link: Dodaj link
@@ -361,14 +398,14 @@ howto:
action: Akcja
all_pages_title: Skróty dostępne na wszystkich stronach
go_unread: Idź do nieprzeczytanych
- go_starred: Idź do oznaczonych gwiazdką
+ go_starred: Idź do wyróżnionych
go_archive: Idź do archiwum
go_all: Idź do wszystkich wpisów
go_tags: Idź do tagów
go_config: Idź do konfiguracji
go_import: Idź do importu
go_developers: Idź do deweloperów
- go_howto: Idź do howto (tej strony!)
+ go_howto: Idź do jak to zrobić (tej strony!)
go_logout: Wyloguj
list_title: Skróty dostępne w spisie stron
search: Pokaż formularz wyszukiwania
@@ -395,9 +432,10 @@ quickstart:
language: Zmień język i wygląd
rss: Włącz kanały RSS
tagging_rules: Napisz reguły pozwalające na automatyczne otagowanie twoich artykułów
+ feed: Włącz kanały
admin:
title: Administracja
- description: 'Jako administrator wallabag, możesz:'
+ description: 'Jako administrator masz uprawnienia w wallabag. Możesz:'
new_user: Tworzyć nowego użytkownika
analytics: Konfigurować analityki
sharing: Włączyć pewne parametry dotyczące udostępniania artykułów
@@ -405,11 +443,11 @@ quickstart:
import: Skonfigurować import
first_steps:
title: Pierwsze kroki
- description: Teraz wallabag jest poprawnie skonfigurowany, więc czas zarchiwizować Internet. Kliknij w prawym górnym rogu na znak +, aby dodać link.
+ description: Teraz wallabag jest poprawnie skonfigurowany, więc czas zarchiwizować Internet. Kliknij w prawym górnym rogu znak +, aby dodać link.
new_article: Zapisz swój pierwszy artukuł
unread_articles: I sklasyfikuj go!
migrate:
- title: Migruj w istniejącej usługi
+ title: Migruj z istniejącej usługi
description: Używasz innej usługi? Pomożemy ci pobrać twoje dane do wallabag.
pocket: Migruj z Pocket
wallabag_v1: Migruj z wallabag v1
@@ -422,8 +460,8 @@ quickstart:
create_application: Stwórz swoją aplikację
use_docker: Użyj Dockera aby zainstalować wallabag
docs:
- title: Pełna Dokumentacja
- description: Wallabag powiada wiele funkcji. Nie wahaj się przeczytać instrukcji, aby je poznać i nauczyć się jak ich używać.
+ title: Pełna dokumentacja
+ description: wallabag ma wiele funkcji. Nie wahaj się przeczytać instrukcji, aby je poznać i nauczyć się z nich korzystać.
annotate: Dadaj adnotację do swojego artykułu
export: Konwertuj swoje artykuły do ePUB lub PDF
search_filters: Zabacz jak możesz znaleźć artykuł dzięku użyciu silnika wyszukiwarki i filtrów
@@ -433,7 +471,7 @@ quickstart:
title: Wsparcie
description: Jeżeli potrzebujesz pomocy, jesteśmy tutaj dla ciebie.
github: na GitHubie
- email: przez email
+ email: przez e-mail
gitter: na Gitterze
tag:
page_title: Tagi
@@ -441,6 +479,7 @@ tag:
number_on_the_page: '{0} Nie ma tagów.|{1} Jest jeden tag.|]1,Inf[ Są %count% tagi.'
see_untagged_entries: Zobacz nieotagowane wpisy
untagged: Odtaguj wpisy
+ no_untagged_entries: Nie ma nieoznaczonych wpisów.
new:
add: Dodaj
placeholder: Możesz dodać kilka tagów, oddzielając je przecinkami.
@@ -448,35 +487,35 @@ export:
footer_template:
Stworzone przez wallabag z %method%
Proszę zgłoś sprawę, jeżeli masz problem z wyświetleniem tego e-booka na swoim urządzeniu.
-1)i&&i.push(o);else if(c=se(o),a=be(u.appendChild(o),"script"),c&&Ee(a),n)for(T=0;o=a[T++];)me.test(o.type||"")&&n.push(o);return u}var Le=/^([^.]*)(?:\.(.+)|)/;function ve(){return!0}function Oe(){return!1}function Ce(e,t){return e===function(){try{return g.activeElement}catch(e){}}()==("focus"===t)}function Ne(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ne(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Oe;else if(!i)return e;return 1===o&&(a=i,i=function(e){return L().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=L.guid++)),e.each((function(){L.event.add(this,t,i,r,n)}))}function Ae(e,t,n){n?(X.set(e,t,!1),L.event.add(e,t,{namespace:!1,handler:function(e){var r,i,o=X.get(this,t);if(1&e.isTrigger&&this[t]){if(o.length)(L.event.special[t]||{}).delegateType&&e.stopPropagation();else if(o=s.call(arguments),X.set(this,t,o),r=n(this,t),this[t](),o!==(i=X.get(this,t))||r?X.set(this,t,!1):i={},o!==i)return e.stopImmediatePropagation(),e.preventDefault(),i&&i.value}else o.length&&(X.set(this,t,{value:L.event.trigger(L.extend(o[0],L.Event.prototype),o.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===X.get(e,t)&&L.event.add(e,t,ve)}L.event={global:{},add:function(e,t,n,r,i){var o,a,s,l,c,T,u,Q,d,p,_,h=X.get(e);if($(e))for(n.handler&&(n=(o=n).handler,i=o.selector),i&&L.find.matchesSelector(ae,i),n.guid||(n.guid=L.guid++),(l=h.events)||(l=h.events=Object.create(null)),(a=h.handle)||(a=h.handle=function(t){return void 0!==L&&L.event.triggered!==t.type?L.event.dispatch.apply(e,arguments):void 0}),c=(t=(t||"").match(k)||[""]).length;c--;)d=_=(s=Le.exec(t[c])||[])[1],p=(s[2]||"").split(".").sort(),d&&(u=L.event.special[d]||{},d=(i?u.delegateType:u.bindType)||d,u=L.event.special[d]||{},T=L.extend({type:d,origType:_,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&L.expr.match.needsContext.test(i),namespace:p.join(".")},o),(Q=l[d])||((Q=l[d]=[]).delegateCount=0,u.setup&&!1!==u.setup.call(e,r,p,a)||e.addEventListener&&e.addEventListener(d,a)),u.add&&(u.add.call(e,T),T.handler.guid||(T.handler.guid=n.guid)),i?Q.splice(Q.delegateCount++,0,T):Q.push(T),L.event.global[d]=!0)},remove:function(e,t,n,r,i){var o,a,s,l,c,T,u,Q,d,p,_,h=X.hasData(e)&&X.get(e);if(h&&(l=h.events)){for(c=(t=(t||"").match(k)||[""]).length;c--;)if(d=_=(s=Le.exec(t[c])||[])[1],p=(s[2]||"").split(".").sort(),d){for(u=L.event.special[d]||{},Q=l[d=(r?u.delegateType:u.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=Q.length;o--;)T=Q[o],!i&&_!==T.origType||n&&n.guid!==T.guid||s&&!s.test(T.namespace)||r&&r!==T.selector&&("**"!==r||!T.selector)||(Q.splice(o,1),T.selector&&Q.delegateCount--,u.remove&&u.remove.call(e,T));a&&!Q.length&&(u.teardown&&!1!==u.teardown.call(e,p,h.handle)||L.removeEvent(e,d,h.handle),delete l[d])}else for(d in l)L.event.remove(e,d+t[c],n,r,!0);L.isEmptyObject(l)&&X.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),l=L.event.fix(e),c=(X.get(this,"events")||Object.create(null))[l.type]||[],T=L.event.special[l.type]||{};for(s[0]=l,t=1;t0&&Ee(a,!l&&be(e,"script")),s},cleanData:function(e){for(var t,n,r,i=L.event.special,o=0;void 0!==(n=e[o]);o++)if($(n)){if(t=n[X.expando]){if(t.events)for(r in t.events)i[r]?L.event.remove(n,r):L.removeEvent(n,r,t.handle);n[X.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),L.fn.extend({detach:function(e){return Ve(this,e,!0)},remove:function(e){return Ve(this,e)},text:function(e){return q(this,(function(e){return void 0===e?L.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return ke(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||He(this,e).appendChild(e)}))},prepend:function(){return ke(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=He(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return ke(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return ke(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(L.cleanData(be(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return L.clone(this,e,t)}))},html:function(e){return q(this,(function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Me.test(e)&&!ge[(fe.exec(e)||["",""])[1].toLowerCase()]){e=L.htmlPrefilter(e);try{for(;n