diff options
Diffstat (limited to 'src/Wallabag/CoreBundle')
10 files changed, 582 insertions, 492 deletions
diff --git a/src/Wallabag/CoreBundle/Command/InstallCommand.php b/src/Wallabag/CoreBundle/Command/InstallCommand.php index c9dad0df..2d73a9ad 100644 --- a/src/Wallabag/CoreBundle/Command/InstallCommand.php +++ b/src/Wallabag/CoreBundle/Command/InstallCommand.php | |||
@@ -83,7 +83,8 @@ class InstallCommand extends ContainerAwareCommand | |||
83 | $help = 'Needs one of sqlite, mysql or pgsql PDO drivers'; | 83 | $help = 'Needs one of sqlite, mysql or pgsql PDO drivers'; |
84 | } | 84 | } |
85 | 85 | ||
86 | $rows[] = array($label, $status, $help); | 86 | $rows = []; |
87 | $rows[] = [$label, $status, $help]; | ||
87 | 88 | ||
88 | foreach ($this->functionExists as $functionRequired) { | 89 | foreach ($this->functionExists as $functionRequired) { |
89 | $label = '<comment>'.$functionRequired.'</comment>'; | 90 | $label = '<comment>'.$functionRequired.'</comment>'; |
@@ -97,12 +98,12 @@ class InstallCommand extends ContainerAwareCommand | |||
97 | $help = 'You need the '.$functionRequired.' function activated'; | 98 | $help = 'You need the '.$functionRequired.' function activated'; |
98 | } | 99 | } |
99 | 100 | ||
100 | $rows[] = array($label, $status, $help); | 101 | $rows[] = [$label, $status, $help]; |
101 | } | 102 | } |
102 | 103 | ||
103 | $table = new Table($this->defaultOutput); | 104 | $table = new Table($this->defaultOutput); |
104 | $table | 105 | $table |
105 | ->setHeaders(array('Checked', 'Status', 'Recommendation')) | 106 | ->setHeaders(['Checked', 'Status', 'Recommendation']) |
106 | ->setRows($rows) | 107 | ->setRows($rows) |
107 | ->render(); | 108 | ->render(); |
108 | 109 | ||
@@ -126,7 +127,7 @@ class InstallCommand extends ContainerAwareCommand | |||
126 | $this->defaultOutput->writeln('Droping database, creating database and schema, clearing the cache'); | 127 | $this->defaultOutput->writeln('Droping database, creating database and schema, clearing the cache'); |
127 | 128 | ||
128 | $this | 129 | $this |
129 | ->runCommand('doctrine:database:drop', array('--force' => true)) | 130 | ->runCommand('doctrine:database:drop', ['--force' => true]) |
130 | ->runCommand('doctrine:database:create') | 131 | ->runCommand('doctrine:database:create') |
131 | ->runCommand('doctrine:schema:create') | 132 | ->runCommand('doctrine:schema:create') |
132 | ->runCommand('cache:clear') | 133 | ->runCommand('cache:clear') |
@@ -158,7 +159,7 @@ class InstallCommand extends ContainerAwareCommand | |||
158 | $this->defaultOutput->writeln('Droping database, creating database and schema'); | 159 | $this->defaultOutput->writeln('Droping database, creating database and schema'); |
159 | 160 | ||
160 | $this | 161 | $this |
161 | ->runCommand('doctrine:database:drop', array('--force' => true)) | 162 | ->runCommand('doctrine:database:drop', ['--force' => true]) |
162 | ->runCommand('doctrine:database:create') | 163 | ->runCommand('doctrine:database:create') |
163 | ->runCommand('doctrine:schema:create') | 164 | ->runCommand('doctrine:schema:create') |
164 | ; | 165 | ; |
@@ -168,7 +169,7 @@ class InstallCommand extends ContainerAwareCommand | |||
168 | $this->defaultOutput->writeln('Droping schema and creating schema'); | 169 | $this->defaultOutput->writeln('Droping schema and creating schema'); |
169 | 170 | ||
170 | $this | 171 | $this |
171 | ->runCommand('doctrine:schema:drop', array('--force' => true)) | 172 | ->runCommand('doctrine:schema:drop', ['--force' => true]) |
172 | ->runCommand('doctrine:schema:create') | 173 | ->runCommand('doctrine:schema:create') |
173 | ; | 174 | ; |
174 | } | 175 | } |
@@ -388,19 +389,19 @@ class InstallCommand extends ContainerAwareCommand | |||
388 | * @param string $command | 389 | * @param string $command |
389 | * @param array $parameters Parameters to this command (usually 'force' => true) | 390 | * @param array $parameters Parameters to this command (usually 'force' => true) |
390 | */ | 391 | */ |
391 | protected function runCommand($command, $parameters = array()) | 392 | protected function runCommand($command, $parameters = []) |
392 | { | 393 | { |
393 | $parameters = array_merge( | 394 | $parameters = array_merge( |
394 | array('command' => $command), | 395 | ['command' => $command], |
395 | $parameters, | 396 | $parameters, |
396 | array( | 397 | [ |
397 | '--no-debug' => true, | 398 | '--no-debug' => true, |
398 | '--env' => $this->defaultInput->getOption('env') ?: 'dev', | 399 | '--env' => $this->defaultInput->getOption('env') ?: 'dev', |
399 | ) | 400 | ] |
400 | ); | 401 | ); |
401 | 402 | ||
402 | if ($this->defaultInput->getOption('no-interaction')) { | 403 | if ($this->defaultInput->getOption('no-interaction')) { |
403 | $parameters = array_merge($parameters, array('--no-interaction' => true)); | 404 | $parameters = array_merge($parameters, ['--no-interaction' => true]); |
404 | } | 405 | } |
405 | 406 | ||
406 | $this->getApplication()->setAutoExit(false); | 407 | $this->getApplication()->setAutoExit(false); |
diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php index 1a0b80ac..fa633031 100644 --- a/src/Wallabag/CoreBundle/Controller/EntryController.php +++ b/src/Wallabag/CoreBundle/Controller/EntryController.php | |||
@@ -92,13 +92,11 @@ class EntryController extends Controller | |||
92 | } | 92 | } |
93 | 93 | ||
94 | /** | 94 | /** |
95 | * @param Request $request | ||
96 | * | ||
97 | * @Route("/new", name="new") | 95 | * @Route("/new", name="new") |
98 | * | 96 | * |
99 | * @return \Symfony\Component\HttpFoundation\Response | 97 | * @return \Symfony\Component\HttpFoundation\Response |
100 | */ | 98 | */ |
101 | public function addEntryAction(Request $request) | 99 | public function addEntryAction() |
102 | { | 100 | { |
103 | return $this->render('WallabagCoreBundle:Entry:new.html.twig'); | 101 | return $this->render('WallabagCoreBundle:Entry:new.html.twig'); |
104 | } | 102 | } |
diff --git a/src/Wallabag/CoreBundle/Entity/Entry.php b/src/Wallabag/CoreBundle/Entity/Entry.php index 8f4ddf61..1271f1f5 100644 --- a/src/Wallabag/CoreBundle/Entity/Entry.php +++ b/src/Wallabag/CoreBundle/Entity/Entry.php | |||
@@ -187,7 +187,7 @@ class Entry | |||
187 | /* | 187 | /* |
188 | * @param User $user | 188 | * @param User $user |
189 | */ | 189 | */ |
190 | public function __construct(\Wallabag\UserBundle\Entity\User $user) | 190 | public function __construct(User $user) |
191 | { | 191 | { |
192 | $this->user = $user; | 192 | $this->user = $user; |
193 | $this->tags = new ArrayCollection(); | 193 | $this->tags = new ArrayCollection(); |
diff --git a/src/Wallabag/CoreBundle/Helper/ContentProxy.php b/src/Wallabag/CoreBundle/Helper/ContentProxy.php index ba90b731..ed4a220d 100644 --- a/src/Wallabag/CoreBundle/Helper/ContentProxy.php +++ b/src/Wallabag/CoreBundle/Helper/ContentProxy.php | |||
@@ -32,14 +32,21 @@ class ContentProxy | |||
32 | * Fetch content using graby and hydrate given entry with results information. | 32 | * Fetch content using graby and hydrate given entry with results information. |
33 | * In case we couldn't find content, we'll try to use Open Graph data. | 33 | * In case we couldn't find content, we'll try to use Open Graph data. |
34 | * | 34 | * |
35 | * @param Entry $entry Entry to update | 35 | * We can also force the content, in case of an import from the v1 for example, so the function won't |
36 | * @param string $url Url to grab content for | 36 | * fetch the content from the website but rather use information given with the $content parameter. |
37 | * | ||
38 | * @param Entry $entry Entry to update | ||
39 | * @param string $url Url to grab content for | ||
40 | * @param array $content An array with AT LEAST keys title, html, url, language & content_type to skip the fetchContent from the url | ||
37 | * | 41 | * |
38 | * @return Entry | 42 | * @return Entry |
39 | */ | 43 | */ |
40 | public function updateEntry(Entry $entry, $url) | 44 | public function updateEntry(Entry $entry, $url, array $content = []) |
41 | { | 45 | { |
42 | $content = $this->graby->fetchContent($url); | 46 | // do we have to fetch the content or the provided one is ok? |
47 | if (empty($content) || false === $this->validateContent($content)) { | ||
48 | $content = $this->graby->fetchContent($url); | ||
49 | } | ||
43 | 50 | ||
44 | $title = $content['title']; | 51 | $title = $content['title']; |
45 | if (!$title && isset($content['open_graph']['og_title'])) { | 52 | if (!$title && isset($content['open_graph']['og_title'])) { |
@@ -62,7 +69,11 @@ class ContentProxy | |||
62 | $entry->setLanguage($content['language']); | 69 | $entry->setLanguage($content['language']); |
63 | $entry->setMimetype($content['content_type']); | 70 | $entry->setMimetype($content['content_type']); |
64 | $entry->setReadingTime(Utils::getReadingTime($html)); | 71 | $entry->setReadingTime(Utils::getReadingTime($html)); |
65 | $entry->setDomainName(parse_url($entry->getUrl(), PHP_URL_HOST)); | 72 | |
73 | $domainName = parse_url($entry->getUrl(), PHP_URL_HOST); | ||
74 | if (false !== $domainName) { | ||
75 | $entry->setDomainName($domainName); | ||
76 | } | ||
66 | 77 | ||
67 | if (isset($content['open_graph']['og_image'])) { | 78 | if (isset($content['open_graph']['og_image'])) { |
68 | $entry->setPreviewPicture($content['open_graph']['og_image']); | 79 | $entry->setPreviewPicture($content['open_graph']['og_image']); |
@@ -113,4 +124,17 @@ class ContentProxy | |||
113 | } | 124 | } |
114 | } | 125 | } |
115 | } | 126 | } |
127 | |||
128 | /** | ||
129 | * Validate that the given content as enough value to be used | ||
130 | * instead of fetch the content from the url. | ||
131 | * | ||
132 | * @param array $content | ||
133 | * | ||
134 | * @return bool true if valid otherwise false | ||
135 | */ | ||
136 | private function validateContent(array $content) | ||
137 | { | ||
138 | return isset($content['title']) && isset($content['html']) && isset($content['url']) && isset($content['language']) && isset($content['content_type']); | ||
139 | } | ||
116 | } | 140 | } |
diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php index 6ecdf019..82004a6d 100644 --- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php +++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php | |||
@@ -81,27 +81,9 @@ class EntriesExport | |||
81 | */ | 81 | */ |
82 | public function exportAs($format) | 82 | public function exportAs($format) |
83 | { | 83 | { |
84 | switch ($format) { | 84 | $functionName = 'produce'.ucfirst($format); |
85 | case 'epub': | 85 | if (method_exists($this, $functionName)) { |
86 | return $this->produceEpub(); | 86 | return $this->$functionName(); |
87 | |||
88 | case 'mobi': | ||
89 | return $this->produceMobi(); | ||
90 | |||
91 | case 'pdf': | ||
92 | return $this->producePDF(); | ||
93 | |||
94 | case 'csv': | ||
95 | return $this->produceCSV(); | ||
96 | |||
97 | case 'json': | ||
98 | return $this->produceJSON(); | ||
99 | |||
100 | case 'xml': | ||
101 | return $this->produceXML(); | ||
102 | |||
103 | case 'txt': | ||
104 | return $this->produceTXT(); | ||
105 | } | 87 | } |
106 | 88 | ||
107 | throw new \InvalidArgumentException(sprintf('The format "%s" is not yet supported.', $format)); | 89 | throw new \InvalidArgumentException(sprintf('The format "%s" is not yet supported.', $format)); |
@@ -242,7 +224,7 @@ class EntriesExport | |||
242 | /** | 224 | /** |
243 | * Use TCPDF to dump a .pdf file. | 225 | * Use TCPDF to dump a .pdf file. |
244 | */ | 226 | */ |
245 | private function producePDF() | 227 | private function producePdf() |
246 | { | 228 | { |
247 | $pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); | 229 | $pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); |
248 | 230 | ||
@@ -296,7 +278,7 @@ class EntriesExport | |||
296 | /** | 278 | /** |
297 | * Inspired from CsvFileDumper. | 279 | * Inspired from CsvFileDumper. |
298 | */ | 280 | */ |
299 | private function produceCSV() | 281 | private function produceCsv() |
300 | { | 282 | { |
301 | $delimiter = ';'; | 283 | $delimiter = ';'; |
302 | $enclosure = '"'; | 284 | $enclosure = '"'; |
@@ -336,7 +318,7 @@ class EntriesExport | |||
336 | ); | 318 | ); |
337 | } | 319 | } |
338 | 320 | ||
339 | private function produceJSON() | 321 | private function produceJson() |
340 | { | 322 | { |
341 | return Response::create( | 323 | return Response::create( |
342 | $this->prepareSerializingContent('json'), | 324 | $this->prepareSerializingContent('json'), |
@@ -349,7 +331,7 @@ class EntriesExport | |||
349 | ); | 331 | ); |
350 | } | 332 | } |
351 | 333 | ||
352 | private function produceXML() | 334 | private function produceXml() |
353 | { | 335 | { |
354 | return Response::create( | 336 | return Response::create( |
355 | $this->prepareSerializingContent('xml'), | 337 | $this->prepareSerializingContent('xml'), |
@@ -362,7 +344,7 @@ class EntriesExport | |||
362 | ); | 344 | ); |
363 | } | 345 | } |
364 | 346 | ||
365 | private function produceTXT() | 347 | private function produceTxt() |
366 | { | 348 | { |
367 | $content = ''; | 349 | $content = ''; |
368 | $bar = str_repeat('=', 100); | 350 | $bar = str_repeat('=', 100); |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml index 34f567b1..ff6255b7 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml | |||
@@ -1,59 +1,59 @@ | |||
1 | security: | 1 | security: |
2 | login: | 2 | login: |
3 | # page_title: 'Welcome to wallabag!' | 3 | page_title: 'Willkommen bei wallabag!' |
4 | keep_logged_in: 'Angemeldet bleiben' | 4 | keep_logged_in: 'Angemeldet bleiben' |
5 | forgot_password: 'Kennwort vergessen?' | 5 | forgot_password: 'Kennwort vergessen?' |
6 | submit: 'Anmelden' | 6 | submit: 'Anmelden' |
7 | # register: 'Register' | 7 | register: 'Registrieren' |
8 | username: 'Benutzername' | 8 | username: 'Benutzername' |
9 | password: 'Kennwort' | 9 | password: 'Kennwort' |
10 | # cancel: 'Cancel' | 10 | cancel: 'Abbrechen' |
11 | resetting: | 11 | resetting: |
12 | description: "Gib unten deine E-Mail-Adresse ein und wir senden dir eine Anleitung für das Zurücksetzen deines Kennworts." | 12 | description: "Gib unten deine E-Mail-Adresse ein und wir senden dir eine Anleitung für das Zurücksetzen deines Kennworts." |
13 | register: | 13 | register: |
14 | # page_title: 'Create an account' | 14 | page_title: 'Account erstellen' |
15 | # go_to_account: 'Go to your account' | 15 | go_to_account: 'Gehe zu deinem Account' |
16 | 16 | ||
17 | menu: | 17 | menu: |
18 | left: | 18 | left: |
19 | unread: 'Ungelesen' | 19 | unread: 'Ungelesen' |
20 | starred: 'Favoriten' | 20 | starred: 'Favoriten' |
21 | archive: 'Archiv' | 21 | archive: 'Archiv' |
22 | all_articles: 'Alle artikel' | 22 | all_articles: 'Alle Artikel' |
23 | config: 'Konfiguration' | 23 | config: 'Konfiguration' |
24 | tags: 'Tags' | 24 | tags: 'Tags' |
25 | # internal_settings: 'Internal Settings' | 25 | internal_settings: 'Interne Einstellungen' |
26 | # import: 'Import' | 26 | import: 'Importieren' |
27 | howto: 'How-to' | 27 | howto: 'How-To' |
28 | # developer: 'Developer' | 28 | developer: 'Entwickler' |
29 | logout: 'Abmelden' | 29 | logout: 'Abmelden' |
30 | about: 'Über' | 30 | about: 'Über' |
31 | search: 'Suche' | 31 | search: 'Suche' |
32 | # save_link: 'Save a link' | 32 | save_link: 'Link speichern' |
33 | back_to_unread: 'Zurück zu ungelesenen Artikeln' | 33 | back_to_unread: 'Zurück zu ungelesenen Artikeln' |
34 | top: | 34 | top: |
35 | add_new_entry: 'Neuen Artikel hinzufügen' | 35 | add_new_entry: 'Neuen Artikel hinzufügen' |
36 | search: 'Suche' | 36 | search: 'Suche' |
37 | filter_entries: 'Artikel filtern' | 37 | filter_entries: 'Artikel filtern' |
38 | # export: 'Export' | 38 | export: 'Exportieren' |
39 | search_form: | 39 | search_form: |
40 | input_label: 'Suchbegriff hier eingeben' | 40 | input_label: 'Suchbegriff hier eingeben' |
41 | 41 | ||
42 | footer: | 42 | footer: |
43 | wallabag: | 43 | wallabag: |
44 | # elsewhere: 'Take wallabag with you' | 44 | elsewhere: 'Nimm wallabag mit dir mit' |
45 | # social: 'Social' | 45 | social: 'Soziales' |
46 | # powered_by: 'powered by' | 46 | powered_by: 'angetrieben von' |
47 | about: 'Über' | 47 | about: 'Über' |
48 | 48 | ||
49 | config: | 49 | config: |
50 | page_title: 'Config' | 50 | page_title: 'Einstellungen' |
51 | tab_menu: | 51 | tab_menu: |
52 | settings: 'Einstellungen' | 52 | settings: 'Einstellungen' |
53 | rss: 'RSS' | 53 | rss: 'RSS' |
54 | user_info: 'Benutzer-Information' | 54 | user_info: 'Benutzer-Information' |
55 | password: 'Kennwort' | 55 | password: 'Kennwort' |
56 | # rules: 'Tagging rules' | 56 | rules: 'Tagging-Regeln' |
57 | new_user: 'Benutzer hinzufügen' | 57 | new_user: 'Benutzer hinzufügen' |
58 | form: | 58 | form: |
59 | save: 'Speichern' | 59 | save: 'Speichern' |
@@ -62,12 +62,12 @@ config: | |||
62 | items_per_page_label: 'Einträge pro Seite' | 62 | items_per_page_label: 'Einträge pro Seite' |
63 | language_label: 'Sprache' | 63 | language_label: 'Sprache' |
64 | reading_speed: | 64 | reading_speed: |
65 | # label: 'Reading speed' | 65 | label: 'Lesegeschwindigkeit' |
66 | # help_message: 'You can use online tools to estimate your reading speed:' | 66 | help_message: 'Du kannst Online-Tools nutzen, um deine Lesegeschwindigkeit herauszufinden.' |
67 | # 100_word: 'I read ~100 words per minute' | 67 | 100_word: 'Ich lese ~100 Wörter pro Minute' |
68 | # 200_word: 'I read ~200 words per minute' | 68 | 200_word: 'Ich lese ~200 Wörter pro Minute' |
69 | # 300_word: 'I read ~300 words per minute' | 69 | 300_word: 'Ich lese ~300 Wörter pro Minute' |
70 | # 400_word: 'I read ~400 words per minute' | 70 | 400_word: 'Ich lese ~400 Wörter pro Minute' |
71 | form_rss: | 71 | form_rss: |
72 | description: 'Die RSS-Feeds von wallabag erlauben es dir, deine gespeicherten Artikel mit deinem bevorzugten RSS-Reader zu lesen. Vorher musst du jedoch einen Token erstellen.' | 72 | description: 'Die RSS-Feeds von wallabag erlauben es dir, deine gespeicherten Artikel mit deinem bevorzugten RSS-Reader zu lesen. Vorher musst du jedoch einen Token erstellen.' |
73 | token_label: 'RSS-token' | 73 | token_label: 'RSS-token' |
@@ -79,53 +79,53 @@ config: | |||
79 | unread: 'ungelesen' | 79 | unread: 'ungelesen' |
80 | starred: 'favoriten' | 80 | starred: 'favoriten' |
81 | archive: 'archiv' | 81 | archive: 'archiv' |
82 | # rss_limit: 'Number of items in the feed' | 82 | rss_limit: 'Anzahl der Einträge im Feed' |
83 | form_user: | 83 | form_user: |
84 | # two_factor_description: "Enabling two factor authentication means you'll receive an email with a code on every new untrusted connexion" | 84 | two_factor_description: "Wenn du die Zwei-Faktor-Authentifizierung aktivierst, erhältst du eine E-Mail mit einem Code bei jeder nicht vertraulichen Verbindung" |
85 | name_label: 'Name' | 85 | name_label: 'Name' |
86 | email_label: 'E-Mail-Adresse' | 86 | email_label: 'E-Mail-Adresse' |
87 | # twoFactorAuthentication_label: 'Two factor authentication' | 87 | twoFactorAuthentication_label: 'Zwei-Faktor-Authentifizierung' |
88 | form_password: | 88 | form_password: |
89 | old_password_label: 'Altes Kennwort' | 89 | old_password_label: 'Altes Kennwort' |
90 | new_password_label: 'Neues Kennwort' | 90 | new_password_label: 'Neues Kennwort' |
91 | repeat_new_password_label: 'Neues Kennwort wiederholen' | 91 | repeat_new_password_label: 'Neues Kennwort wiederholen' |
92 | form_rules: | 92 | form_rules: |
93 | # if_label: 'if' | 93 | if_label: 'Wenn' |
94 | # then_tag_as_label: 'then tag as' | 94 | then_tag_as_label: 'dann tagge als' |
95 | # delete_rule_label: 'delete' | 95 | delete_rule_label: 'löschen' |
96 | # rule_label: 'Rule' | 96 | rule_label: 'Regel' |
97 | # tags_label: 'Tags' | 97 | tags_label: 'Tags' |
98 | # faq: | 98 | faq: |
99 | # title: 'FAQ' | 99 | title: 'FAQ' |
100 | # tagging_rules_definition_title: 'What does « tagging rules » mean?' | 100 | tagging_rules_definition_title: 'Was bedeuten die "Tagging-Regeln"?' |
101 | # tagging_rules_definition_description: 'They are rules used by Wallabag to automatically tag new entries.<br />Each time a new entry is added, all the tagging rules will be used to add the tags you configured, thus saving you the trouble to manually classify your entries.' | 101 | tagging_rules_definition_description: 'Dies sind Regeln von wallabag, um neu hinzugefügte Einträge autmatisch zu taggen.<br />Jedes Mal, wenn ein neuer Eintrag hinzufügt wird, werden die Tagging-Regeln angewandt. Dies erleichtert dir die Arbeit, deine Einträge manuell zu klassifizieren.' |
102 | # how_to_use_them_title: 'How do I use them?' | 102 | how_to_use_them_title: 'Wie nutze ich sie?' |
103 | # how_to_use_them_description: 'Let assume you want to tag new entries as « <i>short reading</i> » when the reading time is inferior to 3 minutes.<br />In that case, you should put « readingTime <= 3 » in the <i>Rule</i> field and « <i>short reading</i> » in the <i>Tags</i> field.<br />Several tags can added simultaneously by separating them by a comma: « <i>short reading, must read</i> »<br />Complex rules can be written by using predefined operators: if « <i>readingTime >= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, github </i> »' | 103 | how_to_use_them_description: 'Nehmen wir an, du möchtest deine Einträge als "<i>schnell lesbar</i>" taggen, wenn die Lesezeit kürzer als drei Minuten ist.<br />In diesem Falle solltest du "readingTime <= 3" in das <i>Regel</i>-Feld und "<i>schnell lesbar</i>" in das <i>Tags</i>-Feld schreiben.<br />Mehrere Tags können gleichzeitig hinzugefügt werden, indem sie durch ein Kommata getrennt werden: "<i>schnell lesbar, interessant</i>"<br />Komplexe Regeln können durch vordefinierte Operatoren geschrieben werden: if "<i>readingTime >= 5 AND domainName = "github.com"</i>" then tag as "<i>long reading, github </i>"' |
104 | # variables_available_title: 'Which variables and operators can I use to write rules?' | 104 | variables_available_title: 'Welche Variablen und Operatoren kann ich nutzen, um Regeln zu schreiben?' |
105 | # variables_available_description: 'The following variables and operators can be used to create tagging rules:' | 105 | variables_available_description: 'Die folgenden Variablen und Operatoren können genutzt werden, um Tagging-Regeln zu erstellen:' |
106 | # meaning: 'Meaning' | 106 | meaning: 'Bedeutung' |
107 | # variable_description: | 107 | variable_description: |
108 | # label: 'Variable' | 108 | label: 'Variable' |
109 | # title: 'Title of the entry' | 109 | title: 'Titel des Eintrags' |
110 | # url: 'URL of the entry' | 110 | url: 'URL des Eintrags' |
111 | # isArchived: 'Whether the entry is archived or not' | 111 | isArchived: 'gibt an, ob der Eintrag archiviert ist oder nicht' |
112 | # isStarred: 'Whether the entry is starred or not' | 112 | isStarred: 'gibt an, ob der Eintrag favorisiert ist oder nicht' |
113 | # content: "The entry's content" | 113 | content: "Inhalt des Eintrags" |
114 | # language: "The entry's language" | 114 | language: "Sprache des Eintrags" |
115 | # mimetype: "The entry's mime-type" | 115 | mimetype: "MIME-Typ des Eintrags" |
116 | # readingTime: "The estimated entry's reading time, in minutes" | 116 | readingTime: "Die geschätzte Lesezeit in Minuten" |
117 | # domainName: 'The domain name of the entry' | 117 | domainName: 'Der Domain-Name des Eintrags' |
118 | # operator_description: | 118 | operator_description: |
119 | # label: 'Operator' | 119 | label: 'Operator' |
120 | # less_than: 'Less than...' | 120 | less_than: 'Weniger oder gleich als…' |
121 | # strictly_less_than: 'Strictly less than...' | 121 | strictly_less_than: 'Weniger als…' |
122 | # greater_than: 'Greater than...' | 122 | greater_than: 'Größer oder gleich als…' |
123 | # strictly_greater_than: 'Strictly greater than...' | 123 | strictly_greater_than: 'Größer als…' |
124 | # equal_to: 'Equal to...' | 124 | equal_to: 'gleich' |
125 | # not_equal_to: 'Not equal to...' | 125 | not_equal_to: 'ungleich' |
126 | # or: 'One rule OR another' | 126 | or: 'Eine Regel ODER die andere' |
127 | # and: 'One rule AND another' | 127 | and: 'Eine Regel UND eine andere' |
128 | # matches: 'Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code>' | 128 | matches: 'Tests, ob eine <i>Variable</i> auf eine <i>Suche</i> zutrifft (Groß- und Kleinschreibung wird nicht berücksichtigt).<br />Beispiel: <code>title matches "Fußball"</code>' |
129 | form_new_user: | 129 | form_new_user: |
130 | username_label: 'Benutzername' | 130 | username_label: 'Benutzername' |
131 | password_label: 'Kennwort' | 131 | password_label: 'Kennwort' |
@@ -135,12 +135,12 @@ config: | |||
135 | 135 | ||
136 | entry: | 136 | entry: |
137 | page_titles: | 137 | page_titles: |
138 | # unread: 'Unread entries' | 138 | unread: 'Ungelesene Einträge' |
139 | # starred: 'Starred entries' | 139 | starred: 'Favorisierte Einträge' |
140 | # archive: 'Archived entries' | 140 | archive: 'Archivierte Einträge' |
141 | # filtered: 'Filtered entries' | 141 | filtered: 'Gefilterte Einträge' |
142 | list: | 142 | list: |
143 | # number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.' | 143 | number_on_the_page: '{0} Es gibt keine Einträge.|{1} Es gibt einen Eintrag.|]1,Inf[ Es gibt %count% Einträge.' |
144 | reading_time: 'geschätzte Lesezeit' | 144 | reading_time: 'geschätzte Lesezeit' |
145 | reading_time_minutes: 'geschätzte Lesezeit: %readingTime% min' | 145 | reading_time_minutes: 'geschätzte Lesezeit: %readingTime% min' |
146 | reading_time_less_one_minute: 'geschätzte Lesezeit: <small class="inferieur"><</small> 1 min' | 146 | reading_time_less_one_minute: 'geschätzte Lesezeit: <small class="inferieur"><</small> 1 min' |
@@ -148,7 +148,7 @@ entry: | |||
148 | toogle_as_read: 'Gelesen-Status ändern' | 148 | toogle_as_read: 'Gelesen-Status ändern' |
149 | toogle_as_star: 'Favoriten-Status ändern' | 149 | toogle_as_star: 'Favoriten-Status ändern' |
150 | delete: 'Löschen' | 150 | delete: 'Löschen' |
151 | # export_title: 'Export' | 151 | export_title: 'Exportieren' |
152 | filters: | 152 | filters: |
153 | title: 'Filters' | 153 | title: 'Filters' |
154 | status_label: 'Status' | 154 | status_label: 'Status' |
@@ -171,35 +171,35 @@ entry: | |||
171 | filter: 'Filter' | 171 | filter: 'Filter' |
172 | view: | 172 | view: |
173 | left_menu: | 173 | left_menu: |
174 | # back_to_top: 'Back to top' | 174 | back_to_top: 'Nach oben' |
175 | back_to_homepage: 'Zurück' | 175 | back_to_homepage: 'Zurück' |
176 | set_as_read: 'Als gelesen markieren' | 176 | set_as_read: 'Als gelesen markieren' |
177 | # set_as_unread: 'Mark as unread' | 177 | set_as_unread: 'Als ungelesen markieren' |
178 | set_as_favorite: 'Favorisieren' | 178 | set_as_favorite: 'Favorisieren' |
179 | view_original_article: 'Original-Artikel' | 179 | view_original_article: 'Original-Artikel' |
180 | # re_fetch_content: 'Re-fetch content' | 180 | re_fetch_content: 'Inhalt neu laden' |
181 | delete: 'Löschen' | 181 | delete: 'Löschen' |
182 | add_a_tag: 'Tag hinzufügen' | 182 | add_a_tag: 'Tag hinzufügen' |
183 | share_content: 'Teilen' | 183 | share_content: 'Teilen' |
184 | # share_email_label: 'Email' | 184 | share_email_label: 'E-Mail' |
185 | download: 'Herunterladen' | 185 | download: 'Herunterladen' |
186 | # print: 'Print' | 186 | print: 'Drucken' |
187 | problem: | 187 | problem: |
188 | label: 'Probleme?' | 188 | label: 'Probleme?' |
189 | description: 'Erscheint dieser Artikel falsch?' | 189 | description: 'Erscheint dieser Artikel falsch?' |
190 | edit_title: 'Titel ändern' | 190 | edit_title: 'Titel ändern' |
191 | original_article: 'original' | 191 | original_article: 'original' |
192 | # annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations' | 192 | annotations_on_the_entry: '{0} Keine Anmerkungen|{1} Eine Anmerkung|]1,Inf[ %nbAnnotations% Anmerkungen' |
193 | new: | 193 | new: |
194 | page_title: 'Neuen Artikel speichern' | 194 | page_title: 'Neuen Artikel speichern' |
195 | placeholder: 'http://website.com' | 195 | placeholder: 'https://website.de' |
196 | form_new: | 196 | form_new: |
197 | url_label: Url | 197 | url_label: URL |
198 | edit: | 198 | edit: |
199 | # page_title: 'Edit an entry' | 199 | page_title: 'Eintrag bearbeiten' |
200 | # title_label: 'Title' | 200 | title_label: 'Titel' |
201 | # url_label: 'Url' | 201 | url_label: 'URL' |
202 | # is_public_label: 'Public' | 202 | is_public_label: 'Öffentlich' |
203 | save_label: 'Speichern' | 203 | save_label: 'Speichern' |
204 | 204 | ||
205 | about: | 205 | about: |
@@ -208,7 +208,7 @@ about: | |||
208 | who_behind_wallabag: 'Wer steht hinter wallabag' | 208 | who_behind_wallabag: 'Wer steht hinter wallabag' |
209 | getting_help: 'Hilfe bekommen' | 209 | getting_help: 'Hilfe bekommen' |
210 | helping: 'wallabag unterstützen' | 210 | helping: 'wallabag unterstützen' |
211 | contributors: 'Contributors' | 211 | contributors: 'Unterstützer' |
212 | third_party: 'Third-party libraries' | 212 | third_party: 'Third-party libraries' |
213 | who_behind_wallabag: | 213 | who_behind_wallabag: |
214 | developped_by: 'Entwickelt von' | 214 | developped_by: 'Entwickelt von' |
@@ -225,17 +225,17 @@ about: | |||
225 | description: 'wallabag ist kostenlos und Open-Source. Du kannst uns helfen:' | 225 | description: 'wallabag ist kostenlos und Open-Source. Du kannst uns helfen:' |
226 | by_contributing: 'indem du zu dem Projekt beiträgst:' | 226 | by_contributing: 'indem du zu dem Projekt beiträgst:' |
227 | by_contributing_2: 'ein Issue listet alle unsere Bedürfnisse:' | 227 | by_contributing_2: 'ein Issue listet alle unsere Bedürfnisse:' |
228 | by_paypal: 'via Paypal' | 228 | by_paypal: 'via PayPal' |
229 | contributors: | 229 | contributors: |
230 | # description: 'Thank you to contributors on wallabag web application' | 230 | description: 'Ein Dankeschön an die Unterstützer von wallabag' |
231 | third_party: | 231 | third_party: |
232 | # description: 'Here are the list of third-party libraries used in wallabag (with their licenses):' | 232 | description: 'Hier ist eine Liste der verwendeten Bibliotheken in wallabag (mit den jeweiligen Lizenzen):' |
233 | # package: 'Package' | 233 | package: 'Paket' |
234 | license: 'Lizenz' | 234 | license: 'Lizenz' |
235 | 235 | ||
236 | howto: | 236 | howto: |
237 | page_title: 'How-to' | 237 | page_title: 'How-To' |
238 | # page_description: 'There are several ways to save an article:' | 238 | page_description: 'Es gibt mehrere Möglichkeiten, einen Artikel zu speichern:' |
239 | top_menu: | 239 | top_menu: |
240 | browser_addons: 'Browser-Addons' | 240 | browser_addons: 'Browser-Addons' |
241 | mobile_apps: 'Apps' | 241 | mobile_apps: 'Apps' |
@@ -249,162 +249,162 @@ howto: | |||
249 | android: | 249 | android: |
250 | via_f_droid: 'via F-Droid' | 250 | via_f_droid: 'via F-Droid' |
251 | via_google_play: 'via Google Play' | 251 | via_google_play: 'via Google Play' |
252 | # ios: 'on the iTunes Store' | 252 | ios: 'im iTunes-Store' |
253 | # windows: 'on the Microsoft Store' | 253 | windows: 'im Microsoft-Store' |
254 | bookmarklet: | 254 | bookmarklet: |
255 | description: 'Ziehe diesen Link in deine Lesezeichenleiste:' | 255 | description: 'Ziehe diesen Link in deine Lesezeichenleiste:' |
256 | 256 | ||
257 | quickstart: | 257 | quickstart: |
258 | # page_title: 'Quickstart' | 258 | page_title: 'Schnelleinstieg' |
259 | # intro: | 259 | intro: |
260 | # title: 'Welcome to wallabag!' | 260 | title: 'Willkommen zu wallabag!' |
261 | # paragraph_1: "We'll accompany you to visit wallabag and show you some features which can interest you." | 261 | paragraph_1: "Wir werden dich bei der Benutzung von wallabag begleiten und dir einige Funktionen zeigen, die dich interessieren könnten." |
262 | # paragraph_2: 'Follow us!' | 262 | paragraph_2: 'Folge uns!' |
263 | # configure: | 263 | configure: |
264 | # title: 'Configure the application' | 264 | title: 'Anwendung konfigurieren' |
265 | # language: 'Change language and design' | 265 | language: 'Sprache und Design ändern' |
266 | # rss: 'Enable RSS feeds' | 266 | rss: 'RSS-Feeds aktivieren' |
267 | # tagging_rules: 'Write rules to automatically tag your articles' | 267 | tagging_rules: 'Schreibe Regeln, um deine Beiträge automatisch zu taggen (verschlagworten)' |
268 | # admin: | 268 | admin: |
269 | # title: 'Administration' | 269 | title: 'Administration' |
270 | # description: 'As an administrator, you have privileges on wallabag. You can:' | 270 | description: 'Als Adminstrator hast du einige Privilegien. Du kannst:' |
271 | # new_user: 'Create a new user' | 271 | new_user: 'Einen neuen Nutzer anlegen' |
272 | # analytics: 'Configure analytics' | 272 | analytics: 'das Tracking konfigurieren' |
273 | # sharing: 'Enable some parameters about article sharing' | 273 | sharing: 'Einige Parameter für das Teilen von Artikel setzen' |
274 | # export: 'Configure export' | 274 | export: 'Export-Einstellungen ändern' |
275 | # import: 'Configure import' | 275 | import: 'Import-Einstellungen ändern' |
276 | # first_steps: | 276 | first_steps: |
277 | # title: 'First steps' | 277 | title: 'Erste Schritte' |
278 | # new_article: 'Save your first article' | 278 | new_article: 'Speichere deinen ersten Artikel' |
279 | # unread_articles: 'And classify it!' | 279 | unread_articles: 'Und klassifiziere ihn!' |
280 | # migrate: | 280 | migrate: |
281 | # title: 'Migrate from an existing service' | 281 | title: 'Von einem anderen Dienst migrieren' |
282 | # description: "Are you using another service? We'll help you to retrieve your data on wallabag." | 282 | description: "Du nutzt einen anderen Dienst? Wir helfen dir, um deine Daten zu wallabag zu transportieren." |
283 | # pocket: 'Migrate from Pocket' | 283 | pocket: 'von Pocket migrieren' |
284 | # wallabag_v1: 'Migrate from wallabag v1' | 284 | wallabag_v1: 'von wallabag v1 migrieren' |
285 | # wallabag_v2: 'Migrate from wallabag v2' | 285 | wallabag_v2: 'von wallabag v2 migrieren' |
286 | # developer: | 286 | developer: |
287 | # title: 'Developers' | 287 | title: 'Entwickler' |
288 | # create_application: 'Create your third application' | 288 | create_application: 'Erstelle eine Anwendung und nutze die wallabag API' |
289 | # docs: | 289 | docs: |
290 | # title: 'Full documentation' | 290 | title: 'Komplette Dokumentation' |
291 | # annotate: 'Annotate your article' | 291 | annotate: 'Anmerkungen zu Artikeln hinzufügen' |
292 | # export: 'Convert your articles into ePUB or PDF' | 292 | export: 'Artikel nach ePUB oder PDF konvertieren' |
293 | # search_filters: 'See how you can look for an article by using search engine and filters' | 293 | search_filters: 'Schau nach, wie du nach einem Artikel über die Such- und Filterfunktion suchen kannst' |
294 | # fetching_errors: 'What can I do if an article encounters errors during fetching?' | 294 | fetching_errors: 'Was kann ich machen, wenn ein Artikel Fehler beim Herunterladen des Inhalts zeigt?' |
295 | # all_docs: 'And so many other articles!' | 295 | all_docs: 'Und viele weitere Artikel!' |
296 | # support: | 296 | support: |
297 | # title: 'Support' | 297 | title: 'Support' |
298 | # description: 'If you need some help, we are here for you.' | 298 | description: 'Wenn du Hilfe brauchst, wir sind für dich da.' |
299 | # github: 'On GitHub' | 299 | github: 'Auf GitHub' |
300 | # email: 'By email' | 300 | email: 'Über E-Mail' |
301 | # gitter: 'On Gitter' | 301 | gitter: 'Auf Gitter' |
302 | 302 | ||
303 | tag: | 303 | tag: |
304 | page_title: 'Tags' | 304 | page_title: 'Tags' |
305 | list: | 305 | list: |
306 | # number_on_the_page: '{0} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.' | 306 | number_on_the_page: '{0} Es gibt keine Tags.|{1} Es gibt einen Tag.|]1,Inf[ Es gibt %count% Tags.' |
307 | 307 | ||
308 | import: | 308 | import: |
309 | # page_title: 'Import' | 309 | page_title: 'Importieren' |
310 | # page_description: 'Welcome to wallabag importer. Please select your previous service that you want to migrate.' | 310 | page_description: 'Willkommen beim wallabag-Importer. Wähle deinen vorherigen Service aus, von dem du die Daten migrieren willst.' |
311 | # action: | 311 | action: |
312 | # import_contents: 'Import contents' | 312 | import_contents: 'Inhalte importieren' |
313 | # form: | 313 | form: |
314 | # mark_as_read_title: 'Mark all as read?' | 314 | mark_as_read_title: 'Alle als gelesen markieren?' |
315 | # mark_as_read_label: 'Mark all imported entries as read' | 315 | mark_as_read_label: 'Alle importierten Einträge als gelesen markieren' |
316 | # file_label: 'File' | 316 | file_label: 'Datei' |
317 | # save_label: 'Upload file' | 317 | save_label: 'Datei hochladen' |
318 | # pocket: | 318 | pocket: |
319 | # page_title: 'Import > Pocket' | 319 | page_title: 'Aus Pocket importieren' |
320 | # description: "This importer will import all your Pocket data. Pocket doesn't allow us to retrieve content from their service, so the readable content of each article will be re-fetched by wallabag." | 320 | description: "Dieser Importer wird all deine Pocket-Daten importieren. Pocket erlaubt es uns nicht, den Inhalt zu migrieren, daher wird der lesbare Inhalt erneut von wallabag heruntergeladen." |
321 | # config_missing: | 321 | config_missing: |
322 | # description: "Pocket import isn't configured." | 322 | description: "Pocket-Import ist nicht konfiguriert." |
323 | # admin_message: 'You need to define %keyurls%a pocket_consumer_key%keyurle%.' | 323 | admin_message: 'Du musst noch den %keyurls%a pocket_consumer_key%keyurle% definieren.' |
324 | # user_message: 'Your server admin needs to define an API Key for Pocket.' | 324 | user_message: 'Der Server-Administrator muss noch einen API-Key für Pocket konfigurieren.' |
325 | # authorize_message: 'You can import your data from your Pocket account. You just have to click on the below button and authorize the application to connect to getpocket.com.' | 325 | authorize_message: 'Du kannst deine Daten von deinem Pocket-Account importieren. Dazu musst du nur den nachfolgenden Button klicken und die Anwendung authentifizieren, sich mit getpocket.com zu verbinden.' |
326 | # connect_to_pocket: 'Connect to Pocket and import data' | 326 | connect_to_pocket: 'Mit Pocket verbinden und Daten importieren' |
327 | # wallabag_v1: | 327 | wallabag_v1: |
328 | # page_title: 'Import > Wallabag v1' | 328 | page_title: 'Aus wallabag v1 importieren' |
329 | # description: 'This importer will import all your wallabag v1 articles. On your config page, click on "JSON export" in the "Export your wallabag data" section. You will have a "wallabag-export-1-xxxx-xx-xx.json" file.' | 329 | description: 'Dieser Import wird all deine Artikel aus wallabag v1 importieren. Klicke auf der Konfigurations-Seite auf "JSON-Export" im "wallabag-Daten exportieren"-Abschnitt. Du erhältst eine "wallabag-export-1-xxxx-xx-xx.json"-Datei.' |
330 | # how_to: 'Please select your wallabag export and click on the below button to upload and import it.' | 330 | how_to: 'Wähle die Export-Datei aus und klicke den nachfolgenden Button, um diese hochzuladen und zu importieren.' |
331 | # wallabag_v2: | 331 | wallabag_v2: |
332 | # page_title: 'Import > Wallabag v2' | 332 | page_title: 'Aus wallabag v2 importieren' |
333 | # description: 'This importer will import all your wallabag v2 articles. Go to All articles, then, on the export sidebar, click on "JSON". You will have a "All articles.json" file.' | 333 | 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.' |
334 | 334 | ||
335 | developer: | 335 | developer: |
336 | # page_title: 'Developer' | 336 | page_title: 'Entwickler' |
337 | # welcome_message: 'Welcome to the wallabag API' | 337 | welcome_message: 'Willkomen zur wallabag-API' |
338 | # documentation: 'Documentation' | 338 | documentation: 'Dokumentation' |
339 | # how_to_first_app: 'How to create my first application' | 339 | how_to_first_app: 'Wie erstelle ich meine erste Anwendung' |
340 | # full_documentation: 'View full API documentation' | 340 | full_documentation: 'Komplette API-Dokumentation einsehen' |
341 | # clients: | 341 | clients: |
342 | # title: 'Clients' | 342 | title: 'Clients' |
343 | # create_new: 'Create a new client' | 343 | create_new: 'Neuen Client erstellen' |
344 | # existing_clients: | 344 | existing_clients: |
345 | # title: 'Existing clients' | 345 | title: 'Bestehende Clients' |
346 | # field_id: 'Client ID' | 346 | field_id: 'Client-ID' |
347 | # field_secret: 'Client secret' | 347 | field_secret: 'Client-Secret' |
348 | # field_uris: 'Redirect URIs' | 348 | field_uris: 'Weiterleitungs-URIs' |
349 | # field_grant_types: 'Grant type allowed' | 349 | field_grant_types: "Erlaubte grant_types" |
350 | # no_client: 'No client yet.' | 350 | no_client: 'Bisher kein Client.' |
351 | # remove: | 351 | remove: |
352 | # warn_message_1: 'You have the ability to remove this client. This action is IRREVERSIBLE !' | 352 | warn_message_1: 'Du hast die Möglichkeit, diesen Client zu entfernen. DIESE AKTION IST NICHT WIDERRUFBAR!' |
353 | # warn_message_2: "If you remove it, every app configured with that client won't be able to auth on your wallabag." | 353 | warn_message_2: "Wenn du ihn entfernst, hat keine der damit konfigurierten Anwendungen mehr die Möglichkeit, sich in deinen wallabag-Account anzumelden." |
354 | # action: 'Remove this client' | 354 | action: 'Client entfernen' |
355 | # client: | 355 | client: |
356 | # page_title: 'Developer > New client' | 356 | page_title: 'Entwickler > Neuer Client' |
357 | # page_description: 'You are about to create a new client. Please fill the field below for the redirect URI of your application.' | 357 | page_description: 'Du bist dabei, einen neuen Client zu erstellen. Fülle das nachfolgende Feld für die Weiterleitungs-URIs deiner Anwendung aus.' |
358 | # form: | 358 | form: |
359 | # redirect_uris_label: 'Redirect URIs' | 359 | redirect_uris_label: 'Weiterleitungs-URIs' |
360 | # save_label: 'Create a new client' | 360 | save_label: 'Neuen Client erstellen' |
361 | # action_back: 'Back' | 361 | action_back: 'Zurück' |
362 | # client_parameter: | 362 | client_parameter: |
363 | # page_title: 'Developer > Client parameters' | 363 | page_title: 'Entwickler > Client-Parameter' |
364 | # page_description: 'Here are your client parameters.' | 364 | page_description: 'Dies sind deine Client-Parameter.' |
365 | # field_id: 'Client ID' | 365 | field_id: 'Client-ID' |
366 | # field_secret: 'Client secret' | 366 | field_secret: 'Client-Secret' |
367 | # back: 'Back' | 367 | back: 'Zurück' |
368 | # read_howto: 'Read the howto "Create my first application"' | 368 | read_howto: 'Lese des How-To zu "Wie erstelle ich meine erste Anwendung"' |
369 | # howto: | 369 | howto: |
370 | # page_title: 'Developer > How to create my first application' | 370 | page_title: 'Entwickler > Wie erstelle ich meine erste Anwendung' |
371 | # description: | 371 | description: |
372 | # paragraph_1: 'The following commands make use of the <a href="https://github.com/jkbrzt/httpie">HTTPie library</a>. Make sure it is installed on your system before using it.' | 372 | paragraph_1: 'Die folgenden Befehle machen Gebrauch von der <a href="https://github.com/jkbrzt/httpie">HTTPie-Bibliothek</a>. Stelle sicher, dass sie auf deinem System installiert ist, bevor du fortfährst.' |
373 | # paragraph_2: 'You need a token to communicate between your 3rd application and wallabag API.' | 373 | paragraph_2: 'Du benötigst einen Token, damit deine Anwendung mit der wallabag-API kommunizieren kann.' |
374 | # paragraph_3: 'To create this token, you need <a href="%link%">to create a new client</a>.' | 374 | paragraph_3: 'Um diesen Token zu erstellen, muss <a href="%link%">ein neuer Client erstellt werden</a>.' |
375 | # paragraph_4: 'Now, create your token (replace client_id, client_secret, username and password with the good values):' | 375 | paragraph_4: 'Nun erstelle deinen Token (ersetze client_id, client_secret, username und password mit deinen Werten):' |
376 | # paragraph_5: 'The API will return a response like this:' | 376 | paragraph_5: 'Die API wird eine Antwort der folgenden Art zurückgeben:' |
377 | # paragraph_6: 'The access_token is useful to do a call to the API endpoint. For example:' | 377 | paragraph_6: 'Der access_token ist nützlich, um die API aufzurufen. Beispiel:' |
378 | # paragraph_7: 'This call will return all the entries for your user.' | 378 | paragraph_7: 'Dieser Aufruf wird alle Einträge für den Nutzer zurückgeben.' |
379 | # paragraph_8: 'If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.' | 379 | paragraph_8: 'Wenn du alle API-Endpunkte sehen willst, werfe einen Blick auf die <a href="%link%">API-Dokumentation</a>.' |
380 | # back: 'Back' | 380 | back: 'Zurück' |
381 | 381 | ||
382 | validator: | 382 | validator: |
383 | # password_must_match: 'The password fields must match.' | 383 | password_must_match: 'Die Kennwort-Felder müssen übereinstimmen.' |
384 | # password_too_short: 'Password should by at least 8 chars long' | 384 | password_too_short: 'Kennwort-Mindestlänge von acht Zeichen nicht erfüllt' |
385 | # password_wrong_value: 'Wrong value for your current password' | 385 | password_wrong_value: 'Falscher Wert für dein aktuelles Kennwort' |
386 | # item_per_page_too_high: 'This will certainly kill the app' | 386 | item_per_page_too_high: 'Dies wird die Anwendung möglicherweise beenden' |
387 | # rss_limit_too_hight: 'This will certainly kill the app' | 387 | rss_limit_too_hight: 'Dies wird die Anwendung möglicherweise beenden' |
388 | 388 | ||
389 | flashes: | 389 | flashes: |
390 | config: | 390 | config: |
391 | notice: | 391 | notice: |
392 | config_saved: 'Konfiguration gespeichert. Einige Einstellungen werden erst nach einer erneuten Anmeldung übernommen.' | 392 | config_saved: 'Konfiguration gespeichert. Einige Einstellungen werden erst nach einer erneuten Anmeldung übernommen.' |
393 | password_updated: 'Kennwort aktualisiert' | 393 | password_updated: 'Kennwort aktualisiert' |
394 | # password_not_updated_demo: "In demonstration mode, you can't change password for this user." | 394 | password_not_updated_demo: "Im Test-Modus kannst du das Kennwort nicht ändern." |
395 | user_updated: 'Information aktualisiert' | 395 | user_updated: 'Information aktualisiert' |
396 | rss_updated: 'RSS-Informationen aktualisiert' | 396 | rss_updated: 'RSS-Informationen aktualisiert' |
397 | # tagging_rules_updated: 'Tagging rules updated' | 397 | tagging_rules_updated: 'Tagging-Regeln aktualisiert' |
398 | # tagging_rules_deleted: 'Tagging rule deleted' | 398 | tagging_rules_deleted: 'Tagging-Regel gelöscht' |
399 | # user_added: 'User "%username%" added' | 399 | user_added: 'Benutzer "%username%" erstellt' |
400 | # rss_token_updated: 'RSS token updated' | 400 | rss_token_updated: 'RSS-Token aktualisiert' |
401 | entry: | 401 | entry: |
402 | notice: | 402 | notice: |
403 | # entry_already_saved: 'Entry already saved on %date%' | 403 | entry_already_saved: 'Eintrag bereits am %date% gespeichert' |
404 | # entry_saved: 'Entry saved' | 404 | entry_saved: 'Eintag gespeichert' |
405 | # entry_updated: 'Entry updated' | 405 | entry_updated: 'Eintrag aktualisiert' |
406 | # entry_reloaded: 'Entry reloaded' | 406 | entry_reloaded: 'Eintrag neugeladen' |
407 | # entry_reload_failed: 'Failed to reload entry' | 407 | entry_reload_failed: 'Neuladen des Eintrags fehlgeschlagen' |
408 | entry_archived: 'Artikel archiviert' | 408 | entry_archived: 'Artikel archiviert' |
409 | entry_unarchived: 'Artikel dearchiviert' | 409 | entry_unarchived: 'Artikel dearchiviert' |
410 | entry_starred: 'Artikel favorisiert' | 410 | entry_starred: 'Artikel favorisiert' |
@@ -412,13 +412,13 @@ flashes: | |||
412 | entry_deleted: 'Artikel gelöscht' | 412 | entry_deleted: 'Artikel gelöscht' |
413 | tag: | 413 | tag: |
414 | notice: | 414 | notice: |
415 | # tag_added: 'Tag added' | 415 | tag_added: 'Tag hinzugefügt' |
416 | import: | 416 | import: |
417 | notice: | 417 | notice: |
418 | # failed: 'Import failed, please try again.' | 418 | failed: 'Import fehlgeschlagen, bitte erneut probieren.' |
419 | # failed_on_file: 'Error while processing import. Please verify your import file.' | 419 | failed_on_file: 'Fehler während des Imports. Bitte überprüfe deine Import-Datei.' |
420 | # summary: 'Import summary: %imported% imported, %skipped% already saved.' | 420 | summary: 'Import-Zusammenfassung: %imported% importiert, %skipped% bereits gespeichert.' |
421 | developer: | 421 | developer: |
422 | notice: | 422 | notice: |
423 | # client_created: 'New client created.' | 423 | client_created: 'Neuer Client erstellt.' |
424 | # client_deleted: 'Client deleted' | 424 | client_deleted: 'Client gelöscht' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml index daeac4bf..1ca3e6b0 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml | |||
@@ -1,18 +1,18 @@ | |||
1 | security: | 1 | security: |
2 | login: | 2 | login: |
3 | # page_title: 'Welcome to wallabag!' | 3 | page_title: 'Witaj w wallabag!' |
4 | keep_logged_in: 'Zapamiętaj mnie' | 4 | keep_logged_in: 'Zapamiętaj mnie' |
5 | forgot_password: 'Zapomniałeś hasła' | 5 | forgot_password: 'Zapomniałeś hasła' |
6 | submit: 'Loguj' | 6 | submit: 'Loguj' |
7 | # register: 'Register' | 7 | register: 'Zarejestruj' |
8 | username: 'Nazwa użytkownika' | 8 | username: 'Nazwa użytkownika' |
9 | password: 'Hasło' | 9 | password: 'Hasło' |
10 | # cancel: 'Cancel' | 10 | cancel: 'Anuluj' |
11 | resetting: | 11 | resetting: |
12 | description: "Wpisz swój adres email poniżej. Wyślemy Ci instrukcję resetowania hasła" | 12 | description: "Wpisz swój adres email poniżej. Wyślemy Ci instrukcję resetowania hasła" |
13 | register: | 13 | register: |
14 | # page_title: 'Create an account' | 14 | page_title: 'Utwórz konto' |
15 | # go_to_account: 'Go to your account' | 15 | go_to_account: 'Idź do konta' |
16 | 16 | ||
17 | menu: | 17 | menu: |
18 | left: | 18 | left: |
@@ -22,38 +22,38 @@ menu: | |||
22 | all_articles: 'Wszystkie' | 22 | all_articles: 'Wszystkie' |
23 | config: 'Konfiguracja' | 23 | config: 'Konfiguracja' |
24 | tags: 'Tagi' | 24 | tags: 'Tagi' |
25 | # internal_settings: 'Internal Settings' | 25 | internal_settings: 'Wewnętrzne ustawienia' |
26 | # import: 'Import' | 26 | import: 'Importuj' |
27 | howto: 'Howto' | 27 | howto: 'Howto' |
28 | # developer: 'Developer' | 28 | developer: 'Deweloper' |
29 | logout: 'Wyloguj' | 29 | logout: 'Wyloguj' |
30 | about: 'O nas' | 30 | about: 'O nas' |
31 | search: 'Szukaj' | 31 | search: 'Szukaj' |
32 | # save_link: 'Save a link' | 32 | save_link: 'Zapisz link' |
33 | back_to_unread: 'Powrót do nieprzeczytanych artykułów' | 33 | back_to_unread: 'Powrót do nieprzeczytanych artykułów' |
34 | top: | 34 | top: |
35 | add_new_entry: 'Dodaj nowy wpis' | 35 | add_new_entry: 'Dodaj nowy wpis' |
36 | search: 'Szukaj' | 36 | search: 'Szukaj' |
37 | filter_entries: 'Filtruj wpisy' | 37 | filter_entries: 'Filtruj wpisy' |
38 | # export: 'Export' | 38 | export: 'Eksportuj' |
39 | search_form: | 39 | search_form: |
40 | input_label: 'Wpisz swoje zapytanie tutaj' | 40 | input_label: 'Wpisz swoje zapytanie tutaj' |
41 | 41 | ||
42 | footer: | 42 | footer: |
43 | wallabag: | 43 | wallabag: |
44 | # elsewhere: 'Take wallabag with you' | 44 | elsewhere: 'Weż wallabag ze sobą' |
45 | # social: 'Social' | 45 | social: 'Społeczność' |
46 | # powered_by: 'powered by' | 46 | powered_by: 'Kontrolowany przez' |
47 | about: 'O nas' | 47 | about: 'O nas' |
48 | 48 | ||
49 | config: | 49 | config: |
50 | page_title: 'Konfiguracja' | 50 | page_title: 'Konfiguracja' |
51 | tab_menu: | 51 | tab_menu: |
52 | # settings: 'Settings' | 52 | settings: 'Ustawienia' |
53 | rss: 'Kanał RSS' | 53 | rss: 'Kanał RSS' |
54 | user_info: 'Informacje o użytkowniku' | 54 | user_info: 'Informacje o użytkowniku' |
55 | password: 'Hasło' | 55 | password: 'Hasło' |
56 | # rules: 'Tagging rules' | 56 | rules: 'Zasady tagowania' |
57 | new_user: 'Dodaj użytkownika' | 57 | new_user: 'Dodaj użytkownika' |
58 | form: | 58 | form: |
59 | save: 'Zapisz' | 59 | save: 'Zapisz' |
@@ -62,12 +62,12 @@ config: | |||
62 | items_per_page_label: 'Ilość elementóœ na stronie' | 62 | items_per_page_label: 'Ilość elementóœ na stronie' |
63 | language_label: 'Język' | 63 | language_label: 'Język' |
64 | reading_speed: | 64 | reading_speed: |
65 | # label: 'Reading speed' | 65 | label: 'Prędkość czytania' |
66 | # help_message: 'You can use online tools to estimate your reading speed:' | 66 | help_message: 'Możesz skorzystać z narzędzi online do określenia twojej prędkości czytania:' |
67 | # 100_word: 'I read ~100 words per minute' | 67 | 100_word: 'Czytam ~100 słów na minutę' |
68 | # 200_word: 'I read ~200 words per minute' | 68 | 200_word: 'Czytam ~200 słów na minutę' |
69 | # 300_word: 'I read ~300 words per minute' | 69 | 300_word: 'Czytam ~300 słów na minutę' |
70 | # 400_word: 'I read ~400 words per minute' | 70 | 400_word: 'Czytam ~400 słów na minutę' |
71 | form_rss: | 71 | form_rss: |
72 | description: 'Kanały RSS prowadzone przez wallabag pozwalają Ci na czytanie twoich zapisanych artykułów w twoium ulubionym czytniku RSS. Musisz najpierw wynegenerować tokena.' | 72 | description: 'Kanały RSS prowadzone przez wallabag pozwalają Ci na czytanie twoich zapisanych artykułów w twoium ulubionym czytniku RSS. Musisz najpierw wynegenerować tokena.' |
73 | token_label: 'Token RSS' | 73 | token_label: 'Token RSS' |
@@ -81,66 +81,66 @@ config: | |||
81 | archive: 'archiwum' | 81 | archive: 'archiwum' |
82 | rss_limit: 'Link do RSS' | 82 | rss_limit: 'Link do RSS' |
83 | form_user: | 83 | form_user: |
84 | # two_factor_description: "Enabling two factor authentication means you'll receive an email with a code on every new untrusted connexion" | 84 | two_factor_description: "Włączenie autoryzacji dwuetapowej oznacza, że będziesz otrzymywał maile z kodem przy każdym nowym, niezaufanyum połączeniu" |
85 | name_label: 'Nazwa' | 85 | name_label: 'Nazwa' |
86 | email_label: 'Adres email' | 86 | email_label: 'Adres email' |
87 | # twoFactorAuthentication_label: 'Two factor authentication' | 87 | twoFactorAuthentication_label: 'Autoryzacja dwuetapowa' |
88 | form_password: | 88 | form_password: |
89 | old_password_label: 'Stare hasło' | 89 | old_password_label: 'Stare hasło' |
90 | new_password_label: 'Nowe hasło' | 90 | new_password_label: 'Nowe hasło' |
91 | repeat_new_password_label: 'Powtórz nowe hasło' | 91 | repeat_new_password_label: 'Powtórz nowe hasło' |
92 | form_rules: | 92 | form_rules: |
93 | # if_label: 'if' | 93 | if_label: 'jeżeli' |
94 | # then_tag_as_label: 'then tag as' | 94 | then_tag_as_label: 'wtedy otaguj jako' |
95 | delete_rule_label: 'usuń' | 95 | delete_rule_label: 'usuń' |
96 | # rule_label: 'Rule' | 96 | rule_label: 'Reguła' |
97 | # tags_label: 'Tags' | 97 | tags_label: 'Tagi' |
98 | # faq: | 98 | faq: |
99 | # title: 'FAQ' | 99 | title: 'FAQ' |
100 | # tagging_rules_definition_title: 'What does « tagging rules » mean?' | 100 | tagging_rules_definition_title: 'Co oznaczają « reguły tagowania » ?' |
101 | # tagging_rules_definition_description: 'They are rules used by Wallabag to automatically tag new entries.<br />Each time a new entry is added, all the tagging rules will be used to add the tags you configured, thus saving you the trouble to manually classify your entries.' | 101 | tagging_rules_definition_description: 'Istnieją reguły używane przez wallabag służące do automatycznego tagowania nowych wpisów.<br />Za każdym razem kiedy dodasz nowi wpis, zostaną użyte wszystkie skonfigurowane przez ciebie regułu. Dzięki temu unikniesz konieczności ręcznego ich klasyfikowania.' |
102 | # how_to_use_them_title: 'How do I use them?' | 102 | how_to_use_them_title: 'Jak ich użyć?' |
103 | # how_to_use_them_description: 'Let assume you want to tag new entries as « <i>short reading</i> » when the reading time is inferior to 3 minutes.<br />In that case, you should put « readingTime <= 3 » in the <i>Rule</i> field and « <i>short reading</i> » in the <i>Tags</i> field.<br />Several tags can added simultaneously by separating them by a comma: « <i>short reading, must read</i> »<br />Complex rules can be written by using predefined operators: if « <i>readingTime >= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, github </i> »' | 103 | how_to_use_them_description: 'Załóżmy, że chcesz otagować nowe wpisy jako « <i>do szybkiego przeczytania</i> » jeżeli czas czytania wynosi mniej niż 3 minuty.<br />W tym przypadku ponienieneś umieścić « czasCzytania <= 3 » w polu <i>Reguła</i> i « <i><do szybkiego przeczytania/i> » w polu <i>Tagi</i>.<br />Wiele tagów może zostać dodanych jednocześnie rozdzielając je przecinkami: « <i>do szybkiego przeczytania, koniecznie przeczytać</i> »<br />Kompleksowe reguły mogą być napisane przy użyciu operatorów: jeżeli « <i>czasCzytania >= 5 I nazwaDomeny = "github.com"</i> » wtedy otagój jako « <i>dłuższy tekst, github </i> »' |
104 | # variables_available_title: 'Which variables and operators can I use to write rules?' | 104 | variables_available_title: 'Jakich zmiennych i operatorów mogę użyć przy pisaniu reguł?' |
105 | # variables_available_description: 'The following variables and operators can be used to create tagging rules:' | 105 | variables_available_description: 'Następujące zmienne i operatory mogą być użyte przy tworzeniu reguł tagowania:' |
106 | # meaning: 'Meaning' | 106 | meaning: 'Znaczenie' |
107 | # variable_description: | 107 | variable_description: |
108 | # label: 'Variable' | 108 | label: 'Zmienna' |
109 | # title: 'Title of the entry' | 109 | title: 'Tytuł wpisu' |
110 | # url: 'URL of the entry' | 110 | url: 'Adres URL wpisu' |
111 | # isArchived: 'Whether the entry is archived or not' | 111 | isArchived: 'Czy wpis został zarchiwizowany czy nie' |
112 | # isStarred: 'Whether the entry is starred or not' | 112 | isStarred: 'Czy wpis został oznaczony gwiazdką czy nie' |
113 | # content: "The entry's content" | 113 | content: 'Zawartość wpisu' |
114 | # language: "The entry's language" | 114 | language: 'Język wpisu' |
115 | # mimetype: "The entry's mime-type" | 115 | mimetype: 'Mime-type wpisu' |
116 | # readingTime: "The estimated entry's reading time, in minutes" | 116 | readingTime: 'Szacunkowy czas czytania wpisu w minutach' |
117 | # domainName: 'The domain name of the entry' | 117 | domainName: 'Nazwa domeny wpisu' |
118 | # operator_description: | 118 | operator_description: |
119 | # label: 'Operator' | 119 | label: 'Operator' |
120 | # less_than: 'Less than...' | 120 | less_than: 'Mniej niż...' |
121 | # strictly_less_than: 'Strictly less than...' | 121 | strictly_less_than: 'Wyłącznie mniej niż...' |
122 | # greater_than: 'Greater than...' | 122 | greater_than: 'Więcej niż...' |
123 | # strictly_greater_than: 'Strictly greater than...' | 123 | strictly_greater_than: 'Wyłącznie więcej niż...' |
124 | # equal_to: 'Equal to...' | 124 | equal_to: 'Równe...' |
125 | # not_equal_to: 'Not equal to...' | 125 | not_equal_to: 'Nierówny...' |
126 | # or: 'One rule OR another' | 126 | or: 'Jedna reguła LUB inna' |
127 | # and: 'One rule AND another' | 127 | and: 'Jedna reguła I inna' |
128 | # matches: 'Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code>' | 128 | matches: 'Sprawdź czy <i>temat</i> pasuje <i>szukaj</i> (duże lub małe litery).<br />Przykład: <code>tytuł zawiera "piłka nożna"</code>' |
129 | form_new_user: | 129 | form_new_user: |
130 | username_label: 'Nazwa użytkownika' | 130 | username_label: 'Nazwa użytkownika' |
131 | password_label: 'Hasło' | 131 | password_label: 'Hasło' |
132 | repeat_new_password_label: 'Powtórz nowe hasło' | 132 | repeat_new_password_label: 'Powtórz nowe hasło' |
133 | plain_password_label: '????' | 133 | plain_password_label: 'Jawne hasło' |
134 | email_label: 'Adres email' | 134 | email_label: 'Adres email' |
135 | 135 | ||
136 | entry: | 136 | entry: |
137 | page_titles: | 137 | page_titles: |
138 | # unread: 'Unread entries' | 138 | unread: 'Nieprzeczytane wpisy' |
139 | # starred: 'Starred entries' | 139 | starred: 'Wpisy oznaczone gwiazdką' |
140 | # archive: 'Archived entries' | 140 | archive: 'Zarchiwizowane wpisy' |
141 | # filtered: 'Filtered entries' | 141 | filtered: 'Odfiltrowane wpisy' |
142 | list: | 142 | list: |
143 | # number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.' | 143 | number_on_the_page: '{0} Nie ma wpisów.|{1} Jest jeden wpis.|]1,Inf[ Są %count% wpisy.' |
144 | reading_time: 'szacunkowy czas czytania' | 144 | reading_time: 'szacunkowy czas czytania' |
145 | reading_time_minutes: 'szacunkowy czas czytania: %readingTime% min' | 145 | reading_time_minutes: 'szacunkowy czas czytania: %readingTime% min' |
146 | reading_time_less_one_minute: 'szacunkowy czas czytania: <small class="inferieur"><</small> 1 min' | 146 | reading_time_less_one_minute: 'szacunkowy czas czytania: <small class="inferieur"><</small> 1 min' |
@@ -148,7 +148,7 @@ entry: | |||
148 | toogle_as_read: 'Oznacz jako przeczytane' | 148 | toogle_as_read: 'Oznacz jako przeczytane' |
149 | toogle_as_star: 'Oznacz jako ulubione' | 149 | toogle_as_star: 'Oznacz jako ulubione' |
150 | delete: 'Usuń' | 150 | delete: 'Usuń' |
151 | # export_title: 'Export' | 151 | export_title: 'Export' |
152 | filters: | 152 | filters: |
153 | title: 'Filtry' | 153 | title: 'Filtry' |
154 | status_label: 'Status' | 154 | status_label: 'Status' |
@@ -171,35 +171,35 @@ entry: | |||
171 | filter: 'Filtruj' | 171 | filter: 'Filtruj' |
172 | view: | 172 | view: |
173 | left_menu: | 173 | left_menu: |
174 | # back_to_top: 'Back to top' | 174 | back_to_top: 'Wróć na górę' |
175 | back_to_homepage: 'Cofnij' | 175 | back_to_homepage: 'Cofnij' |
176 | set_as_read: 'Oznacz jako przeczytane' | 176 | set_as_read: 'Oznacz jako przeczytane' |
177 | # set_as_unread: 'Mark as unread' | 177 | set_as_unread: 'Oznacz jako nieprzeczytane' |
178 | set_as_favorite: 'Ulubione' | 178 | set_as_favorite: 'Ulubione' |
179 | view_original_article: 'Oryginalny artykuł' | 179 | view_original_article: 'Oryginalny artykuł' |
180 | # re_fetch_content: 'Re-fetch content' | 180 | re_fetch_content: 'Pobierz ponownie treść' |
181 | delete: 'Usuń' | 181 | delete: 'Usuń' |
182 | add_a_tag: 'Dodaj tag' | 182 | add_a_tag: 'Dodaj tag' |
183 | share_content: 'Udostępnij' | 183 | share_content: 'Udostępnij' |
184 | share_email_label: 'Adres email' | 184 | share_email_label: 'Adres email' |
185 | download: 'Pobierz' | 185 | download: 'Pobierz' |
186 | # print: 'Print' | 186 | print: 'Drukuj' |
187 | problem: | 187 | problem: |
188 | label: 'Problemy' | 188 | label: 'Problemy' |
189 | description: 'Czy ten artykuł wygląda źle?' | 189 | description: 'Czy ten artykuł wygląda źle?' |
190 | edit_title: 'Edytuj tytuł' | 190 | edit_title: 'Edytuj tytuł' |
191 | original_article: 'oryginalny' | 191 | original_article: 'oryginalny' |
192 | # annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations' | 192 | annotations_on_the_entry: '{0} Nie ma adnotacji |{1} Jedna adnotacja |]1,Inf[ %nbAnnotations% adnotacji' |
193 | new: | 193 | new: |
194 | page_title: 'Zapisz nowy wpis' | 194 | page_title: 'Zapisz nowy wpis' |
195 | placeholder: 'http://website.com' | 195 | placeholder: 'http://website.com' |
196 | form_new: | 196 | form_new: |
197 | url_label: Url | 197 | url_label: Url |
198 | edit: | 198 | edit: |
199 | # page_title: 'Edit an entry' | 199 | page_title: 'Edytuj wpis' |
200 | # title_label: 'Title' | 200 | title_label: 'Tytuł' |
201 | # url_label: 'Url' | 201 | url_label: 'Adres URL' |
202 | # is_public_label: 'Public' | 202 | is_public_label: 'Publiczny' |
203 | save_label: 'Zapisz' | 203 | save_label: 'Zapisz' |
204 | 204 | ||
205 | about: | 205 | about: |
@@ -208,8 +208,8 @@ about: | |||
208 | who_behind_wallabag: 'Kto stoi za wallabag' | 208 | who_behind_wallabag: 'Kto stoi za wallabag' |
209 | getting_help: 'Pomoc' | 209 | getting_help: 'Pomoc' |
210 | helping: 'Pomóż wallabag' | 210 | helping: 'Pomóż wallabag' |
211 | # contributors: 'Contributors' | 211 | contributors: 'Osoby, które pomogły przy projekcie' |
212 | # third_party: 'Third-party libraries' | 212 | third_party: 'Biblioteki Third-party' |
213 | who_behind_wallabag: | 213 | who_behind_wallabag: |
214 | developped_by: 'Stworzony przez' | 214 | developped_by: 'Stworzony przez' |
215 | website: 'strona internetowa' | 215 | website: 'strona internetowa' |
@@ -220,22 +220,22 @@ about: | |||
220 | getting_help: | 220 | getting_help: |
221 | documentation: 'Dokumentacja' | 221 | documentation: 'Dokumentacja' |
222 | bug_reports: 'Raportuj błędy' | 222 | bug_reports: 'Raportuj błędy' |
223 | support: '<a href="https://support.wallabag.org">Na naszeej stronie wsparcia technicznego</a> lub <a href="https://github.com/wallabag/wallabag/issues">na GitHubie</a>' | 223 | support: '<a href="https://support.wallabag.org">Na naszej stronie wsparcia technicznego</a> lub <a href="https://github.com/wallabag/wallabag/issues">na GitHubie</a>' |
224 | helping: | 224 | helping: |
225 | description: 'wallabag jest darmowy i otwartoźródłowy. Możesz nam pomóc:' | 225 | description: 'wallabag jest darmowy i otwartoźródłowy. Możesz nam pomóc:' |
226 | by_contributing: 'przez przyłączenie się do projektu:' | 226 | by_contributing: 'przez przyłączenie się do projektu:' |
227 | by_contributing_2: 'lista wszystkich naszych potrzeb' | 227 | by_contributing_2: 'lista wszystkich naszych potrzeb' |
228 | by_paypal: 'przez Paypal' | 228 | by_paypal: 'przez Paypal' |
229 | contributors: | 229 | contributors: |
230 | # description: 'Thank you to contributors on wallabag web application' | 230 | description: 'Podziękuj osobą, które przyczyniły się do projektu przez aplikację webową' |
231 | third_party: | 231 | third_party: |
232 | # description: 'Here are the list of third-party libraries used in wallabag (with their licenses):' | 232 | description: 'Tutaj znajduje się lista Third-party bibliotek użytych w wallabag (z ich licencjami):' |
233 | # package: 'Package' | 233 | package: 'Paczka' |
234 | license: 'Licencja' | 234 | license: 'Licencja' |
235 | 235 | ||
236 | howto: | 236 | howto: |
237 | page_title: 'Howto' | 237 | page_title: 'Howto' |
238 | # page_description: 'There are several ways to save an article:' | 238 | page_description: 'Sposoby zapisania artykułu:' |
239 | top_menu: | 239 | top_menu: |
240 | browser_addons: 'Wtyczki dla przeglądarki' | 240 | browser_addons: 'Wtyczki dla przeglądarki' |
241 | mobile_apps: 'Aplikacje mobilne' | 241 | mobile_apps: 'Aplikacje mobilne' |
@@ -243,148 +243,148 @@ howto: | |||
243 | form: | 243 | form: |
244 | description: 'Podziękuj przez ten formularz' | 244 | description: 'Podziękuj przez ten formularz' |
245 | browser_addons: | 245 | browser_addons: |
246 | firefox: 'Standardowe rozszerzenia dla Firefox' | 246 | firefox: 'Standardowe rozszerzenie dla Firefox' |
247 | chrome: 'Rozszerzenie dla Chrome' | 247 | chrome: 'Rozszerzenie dla Chrome' |
248 | mobile_apps: | 248 | mobile_apps: |
249 | android: | 249 | android: |
250 | via_f_droid: 'przez F-Droid' | 250 | via_f_droid: 'w F-Droid' |
251 | via_google_play: 'przez Google Play' | 251 | via_google_play: 'w Google Play' |
252 | ios: 'przez iTunes Store' | 252 | ios: 'w iTunes Store' |
253 | windows: 'przez Microsoft Store' | 253 | windows: 'w Microsoft Store' |
254 | bookmarklet: | 254 | bookmarklet: |
255 | description: 'Przeciągnij i upuść ten link na swój pasek zakładek' | 255 | description: 'Przeciągnij i upuść ten link na swój pasek zakładek' |
256 | 256 | ||
257 | quickstart: | 257 | quickstart: |
258 | # page_title: 'Quickstart' | 258 | page_title: 'Szybki start' |
259 | # intro: | 259 | intro: |
260 | # title: 'Welcome to wallabag!' | 260 | title: 'Witaj w wallabag!' |
261 | # paragraph_1: "We'll accompany you to visit wallabag and show you some features which can interest you." | 261 | paragraph_1: "Będziemy ci towarzyszyli w Twojej poznaniu wallabag i pokażemy możliwości, które mogą cię zainteresować." |
262 | # paragraph_2: 'Follow us!' | 262 | paragraph_2: 'Śledź nas!' |
263 | # configure: | 263 | configure: |
264 | # title: 'Configure the application' | 264 | title: 'Konfiguruj aplikację' |
265 | # language: 'Change language and design' | 265 | language: 'Zmień język i wygląd' |
266 | # rss: 'Enable RSS feeds' | 266 | rss: 'Włącz kanały RSS' |
267 | # tagging_rules: 'Write rules to automatically tag your articles' | 267 | tagging_rules: 'Napisz reguły pozwalające na automatyczne otagowanie twoich artykułów' |
268 | # admin: | 268 | admin: |
269 | # title: 'Administration' | 269 | title: 'Administracja' |
270 | # description: 'As an administrator, you have privileges on wallabag. You can:' | 270 | description: 'Jako administrator wallabag, możesz:' |
271 | # new_user: 'Create a new user' | 271 | new_user: 'Tworzyć nowego użytkownika' |
272 | # analytics: 'Configure analytics' | 272 | analytics: 'Configure analytics' |
273 | # sharing: 'Enable some parameters about article sharing' | 273 | sharing: 'Włączyć pewne parametry dotyczące udostępniania artykułów' |
274 | # export: 'Configure export' | 274 | export: 'Skonfigurować eksport' |
275 | # import: 'Configure import' | 275 | import: 'Skonfigurować import' |
276 | # first_steps: | 276 | first_steps: |
277 | # title: 'First steps' | 277 | title: 'Pierwsze kroki' |
278 | # new_article: 'Save your first article' | 278 | new_article: 'Zapisz swój pierwszy artukuł' |
279 | # unread_articles: 'And classify it!' | 279 | unread_articles: 'I sklasyfikuj go!' |
280 | # migrate: | 280 | migrate: |
281 | # title: 'Migrate from an existing service' | 281 | title: 'Migruj w istniejącej usługi' |
282 | # description: "Are you using another service? We'll help you to retrieve your data on wallabag." | 282 | description: "Używasz innej usługi? Pomożemy ci pobrać twoje dane do wallabag." |
283 | # pocket: 'Migrate from Pocket' | 283 | pocket: 'Migruj z Pocket' |
284 | # wallabag_v1: 'Migrate from wallabag v1' | 284 | wallabag_v1: 'Migruj z wallabag v1' |
285 | # wallabag_v2: 'Migrate from wallabag v2' | 285 | wallabag_v2: 'Migruj z wallabag v2' |
286 | # developer: | 286 | developer: |
287 | # title: 'Developers' | 287 | title: 'Deweloperzy' |
288 | # create_application: 'Create your third application' | 288 | create_application: 'Stwórz swoją aplikację' |
289 | # docs: | 289 | docs: |
290 | # title: 'Full documentation' | 290 | title: 'Pełna Dokumentacja' |
291 | # annotate: 'Annotate your article' | 291 | annotate: 'Dadaj adnotację do swojego artykułu' |
292 | # export: 'Convert your articles into ePUB or PDF' | 292 | export: 'Konwertuj swoje artykuły do ePUB lub PDF' |
293 | # search_filters: 'See how you can look for an article by using search engine and filters' | 293 | search_filters: 'Zabacz jak możesz znaleźć artykuł dzięku użyciu silnika wyszukiwarki i filtrów' |
294 | # fetching_errors: 'What can I do if an article encounters errors during fetching?' | 294 | fetching_errors: 'Co mogę zrobić jeżeli artukuł napotka błędy podczas pobierania?' |
295 | # all_docs: 'And so many other articles!' | 295 | all_docs: 'I wiele innych artykułów!' |
296 | # support: | 296 | support: |
297 | # title: 'Support' | 297 | title: 'Wsparcie' |
298 | # description: 'If you need some help, we are here for you.' | 298 | description: 'Jeżeli potrzebujesz pomocy, jesteśmy tutaj dla ciebie.' |
299 | # github: 'On GitHub' | 299 | github: 'na GitHubie' |
300 | # email: 'By email' | 300 | email: 'przez email' |
301 | # gitter: 'On Gitter' | 301 | gitter: 'na Gitterze' |
302 | 302 | ||
303 | tag: | 303 | tag: |
304 | page_title: 'Tagi' | 304 | page_title: 'Tagi' |
305 | list: | 305 | list: |
306 | # number_on_the_page: '{0} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.' | 306 | number_on_the_page: '{0} Nie ma tagów.|{1} Jest jeden tag.|]1,Inf[ Są %count% tagi.' |
307 | 307 | ||
308 | import: | 308 | import: |
309 | # page_title: 'Import' | 309 | page_title: 'Import' |
310 | # page_description: 'Welcome to wallabag importer. Please select your previous service that you want to migrate.' | 310 | page_description: 'Witaj w importerze Wallabag. Wybierz swoją poprzednią usługę, z której chcech migrować.' |
311 | # action: | 311 | action: |
312 | # import_contents: 'Import contents' | 312 | import_contents: 'Import zawartości' |
313 | # form: | 313 | form: |
314 | # mark_as_read_title: 'Mark all as read?' | 314 | mark_as_read_title: 'Oznaczyć wszystkie jako przeczytane?' |
315 | # mark_as_read_label: 'Mark all imported entries as read' | 315 | mark_as_read_label: 'Oznacz wszystkie zaimportowane wpisy jako przeczytane' |
316 | # file_label: 'File' | 316 | file_label: 'Plik' |
317 | # save_label: 'Upload file' | 317 | save_label: 'Właduj plik' |
318 | # pocket: | 318 | pocket: |
319 | # page_title: 'Import > Pocket' | 319 | page_title: 'Import > Pocket' |
320 | # description: "This importer will import all your Pocket data. Pocket doesn't allow us to retrieve content from their service, so the readable content of each article will be re-fetched by wallabag." | 320 | description: "Ten importer, zaimportuje dane z usługi Pocket. Pocket nie pozwala na nam na pobranie zawartości ze swojej usługi, więc kontent każdego arthykuł\u zostanie ponownie pobrany przez wallabag." |
321 | # config_missing: | 321 | config_missing: |
322 | # description: "Pocket import isn't configured." | 322 | description: "Import z Pocket nie jest skonfigurowany." |
323 | # admin_message: 'You need to define %keyurls%a pocket_consumer_key%keyurle%.' | 323 | admin_message: 'Musisz zdefiniować %keyurls%a pocket_consumer_key%keyurle%.' |
324 | # user_message: 'Your server admin needs to define an API Key for Pocket.' | 324 | user_message: 'Admin twojego servera musi zdefiniować API Key dla Pocket.' |
325 | # authorize_message: 'You can import your data from your Pocket account. You just have to click on the below button and authorize the application to connect to getpocket.com.' | 325 | authorize_message: 'Możesz zaimportować dane ze swojego konta Pocket. Kliknij poniższy przycisk i autoryzuj aplikacje aby połączyć się z getpocket.com.' |
326 | # connect_to_pocket: 'Connect to Pocket and import data' | 326 | connect_to_pocket: 'Połącz z Pocket i importuj dane' |
327 | # wallabag_v1: | 327 | wallabag_v1: |
328 | # page_title: 'Import > Wallabag v1' | 328 | page_title: 'Import > Wallabag v1' |
329 | # description: 'This importer will import all your wallabag v1 articles. On your config page, click on "JSON export" in the "Export your wallabag data" section. You will have a "wallabag-export-1-xxxx-xx-xx.json" file.' | 329 | description: 'Ten importer, zaimportuje wszystkie twoje artykułu z wallabag v1. Na swojej stronie konfiguracyjnej kliknij "JSON eksport" w sekcji "Eksportuj swoje dane wallabag". Otrzymasz plik "wallabag-export-1-xxxx-xx-xx.json".' |
330 | # how_to: 'Please select your wallabag export and click on the below button to upload and import it.' | 330 | how_to: 'Wybierz swój plik eksportu z wallabag i kliknij poniższy przycisk, aby go załadować.' |
331 | # wallabag_v2: | 331 | wallabag_v2: |
332 | # page_title: 'Import > Wallabag v2' | 332 | page_title: 'Import > Wallabag v2' |
333 | # description: 'This importer will import all your wallabag v2 articles. Go to All articles, then, on the export sidebar, click on "JSON". You will have a "All articles.json" file.' | 333 | description: 'Ten importer, zaimportuje wszystkie twoje artykułu z wallabag v2. Idź do wszystkich artykułów, a następnie na panelu exportu kliknij na "JSON". Otrzymasz plik "All articles.json".' |
334 | 334 | ||
335 | developer: | 335 | developer: |
336 | # page_title: 'Developer' | 336 | page_title: 'Deweloper' |
337 | # welcome_message: 'Welcome to the wallabag API' | 337 | welcome_message: 'Witaj w API wallabag' |
338 | # documentation: 'Documentation' | 338 | documentation: 'Dokumentacja' |
339 | # how_to_first_app: 'How to create my first application' | 339 | how_to_first_app: 'Jak stworzyć moją pierwszą aplikację' |
340 | # full_documentation: 'View full API documentation' | 340 | full_documentation: 'Pokaż pełne API' |
341 | # clients: | 341 | clients: |
342 | # title: 'Clients' | 342 | title: 'Klienci' |
343 | # create_new: 'Create a new client' | 343 | create_new: 'Utwórz nowego klienta' |
344 | # existing_clients: | 344 | existing_clients: |
345 | # title: 'Existing clients' | 345 | title: 'Istniejący klienci' |
346 | # field_id: 'Client ID' | 346 | field_id: 'Client ID' |
347 | # field_secret: 'Client secret' | 347 | field_secret: 'Client secret' |
348 | # field_uris: 'Redirect URIs' | 348 | field_uris: 'Przekieruj URIs' |
349 | # field_grant_types: 'Grant type allowed' | 349 | field_grant_types: 'Przyznaj pozwolenie' |
350 | # no_client: 'No client yet.' | 350 | no_client: 'Nie ma jeszcze klienta.' |
351 | # remove: | 351 | remove: |
352 | # warn_message_1: 'You have the ability to remove this client. This action is IRREVERSIBLE !' | 352 | warn_message_1: 'Masz możliwość usunięcia tego klienta. Ta akcja jest NIEODWRACALNA !' |
353 | # warn_message_2: "If you remove it, every app configured with that client won't be able to auth on your wallabag." | 353 | warn_message_2: "Jeżeli go usuniesz, aplikacje skonfigurowane z tym klientem nię będa w stanie autoryzować twojego wallabag." |
354 | # action: 'Remove this client' | 354 | action: 'Usuń tego klienta' |
355 | # client: | 355 | client: |
356 | # page_title: 'Developer > New client' | 356 | page_title: 'Deweloper > Nowy klient' |
357 | # page_description: 'You are about to create a new client. Please fill the field below for the redirect URI of your application.' | 357 | page_description: 'Tworzysz nowego klienta. Wypełnij poniższe pole w celu przekierowania URI twojej aplikacji.' |
358 | # form: | 358 | form: |
359 | # redirect_uris_label: 'Redirect URIs' | 359 | redirect_uris_label: 'Przekieruj adresy URI' |
360 | # save_label: 'Create a new client' | 360 | save_label: 'Stwórz nowego klienta' |
361 | # action_back: 'Cofnij' | 361 | action_back: 'Cofnij' |
362 | # client_parameter: | 362 | client_parameter: |
363 | # page_title: 'Developer > Client parameters' | 363 | page_title: 'Deweloper > Parametry klienta' |
364 | # page_description: 'Here are your client parameters.' | 364 | page_description: 'Tutaj znajdują się parametry klienta.' |
365 | # field_id: 'Client ID' | 365 | field_id: 'Client ID' |
366 | # field_secret: 'Client secret' | 366 | field_secret: 'Client secret' |
367 | # back: 'Cofnij' | 367 | back: 'Cofnij' |
368 | # read_howto: 'Read the howto "Create my first application"' | 368 | read_howto: 'Przeczytaj jak "Stworzyć moją pierwszą aplikację"' |
369 | # howto: | 369 | howto: |
370 | # page_title: 'Developer > How to create my first application' | 370 | page_title: 'Deweloper > Jak stworzyć moją pierwszą aplikację' |
371 | # description: | 371 | description: |
372 | # paragraph_1: 'The following commands make use of the <a href="https://github.com/jkbrzt/httpie">HTTPie library</a>. Make sure it is installed on your system before using it.' | 372 | paragraph_1: 'Następujące komendy korzystają <a href="https://github.com/jkbrzt/httpie">Biblioteka HTTPie</a>. Upewnij się, czy zainstalowałeś ją w swoim systemie zanim z niej skorzystasz' |
373 | # paragraph_2: 'You need a token to communicate between your 3rd application and wallabag API.' | 373 | paragraph_2: 'Potrzebujesz tokena w celu nawiązania komunikacji między swoją aplikacją a API wallabag.' |
374 | # paragraph_3: 'To create this token, you need <a href="%link%">to create a new client</a>.' | 374 | paragraph_3: 'W celu stworzenia tokena musisz <a href="%link%">stwórz nowego klienta</a>.' |
375 | # paragraph_4: 'Now, create your token (replace client_id, client_secret, username and password with the good values):' | 375 | paragraph_4: 'Teraz, utwórz tokena (zmień client_id, client_secret, username i password z poprawnymi wartościami):' |
376 | # paragraph_5: 'The API will return a response like this:' | 376 | paragraph_5: 'API powinno zwrócić taką informację:' |
377 | # paragraph_6: 'The access_token is useful to do a call to the API endpoint. For example:' | 377 | paragraph_6: 'access_token jest użyteczny do wywołania API endpoint. Na przykład:' |
378 | # paragraph_7: 'This call will return all the entries for your user.' | 378 | paragraph_7: 'To wywołanie zwróci wszystkie twoje wpisy.' |
379 | # paragraph_8: 'If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.' | 379 | paragraph_8: 'Jeżeli chcesz wyświetlić wszystkie punkty końcowe API, zobacz <a href="%link%">Dokumentacja naszego API</a>.' |
380 | # back: 'Cofnij' | 380 | back: 'Cofnij' |
381 | 381 | ||
382 | validator: | 382 | validator: |
383 | password_must_match: 'Hasło w polach musi być takie same' | 383 | password_must_match: 'Hasło w polach musi być takie same' |
384 | password_too_short: 'Hasło powinno mieć minimum 8 znaków długości' | 384 | password_too_short: 'Hasło powinno mieć minimum 8 znaków długości' |
385 | # password_wrong_value: 'Wrong value for your current password' | 385 | password_wrong_value: 'Twoje obecne hasło jest błędne' |
386 | # item_per_page_too_high: 'This will certainly kill the app' | 386 | item_per_page_too_high: 'To może spowodować problemy z aplikacją' |
387 | # rss_limit_too_hight: 'This will certainly kill the app' | 387 | rss_limit_too_hight: 'To może spowodować problemy z aplikacją' |
388 | 388 | ||
389 | flashes: | 389 | flashes: |
390 | config: | 390 | config: |
@@ -394,17 +394,17 @@ flashes: | |||
394 | password_not_updated_demo: "In demonstration mode, you can't change password for this user." | 394 | password_not_updated_demo: "In demonstration mode, you can't change password for this user." |
395 | user_updated: 'Informacje zaktualizowane' | 395 | user_updated: 'Informacje zaktualizowane' |
396 | rss_updated: 'Informacje RSS zaktualizowane' | 396 | rss_updated: 'Informacje RSS zaktualizowane' |
397 | # tagging_rules_updated: 'Tagging rules updated' | 397 | tagging_rules_updated: 'Reguły tagowania zaktualizowane' |
398 | # tagging_rules_deleted: 'Tagging rule deleted' | 398 | tagging_rules_deleted: 'Reguła tagowania usunięta' |
399 | # user_added: 'User "%username%" added' | 399 | user_added: 'Użytkownik "%username%" dodany' |
400 | # rss_token_updated: 'RSS token updated' | 400 | rss_token_updated: 'Token kanału RSS zaktualizowany' |
401 | entry: | 401 | entry: |
402 | notice: | 402 | notice: |
403 | # entry_already_saved: 'Entry already saved on %date%' | 403 | entry_already_saved: 'Wpis już został dodany %date%' |
404 | # entry_saved: 'Entry saved' | 404 | entry_saved: 'Wpis zapisany' |
405 | # entry_updated: 'Entry updated' | 405 | entry_updated: 'Wpis zaktualizowany' |
406 | # entry_reloaded: 'Entry reloaded' | 406 | entry_reloaded: 'Wpis ponownie załadowany' |
407 | # entry_reload_failed: 'Failed to reload entry' | 407 | entry_reload_failed: 'Błąd ponownego załadowania' |
408 | entry_archived: 'Wpis dodany do archiwum' | 408 | entry_archived: 'Wpis dodany do archiwum' |
409 | entry_unarchived: 'Wpis usunięty z archiwum' | 409 | entry_unarchived: 'Wpis usunięty z archiwum' |
410 | entry_starred: 'Wpis oznaczony gwiazdką' | 410 | entry_starred: 'Wpis oznaczony gwiazdką' |
@@ -412,13 +412,13 @@ flashes: | |||
412 | entry_deleted: 'Wpis usunięty' | 412 | entry_deleted: 'Wpis usunięty' |
413 | tag: | 413 | tag: |
414 | notice: | 414 | notice: |
415 | # tag_added: 'Tag added' | 415 | tag_added: 'Tag dodany' |
416 | import: | 416 | import: |
417 | notice: | 417 | notice: |
418 | # failed: 'Import failed, please try again.' | 418 | failed: 'Nieudany import, prosimy spróbować ponownie.' |
419 | # failed_on_file: 'Error while processing import. Please verify your import file.' | 419 | failed_on_file: 'Błąd podczas ptrzetwarzania pliku. Sprawdż swój importowany plik.' |
420 | # summary: 'Import summary: %imported% imported, %skipped% already saved.' | 420 | summary: 'Podsumowanie importu: %imported% zaimportowane, %skipped% już zapisane.' |
421 | developer: | 421 | developer: |
422 | notice: | 422 | notice: |
423 | # client_created: 'New client created.' | 423 | client_created: 'Nowy klient utworzony.' |
424 | # client_deleted: 'Client deleted' | 424 | client_deleted: 'Klient usunięty' |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig index 0ce06962..bac92ffa 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig | |||
@@ -66,7 +66,7 @@ | |||
66 | {% for flashMessage in app.session.flashbag.get('notice') %} | 66 | {% for flashMessage in app.session.flashbag.get('notice') %} |
67 | <div class="messages success"> | 67 | <div class="messages success"> |
68 | <a href="#" class="closeMessage">×</a> | 68 | <a href="#" class="closeMessage">×</a> |
69 | <p>{{ flashMessage }}</p> | 69 | <p>{{ flashMessage|trans }}</p> |
70 | </div> | 70 | </div> |
71 | {% endfor %} | 71 | {% endfor %} |
72 | {% endblock %} | 72 | {% endblock %} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig index 4eebf18f..032d2d9b 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig | |||
@@ -116,7 +116,7 @@ | |||
116 | {% if craue_setting('share_diaspora') %} | 116 | {% if craue_setting('share_diaspora') %} |
117 | <li> | 117 | <li> |
118 | <a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}¬es=&v=1&noui=1&jump=doclose" target="_blank" class="tool diaspora icon-image icon-image--diaspora" title="diaspora}"> | 118 | <a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}¬es=&v=1&noui=1&jump=doclose" target="_blank" class="tool diaspora icon-image icon-image--diaspora" title="diaspora}"> |
119 | <span>diaspora}</span> | 119 | <span>diaspora*</span> |
120 | </a> | 120 | </a> |
121 | </li> | 121 | </li> |
122 | {% endif %} | 122 | {% endif %} |
diff --git a/src/Wallabag/CoreBundle/Tests/Helper/ContentProxyTest.php b/src/Wallabag/CoreBundle/Tests/Helper/ContentProxyTest.php index f58b5828..74bfb054 100644 --- a/src/Wallabag/CoreBundle/Tests/Helper/ContentProxyTest.php +++ b/src/Wallabag/CoreBundle/Tests/Helper/ContentProxyTest.php | |||
@@ -10,6 +10,40 @@ use Wallabag\UserBundle\Entity\User; | |||
10 | 10 | ||
11 | class ContentProxyTest extends \PHPUnit_Framework_TestCase | 11 | class ContentProxyTest extends \PHPUnit_Framework_TestCase |
12 | { | 12 | { |
13 | public function testWithBadUrl() | ||
14 | { | ||
15 | $tagger = $this->getTaggerMock(); | ||
16 | $tagger->expects($this->once()) | ||
17 | ->method('tag'); | ||
18 | |||
19 | $graby = $this->getMockBuilder('Graby\Graby') | ||
20 | ->setMethods(array('fetchContent')) | ||
21 | ->disableOriginalConstructor() | ||
22 | ->getMock(); | ||
23 | |||
24 | $graby->expects($this->any()) | ||
25 | ->method('fetchContent') | ||
26 | ->willReturn(array( | ||
27 | 'html' => false, | ||
28 | 'title' => '', | ||
29 | 'url' => '', | ||
30 | 'content_type' => '', | ||
31 | 'language' => '', | ||
32 | )); | ||
33 | |||
34 | $proxy = new ContentProxy($graby, $tagger, $this->getTagRepositoryMock(), $this->getLogger()); | ||
35 | $entry = $proxy->updateEntry(new Entry(new User()), 'http://user@:80'); | ||
36 | |||
37 | $this->assertEquals('http://user@:80', $entry->getUrl()); | ||
38 | $this->assertEmpty($entry->getTitle()); | ||
39 | $this->assertEquals('<p>Unable to retrieve readable content.</p>', $entry->getContent()); | ||
40 | $this->assertEmpty($entry->getPreviewPicture()); | ||
41 | $this->assertEmpty($entry->getMimetype()); | ||
42 | $this->assertEmpty($entry->getLanguage()); | ||
43 | $this->assertEquals(0.0, $entry->getReadingTime()); | ||
44 | $this->assertEquals(false, $entry->getDomainName()); | ||
45 | } | ||
46 | |||
13 | public function testWithEmptyContent() | 47 | public function testWithEmptyContent() |
14 | { | 48 | { |
15 | $tagger = $this->getTaggerMock(); | 49 | $tagger = $this->getTaggerMock(); |
@@ -121,6 +155,57 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase | |||
121 | $this->assertEquals('1.1.1.1', $entry->getDomainName()); | 155 | $this->assertEquals('1.1.1.1', $entry->getDomainName()); |
122 | } | 156 | } |
123 | 157 | ||
158 | public function testWithForcedContent() | ||
159 | { | ||
160 | $tagger = $this->getTaggerMock(); | ||
161 | $tagger->expects($this->once()) | ||
162 | ->method('tag'); | ||
163 | |||
164 | $graby = $this->getMockBuilder('Graby\Graby')->getMock(); | ||
165 | |||
166 | $proxy = new ContentProxy($graby, $tagger, $this->getTagRepositoryMock(), $this->getLogger()); | ||
167 | $entry = $proxy->updateEntry(new Entry(new User()), 'http://0.0.0.0', [ | ||
168 | 'html' => str_repeat('this is my content', 325), | ||
169 | 'title' => 'this is my title', | ||
170 | 'url' => 'http://1.1.1.1', | ||
171 | 'content_type' => 'text/html', | ||
172 | 'language' => 'fr', | ||
173 | ]); | ||
174 | |||
175 | $this->assertEquals('http://1.1.1.1', $entry->getUrl()); | ||
176 | $this->assertEquals('this is my title', $entry->getTitle()); | ||
177 | $this->assertContains('this is my content', $entry->getContent()); | ||
178 | $this->assertEquals('text/html', $entry->getMimetype()); | ||
179 | $this->assertEquals('fr', $entry->getLanguage()); | ||
180 | $this->assertEquals(4.0, $entry->getReadingTime()); | ||
181 | $this->assertEquals('1.1.1.1', $entry->getDomainName()); | ||
182 | } | ||
183 | |||
184 | public function testTaggerThrowException() | ||
185 | { | ||
186 | $graby = $this->getMockBuilder('Graby\Graby') | ||
187 | ->disableOriginalConstructor() | ||
188 | ->getMock(); | ||
189 | |||
190 | $tagger = $this->getTaggerMock(); | ||
191 | $tagger->expects($this->once()) | ||
192 | ->method('tag') | ||
193 | ->will($this->throwException(new \Exception())); | ||
194 | |||
195 | $tagRepo = $this->getTagRepositoryMock(); | ||
196 | $proxy = new ContentProxy($graby, $tagger, $tagRepo, $this->getLogger()); | ||
197 | |||
198 | $entry = $proxy->updateEntry(new Entry(new User()), 'http://0.0.0.0', [ | ||
199 | 'html' => str_repeat('this is my content', 325), | ||
200 | 'title' => 'this is my title', | ||
201 | 'url' => 'http://1.1.1.1', | ||
202 | 'content_type' => 'text/html', | ||
203 | 'language' => 'fr', | ||
204 | ]); | ||
205 | |||
206 | $this->assertCount(0, $entry->getTags()); | ||
207 | } | ||
208 | |||
124 | public function testAssignTagsWithArrayAndExtraSpaces() | 209 | public function testAssignTagsWithArrayAndExtraSpaces() |
125 | { | 210 | { |
126 | $graby = $this->getMockBuilder('Graby\Graby') | 211 | $graby = $this->getMockBuilder('Graby\Graby') |