Compare commits

..

194 Commits

Author SHA1 Message Date
08dea0edb1 Change travis configuration 2016-04-22 18:54:43 +02:00
79c44cb4f8 Release wallabag 2.0.3 2016-04-22 18:45:46 +02:00
9c0bc04cfe Merge pull request #1965 from wallabag/prepare-203
Prepare release 2.0.3
2016-04-22 18:40:48 +02:00
dafde7fb2f Prepare release 2.0.3 2016-04-22 18:08:16 +02:00
9481187896 Merge pull request #1962 from wallabag/update-api-documentation
Update API documentation with cURL examples
2016-04-22 08:38:04 +02:00
1c90663b79 Update API documentation with cURL examples 2016-04-21 18:48:17 +02:00
7d5b4631d0 Merge pull request #1948 from wallabag/prepare-202
Prepare release 2.0.2
2016-04-21 09:44:44 +02:00
9f151b469f Update changelog 2016-04-21 08:42:41 +02:00
45919a295e Merge pull request #1957 from wallabag/fix-gotoaccount-button-translation
Fix translation for Go to your account button after subscription
2016-04-21 08:37:36 +02:00
2499cdbf29 Fix translation for Go to your account button after subscription
Fix #1956
2016-04-20 15:53:20 +02:00
868e76af10 Merge pull request #1945 from ddeimeke/master
Added some curl examples
2016-04-20 10:10:46 +02:00
f88530de68 Merge pull request #1954 from wallabag/update-links-doc
Update links in documentation
2016-04-19 20:25:36 +02:00
4a25bef077 Update links in documentation 2016-04-19 20:03:34 +02:00
24f65a838c Merge pull request #1953 from maxi62330/master
Actualisation des liens morts (Documentation de traduction)
2016-04-19 19:54:44 +02:00
89bafa95ed Actualisation des liens morts (Documentation de traduction) 2016-04-19 19:25:04 +02:00
18bb5a90d5 Prepare release 2.0.2 2016-04-19 10:01:29 +02:00
938a16c0f6 Added some curl examples 2016-04-19 08:00:07 +02:00
ca8d61b958 Merge pull request #1942 from wallabag/optimize-import
Optimize import
2016-04-18 22:13:48 +02:00
23feba63bb Merge pull request #1944 from wallabag/travis-rename-branches
Update Travis configuration with branches renaming
2016-04-18 22:12:52 +02:00
3320d39418 Update Travis configuration with branches renaming 2016-04-18 21:46:36 +02:00
23d24b1750 Add tests 2016-04-18 15:29:57 +02:00
dc12084d93 Add doctrine clear after flush, thanks to @BitOne talk at Symfony Live 2016-04-18 14:48:18 +02:00
0907a72c64 Merge pull request #1938 from wallabag/hide-pagination
Display pagination only if we have more than one page
2016-04-18 09:41:56 +02:00
188b74b6df Display pagination only if we have more than one page 2016-04-18 09:03:21 +02:00
71601c171f Merge pull request #1935 from jami7/patch-8
Update messages.es.yml
2016-04-17 08:03:36 +02:00
5c2c1a6434 Update messages.es.yml 2016-04-16 14:04:39 -10:00
7fdecbb73c Merge pull request #1933 from wallabag/hide-pagination
Hide pagination if we only have one entry to display
2016-04-16 08:36:24 +02:00
1f034a3316 Hide pagination if we only have one entry to display 2016-04-16 07:19:30 +02:00
d1f4996b77 Merge pull request #1925 from wallabag/fix-redirect-without-referer
Redirect to homepage if referer is null
2016-04-15 17:52:33 +02:00
5180302650 Merge pull request #1929 from wallabag/change-guid-rss
Change guid and link in RSS feeds to give original entry URL
2016-04-15 17:51:56 +02:00
2d899e8d30 Change guid and link in RSS feeds to give original entry URL
Fix #1926
2016-04-15 16:07:34 +02:00
345d74268b Fix redirect when delete entry 2016-04-15 15:39:00 +02:00
4086e0782e Fix tests 2016-04-15 09:58:29 +02:00
af497a641c Redirect to homepage if referer is null
Fix #1924
2016-04-15 07:58:01 +02:00
f2e5fdc366 Merge pull request #1916 from wallabag/cleanup
Convert array + phpDoc
2016-04-13 09:43:14 +02:00
a417b86923 Merge pull request #1918 from wallabag/improve-pagination
Improve pagination when user has lot of entries
2016-04-13 09:42:18 +02:00
18078ded12 Fix indentation 2016-04-13 09:20:01 +02:00
245e2e2cae Merge pull request #1919 from wallabag/cleanup-composerjson
Remove useless dependancy
2016-04-12 22:20:05 +02:00
86732aa01c Move test parameters out of parameters.yml
The end user doesn't care to about the test database.
2016-04-12 22:14:22 +02:00
c31ea8a409 Remove useless dependancy 2016-04-12 21:47:16 +02:00
c95e39c51a Lost in translation pager 2016-04-12 20:38:56 +02:00
63995be5ee Fix display for Next/Previous link when they are disabled 2016-04-12 18:03:40 +02:00
1880da7420 Restore old behavior for OutOfRangeCurrentPageException 2016-04-12 16:40:18 +02:00
76cd8dbb05 Fix tests 2016-04-12 16:32:01 +02:00
624a7c6df1 Improve pagination when user has lot of entries
Fix #1905
* Usage of whiteoctober/WhiteOctoberPagerfantaBundle
2016-04-12 16:04:17 +02:00
80bd17f00d Merge pull request #1911 from wallabag/title-on-title-entry
add title hover on entry titles
2016-04-12 14:54:59 +02:00
1b8b3859c0 Add title hover on entry titles 2016-04-12 14:30:42 +02:00
443cff9840 Fix MySQL tests on HHVM 2016-04-12 12:37:10 +02:00
4094ea4771 Convert array + phpDoc
Thanks for https://github.com/thomasbachem/php-short-array-syntax-converter
2016-04-12 12:25:29 +02:00
7eccbda99f Merge pull request #1915 from wallabag/doc-links
Fix doc links
2016-04-12 11:24:11 +02:00
8846ad0a90 Fix doc links 2016-04-12 10:51:46 +02:00
41e79f9792 Merge pull request #1912 from wallabag/install-config
Move setup config outside setupAdmin
2016-04-11 20:16:49 +02:00
637dc4bb21 Move setup config outside setupAdmin
If user doesn't want to create a new admin (even if it's recommended) the internal config weren't created resulting in error when using the interface.
2016-04-11 19:37:29 +02:00
a83fbf4504 Merge pull request #1909 from wallabag/prepare-release-2.0.1
Prepare release 2.0.1
2016-04-11 14:14:25 +02:00
d098cb04a8 Prepare release 2.0.1 2016-04-11 11:13:02 +02:00
574d101561 Merge pull request #1902 from wallabag/v2-changelog
Add changelog
2016-04-10 23:13:21 +02:00
386d1120c3 Update changelog 2016-04-10 20:24:20 +02:00
15e9483323 Merge pull request #1823 from wallabag/translation-fa
Translation fa
2016-04-10 20:00:03 +02:00
c5dede8445 Merge pull request #1903 from wallabag/force-server-version
Force server version to avoid connexion error
2016-04-10 19:57:45 +02:00
e9497f6fc0 Merge pull request #1901 from wallabag/spanish
Update Spanish translation
2016-04-10 15:43:40 +02:00
c71d83b60c Merge pull request #1887 from wallabag/v2-duplicate-bookmarklet
Fix duplicate article when added via the bookmarklet
2016-04-10 15:37:33 +02:00
f642863ff2 Merge pull request #1895 from wallabag/v2-fix-entries-api
All the entries are fetched via GET /api/entries
2016-04-10 15:37:05 +02:00
69c21157ba Force server version to avoid connexion error
When installing a new project with MySQL, if the database doesn't exist before installation will fail because DBAL will try to get the server version by querying it.
And since this query is done using the default database connexion and since the database doesn't exist, DBAL can't connect to the server.
2016-04-10 15:34:32 +02:00
9b2fe57eb6 Add changelog 2016-04-10 15:12:54 +02:00
b351d0494b Fix FA translations indentation 2016-04-10 14:33:11 +02:00
6d0db75328 Update messages.fa.yml 2016-04-10 14:33:11 +02:00
615fc1d237 Merge pull request #1900 from wallabag/v2-remove-pt-empty-doc
Remove empty portugese documentation
2016-04-10 14:25:01 +02:00
61fcbe9f57 Fix typo in french documentation 2016-04-10 14:23:43 +02:00
eaec84fcd3 Uncommented translated ES lines
Also, turn yaml lint into a more versbose check
2016-04-10 14:21:42 +02:00
834efe84ac Change visibility of checkIfEntryAlreadyExists method to private 2016-04-10 14:20:39 +02:00
466c0c6684 Remove empty portugese documentation 2016-04-10 14:18:03 +02:00
661d5ae0cf Update messages.es.yml
On line 103, I'm not sure what symbol that is that looks like this (<<) but it looks smaller? Where is that? Should I just copy and paste it? And just to clarity, please look at line 101 too cause I'm not too sure if/how I change the stuff within <...> I stopped mid line in 103 just until I get clarification on this. Thanks.
2016-04-10 14:18:03 +02:00
dd4997d705 Update messages.es.yml 2016-04-10 14:17:35 +02:00
c29747357a Merge pull request #1899 from wallabag/v2-nginx-doc
Add documentation about importing large file into nginx
2016-04-10 14:15:38 +02:00
0135c98b24 Remove int cast 2016-04-10 14:15:21 +02:00
cea846d407 Add documentation about importing large file into nginx
Fix #1849: configuration to avoid 413 Request Entity Too Large.
2016-04-10 14:12:25 +02:00
54ecbb41d6 Merge pull request #1898 from wallabag/v2-fix-readingtime-display-material
Fix estimated reading time in material view
2016-04-10 14:12:13 +02:00
19a7ea2a44 Merge pull request #1896 from wallabag/v2-fix-internal-settings
Fix internal settings
2016-04-10 09:49:10 +02:00
2504fe46ed Merge pull request #1894 from wallabag/v2-fix-doc-link
Fix documentation link in developer page
2016-04-10 09:44:48 +02:00
82dbd47391 Merge pull request #1891 from wallabag/v2-fix-rules-typo
Fix typo on configuration page
2016-04-10 09:37:49 +02:00
7ead8a0d9d Fix estimated reading time in material view
Fix #1893
2016-04-10 08:48:53 +02:00
cb48a569e0 Fix internal settings
Fix #1867: remove download_picture setting and manage show_printlink in material theme
2016-04-09 21:34:50 +02:00
5c3ca4fe9e All the entries are fetched via GET /api/entries
Fix #1863: only the unread entries were fetched with GET /api/entries entrypoint. Now, all the entries are fetched
2016-04-09 21:13:56 +02:00
808f541ea9 Fix documentation link in developer page 2016-04-09 20:43:22 +02:00
7a2157b8d7 Fix typo on configuration page 2016-04-09 14:04:43 +02:00
b00a89e08f Refactor EntryController 2016-04-09 13:44:54 +02:00
015e4284f0 Merge pull request #1824 from wallabag/v2-alternative-env
Remove SMTP configuration environment overrides
2016-04-08 21:03:17 +02:00
f652f41dab Fix duplicate article when added via the bookmarklet 2016-04-08 15:41:05 +02:00
7704ef5d3f Add documentation 2016-04-08 14:09:31 +02:00
e969c2a7ef Merge pull request #1879 from wallabag/v2-tag-field-position
Move tag form in Material theme
2016-04-08 13:51:20 +02:00
5b732257db Merge pull request #1884 from wallabag/nicosomb-patch-1
Change the installation method in issue template
2016-04-08 13:50:22 +02:00
0c608f1183 Change the installation method in issue template 2016-04-08 13:14:47 +02:00
77b9db87b8 Merge pull request #1804 from wallabag/j0k3r-patch-1
Force user-agent for iansommerville.com
2016-04-08 11:18:44 +02:00
6a986910b6 Merge pull request #1868 from wallabag/v2-tagrule-baggy
Remove keyboard shortcut and add tagging rule panel in baggy
2016-04-07 14:10:08 +02:00
c6cbe75b2e Move tag form in Material theme 2016-04-07 13:47:35 +02:00
9479ae834c Lock ocramius/proxy-manager
To avoid problem with PHP < 7.0
2016-04-06 11:37:03 +02:00
c802181126 Documentation about wallabag API 2016-04-06 11:30:41 +02:00
8687bcd0c9 Remove keybaord shortcut and add tagging rule panel in baggy 2016-04-05 22:29:47 +02:00
4b0b77e4d7 Merge pull request #1862 from wallabag/v2-doc-import-wllbg1-cli
Add production environment for CLI import
2016-04-05 16:57:43 +02:00
e543d03fd7 Merge pull request #1861 from wallabag/v2-round-estimated-time
Round estimated time and add reading speed for Baggy
2016-04-05 16:18:26 +02:00
6d3a3cfcda Add production environment for CLI import 2016-04-05 15:45:59 +02:00
4a749cad8d Round estimated time and add reading speed for Baggy 2016-04-05 15:35:01 +02:00
3a7df76013 Merge pull request #1856 from wallabag/v2-doc-import-wllbg1-cli
Documentation about wallabag v1 CLI import
2016-04-05 13:49:40 +02:00
af47742dd0 Documentation about wallabag v1 CLI import 2016-04-05 13:46:59 +02:00
52d806ea6b Add migrate link in french documentation 2016-04-05 08:48:53 +02:00
48bb9675c1 Add migrate link in english documentation 2016-04-05 08:48:29 +02:00
6b82630838 Merge pull request #1840 from wallabag/v2-fix-archive-page-title
Fix Archive page title translation
2016-04-04 09:20:04 +02:00
b5cf84bdf6 Fix Archive page title translation 2016-04-04 08:00:31 +02:00
a119acd15d Merge pull request #1835 from wallabag/v2-prepare-v2
🚀 Prepare v2.0.0 🎂
2016-04-03 22:11:17 +02:00
7d997fd9f6 Merge pull request #1838 from wallabag/v2-hide-search
Hide search buttons
2016-04-03 20:47:16 +02:00
163517da79 Remove useless CSS 2016-04-03 20:35:53 +02:00
0795d04916 Hide search buttons 2016-04-03 20:25:43 +02:00
eff75729a1 🚀 Prepare v2.0.0 🎂 2016-04-03 18:56:53 +02:00
2ff626a451 Merge pull request #1832 from wallabag/pdo-driver
Check selected PDO driver on install
2016-04-02 14:57:10 +02:00
c61b68e8a6 Check selected PDO driver on install
Instead of checking that one of the DB driver is installed we retrieve the selected driver (in parameters) and see if the extension exists.
2016-04-01 16:44:51 +02:00
d92407041a Merge branch 'Quent-in-v2' into v2 2016-04-01 10:37:42 +02:00
187868d137 Add Occitan to available language 2016-04-01 10:36:07 +02:00
1695a6fecd Fix quotes for OC 2016-04-01 10:34:51 +02:00
cb68c76cd8 Merge pull request #3 from j0k3r/patch-1
Fix simple quote
2016-04-01 10:18:16 +02:00
69726ec78e Fix simple quote 2016-04-01 10:16:06 +02:00
12500bd772 Occitan version 2016-04-01 08:55:26 +02:00
1c7690d586 OC version 2016-04-01 08:54:21 +02:00
dc89968c58 Update oc version
Complet
2016-04-01 08:51:29 +02:00
9191d8a640 Trad. Occitan
WIP
2016-03-30 13:17:40 +02:00
0bb5669cf6 Remove SMTP configuration environment overrides
SMTP configuration has been added in #1518 to use ParameterHandle's
env-map. But Symfony actually has a native way of allowing parameters to
be overriden from environment so rather than having to define a mapping
for each possible parameter, users can define any override in
parameters.yml:

> parameters:
>     database_host: %WALLABAG_DB_HOST%

and define an environment variable SYMFONY__WALLABAG_DB_HOST.

Links:
env-map: https://github.com/Incenteev/ParameterHandler#using-environment-variables-to-set-the-parameters
Symfony external parameters: http://symfony.com/doc/current/cookbook/configuration/external_parameters.html
2016-03-29 13:44:12 +02:00
b637526524 Merge pull request #1822 from jami7/patch-4
Update messages.es.yml
2016-03-29 07:34:20 +02:00
4063d821a3 Update messages.es.yml 2016-03-28 10:53:35 -10:00
e2dda63152 Merge pull request #1820 from wallabag/import-refacto
Refacto wallabag import
2016-03-28 18:52:22 +02:00
0b05dae377 Merge pull request #1821 from jami7/patch-3
Update messages.es.yml
2016-03-28 18:04:13 +02:00
ff6b683bb3 Update messages.es.yml 2016-03-28 05:34:56 -10:00
b787a7757e Refacto wallabag import
Use an abstract class to store all common action from wallabag vX import.
Move specificity in v1 & v2 import.
2016-03-28 16:43:33 +02:00
0e49487bb0 Remove some complexicity in InstallCommand 2016-03-28 14:18:50 +02:00
ba2157b270 Merge pull request #1805 from wallabag/v2-assign-comma-tags
Fix #1768 Split tags with commas from UI
2016-03-28 09:42:13 +02:00
cc8c2d315f Merge pull request #1819 from wallabag/cleanup
Some cleanup
2016-03-28 09:41:49 +02:00
a2d6f6e9d8 Merge pull request #1818 from wallabag/v2-add-migration-doc
add migration docs
2016-03-28 09:39:35 +02:00
8f336fda64 Tags were not imported in wallabag v2 import
Also, simplify exportAs matching format
2016-03-27 23:58:37 +02:00
4d0ec0e721 Fix some Scrutinizer issues 2016-03-27 20:54:57 +02:00
5d6f6f56a2 Some cleanup
- travis tabulation
- extra namespace definition in entities
2016-03-27 20:36:35 +02:00
2baca964f3 Simplify tag creation from entry
Testing that a tag exist or is assigned to the current entry isn't important in the tag controler since the `assignTagsToEntry` is already doing that job.
So it simplify the controller.
2016-03-27 17:09:33 +02:00
4e38769ad0 add migration docs 2016-03-27 16:26:47 +02:00
18b812b1b9 Merge pull request #1817 from mruminski/v2
Correct translation
2016-03-27 11:04:11 +02:00
ce25b98132 Correct translation 2016-03-26 18:00:03 +01:00
4dc9f8d037 Fix Indentation problem 2016-03-26 17:38:34 +01:00
005c0d370f Update messages.pl.yml
Complete polish translation of messages file
2016-03-25 19:20:37 +01:00
26880205a7 Create FOSUserBundle.pl.yml
Add polish version of FOSUserBundle file
2016-03-25 19:17:58 +01:00
2f20bb2b7f Merge pull request #1813 from wallabag/v2-translation-de
[v2] German translation
2016-03-24 14:01:28 +01:00
58a0ca1651 Complete messages.de.yml 2016-03-24 13:09:49 +01:00
5791e4f458 Translate FOSUserBundle to german. 2016-03-24 12:50:58 +01:00
a6ab1e6d56 Translate CraueConfigBundle to german. 2016-03-24 12:50:47 +01:00
48581c90a1 Merge pull request #1807 from nikaro/patch-1
fix typo diaspora* share
2016-03-21 17:17:52 +01:00
842a62e293 fix type diaspora* share 2016-03-21 17:03:43 +01:00
4258033451 Merge pull request #1806 from wallabag/v2-translation-flash-baggy
Translate flash message in baggy theme
2016-03-21 16:18:58 +01:00
7dbed56857 Translate flash message in baggy theme 2016-03-21 15:44:23 +01:00
5a4ee4ae0f Split tags with commas from UI 2016-03-21 14:06:07 +01:00
439b36323e Merge pull request #1774 from wallabag/v2-key-translation
Switch to keys in translated files
2016-03-21 12:47:57 +01:00
4083887afe Update docs about translation 2016-03-21 10:08:56 +01:00
f3e49264f2 Add reading time translation 2016-03-21 10:00:41 +01:00
4cb3ef5125 Put more validations on travis
Run php-cs-fixer to avoid CS on commits
Add a check on translation message using the built-in yaml validator. It'll avoid typo in translation yaml files.
2016-03-21 10:00:41 +01:00
f92b5de7ac Convert more languages 2016-03-20 21:56:42 +01:00
1381db4835 Translation typos
Fix #1793
2016-03-20 21:56:42 +01:00
3fae7f1d08 Add missing developer page 2016-03-20 21:56:42 +01:00
a0c6c244d9 Convert french translation 2016-03-20 21:56:42 +01:00
b308b26339 CS 2016-03-20 21:12:22 +01:00
4204a06b77 Add flashes messages 2016-03-20 21:12:22 +01:00
4f9cf232f8 Improve test failure readability
If the response content isn't the one expected, instead of checking into the whole DOM (with node tag, etc ..) we only check the text.
So if it fails, phpunit will display only the text, not all node tag. It'll be easier to read.
2016-03-20 21:12:22 +01:00
0d42217e4e Convert english translation file
- convert english translation to translate key
- remove baggy template for login (never used since user isn't logged in and it'll use the default theme: material)
- fix tests about text in response (now checking translation key instead of translated text)
- remove all ugly `<div class="hidden">{{ form_rest(form) }}</div>`
2016-03-20 21:12:22 +01:00
d2b4f01d74 Disable translation in test
We don't want to test translation in test
2016-03-20 21:10:58 +01:00
e71c376db9 Force user-agent for iansommerville.com
When using the default User Agent, the website returns a 403. By forcing the User Agent for this domain, we got the proper behavior: a 200

Since we can't _append_ new user agent to the default graby configuration, we need to rewrite all the default config + the new one.

Fix #1801
2016-03-18 20:55:54 +01:00
bd46de6b25 Revert "Transferring API Description file from Apiary.io"
This reverts commit 169d60abc7.
2016-03-18 16:28:45 +01:00
169d60abc7 Transferring API Description file from Apiary.io 2016-03-18 16:24:05 +01:00
f39e94ace3 Merge pull request #1767 from wallabag/v2-setting-for-reading-time
Setting for reading time
2016-03-18 14:30:38 +01:00
1b64a84b78 Improved tests 2016-03-18 14:01:50 +01:00
ec7c67badc Merge pull request #1799 from wallabag/v2-fix-tabs-display-material
fix tabs display on mobile view
2016-03-18 12:52:40 +01:00
78becd5401 Fix documentation and add help message in Baggy 2016-03-18 12:36:52 +01:00
1978d0e3b6 Merge pull request #1791 from wallabag/v2-fix-api-entry-properties
fix api properties and typo
2016-03-16 23:23:42 +01:00
bc2b947cd5 add check 2016-03-16 22:47:12 +01:00
0cd0d6eb8c fix updating entry status through API 2016-03-16 22:43:32 +01:00
2f60e5ea75 check if archive/star parameters without quotes work 2016-03-16 22:22:12 +01:00
189ef6342a use integers for archived/starred status 2016-03-16 22:22:12 +01:00
0d3043a29c fix api properties and typo 2016-03-16 22:22:12 +01:00
2cc7de1e93 fix tabs display on mobile view 2016-03-16 22:15:01 +01:00
3500d4099f Merge pull request #1797 from wallabag/v2-fix-adding-entry-API
Don't add entry through API if it already exists
2016-03-16 21:40:36 +01:00
3107f92acb Don't add entry through API if it already exists 2016-03-16 21:07:01 +01:00
17051137ec Merge pull request #1792 from wallabag/v2-add-tests-for-api-user
add tests on user in API responses
2016-03-16 10:45:09 +01:00
bc44aa5784 add tests on user in API responses 2016-03-15 19:31:31 +01:00
6432b9277e Replace slider with select 2016-03-14 13:49:47 +01:00
37b371726b Translation and documentation 2016-03-14 13:01:32 +01:00
db1d4b1e19 Fix default value and add baggy implementation 2016-03-14 13:01:31 +01:00
889c1cf328 Fixed fixtures for config 2016-03-14 13:01:31 +01:00
bca5485946 Added setting to have a personal reading time 2016-03-14 13:01:31 +01:00
17b3d026fd Merge pull request #1786 from wallabag/v2-restrict-user-infos
API shows just what needed for user
2016-03-14 06:15:46 +01:00
5cc9b5151f Merge pull request #1784 from wallabag/v2-add-refresh-token
add refresh-token grant-type
2016-03-14 06:14:22 +01:00
7d1fdab2bb API shows just what needed for user 2016-03-13 20:17:52 +01:00
c9c8345a4a add refresh-token grant-type 2016-03-13 17:53:56 +01:00
208 changed files with 8281 additions and 3794 deletions

View File

@ -6,7 +6,7 @@ Remember, this is _not_ a place to ask questions. For that, go to http://gitter.
### Environment
* wallabag version (or git revision) that exhibits the issue:
* How did you install wallabag? Via `composer create-project` or by downloading the package?
* How did you install wallabag? Via `git clone` or by downloading the package?
* Last wallabag version that did not exhibit the issue (if applicable):
* php version:
* OS:

View File

@ -11,6 +11,7 @@ addons:
# cache vendor dirs
cache:
apt: true
directories:
- vendor
- $HOME/.composer/cache
@ -22,12 +23,15 @@ php:
- hhvm
env:
- DB=mysql
- DB=pgsql
- DB=sqlite
- DB=mysql
- DB=pgsql
- DB=sqlite
matrix:
fast_finish: true
include:
- php: 7.0
env: CS_FIXER=run VALIDATE_TRANSLATION_FILE=run DB=sqlite
exclude:
- php: hhvm
env: DB=pgsql # driver for PostgreSQL currently unsupported by HHVM, requires 3rd party dependency
@ -37,8 +41,7 @@ matrix:
# exclude v1 branches
branches:
except:
- master
- dev
- legacy
before_script:
- if [[ $TRAVIS_PHP_VERSION != hhvm ]]; then echo "memory_limit=-1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; fi;
@ -53,3 +56,5 @@ script:
- travis_wait composer update --no-interaction --no-progress
- ant prepare-$DB
- bin/phpunit -v
- if [ "$CS_FIXER" = "run" ]; then php bin/php-cs-fixer fix src/ --verbose --dry-run ; fi;
- if [ "$VALIDATE_TRANSLATION_FILE" = "run" ]; then php bin/console lint:yaml src/Wallabag/CoreBundle/Resources/translations -v ; fi;

96
CHANGELOG.md Normal file
View File

@ -0,0 +1,96 @@
# Changelog
All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
## [2.0.3] - 2016-04-22
### Added
- [#1962](https://github.com/wallabag/wallabag/pull/1962) cURL examples in documentation about API (Dirk Deimeke)
### Fixed
- Forgot `composer.lock` file in 2.0.2 release so some users may encounter `Fatal error: Out of memory` error during installation
## [2.0.2] - 2016-04-21
### Added
- [#1945](https://github.com/wallabag/wallabag/pull/1945) cURL examples in documentation about API (Dirk Deimeke)
- [#1911](https://github.com/wallabag/wallabag/pull/1911) Add title hover on entry titles (Thomas Citharel)
### Changed
- [#1944](https://github.com/wallabag/wallabag/pull/1944), [#1953](https://github.com/wallabag/wallabag/pull/1953), [#1954](https://github.com/wallabag/wallabag/pull/1954) Due to branches renaming, update documentation and configuration (maxi62330, Nicolas Lœuillet)
- [#1942](https://github.com/wallabag/wallabag/pull/1942) Optimize import (Nicolas Lœuillet)
- [#1935](https://github.com/wallabag/wallabag/pull/1935) Update spanish translation (jami7)
- [#1929](https://github.com/wallabag/wallabag/pull/1929) Change guid and link in RSS feeds to give original entry URL (Nicolas Lœuillet)
- [#1918](https://github.com/wallabag/wallabag/pull/1918) Improve pagination when user has lot of entries (Nicolas Lœuillet)
- [#1916](https://github.com/wallabag/wallabag/pull/1916) Change PHP arrays and move test parameters in a separated file (Jeremy Benoist)
### Fixed
- [#1957](https://github.com/wallabag/wallabag/pull/1957) Fix translation for `Go to your account` button (Nicolas Lœuillet)
- [#1925](https://github.com/wallabag/wallabag/pull/1925) Redirect to homepage if refered is null (Nicolas Lœuillet)
- [#1912](https://github.com/wallabag/wallabag/pull/1912) Fix 500 Internal Server Error -> "Setting piwik_enabled couldn't be found" (Jeremy Benoist)
## [2.0.1] - 2016-04-11
### Added
- [Documentation about importing large file](http://doc.wallabag.org/en/v2/user/installation.html#installing-on-nginx) into nginx. (Nicolas Lœuillet)
- [Documentation about wallabag API](http://doc.wallabag.org/en/v2/developer/api.html) (Nicolas Lœuillet)
- [#1861](https://github.com/wallabag/wallabag/pull/1861) Round estimated time and add reading speed for Baggy (Nicolas Lœuillet)
- [Documentation about wallabag v1 CLI import](http://doc.wallabag.org/en/v2/user/migration.html#import-via-command-line-interface-cli) (Nicolas Lœuillet)
- [Add migrate link](http://doc.wallabag.org/en/v2/user/migration.html) in documentation (Nicolas Lœuillet)
### Changed
- [#1823](https://github.com/wallabag/wallabag/pull/1823) Persian translation (Masoud Abkenar)
- [#1901](https://github.com/wallabag/wallabag/pull/1901) Spanish translation (Jeremy Benoist)
- [#1879](https://github.com/wallabag/wallabag/pull/1879) Move tag form in Material theme (Nicolas Lœuillet)
### Fixed
- [#1903](https://github.com/wallabag/wallabag/pull/1903) Force server version to avoid connection error (Jeremy Benoist)
- [#1887](https://github.com/wallabag/wallabag/pull/1887) Fix duplicate article when added via the bookmarklet (Nicolas Lœuillet)
- [#1895](https://github.com/wallabag/wallabag/pull/1895) API: All the entries are fetched via GET /api/entries (Nicolas Lœuillet)
- [#1898](https://github.com/wallabag/wallabag/pull/1898) Fix estimated reading time in material view #1893 (Nicolas Lœuillet)
- [#1896](https://github.com/wallabag/wallabag/pull/1896) remove download_picture setting and manage show_printlink in material theme #1867 (Nicolas Lœuillet)
- [#1894](https://github.com/wallabag/wallabag/pull/1894) Fix documentation link in developer page (Nicolas Lœuillet)
- [#1891](https://github.com/wallabag/wallabag/pull/1891) Fix typo on configuration page (Nicolas Lœuillet)
- [#1884](https://github.com/wallabag/wallabag/pull/1884) Change the installation method in issue template (Nicolas Lœuillet)
- [#1844](https://github.com/wallabag/wallabag/pull/1844) Lock ocramius/proxy-manager (Jeremy Benoist)
- [#1840](https://github.com/wallabag/wallabag/pull/1840) Fix Archive page title translation (Nicolas Lœuillet)
- [#1801](https://github.com/wallabag/wallabag/pull/1804) Force user-agent for iansommerville.com (Jeremy Benoist)
### Removed
- [#1900](https://github.com/wallabag/wallabag/pull/1900) Remove empty portugese documentation (Nicolas Lœuillet)
- [#1868](https://github.com/wallabag/wallabag/pull/1868) Remove keyboard shortcut and add tagging rule panel in baggy (Nicolas Lœuillet)
- [#1824](https://github.com/wallabag/wallabag/pull/1824) Remove SMTP configuration environment overrides (Mathieu Bruyen)
## [2.0.0] - 2016-04-03
### Added
* save an article, read it, favorite it, archive it. (Hopefully)
* annotations: In each article you read, you can write annotations. ([read the doc](http://doc.wallabag.org/en/v2/user/annotations.html))
* filter entries by reading time, domain name, creation date, status, etc.
* assign tags to entries
* edit article titles
* a REST API ([you can have a look to the documentation](http://v2.wallabag.org/api/doc))
* authorization via oAuth2
* a new default theme, called `material`
* RSS feeds (with ability to limit number of articles)
* create a new account from the config page (for super admin only)
* recover passwords from login page (you have to fill your email on config page)
* picture preview, if available, is displayed for each entry
* Public registration
* migration from wallabag v1/v2 (based on JSON export) ([read the doc](http://doc.wallabag.org/en/v2/user/import.html))
* migration from Pocket (it works, but we need to implement asynchronous import: if you have too many articles, it can fail) ([read the doc](http://doc.wallabag.org/en/v2/user/import.html))
* exports in many formats (PDF, JSON, EPUB, MOBI, XML, CSV and TXT).
* 2-Factor authentication via email ([read the doc](http://doc.wallabag.org/en/v2/user/configuration.html#two-factor-authentication))
* Tagging rule: create a rule to automatically assign tags to entries! ([read the doc](http://doc.wallabag.org/en/v2/user/configuration.html#tagging-rules))
* Occitan, German, French, Turkish, Persian, Romanian, Polish, Danish, Spanish and English translations
* Quickstart for beginners (when you don't have any entries)
* Internal settings for administrator (the account created during installation)
* For 3rd apps developers, a developer page is available to create API token

View File

@ -8,8 +8,7 @@ Click, save and read it when you can. It extracts content so that you can read i
More informations on our website: [wallabag.org](https://wallabag.org)
# Want to test the v2?
Keep in mind it's an **unstable** branch, everything can be broken :)
# Install wallabag
If you don't have it yet, please [install composer](https://getcomposer.org/download/).
Then you can install wallabag by executing the following commands:
@ -17,7 +16,7 @@ Then you can install wallabag by executing the following commands:
```
git clone https://github.com/wallabag/wallabag.git
cd wallabag
git checkout 2.0.0-beta.2
git checkout 2.0.3
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console wallabag:install --env=prod
php bin/console server:run --env=prod

View File

@ -22,19 +22,22 @@ class AppKernel extends Kernel
new Nelmio\ApiDocBundle\NelmioApiDocBundle(),
new Nelmio\CorsBundle\NelmioCorsBundle(),
new Liip\ThemeBundle\LiipThemeBundle(),
new Wallabag\CoreBundle\WallabagCoreBundle(),
new Wallabag\ApiBundle\WallabagApiBundle(),
new Bazinga\Bundle\HateoasBundle\BazingaHateoasBundle(),
new Lexik\Bundle\FormFilterBundle\LexikFormFilterBundle(),
new FOS\OAuthServerBundle\FOSOAuthServerBundle(),
new Wallabag\UserBundle\WallabagUserBundle(),
new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
new Scheb\TwoFactorBundle\SchebTwoFactorBundle(),
new KPhoen\RulerZBundle\KPhoenRulerZBundle(),
new Wallabag\ImportBundle\WallabagImportBundle(),
new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
new Craue\ConfigBundle\CraueConfigBundle(),
new Lexik\Bundle\MaintenanceBundle\LexikMaintenanceBundle(),
new WhiteOctober\PagerfantaBundle\WhiteOctoberPagerfantaBundle(),
// wallabag bundles
new Wallabag\CoreBundle\WallabagCoreBundle(),
new Wallabag\ApiBundle\WallabagApiBundle(),
new Wallabag\UserBundle\WallabagUserBundle(),
new Wallabag\ImportBundle\WallabagImportBundle(),
new Wallabag\AnnotationBundle\WallabagAnnotationBundle(),
];

View File

@ -0,0 +1,29 @@
download_pictures: Bilder auf den Server herunterladen
carrot: Teilen zu Carrot aktivieren
diaspora_url: Diaspora-URL, sofern der Service aktiviert ist
export_epub: ePUB-Export aktivieren
export_mobi: .mobi-Export aktivieren
export_pdf: PDF-Export aktivieren
export_csv: CSV-Export aktivieren
export_json: JSON-Export aktivieren
export_txt: TXT-Export aktivieren
export_xml: XML-Export aktivieren
pocket_consumer_key: Consumer-Key für Pocket, um Inhalte zu importieren (https://getpocket.com/developer/docs/authentication)
shaarli_url: Shaarli-URL, sofern der Service aktiviert ist
share_diaspora: Teilen zu Diaspora aktiveren
share_mail: Teilen via E-Mail aktiveren
share_shaarli: Teilen zu Shaarli aktiveren
share_twitter: Teilen zu Twitter aktiveren
show_printlink: Link anzeigen, um den Inhalt auszudrucken
wallabag_support_url: Support-URL für wallabag
wallabag_url: URL von *deiner* wallabag-Instanz
entry: "Artikel"
export: "Export"
import: "Import"
misc: "Verschiedenes"
modify_settings: "Übernehmen"
piwik_host: Host deiner Webseite in Piwik
piwik_site_id: ID deiner Webseite in Piwik
piwik_enabled: Piwik aktivieren
demo_mode_enabled: "Test-Modus aktivieren? (nur für die öffentliche wallabag-Demo genutzt)"
demo_mode_username: "Test-Benutzer"

View File

@ -0,0 +1,29 @@
download_pictures: Telecargar los imatges sul servidor
carrot: Activar lo partatge cap a Carrot
diaspora_url: URL de Diaspora, se lo servici Diaspora es activat
export_epub: Activar l'expòrt ePub
export_mobi: Activar l'expòrt .mobi
export_pdf: Activar l'expòrt PDF
export_csv: Activar l'expòrt CSV
export_json: Activar l'expòrt JSON
export_txt: Activar l'expòrt TXT
export_xml: Activar l'expòrt XML
pocket_consumer_key: Clau d'autentificacion Pocket per importar las donadas (https://getpocket.com/developer/docs/authentication)
shaarli_url: URL de Shaarli, se lo servici Shaarli es activat
share_diaspora: Activar lo partatge cap a Diaspora
share_mail: Activar lo partatge per corrièl
share_shaarli: Activar lo partatge cap a Shaarli
share_twitter: Activar lo partatge cap a Twitter
show_printlink: Afichar un ligam per imprimir
wallabag_support_url: URL d'assisténcia de wallabag
wallabag_url: URL de *vòstra* instància de wallabag
entry: "article"
export: "expòrt"
import: "impòrt"
misc: "divèrs"
modify_settings: "aplicar"
piwik_host: URL de vòstre site dins Piwik
piwik_site_id: ID de vòstre site dins Piwik
piwik_enabled: Activar Piwik
demo_mode_enabled: "Activar lo mode demostracion ? (utilizar solament per la demostracion publica de wallabag)"
demo_mode_username: "Utilizaire de la demostracion"

View File

@ -0,0 +1,2 @@
Login: "Anmelden"
Enter your email address below and we'll send you password reset instructions.: "Tippe deine E-Mail-Adresse unten ein und wir senden dir die Anweisungen, wie du dein Kennwort zurücksetzen kannst."

View File

@ -0,0 +1,2 @@
Login: "Se connectar"
Enter your email address below and we'll send you password reset instructions.: "Picatz vòstra adreça de corrièl çai-jos, vos mandarem las instruccions per reïnicializar vòstre senhal."

View File

@ -0,0 +1,2 @@
Login: "Logowanie"
Enter your email address below and we'll send you password reset instructions.: "Wpisz poniżej swój adres email, abyśmy mogli wysłać ci instrukcję resetowania hasła."

View File

@ -1,2 +1,2 @@
set :branch, 'v2'
set :branch, 'master'
set :deploy_to, '/var/www/v2.wallabag.org/web/'

View File

@ -28,7 +28,7 @@ framework:
assets: ~
wallabag_core:
version: 2.0.0-beta.2
version: 2.0.3
paypal_url: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9UBA65LG3FX9Y&lc=gb"
languages:
en: 'English'
@ -40,10 +40,12 @@ wallabag_core:
pl: 'Polish'
da: 'Dansk'
es: 'Español'
oc: 'Occitan'
items_on_page: 12
theme: material
language: en
rss_limit: 50
reading_speed: 1
wallabag_import:
allow_mimetypes: ['application/octet-stream', 'application/json', 'text/plain']
@ -80,6 +82,7 @@ doctrine:
password: "%database_password%"
charset: UTF8
path: "%database_path%"
server_version: 5.6
orm:
auto_generate_proxy_classes: "%kernel.debug%"

View File

@ -1,5 +1,6 @@
imports:
- { resource: config_dev.yml }
- { resource: parameters_test.yml }
framework:
test: ~
@ -7,6 +8,8 @@ framework:
storage_id: session.storage.mock_file
profiler:
collect: false
translator:
enabled: false
web_profiler:
toolbar: false

View File

@ -19,14 +19,6 @@ parameters:
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
database_table_prefix: wallabag_
test_database_driver: pdo_sqlite
test_database_host: 127.0.0.1
test_database_port: ~
test_database_name: ~
test_database_user: ~
test_database_password: ~
test_database_path: "%kernel.root_dir%/../data/db/wallabag_test.sqlite"
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: ~

View File

@ -0,0 +1,8 @@
parameters:
test_database_driver: pdo_sqlite
test_database_host: 127.0.0.1
test_database_port: null
test_database_name: null
test_database_user: null
test_database_password: null
test_database_path: '%kernel.root_dir%/../data/db/wallabag_testYO.sqlite'

View File

@ -6,7 +6,7 @@ services:
filesystem_cache:
class: Doctrine\Common\Cache\FilesystemCache
arguments:
- %kernel.cache_dir%/doctrine/metadata
- "%kernel.cache_dir%/doctrine/metadata"
twig.extension.text:
class: Twig_Extensions_Extension_Text

View File

@ -1,37 +0,0 @@
# This file is a "template" of what your parameters.yml file should look like
parameters:
database_driver: pdo_sqlite
database_host: 127.0.0.1
database_port: ~
database_name: symfony
database_user: root
database_password: ~
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
database_table_prefix: wallabag_
test_database_driver: pdo_mysql
test_database_host: localhost
test_database_port: 3306
test_database_name: wallabag_test
test_database_user: root
test_database_password: ~
test_database_path: ~
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: ~
mailer_password: ~
locale: en
# A secret key that's used to generate certain security-related tokens
secret: ThisTokenIsNotSoSecretChangeIt
# two factor stuff
twofactor_auth: true
twofactor_sender: no-reply@wallabag.org
# fosuser stuff
fosuser_confirmation: true
from_email: no-reply@wallabag.org

View File

@ -1,37 +0,0 @@
# This file is a "template" of what your parameters.yml file should look like
parameters:
database_driver: pdo_sqlite
database_host: 127.0.0.1
database_port: ~
database_name: symfony
database_user: root
database_password: ~
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
database_table_prefix: wallabag_
test_database_driver: pdo_pgsql
test_database_host: localhost
test_database_port:
test_database_name: wallabag_test
test_database_user: travis
test_database_password: ~
test_database_path: ~
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: ~
mailer_password: ~
locale: en
# A secret key that's used to generate certain security-related tokens
secret: ThisTokenIsNotSoSecretChangeIt
# two factor stuff
twofactor_auth: true
twofactor_sender: no-reply@wallabag.org
# fosuser stuff
fosuser_confirmation: true
from_email: no-reply@wallabag.org

View File

@ -1,37 +0,0 @@
# This file is a "template" of what your parameters.yml file should look like
parameters:
database_driver: pdo_sqlite
database_host: 127.0.0.1
database_port: ~
database_name: symfony
database_user: root
database_password: ~
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
database_table_prefix: wallabag_
test_database_driver: pdo_sqlite
test_database_host: localhost
test_database_port:
test_database_name: ~
test_database_user: ~
test_database_password: ~
test_database_path: "%kernel.root_dir%/../data/db/wallabag_test.sqlite"
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: ~
mailer_password: ~
locale: en
# A secret key that's used to generate certain security-related tokens
secret: ThisTokenIsNotSoSecretChangeIt
# two factor stuff
twofactor_auth: true
twofactor_sender: no-reply@wallabag.org
# fosuser stuff
fosuser_confirmation: true
from_email: no-reply@wallabag.org

View File

@ -0,0 +1,8 @@
parameters:
test_database_driver: pdo_mysql
test_database_host: localhost
test_database_port: 3306
test_database_name: wallabag_test
test_database_user: root
test_database_password: ~
test_database_path: ~

View File

@ -0,0 +1,8 @@
parameters:
test_database_driver: pdo_pgsql
test_database_host: localhost
test_database_port:
test_database_name: wallabag_test
test_database_user: travis
test_database_password: ~
test_database_path: ~

View File

@ -0,0 +1,8 @@
parameters:
test_database_driver: pdo_sqlite
test_database_host: localhost
test_database_port:
test_database_name: ~
test_database_user: ~
test_database_password: ~
test_database_path: "%kernel.root_dir%/../data/db/wallabag_testHU.sqlite"

1
bin/php-cs-fixer Symbolic link
View File

@ -0,0 +1 @@
../vendor/fabpot/php-cs-fixer/php-cs-fixer

View File

@ -42,8 +42,8 @@
<target name="db_mysql" description="Run test for MySQL">
<delete dir="${basedir}/app/config/parameters.yml"/>
<exec executable="cp">
<arg value="${basedir}/app/config/tests/parameters.yml.dist.mysql"/>
<arg value="${basedir}/app/config/parameters.yml"/>
<arg value="${basedir}/app/config/tests/parameters_test.mysql.yml"/>
<arg value="${basedir}/app/config/parameters_test.yml"/>
</exec>
<exec executable="php">
@ -56,8 +56,8 @@
<target name="db_sqlite" description="Run test for SQLite">
<delete dir="${basedir}/app/config/parameters.yml"/>
<exec executable="cp">
<arg value="${basedir}/app/config/tests/parameters.yml.dist.sqlite"/>
<arg value="${basedir}/app/config/parameters.yml"/>
<arg value="${basedir}/app/config/tests/parameters_test.sqlite.yml"/>
<arg value="${basedir}/app/config/parameters_test.yml"/>
</exec>
<exec executable="php">
@ -70,8 +70,8 @@
<target name="db_pgsql" description="Run test for PostgreSQL">
<delete dir="${basedir}/app/config/parameters.yml"/>
<exec executable="cp">
<arg value="${basedir}/app/config/tests/parameters.yml.dist.pgsql"/>
<arg value="${basedir}/app/config/parameters.yml"/>
<arg value="${basedir}/app/config/tests/parameters_test.pgsql.yml"/>
<arg value="${basedir}/app/config/parameters_test.yml"/>
</exec>
<exec executable="php">

View File

@ -58,7 +58,6 @@
"friendsofsymfony/rest-bundle": "~1.4",
"jms/serializer-bundle": "~1.0",
"nelmio/api-doc-bundle": "~2.7",
"ezyang/htmlpurifier": "~4.6",
"mgargano/simplehtmldom": "~1.5",
"tecnickcom/tcpdf": "~6.2",
"simplepie/simplepie": "~1.3.1",
@ -80,20 +79,20 @@
"paragonie/random_compat": "~1.0",
"craue/config-bundle": "~1.4",
"mnapoli/piwik-twig-extension": "^1.0",
"lexik/maintenance-bundle": "~2.1"
"lexik/maintenance-bundle": "~2.1",
"ocramius/proxy-manager": "1.*",
"white-october/pagerfanta-bundle": "^1.0"
},
"require-dev": {
"doctrine/doctrine-fixtures-bundle": "~2.2",
"sensio/generator-bundle": "^3.0",
"phpunit/phpunit": "~4.4",
"symfony/phpunit-bridge": "^2.7"
"symfony/phpunit-bridge": "^2.7",
"fabpot/php-cs-fixer": "~1.9"
},
"scripts": {
"build-parameters": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters"
],
"post-cmd": [
"@build-parameters",
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
@ -115,13 +114,7 @@
"symfony-tests-dir": "tests",
"symfony-assets-install": "relative",
"incenteev-parameters": {
"file": "app/config/parameters.yml",
"env-map": {
"mailer_host": "WALLABAG_MAILER_HOST",
"mailer_user": "WALLABAG_MAILER_USER",
"mailer_password": "WALLABAG_MAILER_PASSWORD",
"secret": "WALLABAG_SECRET"
}
"file": "app/config/parameters.yml"
}
},
"autoload": {

326
composer.lock generated
View File

@ -4,8 +4,8 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "e3aeeae0e8d73fc682d2f5a5e710d411",
"content-hash": "bdb2cdbe68aa6ef654fd8c67764e8ebb",
"hash": "13098bd7c43a673e99a14d6ed8148962",
"content-hash": "ed86235df64938684b50427919c0aea7",
"packages": [
{
"name": "behat/transliterator",
@ -857,16 +857,16 @@
},
{
"name": "doctrine/migrations",
"version": "v1.4.0",
"version": "1.4.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/migrations.git",
"reference": "abc571dadd45df42f19baac7a0a1a371216dd93d"
"reference": "0d0ff5da10c5d30846da32060bd9e357abf70a05"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/migrations/zipball/abc571dadd45df42f19baac7a0a1a371216dd93d",
"reference": "abc571dadd45df42f19baac7a0a1a371216dd93d",
"url": "https://api.github.com/repos/doctrine/migrations/zipball/0d0ff5da10c5d30846da32060bd9e357abf70a05",
"reference": "0d0ff5da10c5d30846da32060bd9e357abf70a05",
"shasum": ""
},
"require": {
@ -926,7 +926,7 @@
"database",
"migrations"
],
"time": "2016-02-23 15:28:39"
"time": "2016-03-14 12:29:11"
},
{
"name": "doctrine/orm",
@ -1004,50 +1004,6 @@
],
"time": "2016-01-05 21:34:58"
},
{
"name": "ezyang/htmlpurifier",
"version": "v4.7.0",
"source": {
"type": "git",
"url": "https://github.com/ezyang/htmlpurifier.git",
"reference": "ae1828d955112356f7677c465f94f7deb7d27a40"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/ae1828d955112356f7677c465f94f7deb7d27a40",
"reference": "ae1828d955112356f7677c465f94f7deb7d27a40",
"shasum": ""
},
"require": {
"php": ">=5.2"
},
"type": "library",
"autoload": {
"psr-0": {
"HTMLPurifier": "library/"
},
"files": [
"library/HTMLPurifier.composer.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL"
],
"authors": [
{
"name": "Edward Z. Yang",
"email": "admin@htmlpurifier.org",
"homepage": "http://ezyang.com"
}
],
"description": "Standards compliant HTML filter written in PHP",
"homepage": "http://htmlpurifier.org/",
"keywords": [
"html"
],
"time": "2015-08-05 01:03:42"
},
{
"name": "friendsofsymfony/oauth-server-bundle",
"version": "1.5.2",
@ -1122,16 +1078,16 @@
},
{
"name": "friendsofsymfony/oauth2-php",
"version": "1.2.0",
"version": "1.2.1",
"source": {
"type": "git",
"url": "https://github.com/FriendsOfSymfony/oauth2-php.git",
"reference": "4ae0a2aa85566146ef6f0f7169854c49e0c9243a"
"reference": "fa2aecb1fca2a03fd5f9aca19fe9adb9dfff928c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/FriendsOfSymfony/oauth2-php/zipball/4ae0a2aa85566146ef6f0f7169854c49e0c9243a",
"reference": "4ae0a2aa85566146ef6f0f7169854c49e0c9243a",
"url": "https://api.github.com/repos/FriendsOfSymfony/oauth2-php/zipball/fa2aecb1fca2a03fd5f9aca19fe9adb9dfff928c",
"reference": "fa2aecb1fca2a03fd5f9aca19fe9adb9dfff928c",
"shasum": ""
},
"require": {
@ -1144,7 +1100,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.1.x-dev"
"dev-master": "1.2.x-dev"
}
},
"autoload": {
@ -1172,7 +1128,7 @@
"oauth",
"oauth2"
],
"time": "2015-12-21 11:32:17"
"time": "2016-03-31 14:24:17"
},
{
"name": "friendsofsymfony/rest-bundle",
@ -1453,16 +1409,16 @@
},
{
"name": "grandt/phpepub",
"version": "v4.0.6",
"version": "4.0.7.1",
"source": {
"type": "git",
"url": "https://github.com/Grandt/PHPePub.git",
"reference": "05d309052ddeaf38dea89bae72c6016f27b61108"
"reference": "ccb501e566358ac19a9fedb6eb8bf96665823452"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Grandt/PHPePub/zipball/05d309052ddeaf38dea89bae72c6016f27b61108",
"reference": "05d309052ddeaf38dea89bae72c6016f27b61108",
"url": "https://api.github.com/repos/Grandt/PHPePub/zipball/ccb501e566358ac19a9fedb6eb8bf96665823452",
"reference": "ccb501e566358ac19a9fedb6eb8bf96665823452",
"shasum": ""
},
"require": {
@ -1498,7 +1454,7 @@
"e-book",
"epub"
],
"time": "2016-03-08 21:46:00"
"time": "2016-03-16 15:48:26"
},
{
"name": "grandt/phpresizegif",
@ -1952,16 +1908,16 @@
},
{
"name": "hoa/event",
"version": "1.16.01.11",
"version": "1.16.03.15",
"source": {
"type": "git",
"url": "https://github.com/hoaproject/Event.git",
"reference": "4470e090207336c01ea0cc6f9f1fa8832e4d9866"
"reference": "b1577069d63d6efc559406f3bc31813ac33e76b8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hoaproject/Event/zipball/4470e090207336c01ea0cc6f9f1fa8832e4d9866",
"reference": "4470e090207336c01ea0cc6f9f1fa8832e4d9866",
"url": "https://api.github.com/repos/hoaproject/Event/zipball/b1577069d63d6efc559406f3bc31813ac33e76b8",
"reference": "b1577069d63d6efc559406f3bc31813ac33e76b8",
"shasum": ""
},
"require": {
@ -2004,7 +1960,7 @@
"listener",
"observer"
],
"time": "2016-01-11 08:34:41"
"time": "2016-03-15 14:49:59"
},
{
"name": "hoa/exception",
@ -2124,16 +2080,16 @@
},
{
"name": "hoa/iterator",
"version": "2.16.01.11",
"version": "2.16.03.15",
"source": {
"type": "git",
"url": "https://github.com/hoaproject/Iterator.git",
"reference": "eed36f2ec8233f494fd4450d570453b9a84736da"
"reference": "60bdefab8db17717871a11101dedec60572f95b8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hoaproject/Iterator/zipball/eed36f2ec8233f494fd4450d570453b9a84736da",
"reference": "eed36f2ec8233f494fd4450d570453b9a84736da",
"url": "https://api.github.com/repos/hoaproject/Iterator/zipball/60bdefab8db17717871a11101dedec60572f95b8",
"reference": "60bdefab8db17717871a11101dedec60572f95b8",
"shasum": ""
},
"require": {
@ -2174,7 +2130,7 @@
"iterator",
"library"
],
"time": "2016-01-11 09:13:46"
"time": "2016-03-15 14:51:54"
},
{
"name": "hoa/math",
@ -2359,16 +2315,16 @@
},
{
"name": "hoa/ruler",
"version": "2.16.01.15",
"version": "2.16.04.06",
"source": {
"type": "git",
"url": "https://github.com/hoaproject/Ruler.git",
"reference": "0aeb1a48d78427a55fbf656c65c6406c096a4325"
"url": "git@github.com:hoaproject/Ruler.git",
"reference": "9528f5ed84081f83310a65e21754edb4fdc60822"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hoaproject/Ruler/zipball/0aeb1a48d78427a55fbf656c65c6406c096a4325",
"reference": "0aeb1a48d78427a55fbf656c65c6406c096a4325",
"url": "https://api.github.com/repos/hoaproject/Ruler/zipball/9528f5ed84081f83310a65e21754edb4fdc60822",
"reference": "9528f5ed84081f83310a65e21754edb4fdc60822",
"shasum": ""
},
"require": {
@ -2376,6 +2332,7 @@
"hoa/consistency": "~1.0",
"hoa/exception": "~1.0",
"hoa/file": "~1.0",
"hoa/protocol": "~1.0",
"hoa/visitor": "~2.0"
},
"require-dev": {
@ -2412,7 +2369,7 @@
"library",
"ruler"
],
"time": "2016-01-14 21:42:47"
"time": "2016-04-06 08:55:04"
},
{
"name": "hoa/stream",
@ -2592,16 +2549,16 @@
},
{
"name": "hoa/zformat",
"version": "1.16.01.14",
"version": "1.16.03.15",
"source": {
"type": "git",
"url": "https://github.com/hoaproject/Zformat.git",
"reference": "685bba314c5cacb97afdd5e638b64c42399a580c"
"reference": "d261637aa6f4485d697ebcb898a379f7a34b4e34"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hoaproject/Zformat/zipball/685bba314c5cacb97afdd5e638b64c42399a580c",
"reference": "685bba314c5cacb97afdd5e638b64c42399a580c",
"url": "https://api.github.com/repos/hoaproject/Zformat/zipball/d261637aa6f4485d697ebcb898a379f7a34b4e34",
"reference": "d261637aa6f4485d697ebcb898a379f7a34b4e34",
"shasum": ""
},
"require": {
@ -2640,7 +2597,7 @@
"parameter",
"zformat"
],
"time": "2016-01-14 20:19:54"
"time": "2016-03-15 14:55:30"
},
{
"name": "htmlawed/htmlawed",
@ -2797,16 +2754,16 @@
},
{
"name": "j0k3r/graby-site-config",
"version": "1.0.14",
"version": "1.0.16",
"source": {
"type": "git",
"url": "https://github.com/j0k3r/graby-site-config.git",
"reference": "bd9b8555b72a23b1dcaa47ec9072eadc6507a311"
"reference": "553fb65e75f2df9514f606758f105855994abaec"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/j0k3r/graby-site-config/zipball/bd9b8555b72a23b1dcaa47ec9072eadc6507a311",
"reference": "bd9b8555b72a23b1dcaa47ec9072eadc6507a311",
"url": "https://api.github.com/repos/j0k3r/graby-site-config/zipball/553fb65e75f2df9514f606758f105855994abaec",
"reference": "553fb65e75f2df9514f606758f105855994abaec",
"shasum": ""
},
"require": {
@ -2829,7 +2786,7 @@
}
],
"description": "Graby site config files",
"time": "2016-02-29 12:02:57"
"time": "2016-04-10 19:15:54"
},
{
"name": "j0k3r/php-readability",
@ -3231,16 +3188,16 @@
},
{
"name": "kphoen/rulerz",
"version": "0.18.1",
"version": "0.19.1",
"source": {
"type": "git",
"url": "https://github.com/K-Phoen/rulerz.git",
"reference": "7228f1378c260e9c272f90ea191ac9d7959c98a7"
"reference": "41236e2d1936ed4adfa126957e13017f728d4eca"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/K-Phoen/rulerz/zipball/7228f1378c260e9c272f90ea191ac9d7959c98a7",
"reference": "7228f1378c260e9c272f90ea191ac9d7959c98a7",
"url": "https://api.github.com/repos/K-Phoen/rulerz/zipball/41236e2d1936ed4adfa126957e13017f728d4eca",
"reference": "41236e2d1936ed4adfa126957e13017f728d4eca",
"shasum": ""
},
"require": {
@ -3297,7 +3254,7 @@
"doctrine",
"specification"
],
"time": "2016-02-19 21:44:56"
"time": "2016-03-18 08:34:34"
},
{
"name": "kphoen/rulerz-bundle",
@ -3489,16 +3446,16 @@
},
{
"name": "lexik/maintenance-bundle",
"version": "v2.1.0",
"version": "v2.1.1",
"source": {
"type": "git",
"url": "https://github.com/lexik/LexikMaintenanceBundle.git",
"reference": "722b5be3f5d97c3f482a15d70f7a3eacd212a36d"
"reference": "01c2763f1f2012958d4b43bbb87daf96b0316706"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/lexik/LexikMaintenanceBundle/zipball/722b5be3f5d97c3f482a15d70f7a3eacd212a36d",
"reference": "722b5be3f5d97c3f482a15d70f7a3eacd212a36d",
"url": "https://api.github.com/repos/lexik/LexikMaintenanceBundle/zipball/01c2763f1f2012958d4b43bbb87daf96b0316706",
"reference": "01c2763f1f2012958d4b43bbb87daf96b0316706",
"shasum": ""
},
"require": {
@ -3544,7 +3501,7 @@
"bundle",
"maintenance"
],
"time": "2016-02-22 08:01:18"
"time": "2016-03-15 09:38:32"
},
{
"name": "liip/theme-bundle",
@ -3736,16 +3693,16 @@
},
{
"name": "monolog/monolog",
"version": "1.18.0",
"version": "1.19.0",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
"reference": "e19b764b5c855580e8ffa7e615f72c10fd2f99cc"
"reference": "5f56ed5212dc509c8dc8caeba2715732abb32dbf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/e19b764b5c855580e8ffa7e615f72c10fd2f99cc",
"reference": "e19b764b5c855580e8ffa7e615f72c10fd2f99cc",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/5f56ed5212dc509c8dc8caeba2715732abb32dbf",
"reference": "5f56ed5212dc509c8dc8caeba2715732abb32dbf",
"shasum": ""
},
"require": {
@ -3760,13 +3717,13 @@
"doctrine/couchdb": "~1.0@dev",
"graylog2/gelf-php": "~1.0",
"jakub-onderka/php-parallel-lint": "0.9",
"php-amqplib/php-amqplib": "~2.4",
"php-console/php-console": "^3.1.3",
"phpunit/phpunit": "~4.5",
"phpunit/phpunit-mock-objects": "2.3.0",
"raven/raven": "^0.13",
"ruflin/elastica": ">=0.90 <3.0",
"swiftmailer/swiftmailer": "~5.3",
"videlalvaro/php-amqplib": "~2.4"
"swiftmailer/swiftmailer": "~5.3"
},
"suggest": {
"aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
@ -3775,11 +3732,11 @@
"ext-mongo": "Allow sending log messages to a MongoDB server",
"graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
"mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
"php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
"php-console/php-console": "Allow sending log messages to Google Chrome",
"raven/raven": "Allow sending log messages to a Sentry server",
"rollbar/rollbar": "Allow sending log messages to Rollbar",
"ruflin/elastica": "Allow sending log messages to an Elastic Search server",
"videlalvaro/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib"
"ruflin/elastica": "Allow sending log messages to an Elastic Search server"
},
"type": "library",
"extra": {
@ -3810,7 +3767,7 @@
"logging",
"psr-3"
],
"time": "2016-03-01 18:00:40"
"time": "2016-04-12 18:29:35"
},
{
"name": "neitanod/forceutf8",
@ -3848,17 +3805,17 @@
},
{
"name": "nelmio/api-doc-bundle",
"version": "2.11.2",
"version": "2.12.0",
"target-dir": "Nelmio/ApiDocBundle",
"source": {
"type": "git",
"url": "https://github.com/nelmio/NelmioApiDocBundle.git",
"reference": "1ae2cfa9a50279d722d6b6e7b02322cef948d55d"
"reference": "6793b701570f5f426678309910b2440c8f5d1d9e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nelmio/NelmioApiDocBundle/zipball/1ae2cfa9a50279d722d6b6e7b02322cef948d55d",
"reference": "1ae2cfa9a50279d722d6b6e7b02322cef948d55d",
"url": "https://api.github.com/repos/nelmio/NelmioApiDocBundle/zipball/6793b701570f5f426678309910b2440c8f5d1d9e",
"reference": "6793b701570f5f426678309910b2440c8f5d1d9e",
"shasum": ""
},
"require": {
@ -3871,6 +3828,7 @@
"conflict": {
"jms/serializer": "<0.12",
"jms/serializer-bundle": "<0.11",
"symfony/symfony": "~2.7.8",
"twig/twig": "<1.12"
},
"require-dev": {
@ -3899,7 +3857,7 @@
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "2.11-dev"
"dev-master": "2.12-dev"
}
},
"autoload": {
@ -3928,7 +3886,7 @@
"documentation",
"rest"
],
"time": "2015-12-16 15:17:51"
"time": "2016-03-21 11:19:12"
},
{
"name": "nelmio/cors-bundle",
@ -4119,16 +4077,16 @@
},
{
"name": "paragonie/random_compat",
"version": "v1.2.2",
"version": "v1.4.1",
"source": {
"type": "git",
"url": "https://github.com/paragonie/random_compat.git",
"reference": "b3313b618f4edd76523572531d5d7e22fe747430"
"reference": "c7e26a21ba357863de030f0b9e701c7d04593774"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/b3313b618f4edd76523572531d5d7e22fe747430",
"reference": "b3313b618f4edd76523572531d5d7e22fe747430",
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/c7e26a21ba357863de030f0b9e701c7d04593774",
"reference": "c7e26a21ba357863de030f0b9e701c7d04593774",
"shasum": ""
},
"require": {
@ -4163,7 +4121,7 @@
"pseudorandom",
"random"
],
"time": "2016-03-11 19:54:08"
"time": "2016-03-18 20:34:03"
},
{
"name": "phpcollection/phpcollection",
@ -4366,16 +4324,16 @@
},
{
"name": "react/promise",
"version": "v2.2.2",
"version": "v2.4.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/promise.git",
"reference": "3aacad8bf10c7d83e6fa2089d413529888c2bedf"
"reference": "f942da7b505d1a294284ab343d05df42d02ad6d9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/promise/zipball/3aacad8bf10c7d83e6fa2089d413529888c2bedf",
"reference": "3aacad8bf10c7d83e6fa2089d413529888c2bedf",
"url": "https://api.github.com/repos/reactphp/promise/zipball/f942da7b505d1a294284ab343d05df42d02ad6d9",
"reference": "f942da7b505d1a294284ab343d05df42d02ad6d9",
"shasum": ""
},
"require": {
@ -4406,20 +4364,20 @@
}
],
"description": "A lightweight implementation of CommonJS Promises/A for PHP",
"time": "2016-02-26 19:09:02"
"time": "2016-03-31 13:10:33"
},
{
"name": "scheb/two-factor-bundle",
"version": "v2.1.0",
"version": "v2.2.0",
"source": {
"type": "git",
"url": "https://github.com/scheb/two-factor-bundle.git",
"reference": "949f00ece5aabc1b6f38a81ab05fe73dcd406c91"
"reference": "524faa717bdc3c8823e045e8fd8c23b6a2b4dcac"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/scheb/two-factor-bundle/zipball/949f00ece5aabc1b6f38a81ab05fe73dcd406c91",
"reference": "949f00ece5aabc1b6f38a81ab05fe73dcd406c91",
"url": "https://api.github.com/repos/scheb/two-factor-bundle/zipball/524faa717bdc3c8823e045e8fd8c23b6a2b4dcac",
"reference": "524faa717bdc3c8823e045e8fd8c23b6a2b4dcac",
"shasum": ""
},
"require": {
@ -4457,20 +4415,20 @@
"two-factor",
"two-step"
],
"time": "2016-02-14 14:03:21"
"time": "2016-03-21 14:47:17"
},
{
"name": "sensio/distribution-bundle",
"version": "v5.0.4",
"version": "v5.0.5",
"source": {
"type": "git",
"url": "https://github.com/sensiolabs/SensioDistributionBundle.git",
"reference": "2c167426fc24f9de116345195bc1697a748ee847"
"reference": "3a160355bb1364da55ed9e415c1aa1fa8d457b6f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/2c167426fc24f9de116345195bc1697a748ee847",
"reference": "2c167426fc24f9de116345195bc1697a748ee847",
"url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/3a160355bb1364da55ed9e415c1aa1fa8d457b6f",
"reference": "3a160355bb1364da55ed9e415c1aa1fa8d457b6f",
"shasum": ""
},
"require": {
@ -4509,20 +4467,20 @@
"configuration",
"distribution"
],
"time": "2016-02-12 16:21:30"
"time": "2016-03-15 16:21:41"
},
{
"name": "sensio/framework-extra-bundle",
"version": "v3.0.14",
"version": "v3.0.16",
"source": {
"type": "git",
"url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git",
"reference": "cccf975c565ccd835bddc30a8fea5cdfe3357bf1"
"reference": "507a15f56fa7699f6cc8c2c7de4080b19ce22546"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/cccf975c565ccd835bddc30a8fea5cdfe3357bf1",
"reference": "cccf975c565ccd835bddc30a8fea5cdfe3357bf1",
"url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/507a15f56fa7699f6cc8c2c7de4080b19ce22546",
"reference": "507a15f56fa7699f6cc8c2c7de4080b19ce22546",
"shasum": ""
},
"require": {
@ -4571,7 +4529,7 @@
"annotations",
"controllers"
],
"time": "2016-03-01 10:50:07"
"time": "2016-03-25 17:08:27"
},
{
"name": "sensiolabs/security-checker",
@ -4880,16 +4838,16 @@
},
{
"name": "symfony/assetic-bundle",
"version": "v2.7.1",
"version": "v2.8.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/assetic-bundle.git",
"reference": "d885ec8451d5a7b077bda81bb19ac9fbff9cdc76"
"reference": "aa5b4f8b712f38745928fa845ddb73300bb2af6d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/assetic-bundle/zipball/d885ec8451d5a7b077bda81bb19ac9fbff9cdc76",
"reference": "d885ec8451d5a7b077bda81bb19ac9fbff9cdc76",
"url": "https://api.github.com/repos/symfony/assetic-bundle/zipball/aa5b4f8b712f38745928fa845ddb73300bb2af6d",
"reference": "aa5b4f8b712f38745928fa845ddb73300bb2af6d",
"shasum": ""
},
"require": {
@ -4946,24 +4904,24 @@
"compression",
"minification"
],
"time": "2015-11-17 09:45:47"
"time": "2015-12-28 13:12:39"
},
{
"name": "symfony/monolog-bundle",
"version": "v2.9.0",
"version": "2.11.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/monolog-bundle.git",
"reference": "27c2e3eaec7a0ba3462f99ea92678cbfc7b146e4"
"reference": "e7caf4936c7be82bc6d68df87f1d23a0d5bf6e00"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/27c2e3eaec7a0ba3462f99ea92678cbfc7b146e4",
"reference": "27c2e3eaec7a0ba3462f99ea92678cbfc7b146e4",
"url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/e7caf4936c7be82bc6d68df87f1d23a0d5bf6e00",
"reference": "e7caf4936c7be82bc6d68df87f1d23a0d5bf6e00",
"shasum": ""
},
"require": {
"monolog/monolog": "~1.12",
"monolog/monolog": "~1.18",
"php": ">=5.3.2",
"symfony/config": "~2.3|~3.0",
"symfony/dependency-injection": "~2.3|~3.0",
@ -4971,13 +4929,14 @@
"symfony/monolog-bridge": "~2.3|~3.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8",
"symfony/console": "~2.3|~3.0",
"symfony/yaml": "~2.3|~3.0"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "2.9.x-dev"
"dev-master": "2.x-dev"
}
},
"autoload": {
@ -5005,7 +4964,7 @@
"log",
"logging"
],
"time": "2016-03-01 17:53:42"
"time": "2016-04-13 16:21:01"
},
{
"name": "symfony/polyfill-intl-icu",
@ -5350,16 +5309,16 @@
},
{
"name": "symfony/symfony",
"version": "v3.0.3",
"version": "v3.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/symfony.git",
"reference": "09ae53562ce8b7842206efa217ec81442975f055"
"reference": "4e17cb2ecb3fd637097ebeb871fc0e2cbdd5e7ff"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/symfony/zipball/09ae53562ce8b7842206efa217ec81442975f055",
"reference": "09ae53562ce8b7842206efa217ec81442975f055",
"url": "https://api.github.com/repos/symfony/symfony/zipball/4e17cb2ecb3fd637097ebeb871fc0e2cbdd5e7ff",
"reference": "4e17cb2ecb3fd637097ebeb871fc0e2cbdd5e7ff",
"shasum": ""
},
"require": {
@ -5442,10 +5401,7 @@
},
"autoload": {
"psr-4": {
"Symfony\\Bridge\\Doctrine\\": "src/Symfony/Bridge/Doctrine/",
"Symfony\\Bridge\\Monolog\\": "src/Symfony/Bridge/Monolog/",
"Symfony\\Bridge\\ProxyManager\\": "src/Symfony/Bridge/ProxyManager/",
"Symfony\\Bridge\\Twig\\": "src/Symfony/Bridge/Twig/",
"Symfony\\Bridge\\": "src/Symfony/Bridge/",
"Symfony\\Bundle\\": "src/Symfony/Bundle/",
"Symfony\\Component\\": "src/Symfony/Component/"
},
@ -5475,7 +5431,7 @@
"keywords": [
"framework"
],
"time": "2016-02-28 21:33:29"
"time": "2016-03-30 10:41:14"
},
{
"name": "tecnickcom/tcpdf",
@ -5699,6 +5655,58 @@
"homepage": "https://github.com/wallabag/phpMobi",
"time": "2015-10-16 08:42:42"
},
{
"name": "white-october/pagerfanta-bundle",
"version": "v1.0.6",
"source": {
"type": "git",
"url": "https://github.com/whiteoctober/WhiteOctoberPagerfantaBundle.git",
"reference": "ada62843d9ba0d3aa61d0dcc7becdb25a2e2f545"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/whiteoctober/WhiteOctoberPagerfantaBundle/zipball/ada62843d9ba0d3aa61d0dcc7becdb25a2e2f545",
"reference": "ada62843d9ba0d3aa61d0dcc7becdb25a2e2f545",
"shasum": ""
},
"require": {
"pagerfanta/pagerfanta": "1.0.*",
"symfony/framework-bundle": "~2.3|~3.0",
"symfony/property-access": "~2.3|~3.0",
"symfony/twig-bundle": "~2.3|~3.0"
},
"require-dev": {
"phpunit/phpunit": "~3.7",
"symfony/symfony": "~2.3|~3.0"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"WhiteOctober\\PagerfantaBundle\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Pablo Díez",
"email": "pablodip@gmail.com"
}
],
"description": "Bundle to use Pagerfanta with Symfony2",
"keywords": [
"page",
"paging"
],
"time": "2016-03-16 19:24:56"
},
{
"name": "willdurand/hateoas",
"version": "2.9.1",

259
docs/en/developer/api.rst Normal file

File diff suppressed because one or more lines are too long

View File

@ -12,15 +12,15 @@ Translation files
As wallabag is mainly developed by a French team, please consider that french
translation is the most updated one and please copy it to create your own translation.
You can find translation files here: https://github.com/wallabag/wallabag/tree/v2/src/Wallabag/CoreBundle/Resources/translations.
You can find translation files here: https://github.com/wallabag/wallabag/tree/master/src/Wallabag/CoreBundle/Resources/translations.
You have to create ``messages.CODE.yml`` and ``validators.CODE.yml``, where CODE
You have to create ``messages.CODE.yml``, where CODE
is the ISO 639-1 code of your language (`see wikipedia <https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes>`__).
Other files to translate:
- https://github.com/wallabag/wallabag/tree/v2/app/Resources/CraueConfigBundle/translations.
- https://github.com/wallabag/wallabag/tree/v2/app/Resources/FOSUserBundle/translations.
- https://github.com/wallabag/wallabag/tree/master/app/Resources/CraueConfigBundle/translations.
- https://github.com/wallabag/wallabag/tree/master/app/Resources/FOSUserBundle/translations.
You have to create ``THE_TRANSLATION_FILE.CODE.yml`` files.
@ -28,7 +28,7 @@ Configuration file
~~~~~~~~~~~~~~~~~~
You have to edit `app/config/config.yml
<https://github.com/wallabag/wallabag/blob/v2/app/config/config.yml>`__ to display
<https://github.com/wallabag/wallabag/blob/master/app/config/config.yml>`__ to display
your language on Configuration page of wallabag (to allow users to switch to this new translation).
Under the ``wallabag_core.languages`` section, you have to add a new line with
@ -55,6 +55,6 @@ wallabag documentation
Contrary to the web application, the main language for documentation is english.
Documentation files are stored here: https://github.com/wallabag/wallabag/tree/v2/docs
Documentation files are stored here: https://github.com/wallabag/wallabag/tree/master/docs
You need to respect the ``en`` folder structure when you create your own translation.

View File

@ -24,6 +24,7 @@ The main documentation for this application is organized into a couple sections:
:caption: User documentation
user/installation
user/migration
user/create_account
user/login
user/configuration
@ -41,7 +42,7 @@ The main documentation for this application is organized into a couple sections:
:maxdepth: 2
:caption: Developer documentation
developer/api
developer/docker
developer/translate
developer/maintenance
developer/releasing

View File

@ -21,6 +21,12 @@ Items per page
You can change the number of articles displayed on each page.
Reading speed
~~~~~~~~~~~~~
wallabag calculates a reading time for each article. You can define here, thanks to this list, if you are
a fast or a slow reader. wallabag will recalculate the reading time for each article.
Language
~~~~~~~~

View File

@ -12,9 +12,9 @@ There may be several reasons:
How can I help to fix that?
---------------------------
- `by sending us an email with the article's URL <mailto:hello@wallabag.org>`_
- `by sending us an email with the article's URL <mailto:hello\@wallabag.org>`_
- by trying to fix this article by yourself :) by creating a file for the article.
You can use this tool http://siteconfig.fivefilters.org/.
You can use `this tool <http://siteconfig.fivefilters.org/>`__.
How can I try to re-fetch this article?
---------------------------------------

View File

@ -4,9 +4,9 @@ Install wallabag
Requirements
------------
wallabag is compatible with php >= 5.5, including php 7.
wallabag is compatible with PHP >= 5.5, including PHP 7.
You'll need the following extensions for wallabag to work. Some of these may already activated in your version of php, so you may not have to install all corresponding packages.
You'll need the following extensions for wallabag to work. Some of these may already activated in your version of PHP, so you may not have to install all corresponding packages.
- php-session
- php-ctype
@ -25,9 +25,9 @@ You'll need the following extensions for wallabag to work. Some of these may alr
wallabag uses PDO to connect to database, so you'll need one of:
- php-pdo_mysql
- php-pdo_sqlite
- php-pdo_pgsql
- pdo_mysql
- pdo_sqlite
- pdo_pgsql
and it's corresponding database server.
@ -42,7 +42,7 @@ Install Composer:
curl -s http://getcomposer.org/installer | php
You can find specific instructions here : __ https://getcomposer.org/doc/00-intro.md
You can find specific instructions `here <https://getcomposer.org/doc/00-intro.md>`__:
To install wallabag itself, you must run these two commands:
@ -50,7 +50,7 @@ To install wallabag itself, you must run these two commands:
git clone https://github.com/wallabag/wallabag.git
cd wallabag
git checkout 2.0.0-beta.2
git checkout 2.0.3
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console wallabag:install --env=prod
@ -62,6 +62,10 @@ To start php's build-in server and test if everything did install correctly, you
And access wallabag at http://yourserverip:8000
.. note::
To define parameters with environment variables, you have to set these variables with ``SYMFONY__`` prefix. For example, ``SYMFONY__DATABASE_DRIVER``. You can have a look to the `Symfony documentation <http://symfony.com/doc/current/cookbook/configuration/external_parameters.html>`__.
Installing on Apache
--------------------
@ -146,3 +150,7 @@ Assuming you install wallabag in the /var/www/wallabag folder, here's the recipe
}
After reloading or restarting nginx, you should now be able to access wallabag at http://domain.tld.
.. note::
When you want to import large file into wallabag, you need to add this line in your nginx configuration ``client_max_body_size XM; # allows file uploads up to X megabytes``.

View File

@ -0,0 +1,62 @@
Migrate wallabag
================
From wallabag 1.x
-----------------
If you were using wallabag v1.x, you need to export your data before migrating to wallabag v2.x, because the application and its database changed a lot. In your old wallabag installation, you can export your data, which can be done on the Config page of your old wallabag installation.
.. image:: ../../img/user/export_v1.png
:alt: Exporting from wallabag v1
:align: center
.. note::
If you have multiple accounts on the same instance of wallabag, each user must export from v1 and import into v2 its data.
.. note::
If you encounter issues during the export or the import, don't hesitate to `ask for support <https://www.wallabag.org/pages/support.html>`__.
When you have retrieved the json file containing your entries, you can install wallabag v2 if needed by following `the standard procedure <http://doc.wallabag.org/en/v2/user/installation.html>`__.
After creating an user account on your new wallabag v2 instance, you must head over to the `Import` section and select `Import from wallabag v1`. Select your json file and upload it.
.. image:: ../../img/user/import_wallabagv1.png
:alt: Import from wallabag v1
:align: center
Import via command-line interface (CLI)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you have a CLI access on your web server, you can execute this command to import your wallabag v1 export:
::
bin/console wallabag:import-v1 1 ~/Downloads/wallabag-export-1-2016-04-05.json --env=prod
Please replace values:
* ``1`` is the user identifier in database (The ID of the first user created on wallabag is 1)
* ``~/Downloads/wallabag-export-1-2016-04-05.json`` is the path of your wallabag v1 export
You'll have this in return:
::
Start : 05-04-2016 11:36:07 ---
403 imported
0 already saved
End : 05-04-2016 11:36:09 ---
From wallabag 2.x
-----------------
From the previous wallabag instance on which you were before, go to `All articles`, then export these articles as json.
.. image:: ../../img/user/export_v2.png
:alt: Export depuis wallabag v2
:align: center
From your new wallabag instance, create your user account and click on the link in the menu to proceed to import. Choose import from wallabag v2 and select your json file to upload it.
.. note::
If you encounter issues during the export or the import, don't hesitate to `ask for support <https://www.wallabag.org/pages/support.html>`__.

259
docs/fr/developer/api.rst Normal file

File diff suppressed because one or more lines are too long

View File

@ -13,15 +13,15 @@ Fichiers de traductions
cette traduction qui est considérée comme la plus récente. Merci de vous baser
sur celle-ci pour créer votre traduction.
Les principaux fichiers de traduction se trouvent ici : https://github.com/wallabag/wallabag/tree/v2/src/Wallabag/CoreBundle/Resources/translations.
Les principaux fichiers de traduction se trouvent ici : https://github.com/wallabag/wallabag/tree/master/src/Wallabag/CoreBundle/Resources/translations.
Vous devez créer les fichiers ``messages.CODE.yml`` et ``validators.CODE.yml``,
Vous devez créer le fichier ``messages.CODE.yml``,
où CODE est le code ISO 639-1 de votre langue (`cf wikipedia <https://fr.wikipedia.org/wiki/Liste_des_codes_ISO_639-1>`__).
Autres fichiers à traduire :
- https://github.com/wallabag/wallabag/tree/v2/app/Resources/CraueConfigBundle/translations.
- https://github.com/wallabag/wallabag/tree/v2/app/Resources/FOSUserBundle/translations.
- https://github.com/wallabag/wallabag/tree/master/app/Resources/CraueConfigBundle/translations.
- https://github.com/wallabag/wallabag/tree/master/app/Resources/FOSUserBundle/translations.
Vous devez créer les fichiers ``LE_FICHIER_DE_TRADUCTION.CODE.yml``.
@ -29,7 +29,7 @@ Fichier de configuration
~~~~~~~~~~~~~~~~~~~~~~~~
Vous devez éditer `app/config/config.yml
<https://github.com/wallabag/wallabag/blob/v2/app/config/config.yml>`__ pour
<https://github.com/wallabag/wallabag/blob/master/app/config/config.yml>`__ pour
afficher votre langue dans la page Configuration de wallabag (pour permettre aux
utilisateurs de choisir cette nouvelle traduction).
@ -57,6 +57,6 @@ Documentation de wallabag
Contrairement à l'application, la langue principale de la documentation est l'anglais
Les fichiers de documentation se trouvent ici : https://github.com/wallabag/wallabag/tree/v2/docs
Les fichiers de documentation se trouvent ici : https://github.com/wallabag/wallabag/tree/master/docs
Vous devez respecter la structure du dossier ``en`` quand vous crééz votre traduction.

View File

@ -25,6 +25,7 @@ La documentation principale de cette application est découpée en plusieurs sec
:caption: Documentation utilisateur
user/installation
user/migration
user/create_account
user/login
user/configuration
@ -42,6 +43,7 @@ La documentation principale de cette application est découpée en plusieurs sec
:maxdepth: 2
:caption: Documentation développeur
developer/api
developer/docker
developer/translate
developer/maintenance

View File

@ -22,6 +22,11 @@ Nombre d'articles par page
Vous pouvez définir le nombre d'articles affichés sur chaque page.
Vitesse de lecture
~~~~~~~~~~~~~~~~~~
wallabag calcule une durée de lecture pour chaque article. Vous pouvez définir ici, grâce à cette liste déroulante, si vous lisez plus ou moins vite. wallabag recalculera la durée de lecture de chaque article.
Langue
~~~~~~

View File

@ -12,9 +12,9 @@ Il peut y avoir plusieurs raisons :
Comment puis-je aider pour réparer ça ?
---------------------------------------
- `en nous envoyant un email avec l'URL de l'article <mailto:hello@wallabag.org>`_
- `en nous envoyant un email avec l'URL de l'article <mailto:hello\@wallabag.org>`_
- en essayant de réparer cet article par vous-même :) en créant un fichier pour l'article.
Vous pouvez utiliser cet outil http://siteconfig.fivefilters.org/.
Vous pouvez utiliser `cet outil <http://siteconfig.fivefilters.org/>`__.
Comment puis-je réessayer de récupérer le contenu ?
---------------------------------------------------

View File

@ -4,9 +4,9 @@ Installer wallabag
Pré-requis
------------
wallabag est compatible avec php >= 5.5, php 7 inclus.
wallabag est compatible avec PHP >= 5.5, PHP 7 inclus.
Vous aurez besoin des extensions suivantes pour que wallabag fonctionne. Il est possible que certaines de ces extensions soient déjà activées dans votre version de php, donc vous n'avez pas forcément besoin d'installer tous les paquets correspondants.
Vous aurez besoin des extensions suivantes pour que wallabag fonctionne. Il est possible que certaines de ces extensions soient déjà activées dans votre version de PHP, donc vous n'avez pas forcément besoin d'installer tous les paquets correspondants.
- php-session
- php-ctype
@ -25,9 +25,9 @@ Vous aurez besoin des extensions suivantes pour que wallabag fonctionne. Il est
wallabag utilise PDO afin de se connecter à une base de données, donc vous aurez besoin d'une extension et d'un système de bases de données parmi :
- php-pdo_mysql
- php-pdo_sqlite
- php-pdo_pgsql
- pdo_mysql
- pdo_sqlite
- pdo_pgsql
Installation
------------
@ -40,7 +40,7 @@ Installation de Composer :
curl -s http://getcomposer.org/installer | php
Vous pouvez trouver des instructions spécifiques ici (en anglais) : __ https://getcomposer.org/doc/00-intro.md
Vous pouvez trouver des instructions spécifiques `ici (en anglais) <https://getcomposer.org/doc/00-intro.md>`__ :
Pour installer wallabag, vous devez exécuter ces deux commandes :
@ -48,7 +48,7 @@ Pour installer wallabag, vous devez exécuter ces deux commandes :
git clone https://github.com/wallabag/wallabag.git
cd wallabag
git checkout 2.0.0-beta.2
git checkout 2.0.3
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console wallabag:install --env=prod
@ -60,6 +60,9 @@ Pour démarrer le serveur interne à php et vérifier que tout s'est installé c
Et accéder wallabag à l'adresse http://lipdevotreserveur:8000
.. note::
Pour définir des paramètres via des variables d'environnement, vous pouvez les spécifier avec le préfixe ``SYMFONY__``. Par exemple, ``SYMFONY__DATABASE_DRIVER``. Vous pouvez lire `documentation Symfony <http://symfony.com/doc/current/cookbook/configuration/external_parameters.html>`__ pour en savoir plus.
Installation avec Apache
------------------------
@ -144,3 +147,7 @@ En imaginant que vous vouliez installer wallabag dans le dossier /var/www/wallab
}
Après que vous ayez rechargé/redémarré Nginx, vous devriez pouvoir avoir accès à wallabag à l'adresse http://domain.tld.
.. note::
Si vous voulez importer un fichier important dans wallabag, vous devez ajouter cette ligne dans votre configuration nginx ``client_max_body_size XM; # allows file uploads up to X megabytes``.

View File

@ -0,0 +1,62 @@
Migrer wallabag
===============
Depuis wallabag 1.x
-------------------
Si vous utilisiez wallabag v1.x, vous devez exporter vos données avant de migrer à wallabag v2.x, à cause du changement complet de l'application et de sa base de données. Sur votre ancienne instance de wallabag v1, vous pouvez exporter vos données en allant sur la page de configuration de l'application.
.. image:: ../../img/user/export_v1.png
:alt: Export depuis wallabag v1
:align: center
.. note::
Si vous avez plusieurs comptes sur la même instance de wallabag, chaque utilisateur doit exporter ses données depuis wallabag v1 et les importer dans la v2.
.. note::
S'il vous arrive des problèmes durant l'export ou l'import, n'hésitez pas à `demander de l'aide <https://www.wallabag.org/pages/support.html>`__.
Une fois que vous avez récupéré le fichier json contenant vos données, vous pouvez installer wallabag v2 si c'est nécessaire en suivant `la procédure standard <http://doc.wallabag.org/fr/v2/user/installation.html>`__.
Une fois que vous avez créé un compte utilisateur sur votre nouvelle instance de wallabag v2, rendez-vous dans la section `Import`. Vous devez choisir l'import depuis wallabag v1 puis sélectionner votre fichier json récupéré précédemment.
.. image:: ../../img/user/import_wallabagv1.png
:alt: Import depuis wallabag v1
:align: center
Import via via la ligne de commande (CLI)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Si vous avez accès à la ligne de commandes de votre serveur web, vous pouvez exécuter cette commande pour import votre fichier wallabag v1 :
::
bin/console wallabag:import-v1 1 ~/Downloads/wallabag-export-1-2016-04-05.json --env=prod
Remplacez les valeurs :
* ``1`` est l'identifiant de votre utilisateur en base (l'ID de votre premier utilisateur créé sur wallabag est 1)
* ``~/Downloads/wallabag-export-1-2016-04-05.json`` est le chemin de votre export wallabag v1
Vous obtiendrez :
::
Start : 05-04-2016 11:36:07 ---
403 imported
0 already saved
End : 05-04-2016 11:36:09 ---
Depuis wallabag 2.x
-------------------
Depuis l'instance sur laquelle vous étiez, rendez-vous dans la section `Tous les articles`, puis exportez ces articles au format json.
.. image:: ../../img/user/export_v2.png
:alt: Export depuis wallabag v2
:align: center
Depuis votre nouvelle instance de wallabag, créez votre compte utilisateur puis cliquez sur le lien dans le menu pour accéder à l'import. Choisissez l'import depuis wallabag v2 puis sélectionnez votre fichier json pour l'uploader.
.. note::
S'il vous arrive des problèmes durant l'export ou l'import, n'hésitez pas à `demander de l'aide <https://www.wallabag.org/pages/support.html>`__.

BIN
docs/img/user/export_v1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
docs/img/user/export_v2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -1,55 +0,0 @@
# -*- coding: utf-8 -*-
#
# wallabag documentation build configuration file, created by
# sphinx-quickstart on Fri Oct 16 06:47:23 2015.
import sys
import os
extensions = []
templates_path = ['_templates']
source_suffix = '.rst'
master_doc = 'index'
project = u'wallabag-pt'
copyright = u'2013-2016, Nicolas Lœuillet - MIT Licence'
version = '2.0.0'
release = version
exclude_patterns = ['_build']
pygments_style = 'sphinx'
html_theme = 'default'
html_static_path = ['_static']
htmlhelp_basename = 'wallabagfrdoc'
latex_elements = {
}
latex_documents = [
('index', 'wallabag-pt.tex', u'wallabag Documentation',
u'Nicolas Lœuillet', 'manual'),
]
man_pages = [
('index', 'wallabagpt', u'wallabag Documentation',
[u'Nicolas Lœuillet'], 1)
]
texinfo_documents = [
('index', 'wallabag', u'wallabag Documentation',
u'Nicolas Lœuillet', 'wallabag', 'wallabag is an opensource read-it-later.',
'Miscellaneous'),
]
##### Guzzle sphinx theme
import guzzle_sphinx_theme
html_translator_class = 'guzzle_sphinx_theme.HTMLTranslator'
html_theme_path = guzzle_sphinx_theme.html_theme_path()
html_theme = 'guzzle_sphinx_theme'
# Custom sidebar templates, maps document names to template names.
html_sidebars = {
'**': ['logo-text.html', 'globaltoc.html', 'searchbox.html']
}
# Register the theme as an extension to generate a sitemap.xml
extensions.append("guzzle_sphinx_theme")

View File

@ -1,36 +0,0 @@
wallabag documentation
======================
.. image:: ../img/wallabag.png
:alt: wallabag logo
:align: center
**wallabag** É uma aplicação "leia mais tarde": Ele salva páginas da web mantendo apenas o conteúdo. Elementos como ícones de navegação ou propaganda são deletedos.
A documentação principal desta aplicação é organizada em duas seções:
* :ref:`doc-usuario`
* :ref:`doc-desenvolvedor`
.. _user-docs:
.. toctree::
:maxdepth: 2
:caption: Documentação do usuário
user/criar_conta
user/login
user/configuração
user/primeiro_artigo
user/importar
user/baixar_artigos
user/filtros
user/tags
.. _dev-docs:
.. toctree::
:maxdepth: 2
:caption: Documentação do desenvolvedor
developer/docker

View File

@ -1,2 +0,0 @@
Sphinx>=1.3.0,<1.4.0
guzzle_sphinx_theme>=0.7.0,<0.8.0

View File

@ -30,7 +30,7 @@ class WallabagAnnotationController extends FOSRestController
->getRepository('WallabagAnnotationBundle:Annotation')
->findAnnotationsByPageId($entry->getId(), $this->getUser()->getId());
$total = count($annotationRows);
$annotations = array('total' => $total, 'rows' => $annotationRows);
$annotations = ['total' => $total, 'rows' => $annotationRows];
$json = $this->get('serializer')->serialize($annotations, 'json');
@ -141,6 +141,6 @@ class WallabagAnnotationController extends FOSRestController
*/
private function renderJsonResponse($json, $code = 200)
{
return new Response($json, $code, array('application/json'));
return new Response($json, $code, ['application/json']);
}
}

View File

@ -82,7 +82,7 @@ class Annotation
/*
* @param User $user
*/
public function __construct(\Wallabag\UserBundle\Entity\User $user)
public function __construct(User $user)
{
$this->user = $user;
}
@ -204,7 +204,7 @@ class Annotation
/**
* Set user.
*
* @param string $user
* @param User $user
*
* @return Annotation
*/
@ -218,7 +218,7 @@ class Annotation
/**
* Get user.
*
* @return string
* @return User
*/
public function getUser()
{

View File

@ -35,13 +35,13 @@ class AnnotationControllerTest extends WallabagAnnotationTestCase
->getRepository('WallabagCoreBundle:Entry')
->findOneByUsernameAndNotArchived('admin');
$headers = array('CONTENT_TYPE' => 'application/json');
$content = json_encode(array(
$headers = ['CONTENT_TYPE' => 'application/json'];
$content = json_encode([
'text' => 'my annotation',
'quote' => 'my quote',
'ranges' => array('start' => '', 'startOffset' => 24, 'end' => '', 'endOffset' => 31),
));
$crawler = $this->client->request('POST', 'annotations/'.$entry->getId().'.json', array(), array(), $headers, $content);
'ranges' => ['start' => '', 'startOffset' => 24, 'end' => '', 'endOffset' => 31],
]);
$crawler = $this->client->request('POST', 'annotations/'.$entry->getId().'.json', [], [], $headers, $content);
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
@ -69,11 +69,11 @@ class AnnotationControllerTest extends WallabagAnnotationTestCase
$this->logInAs('admin');
$headers = array('CONTENT_TYPE' => 'application/json');
$content = json_encode(array(
$headers = ['CONTENT_TYPE' => 'application/json'];
$content = json_encode([
'text' => 'a modified annotation',
));
$crawler = $this->client->request('PUT', 'annotations/'.$annotation->getId().'.json', array(), array(), $headers, $content);
]);
$crawler = $this->client->request('PUT', 'annotations/'.$annotation->getId().'.json', [], [], $headers, $content);
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
$content = json_decode($this->client->getResponse()->getContent(), true);
@ -99,11 +99,11 @@ class AnnotationControllerTest extends WallabagAnnotationTestCase
$this->logInAs('admin');
$headers = array('CONTENT_TYPE' => 'application/json');
$content = json_encode(array(
$headers = ['CONTENT_TYPE' => 'application/json'];
$content = json_encode([
'text' => 'a modified annotation',
));
$crawler = $this->client->request('DELETE', 'annotations/'.$annotation->getId().'.json', array(), array(), $headers, $content);
]);
$crawler = $this->client->request('DELETE', 'annotations/'.$annotation->getId().'.json', [], [], $headers, $content);
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
$content = json_decode($this->client->getResponse()->getContent(), true);

View File

@ -26,10 +26,10 @@ abstract class WallabagAnnotationTestCase extends WebTestCase
{
$crawler = $this->client->request('GET', '/login');
$form = $crawler->filter('button[type=submit]')->form();
$data = array(
$data = [
'_username' => $username,
'_password' => 'mypassword',
);
];
$this->client->submit($form, $data);
}
@ -48,7 +48,7 @@ abstract class WallabagAnnotationTestCase extends WebTestCase
$loginManager = $container->get('fos_user.security.login_manager');
$firewallName = $container->getParameter('fos_user.firewall_name');
$this->user = $userManager->findUserBy(array('username' => 'admin'));
$this->user = $userManager->findUserBy(['username' => 'admin']);
$loginManager->loginUser($firewallName, $this->user);
// save the login token into the session and put it in a cookie

View File

@ -27,13 +27,13 @@ class WallabagRestController extends FOSRestController
*
* @ApiDoc(
* parameters={
* {"name"="archive", "dataType"="boolean", "required"=false, "format"="true or false, all entries by default", "description"="filter by archived status."},
* {"name"="star", "dataType"="boolean", "required"=false, "format"="true or false, all entries by default", "description"="filter by starred status."},
* {"name"="archive", "dataType"="integer", "required"=false, "format"="1 or 0, all entries by default", "description"="filter by archived status."},
* {"name"="starred", "dataType"="integer", "required"=false, "format"="1 or 0, all entries by default", "description"="filter by starred status."},
* {"name"="sort", "dataType"="string", "required"=false, "format"="'created' or 'updated', default 'created'", "description"="sort entries by date."},
* {"name"="order", "dataType"="string", "required"=false, "format"="'asc' or 'desc', default 'desc'", "description"="order of sort."},
* {"name"="page", "dataType"="integer", "required"=false, "format"="default '1'", "description"="what page you want."},
* {"name"="perPage", "dataType"="integer", "required"=false, "format"="default'30'", "description"="results per page."},
* {"name"="tags", "dataType"="string", "required"=false, "format"="api%2Crest", "description"="a list of tags url encoded. Will returns entries that matches ALL tags."},
* {"name"="tags", "dataType"="string", "required"=false, "format"="api,rest", "description"="a list of tags url encoded. Will returns entries that matches ALL tags."},
* }
* )
*
@ -43,8 +43,8 @@ class WallabagRestController extends FOSRestController
{
$this->validateAuthentication();
$isArchived = $request->query->get('archive');
$isStarred = $request->query->get('star');
$isArchived = (null === $request->query->get('archive')) ? null : (bool) $request->query->get('archive');
$isStarred = (null === $request->query->get('starred')) ? null : (bool) $request->query->get('starred');
$sort = $request->query->get('sort', 'created');
$order = $request->query->get('order', 'desc');
$page = (int) $request->query->get('page', 1);
@ -97,8 +97,8 @@ class WallabagRestController extends FOSRestController
* {"name"="url", "dataType"="string", "required"=true, "format"="http://www.test.com/article.html", "description"="Url for the entry."},
* {"name"="title", "dataType"="string", "required"=false, "description"="Optional, we'll get the title from the page."},
* {"name"="tags", "dataType"="string", "required"=false, "format"="tag1,tag2,tag3", "description"="a comma-separated list of tags."},
* {"name"="starred", "dataType"="boolean", "required"=false, "format"="true or false", "description"="entry already starred"},
* {"name"="archive", "dataType"="boolean", "required"=false, "format"="true or false", "description"="entry already archived"},
* {"name"="starred", "dataType"="integer", "required"=false, "format"="1 or 0", "description"="entry already starred"},
* {"name"="archive", "dataType"="integer", "required"=false, "format"="1 or 0", "description"="entry already archived"},
* }
* )
*
@ -109,25 +109,29 @@ class WallabagRestController extends FOSRestController
$this->validateAuthentication();
$url = $request->request->get('url');
$isArchived = $request->request->get('archive');
$isStarred = $request->request->get('starred');
$isArchived = (int) $request->request->get('archive');
$isStarred = (int) $request->request->get('starred');
$entry = $this->get('wallabag_core.content_proxy')->updateEntry(
new Entry($this->getUser()),
$url
);
$entry = $this->get('wallabag_core.entry_repository')->findByUrlAndUserId($url, $this->getUser()->getId());
if (false === $entry) {
$entry = $this->get('wallabag_core.content_proxy')->updateEntry(
new Entry($this->getUser()),
$url
);
}
$tags = $request->request->get('tags', '');
if (!empty($tags)) {
$this->get('wallabag_core.content_proxy')->assignTagsToEntry($entry, $tags);
}
if (true === (bool) $isStarred) {
$entry->setStarred(true);
if (!is_null($isStarred)) {
$entry->setStarred((bool) $isStarred);
}
if (true === (bool) $isArchived) {
$entry->setArchived(true);
if (!is_null($isArchived)) {
$entry->setArchived((bool) $isArchived);
}
$em = $this->getDoctrine()->getManager();
@ -150,8 +154,8 @@ class WallabagRestController extends FOSRestController
* parameters={
* {"name"="title", "dataType"="string", "required"=false},
* {"name"="tags", "dataType"="string", "required"=false, "format"="tag1,tag2,tag3", "description"="a comma-separated list of tags."},
* {"name"="archive", "dataType"="boolean", "required"=false, "format"="true or false", "description"="archived the entry."},
* {"name"="star", "dataType"="boolean", "required"=false, "format"="true or false", "description"="starred the entry."},
* {"name"="archive", "dataType"="integer", "required"=false, "format"="1 or 0", "description"="archived the entry."},
* {"name"="starred", "dataType"="integer", "required"=false, "format"="1 or 0", "description"="starred the entry."},
* }
* )
*
@ -163,19 +167,19 @@ class WallabagRestController extends FOSRestController
$this->validateUserAccess($entry->getUser()->getId());
$title = $request->request->get('title');
$isArchived = $request->request->get('archive');
$isStarred = $request->request->get('star');
$isArchived = (int) $request->request->get('archive');
$isStarred = (int) $request->request->get('starred');
if (!is_null($title)) {
$entry->setTitle($title);
}
if (!is_null($isArchived)) {
$entry->setArchived($isArchived);
$entry->setArchived((bool) $isArchived);
}
if (!is_null($isStarred)) {
$entry->setStarred($isStarred);
$entry->setStarred((bool) $isStarred);
}
$tags = $request->request->get('tags', '');
@ -380,6 +384,6 @@ class WallabagRestController extends FOSRestController
*/
private function renderJsonResponse($json)
{
return new Response($json, 200, array('application/json'));
return new Response($json, 200, ['application/json']);
}
}

View File

@ -13,7 +13,7 @@ class WallabagRestControllerTest extends WallabagApiTestCase
$entry = $this->client->getContainer()
->get('doctrine.orm.entity_manager')
->getRepository('WallabagCoreBundle:Entry')
->findOneBy(array('user' => 1, 'isArchived' => false));
->findOneBy(['user' => 1, 'isArchived' => false]);
if (!$entry) {
$this->markTestSkipped('No content found in db.');
@ -27,6 +27,9 @@ class WallabagRestControllerTest extends WallabagApiTestCase
$this->assertEquals($entry->getTitle(), $content['title']);
$this->assertEquals($entry->getUrl(), $content['url']);
$this->assertCount(count($entry->getTags()), $content['tags']);
$this->assertEquals($entry->getUserName(), $content['user_name']);
$this->assertEquals($entry->getUserEmail(), $content['user_email']);
$this->assertEquals($entry->getUserId(), $content['user_id']);
$this->assertTrue(
$this->client->getResponse()->headers->contains(
@ -41,7 +44,7 @@ class WallabagRestControllerTest extends WallabagApiTestCase
$entry = $this->client->getContainer()
->get('doctrine.orm.entity_manager')
->getRepository('WallabagCoreBundle:Entry')
->findOneBy(array('user' => 2, 'isArchived' => false));
->findOneBy(['user' => 2, 'isArchived' => false]);
if (!$entry) {
$this->markTestSkipped('No content found in db.');
@ -76,7 +79,7 @@ class WallabagRestControllerTest extends WallabagApiTestCase
public function testGetStarredEntries()
{
$this->client->request('GET', '/api/entries', array('star' => 1, 'sort' => 'updated'));
$this->client->request('GET', '/api/entries', ['star' => 1, 'sort' => 'updated']);
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
@ -98,7 +101,7 @@ class WallabagRestControllerTest extends WallabagApiTestCase
public function testGetArchiveEntries()
{
$this->client->request('GET', '/api/entries', array('archive' => 1));
$this->client->request('GET', '/api/entries', ['archive' => 1]);
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
@ -146,10 +149,10 @@ class WallabagRestControllerTest extends WallabagApiTestCase
public function testPostEntry()
{
$this->client->request('POST', '/api/entries.json', array(
$this->client->request('POST', '/api/entries.json', [
'url' => 'http://www.lemonde.fr/pixels/article/2015/03/28/plongee-dans-l-univers-d-ingress-le-jeu-de-google-aux-frontieres-du-reel_4601155_4408996.html',
'tags' => 'google',
));
]);
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
@ -159,16 +162,36 @@ class WallabagRestControllerTest extends WallabagApiTestCase
$this->assertEquals('http://www.lemonde.fr/pixels/article/2015/03/28/plongee-dans-l-univers-d-ingress-le-jeu-de-google-aux-frontieres-du-reel_4601155_4408996.html', $content['url']);
$this->assertEquals(false, $content['is_archived']);
$this->assertEquals(false, $content['is_starred']);
$this->assertEquals(1, $content['user_id']);
$this->assertCount(1, $content['tags']);
}
public function testPostSameEntry()
{
$this->client->request('POST', '/api/entries.json', [
'url' => 'http://www.lemonde.fr/pixels/article/2015/03/28/plongee-dans-l-univers-d-ingress-le-jeu-de-google-aux-frontieres-du-reel_4601155_4408996.html',
'archive' => '1',
'tags' => 'google, apple',
]);
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
$content = json_decode($this->client->getResponse()->getContent(), true);
$this->assertGreaterThan(0, $content['id']);
$this->assertEquals('http://www.lemonde.fr/pixels/article/2015/03/28/plongee-dans-l-univers-d-ingress-le-jeu-de-google-aux-frontieres-du-reel_4601155_4408996.html', $content['url']);
$this->assertEquals(true, $content['is_archived']);
$this->assertEquals(false, $content['is_starred']);
$this->assertCount(2, $content['tags']);
}
public function testPostArchivedAndStarredEntry()
{
$this->client->request('POST', '/api/entries.json', array(
$this->client->request('POST', '/api/entries.json', [
'url' => 'http://www.lemonde.fr/idees/article/2016/02/08/preserver-la-liberte-d-expression-sur-les-reseaux-sociaux_4861503_3232.html',
'archive' => true,
'starred' => true,
));
'archive' => '1',
'starred' => '1',
]);
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
@ -178,6 +201,25 @@ class WallabagRestControllerTest extends WallabagApiTestCase
$this->assertEquals('http://www.lemonde.fr/idees/article/2016/02/08/preserver-la-liberte-d-expression-sur-les-reseaux-sociaux_4861503_3232.html', $content['url']);
$this->assertEquals(true, $content['is_archived']);
$this->assertEquals(true, $content['is_starred']);
$this->assertEquals(1, $content['user_id']);
}
public function testPostArchivedAndStarredEntryWithoutQuotes()
{
$this->client->request('POST', '/api/entries.json', [
'url' => 'http://www.lemonde.fr/idees/article/2016/02/08/preserver-la-liberte-d-expression-sur-les-reseaux-sociaux_4861503_3232.html',
'archive' => 0,
'starred' => 1,
]);
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
$content = json_decode($this->client->getResponse()->getContent(), true);
$this->assertGreaterThan(0, $content['id']);
$this->assertEquals('http://www.lemonde.fr/idees/article/2016/02/08/preserver-la-liberte-d-expression-sur-les-reseaux-sociaux_4861503_3232.html', $content['url']);
$this->assertEquals(false, $content['is_archived']);
$this->assertEquals(true, $content['is_starred']);
}
public function testPatchEntry()
@ -194,12 +236,44 @@ class WallabagRestControllerTest extends WallabagApiTestCase
// hydrate the tags relations
$nbTags = count($entry->getTags());
$this->client->request('PATCH', '/api/entries/'.$entry->getId().'.json', array(
$this->client->request('PATCH', '/api/entries/'.$entry->getId().'.json', [
'title' => 'New awesome title',
'tags' => 'new tag '.uniqid(),
'star' => true,
'archive' => false,
));
'starred' => '1',
'archive' => '0',
]);
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
$content = json_decode($this->client->getResponse()->getContent(), true);
$this->assertEquals($entry->getId(), $content['id']);
$this->assertEquals($entry->getUrl(), $content['url']);
$this->assertEquals('New awesome title', $content['title']);
$this->assertGreaterThan($nbTags, count($content['tags']));
$this->assertEquals(1, $content['user_id']);
}
public function testPatchEntryWithoutQuotes()
{
$entry = $this->client->getContainer()
->get('doctrine.orm.entity_manager')
->getRepository('WallabagCoreBundle:Entry')
->findOneByUser(1);
if (!$entry) {
$this->markTestSkipped('No content found in db.');
}
// hydrate the tags relations
$nbTags = count($entry->getTags());
$this->client->request('PATCH', '/api/entries/'.$entry->getId().'.json', [
'title' => 'New awesome title',
'tags' => 'new tag '.uniqid(),
'starred' => 1,
'archive' => 0,
]);
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
@ -224,9 +298,9 @@ class WallabagRestControllerTest extends WallabagApiTestCase
$this->markTestSkipped('No content found in db.');
}
$tags = array();
$tags = [];
foreach ($entry->getTags() as $tag) {
$tags[] = array('id' => $tag->getId(), 'label' => $tag->getLabel(), 'slug' => $tag->getSlug());
$tags[] = ['id' => $tag->getId(), 'label' => $tag->getLabel(), 'slug' => $tag->getSlug()];
}
$this->client->request('GET', '/api/entries/'.$entry->getId().'/tags');
@ -249,7 +323,7 @@ class WallabagRestControllerTest extends WallabagApiTestCase
$newTags = 'tag1,tag2,tag3';
$this->client->request('POST', '/api/entries/'.$entry->getId().'/tags', array('tags' => $newTags));
$this->client->request('POST', '/api/entries/'.$entry->getId().'/tags', ['tags' => $newTags]);
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
@ -263,7 +337,7 @@ class WallabagRestControllerTest extends WallabagApiTestCase
->getRepository('WallabagCoreBundle:Entry')
->find($entry->getId());
$tagsInDB = array();
$tagsInDB = [];
foreach ($entryDB->getTags()->toArray() as $tag) {
$tagsInDB[$tag->getId()] = $tag->getLabel();
}

View File

@ -36,7 +36,7 @@ abstract class WallabagApiTestCase extends WebTestCase
$loginManager = $container->get('fos_user.security.login_manager');
$firewallName = $container->getParameter('fos_user.firewall_name');
$this->user = $userManager->findUserBy(array('username' => 'admin'));
$this->user = $userManager->findUserBy(['username' => 'admin']);
$loginManager->loginUser($firewallName, $this->user);
// save the login token into the session and put it in a cookie

View File

@ -60,6 +60,7 @@ class InstallCommand extends ContainerAwareCommand
->checkRequirements()
->setupDatabase()
->setupAdmin()
->setupConfig()
->setupAsset()
;
@ -69,40 +70,40 @@ class InstallCommand extends ContainerAwareCommand
protected function checkRequirements()
{
$this->defaultOutput->writeln('<info><comment>Step 1 of 4.</comment> Checking system requirements.</info>');
$this->defaultOutput->writeln('<info><comment>Step 1 of 5.</comment> Checking system requirements.</info>');
$fulfilled = true;
$label = '<comment>PDO Drivers</comment>';
if (extension_loaded('pdo_sqlite') || extension_loaded('pdo_mysql') || extension_loaded('pdo_pgsql')) {
$status = '<info>OK!</info>';
$help = '';
} else {
$label = '<comment>PDO Driver</comment>';
$status = '<info>OK!</info>';
$help = '';
if (!extension_loaded($this->getContainer()->getParameter('database_driver'))) {
$fulfilled = false;
$status = '<error>ERROR!</error>';
$help = 'Needs one of sqlite, mysql or pgsql PDO drivers';
$help = 'Database driver "'.$this->getContainer()->getParameter('database_driver').'" is not installed.';
}
$rows[] = array($label, $status, $help);
$rows = [];
$rows[] = [$label, $status, $help];
foreach ($this->functionExists as $functionRequired) {
$label = '<comment>'.$functionRequired.'</comment>';
$status = '<info>OK!</info>';
$help = '';
if (function_exists($functionRequired)) {
$status = '<info>OK!</info>';
$help = '';
} else {
if (!function_exists($functionRequired)) {
$fulfilled = false;
$status = '<error>ERROR!</error>';
$help = 'You need the '.$functionRequired.' function activated';
}
$rows[] = array($label, $status, $help);
$rows[] = [$label, $status, $help];
}
$table = new Table($this->defaultOutput);
$table
->setHeaders(array('Checked', 'Status', 'Recommendation'))
->setHeaders(['Checked', 'Status', 'Recommendation'])
->setRows($rows)
->render();
@ -119,14 +120,14 @@ class InstallCommand extends ContainerAwareCommand
protected function setupDatabase()
{
$this->defaultOutput->writeln('<info><comment>Step 2 of 4.</comment> Setting up database.</info>');
$this->defaultOutput->writeln('<info><comment>Step 2 of 5.</comment> Setting up database.</info>');
// user want to reset everything? Don't care about what is already here
if (true === $this->defaultInput->getOption('reset')) {
$this->defaultOutput->writeln('Droping database, creating database and schema, clearing the cache');
$this
->runCommand('doctrine:database:drop', array('--force' => true))
->runCommand('doctrine:database:drop', ['--force' => true])
->runCommand('doctrine:database:create')
->runCommand('doctrine:schema:create')
->runCommand('cache:clear')
@ -158,7 +159,7 @@ class InstallCommand extends ContainerAwareCommand
$this->defaultOutput->writeln('Droping database, creating database and schema');
$this
->runCommand('doctrine:database:drop', array('--force' => true))
->runCommand('doctrine:database:drop', ['--force' => true])
->runCommand('doctrine:database:create')
->runCommand('doctrine:schema:create')
;
@ -168,7 +169,7 @@ class InstallCommand extends ContainerAwareCommand
$this->defaultOutput->writeln('Droping schema and creating schema');
$this
->runCommand('doctrine:schema:drop', array('--force' => true))
->runCommand('doctrine:schema:drop', ['--force' => true])
->runCommand('doctrine:schema:create')
;
}
@ -190,7 +191,7 @@ class InstallCommand extends ContainerAwareCommand
protected function setupAdmin()
{
$this->defaultOutput->writeln('<info><comment>Step 3 of 4.</comment> Administration setup.</info>');
$this->defaultOutput->writeln('<info><comment>Step 3 of 5.</comment> Administration setup.</info>');
$questionHelper = $this->getHelperSet()->get('question');
$question = new ConfirmationQuestion('Would you like to create a new admin user (recommended) ? (Y/n)', true);
@ -222,19 +223,25 @@ class InstallCommand extends ContainerAwareCommand
$config->setTheme($this->getContainer()->getParameter('wallabag_core.theme'));
$config->setItemsPerPage($this->getContainer()->getParameter('wallabag_core.items_on_page'));
$config->setRssLimit($this->getContainer()->getParameter('wallabag_core.rss_limit'));
$config->setReadingSpeed($this->getContainer()->getParameter('wallabag_core.reading_speed'));
$config->setLanguage($this->getContainer()->getParameter('wallabag_core.language'));
$em->persist($config);
$this->defaultOutput->writeln('');
return $this;
}
protected function setupConfig()
{
$this->defaultOutput->writeln('<info><comment>Step 4 of 5.</comment> Config setup.</info>');
$em = $this->getContainer()->get('doctrine.orm.entity_manager');
// cleanup before insert new stuff
$em->createQuery('DELETE FROM CraueConfigBundle:Setting')->execute();
$settings = [
[
'name' => 'download_pictures',
'value' => '1',
'section' => 'entry',
],
[
'name' => 'carrot',
'value' => '1',
@ -369,7 +376,7 @@ class InstallCommand extends ContainerAwareCommand
protected function setupAsset()
{
$this->defaultOutput->writeln('<info><comment>Step 4 of 4.</comment> Installing assets.</info>');
$this->defaultOutput->writeln('<info><comment>Step 5 of 5.</comment> Installing assets.</info>');
$this
->runCommand('assets:install')
@ -387,19 +394,19 @@ class InstallCommand extends ContainerAwareCommand
* @param string $command
* @param array $parameters Parameters to this command (usually 'force' => true)
*/
protected function runCommand($command, $parameters = array())
protected function runCommand($command, $parameters = [])
{
$parameters = array_merge(
array('command' => $command),
['command' => $command],
$parameters,
array(
[
'--no-debug' => true,
'--env' => $this->defaultInput->getOption('env') ?: 'dev',
)
]
);
if ($this->defaultInput->getOption('no-interaction')) {
$parameters = array_merge($parameters, array('--no-interaction' => true));
$parameters = array_merge($parameters, ['--no-interaction' => true]);
}
$this->getApplication()->setAutoExit(false);
@ -459,7 +466,13 @@ class InstallCommand extends ContainerAwareCommand
return false;
}
return in_array($databaseName, $schemaManager->listDatabases());
try {
return in_array($databaseName, $schemaManager->listDatabases());
} catch (\Doctrine\DBAL\Exception\DriverException $e) {
// it means we weren't able to get database list, assume the database doesn't exist
return false;
}
}
/**

View File

@ -32,7 +32,7 @@ class ConfigController extends Controller
$user = $this->getUser();
// handle basic config detail (this form is defined as a service)
$configForm = $this->createForm(ConfigType::class, $config, array('action' => $this->generateUrl('config')));
$configForm = $this->createForm(ConfigType::class, $config, ['action' => $this->generateUrl('config')]);
$configForm->handleRequest($request);
if ($configForm->isValid()) {
@ -45,21 +45,21 @@ class ConfigController extends Controller
$this->get('session')->getFlashBag()->add(
'notice',
'Config saved. Some parameters will be considered after disconnection.'
'flashes.config.notice.config_saved'
);
return $this->redirect($this->generateUrl('config'));
}
// handle changing password
$pwdForm = $this->createForm(ChangePasswordType::class, null, array('action' => $this->generateUrl('config').'#set4'));
$pwdForm = $this->createForm(ChangePasswordType::class, null, ['action' => $this->generateUrl('config').'#set4']);
$pwdForm->handleRequest($request);
if ($pwdForm->isValid()) {
if ($this->get('craue_config')->get('demo_mode_enabled') && $this->get('craue_config')->get('demo_mode_username') === $user->getUsername()) {
$message = 'In demonstration mode, you can\'t change password for this user.';
$message = 'flashes.config.notice.password_not_updated_demo';
} else {
$message = 'Password updated';
$message = 'flashes.config.notice.password_updated';
$user->setPlainPassword($pwdForm->get('new_password')->getData());
$userManager->updateUser($user, true);
@ -71,10 +71,10 @@ class ConfigController extends Controller
}
// handle changing user information
$userForm = $this->createForm(UserInformationType::class, $user, array(
'validation_groups' => array('Profile'),
$userForm = $this->createForm(UserInformationType::class, $user, [
'validation_groups' => ['Profile'],
'action' => $this->generateUrl('config').'#set3',
));
]);
$userForm->handleRequest($request);
if ($userForm->isValid()) {
@ -82,14 +82,14 @@ class ConfigController extends Controller
$this->get('session')->getFlashBag()->add(
'notice',
'Information updated'
'flashes.config.notice.user_updated'
);
return $this->redirect($this->generateUrl('config').'#set3');
}
// handle rss information
$rssForm = $this->createForm(RssType::class, $config, array('action' => $this->generateUrl('config').'#set2'));
$rssForm = $this->createForm(RssType::class, $config, ['action' => $this->generateUrl('config').'#set2']);
$rssForm->handleRequest($request);
if ($rssForm->isValid()) {
@ -98,7 +98,7 @@ class ConfigController extends Controller
$this->get('session')->getFlashBag()->add(
'notice',
'RSS information updated'
'flashes.config.notice.rss_updated'
);
return $this->redirect($this->generateUrl('config').'#set2');
@ -106,7 +106,7 @@ class ConfigController extends Controller
// handle tagging rule
$taggingRule = new TaggingRule();
$newTaggingRule = $this->createForm(TaggingRuleType::class, $taggingRule, array('action' => $this->generateUrl('config').'#set5'));
$newTaggingRule = $this->createForm(TaggingRuleType::class, $taggingRule, ['action' => $this->generateUrl('config').'#set5']);
$newTaggingRule->handleRequest($request);
if ($newTaggingRule->isValid()) {
@ -116,7 +116,7 @@ class ConfigController extends Controller
$this->get('session')->getFlashBag()->add(
'notice',
'Tagging rules updated'
'flashes.config.notice.tagging_rules_updated'
);
return $this->redirect($this->generateUrl('config').'#set5');
@ -126,10 +126,10 @@ class ConfigController extends Controller
$newUser = $userManager->createUser();
// enable created user by default
$newUser->setEnabled(true);
$newUserForm = $this->createForm(NewUserType::class, $newUser, array(
'validation_groups' => array('Profile'),
$newUserForm = $this->createForm(NewUserType::class, $newUser, [
'validation_groups' => ['Profile'],
'action' => $this->generateUrl('config').'#set6',
));
]);
$newUserForm->handleRequest($request);
if ($newUserForm->isValid() && $this->get('security.authorization_checker')->isGranted('ROLE_SUPER_ADMIN')) {
@ -147,27 +147,27 @@ class ConfigController extends Controller
$this->get('session')->getFlashBag()->add(
'notice',
$this->get('translator')->trans('User "%username%" added', array('%username%' => $newUser->getUsername()))
$this->get('translator')->trans('flashes.config.notice.user_added', ['%username%' => $newUser->getUsername()])
);
return $this->redirect($this->generateUrl('config').'#set6');
}
return $this->render('WallabagCoreBundle:Config:index.html.twig', array(
'form' => array(
return $this->render('WallabagCoreBundle:Config:index.html.twig', [
'form' => [
'config' => $configForm->createView(),
'rss' => $rssForm->createView(),
'pwd' => $pwdForm->createView(),
'user' => $userForm->createView(),
'new_user' => $newUserForm->createView(),
'new_tagging_rule' => $newTaggingRule->createView(),
),
'rss' => array(
],
'rss' => [
'username' => $user->getUsername(),
'token' => $config->getRssToken(),
),
],
'twofactor_auth' => $this->getParameter('twofactor_auth'),
));
]);
}
/**
@ -187,12 +187,12 @@ class ConfigController extends Controller
$em->flush();
if ($request->isXmlHttpRequest()) {
return new JsonResponse(array('token' => $config->getRssToken()));
return new JsonResponse(['token' => $config->getRssToken()]);
}
$this->get('session')->getFlashBag()->add(
'notice',
'RSS token updated'
'flashes.config.notice.rss_token_updated'
);
return $this->redirect($this->generateUrl('config').'#set2');
@ -210,7 +210,7 @@ class ConfigController extends Controller
public function deleteTaggingRuleAction(TaggingRule $rule)
{
if ($this->getUser()->getId() != $rule->getConfig()->getUser()->getId()) {
throw $this->createAccessDeniedException('You can not access this tagging ryle.');
throw $this->createAccessDeniedException('You can not access this tagging rule.');
}
$em = $this->getDoctrine()->getManager();
@ -219,7 +219,7 @@ class ConfigController extends Controller
$this->get('session')->getFlashBag()->add(
'notice',
'Tagging rule deleted'
'flashes.config.notice.tagging_rules_deleted'
);
return $this->redirect($this->generateUrl('config').'#set5');
@ -229,7 +229,7 @@ class ConfigController extends Controller
* Retrieve config for the current user.
* If no config were found, create a new one.
*
* @return Wallabag\CoreBundle\Entity\Config
* @return Config
*/
private function getConfig()
{

View File

@ -21,9 +21,9 @@ class DeveloperController extends Controller
{
$clients = $this->getDoctrine()->getRepository('WallabagApiBundle:Client')->findAll();
return $this->render('WallabagCoreBundle:Developer:index.html.twig', array(
return $this->render('WallabagCoreBundle:Developer:index.html.twig', [
'clients' => $clients,
));
]);
}
/**
@ -43,24 +43,24 @@ class DeveloperController extends Controller
$clientForm->handleRequest($request);
if ($clientForm->isValid()) {
$client->setAllowedGrantTypes(array('token', 'authorization_code', 'password'));
$client->setAllowedGrantTypes(['token', 'authorization_code', 'password', 'refresh_token']);
$em->persist($client);
$em->flush();
$this->get('session')->getFlashBag()->add(
'notice',
'New client created.'
'flashes.developer.notice.client_created'
);
return $this->render('WallabagCoreBundle:Developer:client_parameters.html.twig', array(
return $this->render('WallabagCoreBundle:Developer:client_parameters.html.twig', [
'client_id' => $client->getPublicId(),
'client_secret' => $client->getSecret(),
));
]);
}
return $this->render('WallabagCoreBundle:Developer:client.html.twig', array(
return $this->render('WallabagCoreBundle:Developer:client.html.twig', [
'form' => $clientForm->createView(),
));
]);
}
/**
@ -80,7 +80,7 @@ class DeveloperController extends Controller
$this->get('session')->getFlashBag()->add(
'notice',
'Client deleted'
'flashes.developer.notice.client_deleted'
);
return $this->redirect($this->generateUrl('developer'));

View File

@ -49,30 +49,29 @@ class EntryController extends Controller
$form->handleRequest($request);
if ($form->isValid()) {
// check for existing entry, if it exists, redirect to it with a message
$existingEntry = $this->get('wallabag_core.entry_repository')->findByUrlAndUserId($entry->getUrl(), $this->getUser()->getId());
$existingEntry = $this->checkIfEntryAlreadyExists($entry);
if (false !== $existingEntry) {
$this->get('session')->getFlashBag()->add(
'notice',
'Entry already saved on '.$existingEntry->getCreatedAt()->format('d-m-Y')
$this->get('translator')->trans('flashes.entry.notice.entry_already_saved', ['%date%' => $existingEntry->getCreatedAt()->format('d-m-Y')])
);
return $this->redirect($this->generateUrl('view', array('id' => $existingEntry->getId())));
return $this->redirect($this->generateUrl('view', ['id' => $existingEntry->getId()]));
}
$this->updateEntry($entry);
$this->get('session')->getFlashBag()->add(
'notice',
'Entry saved'
'flashes.entry.notice.entry_saved'
);
return $this->redirect($this->generateUrl('homepage'));
}
return $this->render('WallabagCoreBundle:Entry:new_form.html.twig', array(
return $this->render('WallabagCoreBundle:Entry:new_form.html.twig', [
'form' => $form->createView(),
));
]);
}
/**
@ -86,19 +85,20 @@ class EntryController extends Controller
{
$entry = new Entry($this->getUser());
$entry->setUrl($request->get('url'));
$this->updateEntry($entry);
if (false === $this->checkIfEntryAlreadyExists($entry)) {
$this->updateEntry($entry);
}
return $this->redirect($this->generateUrl('homepage'));
}
/**
* @param Request $request
*
* @Route("/new", name="new")
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function addEntryAction(Request $request)
public function addEntryAction()
{
return $this->render('WallabagCoreBundle:Entry:new.html.twig');
}
@ -128,15 +128,15 @@ class EntryController extends Controller
$this->get('session')->getFlashBag()->add(
'notice',
'Entry updated'
'flashes.entry.notice.entry_updated'
);
return $this->redirect($this->generateUrl('view', array('id' => $entry->getId())));
return $this->redirect($this->generateUrl('view', ['id' => $entry->getId()]));
}
return $this->render('WallabagCoreBundle:Entry:edit.html.twig', array(
return $this->render('WallabagCoreBundle:Entry:edit.html.twig', [
'form' => $form->createView(),
));
]);
}
/**
@ -257,17 +257,17 @@ class EntryController extends Controller
$entries->setCurrentPage($page);
} catch (OutOfRangeCurrentPageException $e) {
if ($page > 1) {
return $this->redirect($this->generateUrl($type, array('page' => $entries->getNbPages())), 302);
return $this->redirect($this->generateUrl($type, ['page' => $entries->getNbPages()]), 302);
}
}
return $this->render(
'WallabagCoreBundle:Entry:entries.html.twig',
array(
[
'form' => $form->createView(),
'entries' => $entries,
'currentPage' => $page,
)
]
);
}
@ -286,7 +286,7 @@ class EntryController extends Controller
return $this->render(
'WallabagCoreBundle:Entry:entry.html.twig',
array('entry' => $entry)
['entry' => $entry]
);
}
@ -304,9 +304,9 @@ class EntryController extends Controller
{
$this->checkUserAction($entry);
$message = 'Entry reloaded';
$message = 'flashes.entry.notice.entry_reloaded';
if (false === $this->updateEntry($entry)) {
$message = 'Failed to reload entry';
$message = 'flashes.entry.notice.entry_reload_failed';
}
$this->get('session')->getFlashBag()->add(
@ -314,7 +314,7 @@ class EntryController extends Controller
$message
);
return $this->redirect($this->generateUrl('view', array('id' => $entry->getId())));
return $this->redirect($this->generateUrl('view', ['id' => $entry->getId()]));
}
/**
@ -334,12 +334,19 @@ class EntryController extends Controller
$entry->toggleArchive();
$this->getDoctrine()->getManager()->flush();
$message = 'flashes.entry.notice.entry_unarchived';
if ($entry->isArchived()) {
$message = 'flashes.entry.notice.entry_archived';
}
$this->get('session')->getFlashBag()->add(
'notice',
'Entry '.($entry->isArchived() ? 'archived' : 'unarchived')
$message
);
return $this->redirect($request->headers->get('referer'));
$redirectUrl = $this->get('wallabag_core.helper.redirect')->to($request->headers->get('referer'));
return $this->redirect($redirectUrl);
}
/**
@ -359,12 +366,19 @@ class EntryController extends Controller
$entry->toggleStar();
$this->getDoctrine()->getManager()->flush();
$message = 'flashes.entry.notice.entry_unstarred';
if ($entry->isStarred()) {
$message = 'flashes.entry.notice.entry_starred';
}
$this->get('session')->getFlashBag()->add(
'notice',
'Entry '.($entry->isStarred() ? 'starred' : 'unstarred')
$message
);
return $this->redirect($request->headers->get('referer'));
$redirectUrl = $this->get('wallabag_core.helper.redirect')->to($request->headers->get('referer'));
return $this->redirect($redirectUrl);
}
/**
@ -384,7 +398,7 @@ class EntryController extends Controller
// to avoid redirecting to the deleted entry. Ugh.
$url = $this->generateUrl(
'view',
array('id' => $entry->getId()),
['id' => $entry->getId()],
UrlGeneratorInterface::ABSOLUTE_URL
);
@ -394,11 +408,15 @@ class EntryController extends Controller
$this->get('session')->getFlashBag()->add(
'notice',
'Entry deleted'
'flashes.entry.notice.entry_deleted'
);
// don't redirect user to the deleted entry
return $this->redirect($url !== $request->headers->get('referer') ? $request->headers->get('referer') : $this->generateUrl('homepage'));
$to = ($url !== $request->headers->get('referer') ? $request->headers->get('referer') : null);
$redirectUrl = $this->get('wallabag_core.helper.redirect')->to($to);
return $this->redirect($redirectUrl);
}
/**
@ -412,4 +430,16 @@ class EntryController extends Controller
throw $this->createAccessDeniedException('You can not access this entry.');
}
}
/**
* Check for existing entry, if it exists, redirect to it with a message.
*
* @param Entry $entry
*
* @return Entry|bool
*/
private function checkIfEntryAlreadyExists(Entry $entry)
{
return $this->get('wallabag_core.entry_repository')->findByUrlAndUserId($entry->getUrl(), $this->getUser()->getId());
}
}

View File

@ -16,12 +16,15 @@ class ExportController extends Controller
/**
* Gets one entry content.
*
* @param Entry $entry
* @param Entry $entry
* @param string $format
*
* @Route("/export/{id}.{format}", name="export_entry", requirements={
* "format": "epub|mobi|pdf|json|xml|txt|csv",
* "id": "\d+"
* })
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function downloadEntryAction(Entry $entry, $format)
{
@ -38,10 +41,15 @@ class ExportController extends Controller
/**
* Export all entries for current user.
*
* @param string $format
* @param string $category
*
* @Route("/export/{category}.{format}", name="export_entries", requirements={
* "format": "epub|mobi|pdf|json|xml|txt|csv",
* "category": "all|unread|starred|archive"
* })
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function downloadEntriesAction($format, $category)
{

View File

@ -87,9 +87,9 @@ class RssController extends Controller
$perPage = $user->getConfig()->getRssLimit() ?: $this->getParameter('wallabag_core.rss_limit');
$entries->setMaxPerPage($perPage);
return $this->render('WallabagCoreBundle:Entry:entries.xml.twig', array(
return $this->render('WallabagCoreBundle:Entry:entries.xml.twig', [
'type' => $type,
'entries' => $entries,
));
]);
}
}

View File

@ -14,7 +14,7 @@ class StaticController extends Controller
{
return $this->render(
'WallabagCoreBundle:Static:howto.html.twig',
array()
[]
);
}
@ -25,10 +25,10 @@ class StaticController extends Controller
{
return $this->render(
'WallabagCoreBundle:Static:about.html.twig',
array(
[
'version' => $this->getParameter('wallabag_core.version'),
'paypal_url' => $this->getParameter('wallabag_core.paypal_url'),
)
]
);
}
@ -39,7 +39,7 @@ class StaticController extends Controller
{
return $this->render(
'WallabagCoreBundle:Static:quickstart.html.twig',
array()
[]
);
}
}

View File

@ -13,6 +13,7 @@ class TagController extends Controller
{
/**
* @param Request $request
* @param Entry $entry
*
* @Route("/new-tag/{entry}", requirements={"entry" = "\d+"}, name="new_tag")
*
@ -20,39 +21,31 @@ class TagController extends Controller
*/
public function addTagFormAction(Request $request, Entry $entry)
{
$tag = new Tag();
$form = $this->createForm(NewTagType::class, $tag);
$form = $this->createForm(NewTagType::class, new Tag());
$form->handleRequest($request);
if ($form->isValid()) {
$existingTag = $this->getDoctrine()
->getRepository('WallabagCoreBundle:Tag')
->findOneByLabel($tag->getLabel());
$this->get('wallabag_core.content_proxy')->assignTagsToEntry(
$entry,
$form->get('label')->getData()
);
$em = $this->getDoctrine()->getManager();
if (is_null($existingTag)) {
$entry->addTag($tag);
$em->persist($tag);
} elseif (!$existingTag->hasEntry($entry)) {
$entry->addTag($existingTag);
$em->persist($existingTag);
}
$em->persist($entry);
$em->flush();
$this->get('session')->getFlashBag()->add(
'notice',
'Tag added'
'flashes.tag.notice.tag_added'
);
return $this->redirect($this->generateUrl('view', array('id' => $entry->getId())));
return $this->redirect($this->generateUrl('view', ['id' => $entry->getId()]));
}
return $this->render('WallabagCoreBundle:Tag:new_form.html.twig', array(
return $this->render('WallabagCoreBundle:Tag:new_form.html.twig', [
'form' => $form->createView(),
'entry' => $entry,
));
]);
}
/**
@ -72,7 +65,9 @@ class TagController extends Controller
}
$em->flush();
return $this->redirect($request->headers->get('referer'));
$redirectUrl = $this->get('wallabag_core.helper.redirect')->to($request->headers->get('referer'));
return $this->redirect($redirectUrl);
}
/**
@ -90,9 +85,9 @@ class TagController extends Controller
return $this->render(
'WallabagCoreBundle:Tag:tags.html.twig',
array(
[
'tags' => $tags,
)
]
);
}
}

View File

@ -25,6 +25,7 @@ class LoadConfigData extends AbstractFixture implements OrderedFixtureInterface
$adminConfig->setTheme('material');
$adminConfig->setItemsPerPage(30);
$adminConfig->setReadingSpeed(1);
$adminConfig->setLanguage('en');
$manager->persist($adminConfig);
@ -34,6 +35,7 @@ class LoadConfigData extends AbstractFixture implements OrderedFixtureInterface
$bobConfig = new Config($this->getReference('bob-user'));
$bobConfig->setTheme('default');
$bobConfig->setItemsPerPage(10);
$bobConfig->setReadingSpeed(1);
$bobConfig->setLanguage('fr');
$manager->persist($bobConfig);
@ -43,6 +45,7 @@ class LoadConfigData extends AbstractFixture implements OrderedFixtureInterface
$emptyConfig = new Config($this->getReference('empty-user'));
$emptyConfig->setTheme('material');
$emptyConfig->setItemsPerPage(10);
$emptyConfig->setReadingSpeed(1);
$emptyConfig->setLanguage('en');
$manager->persist($emptyConfig);

View File

@ -15,11 +15,6 @@ class LoadSettingData extends AbstractFixture implements OrderedFixtureInterface
public function load(ObjectManager $manager)
{
$settings = [
[
'name' => 'download_pictures',
'value' => '1',
'section' => 'entry',
],
[
'name' => 'carrot',
'value' => '1',

View File

@ -16,14 +16,14 @@ class LoadTaggingRuleData extends AbstractFixture implements OrderedFixtureInter
{
$tr1 = new TaggingRule();
$tr1->setRule('content matches "spurs"');
$tr1->setTags(array('sport'));
$tr1->setTags(['sport']);
$tr1->setConfig($this->getReference('admin-config'));
$manager->persist($tr1);
$tr2 = new TaggingRule();
$tr2->setRule('content matches "basket"');
$tr2->setTags(array('sport'));
$tr2->setTags(['sport']);
$tr2->setConfig($this->getReference('admin-config'));
$manager->persist($tr2);

View File

@ -29,6 +29,9 @@ class Configuration implements ConfigurationInterface
->integerNode('rss_limit')
->defaultValue(50)
->end()
->integerNode('reading_speed')
->defaultValue(1)
->end()
->scalarNode('version')
->end()
->scalarNode('paypal_url')

View File

@ -19,6 +19,7 @@ class WallabagCoreExtension extends Extension
$container->setParameter('wallabag_core.theme', $config['theme']);
$container->setParameter('wallabag_core.language', $config['language']);
$container->setParameter('wallabag_core.rss_limit', $config['rss_limit']);
$container->setParameter('wallabag_core.reading_speed', $config['reading_speed']);
$container->setParameter('wallabag_core.version', $config['version']);
$container->setParameter('wallabag_core.paypal_url', $config['paypal_url']);

View File

@ -40,7 +40,7 @@ class Config
* @Assert\Range(
* min = 1,
* max = 100000,
* maxMessage = "This will certainly kill the app"
* maxMessage = "validator.item_per_page_too_high"
* )
* @ORM\Column(name="items_per_page", type="integer", nullable=false)
*/
@ -68,11 +68,18 @@ class Config
* @Assert\Range(
* min = 1,
* max = 100000,
* maxMessage = "This will certainly kill the app"
* maxMessage = "validator.rss_limit_too_hight"
* )
*/
private $rssLimit;
/**
* @var float
*
* @ORM\Column(name="reading_speed", type="float", nullable=true)
*/
private $readingSpeed;
/**
* @ORM\OneToOne(targetEntity="Wallabag\UserBundle\Entity\User", inversedBy="config")
*/
@ -247,6 +254,30 @@ class Config
return $this->rssLimit;
}
/**
* Set readingSpeed.
*
* @param float $readingSpeed
*
* @return Config
*/
public function setReadingSpeed($readingSpeed)
{
$this->readingSpeed = $readingSpeed;
return $this;
}
/**
* Get readingSpeed.
*
* @return float
*/
public function getReadingSpeed()
{
return $this->readingSpeed;
}
/**
* @param TaggingRule $rule
*

View File

@ -7,6 +7,9 @@ use Doctrine\ORM\Mapping as ORM;
use Hateoas\Configuration\Annotation as Hateoas;
use JMS\Serializer\Annotation\Groups;
use JMS\Serializer\Annotation\XmlRoot;
use JMS\Serializer\Annotation\Exclude;
use JMS\Serializer\Annotation\VirtualProperty;
use JMS\Serializer\Annotation\SerializedName;
use Symfony\Component\Validator\Constraints as Assert;
use Wallabag\UserBundle\Entity\User;
use Wallabag\AnnotationBundle\Entity\Annotation;
@ -56,6 +59,8 @@ class Entry
/**
* @var bool
*
* @Exclude
*
* @ORM\Column(name="is_archived", type="boolean")
*
* @Groups({"entries_for_user", "export_all"})
@ -65,6 +70,8 @@ class Entry
/**
* @var bool
*
* @Exclude
*
* @ORM\Column(name="is_starred", type="boolean")
*
* @Groups({"entries_for_user", "export_all"})
@ -161,6 +168,8 @@ class Entry
private $isPublic;
/**
* @Exclude
*
* @ORM\ManyToOne(targetEntity="Wallabag\UserBundle\Entity\User", inversedBy="entries")
*
* @Groups({"export_all"})
@ -178,7 +187,7 @@ class Entry
/*
* @param User $user
*/
public function __construct(\Wallabag\UserBundle\Entity\User $user)
public function __construct(User $user)
{
$this->user = $user;
$this->tags = new ArrayCollection();
@ -266,6 +275,16 @@ class Entry
return $this->isArchived;
}
/**
* @VirtualProperty
* @SerializedName("is_archived")
* @Groups({"entries_for_user", "export_all"})
*/
public function is_Archived()
{
return (int) $this->isArchived();
}
public function toggleArchive()
{
$this->isArchived = $this->isArchived() ^ 1;
@ -297,6 +316,16 @@ class Entry
return $this->isStarred;
}
/**
* @VirtualProperty
* @SerializedName("is_starred")
* @Groups({"entries_for_user", "export_all"})
*/
public function is_Starred()
{
return (int) $this->isStarred();
}
public function toggleStar()
{
$this->isStarred = $this->isStarred() ^ 1;
@ -336,6 +365,33 @@ class Entry
return $this->user;
}
/**
* @VirtualProperty
* @SerializedName("user_name")
*/
public function getUserName()
{
return $this->user->getUserName();
}
/**
* @VirtualProperty
* @SerializedName("user_email")
*/
public function getUserEmail()
{
return $this->user->getEmail();
}
/**
* @VirtualProperty
* @SerializedName("user_id")
*/
public function getUserId()
{
return $this->user->getId();
}
/**
* @return string
*/

View File

@ -36,9 +36,9 @@ class LocaleListener implements EventSubscriberInterface
public static function getSubscribedEvents()
{
return array(
return [
// must be registered before the default Locale listener
KernelEvents::REQUEST => array(array('onKernelRequest', 17)),
);
KernelEvents::REQUEST => [['onKernelRequest', 17]],
];
}
}

View File

@ -28,9 +28,9 @@ class RegistrationConfirmedListener implements EventSubscriberInterface
public static function getSubscribedEvents()
{
return array(
return [
FOSUserEvents::REGISTRATION_CONFIRMED => 'authenticate',
);
];
}
public function authenticate(FilterUserResponseEvent $event, $eventName = null, EventDispatcherInterface $eventDispatcher = null)

View File

@ -15,24 +15,28 @@ class ChangePasswordType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('old_password', PasswordType::class, array(
'constraints' => new UserPassword(array('message' => 'Wrong value for your current password')),
))
->add('new_password', RepeatedType::class, array(
->add('old_password', PasswordType::class, [
'constraints' => new UserPassword(['message' => 'validator.password_wrong_value']),
'label' => 'config.form_password.old_password_label',
])
->add('new_password', RepeatedType::class, [
'type' => PasswordType::class,
'invalid_message' => 'The password fields must match.',
'invalid_message' => 'validator.password_must_match',
'required' => true,
'first_options' => array('label' => 'New password'),
'second_options' => array('label' => 'Repeat new password'),
'constraints' => array(
new Constraints\Length(array(
'first_options' => ['label' => 'config.form_password.new_password_label'],
'second_options' => ['label' => 'config.form_password.repeat_new_password_label'],
'constraints' => [
new Constraints\Length([
'min' => 8,
'minMessage' => 'Password should by at least 8 chars long',
)),
'minMessage' => 'validator.password_too_short',
]),
new Constraints\NotBlank(),
),
))
->add('save', SubmitType::class)
],
'label' => 'config.form_password.new_password_label',
])
->add('save', SubmitType::class, [
'label' => 'config.form.save',
])
;
}

View File

@ -14,8 +14,8 @@ class ClientType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('redirect_uris', UrlType::class, array('required' => true, 'label' => 'Redirect URIs'))
->add('save', SubmitType::class, array('label' => 'Create a new client'))
->add('redirect_uris', UrlType::class, ['required' => true, 'label' => 'developer.client.form.redirect_uris_label'])
->add('save', SubmitType::class, ['label' => 'developer.client.form.save_label'])
;
$builder->get('redirect_uris')
@ -24,7 +24,7 @@ class ClientType extends AbstractType
return $originalUri;
},
function ($submittedUri) {
return array($submittedUri);
return [$submittedUri];
}
))
;
@ -32,9 +32,9 @@ class ClientType extends AbstractType
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
$resolver->setDefaults([
'data_class' => 'Wallabag\ApiBundle\Entity\Client',
));
]);
}
public function getBlockPrefix()

View File

@ -10,8 +10,8 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
class ConfigType extends AbstractType
{
private $themes = array();
private $languages = array();
private $themes = [];
private $languages = [];
/**
* @param array $themes Themes come from the LiipThemeBundle (liip_theme.themes)
@ -30,24 +30,39 @@ class ConfigType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('theme', ChoiceType::class, array(
->add('theme', ChoiceType::class, [
'choices' => array_flip($this->themes),
'choices_as_values' => true,
))
->add('items_per_page')
->add('language', ChoiceType::class, array(
'label' => 'config.form_settings.theme_label',
])
->add('items_per_page', null, [
'label' => 'config.form_settings.items_per_page_label',
])
->add('reading_speed', ChoiceType::class, [
'label' => 'config.form_settings.reading_speed.label',
'choices' => [
'config.form_settings.reading_speed.100_word' => '0.5',
'config.form_settings.reading_speed.200_word' => '1',
'config.form_settings.reading_speed.300_word' => '1.5',
'config.form_settings.reading_speed.400_word' => '2',
],
])
->add('language', ChoiceType::class, [
'choices' => array_flip($this->languages),
'choices_as_values' => true,
))
->add('save', SubmitType::class)
'label' => 'config.form_settings.language_label',
])
->add('save', SubmitType::class, [
'label' => 'config.form.save',
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
$resolver->setDefaults([
'data_class' => 'Wallabag\CoreBundle\Entity\Config',
));
]);
}
public function getBlockPrefix()

View File

@ -14,17 +14,30 @@ class EditEntryType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title', TextType::class, array('required' => true))
->add('is_public', CheckboxType::class, array('required' => false))
->add('save', SubmitType::class)
->add('title', TextType::class, [
'required' => true,
'label' => 'entry.edit.title_label',
])
->add('is_public', CheckboxType::class, [
'required' => false,
'label' => 'entry.edit.is_public_label',
])
->add('url', TextType::class, [
'disabled' => true,
'required' => false,
'label' => 'entry.edit.url_label',
])
->add('save', SubmitType::class, [
'label' => 'entry.edit.save_label',
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
$resolver->setDefaults([
'data_class' => 'Wallabag\CoreBundle\Entity\Entry',
));
]);
}
public function getBlockPrefix()

View File

@ -34,25 +34,28 @@ class EntryFilterType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('readingTime', NumberRangeFilterType::class)
->add('createdAt', DateRangeFilterType::class, array(
'left_date_options' => array(
'attr' => array(
->add('readingTime', NumberRangeFilterType::class, [
'label' => 'entry.filters.reading_time.label',
])
->add('createdAt', DateRangeFilterType::class, [
'left_date_options' => [
'attr' => [
'placeholder' => 'dd/mm/yyyy',
),
],
'format' => 'dd/MM/yyyy',
'widget' => 'single_text',
),
'right_date_options' => array(
'attr' => array(
],
'right_date_options' => [
'attr' => [
'placeholder' => 'dd/mm/yyyy',
),
],
'format' => 'dd/MM/yyyy',
'widget' => 'single_text',
),
)
],
'label' => 'entry.filters.created_at.label',
]
)
->add('domainName', TextFilterType::class, array(
->add('domainName', TextFilterType::class, [
'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
$value = $values['value'];
if (strlen($value) <= 2 || empty($value)) {
@ -62,10 +65,15 @@ class EntryFilterType extends AbstractType
return $filterQuery->createCondition($expression);
},
))
->add('isArchived', CheckboxFilterType::class)
->add('isStarred', CheckboxFilterType::class)
->add('previewPicture', CheckboxFilterType::class, array(
'label' => 'entry.filters.domain_label',
])
->add('isArchived', CheckboxFilterType::class, [
'label' => 'entry.filters.archived_label',
])
->add('isStarred', CheckboxFilterType::class, [
'label' => 'entry.filters.starred_label',
])
->add('previewPicture', CheckboxFilterType::class, [
'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
if (false === $values['value']) {
return;
@ -75,11 +83,13 @@ class EntryFilterType extends AbstractType
return $filterQuery->createCondition($expression);
},
))
->add('language', ChoiceFilterType::class, array(
'label' => 'entry.filters.preview_picture_label',
])
->add('language', ChoiceFilterType::class, [
'choices' => array_flip($this->repository->findDistinctLanguageByUser($this->user->getId())),
'choices_as_values' => true,
))
'label' => 'entry.filters.language_label',
])
;
}
@ -90,9 +100,9 @@ class EntryFilterType extends AbstractType
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
$resolver->setDefaults([
'csrf_protection' => false,
'validation_groups' => array('filtering'),
));
'validation_groups' => ['filtering'],
]);
}
}

View File

@ -3,7 +3,6 @@
namespace Wallabag\CoreBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\UrlType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
@ -13,16 +12,18 @@ class NewEntryType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('url', UrlType::class, array('required' => true))
->add('save', SubmitType::class)
->add('url', UrlType::class, [
'required' => true,
'label' => 'entry.new.form_new.url_label',
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
$resolver->setDefaults([
'data_class' => 'Wallabag\CoreBundle\Entity\Entry',
));
]);
}
public function getBlockPrefix()

View File

@ -3,7 +3,6 @@
namespace Wallabag\CoreBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
@ -13,16 +12,15 @@ class NewTagType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('label', TextType::class, array('required' => true))
->add('save', SubmitType::class)
->add('label', TextType::class, ['required' => true])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
$resolver->setDefaults([
'data_class' => 'Wallabag\CoreBundle\Entity\Tag',
));
]);
}
public function getBlockPrefix()

View File

@ -17,30 +17,38 @@ class NewUserType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('username', TextType::class, array('required' => true))
->add('plainPassword', RepeatedType::class, array(
->add('username', TextType::class, [
'required' => true,
'label' => 'config.form_new_user.username_label',
])
->add('plainPassword', RepeatedType::class, [
'type' => PasswordType::class,
'invalid_message' => 'The password fields must match',
'first_options' => array('label' => 'Password'),
'second_options' => array('label' => 'Repeat new password'),
'constraints' => array(
new Constraints\Length(array(
'invalid_message' => 'validator.password_must_match',
'first_options' => ['label' => 'config.form_new_user.password_label'],
'second_options' => ['label' => 'config.form_new_user.repeat_new_password_label'],
'constraints' => [
new Constraints\Length([
'min' => 8,
'minMessage' => 'Password should by at least 8 chars long',
)),
'minMessage' => 'validator.password_too_short',
]),
new Constraints\NotBlank(),
),
))
->add('email', EmailType::class)
->add('save', SubmitType::class)
],
'label' => 'config.form_new_user.plain_password_label',
])
->add('email', EmailType::class, [
'label' => 'config.form_new_user.email_label',
])
->add('save', SubmitType::class, [
'label' => 'config.form.save',
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
$resolver->setDefaults([
'data_class' => 'Wallabag\UserBundle\Entity\User',
));
]);
}
public function getBlockPrefix()

View File

@ -12,16 +12,20 @@ class RssType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('rss_limit')
->add('save', SubmitType::class)
->add('rss_limit', null, [
'label' => 'config.form_rss.rss_limit',
])
->add('save', SubmitType::class, [
'label' => 'config.form.save',
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
$resolver->setDefaults([
'data_class' => 'Wallabag\CoreBundle\Entity\Config',
));
]);
}
public function getBlockPrefix()

View File

@ -14,12 +14,19 @@ class TaggingRuleType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('rule', TextType::class, array('required' => true))
->add('save', SubmitType::class)
->add('rule', TextType::class, [
'required' => true,
'label' => 'config.form_rules.rule_label',
])
->add('save', SubmitType::class, [
'label' => 'config.form.save',
])
;
$tagsField = $builder
->create('tags', TextType::class)
->create('tags', TextType::class, [
'label' => 'config.form_rules.tags_label',
])
->addModelTransformer(new StringToListTransformer(','));
$builder->add($tagsField);
@ -27,9 +34,9 @@ class TaggingRuleType extends AbstractType
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
$resolver->setDefaults([
'data_class' => 'Wallabag\CoreBundle\Entity\TaggingRule',
));
]);
}
public function getBlockPrefix()

View File

@ -15,10 +15,19 @@ class UserInformationType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class)
->add('email', EmailType::class)
->add('twoFactorAuthentication', CheckboxType::class, array('required' => false))
->add('save', SubmitType::class)
->add('name', TextType::class, [
'label' => 'config.form_user.name_label',
])
->add('email', EmailType::class, [
'label' => 'config.form_user.email_label',
])
->add('twoFactorAuthentication', CheckboxType::class, [
'required' => false,
'label' => 'config.form_user.twoFactorAuthentication_label',
])
->add('save', SubmitType::class, [
'label' => 'config.form.save',
])
->remove('username')
->remove('plainPassword')
;
@ -31,9 +40,9 @@ class UserInformationType extends AbstractType
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
$resolver->setDefaults([
'data_class' => 'Wallabag\UserBundle\Entity\User',
));
]);
}
public function getBlockPrefix()

View File

@ -32,14 +32,21 @@ class ContentProxy
* Fetch content using graby and hydrate given entry with results information.
* In case we couldn't find content, we'll try to use Open Graph data.
*
* @param Entry $entry Entry to update
* @param string $url Url to grab content for
* We can also force the content, in case of an import from the v1 for example, so the function won't
* fetch the content from the website but rather use information given with the $content parameter.
*
* @param Entry $entry Entry to update
* @param string $url Url to grab content for
* @param array $content An array with AT LEAST keys title, html, url, language & content_type to skip the fetchContent from the url
*
* @return Entry
*/
public function updateEntry(Entry $entry, $url)
public function updateEntry(Entry $entry, $url, array $content = [])
{
$content = $this->graby->fetchContent($url);
// do we have to fetch the content or the provided one is ok?
if (empty($content) || false === $this->validateContent($content)) {
$content = $this->graby->fetchContent($url);
}
$title = $content['title'];
if (!$title && isset($content['open_graph']['og_title'])) {
@ -62,7 +69,11 @@ class ContentProxy
$entry->setLanguage($content['language']);
$entry->setMimetype($content['content_type']);
$entry->setReadingTime(Utils::getReadingTime($html));
$entry->setDomainName(parse_url($entry->getUrl(), PHP_URL_HOST));
$domainName = parse_url($entry->getUrl(), PHP_URL_HOST);
if (false !== $domainName) {
$entry->setDomainName($domainName);
}
if (isset($content['open_graph']['og_image'])) {
$entry->setPreviewPicture($content['open_graph']['og_image']);
@ -71,10 +82,10 @@ class ContentProxy
try {
$this->tagger->tag($entry);
} catch (\Exception $e) {
$this->logger->error('Error while trying to automatically tag an entry.', array(
$this->logger->error('Error while trying to automatically tag an entry.', [
'entry_url' => $url,
'error_msg' => $e->getMessage(),
));
]);
}
return $entry;
@ -113,4 +124,17 @@ class ContentProxy
}
}
}
/**
* Validate that the given content as enough value to be used
* instead of fetch the content from the url.
*
* @param array $content
*
* @return bool true if valid otherwise false
*/
private function validateContent(array $content)
{
return isset($content['title']) && isset($content['html']) && isset($content['url']) && isset($content['language']) && isset($content['content_type']);
}
}

View File

@ -18,10 +18,10 @@ class EntriesExport
private $wallabagUrl;
private $logoPath;
private $title = '';
private $entries = array();
private $authors = array('wallabag');
private $entries = [];
private $authors = ['wallabag'];
private $language = '';
private $tags = array();
private $tags = [];
private $footerTemplate = '<div style="text-align:center;">
<p>Produced by wallabag with %EXPORT_METHOD%</p>
<p>Please open <a href="https://github.com/wallabag/wallabag/issues">an issue</a> if you have trouble with the display of this E-Book on your device.</p>
@ -41,12 +41,14 @@ class EntriesExport
* Define entries.
*
* @param array|Entry $entries An array of entries or one entry
*
* @return EntriesExport
*/
public function setEntries($entries)
{
if (!is_array($entries)) {
$this->language = $entries->getLanguage();
$entries = array($entries);
$entries = [$entries];
}
$this->entries = $entries;
@ -62,6 +64,8 @@ class EntriesExport
* Sets the category of which we want to get articles, or just one entry.
*
* @param string $method Method to get articles
*
* @return EntriesExport
*/
public function updateTitle($method)
{
@ -78,30 +82,14 @@ class EntriesExport
* Sets the output format.
*
* @param string $format
*
* @return Response
*/
public function exportAs($format)
{
switch ($format) {
case 'epub':
return $this->produceEpub();
case 'mobi':
return $this->produceMobi();
case 'pdf':
return $this->producePDF();
case 'csv':
return $this->produceCSV();
case 'json':
return $this->produceJSON();
case 'xml':
return $this->produceXML();
case 'txt':
return $this->produceTXT();
$functionName = 'produce'.ucfirst($format);
if (method_exists($this, $functionName)) {
return $this->$functionName();
}
throw new \InvalidArgumentException(sprintf('The format "%s" is not yet supported.', $format));
@ -109,6 +97,8 @@ class EntriesExport
/**
* Use PHPePub to dump a .epub file.
*
* @return Response
*/
private function produceEpub()
{
@ -180,17 +170,19 @@ class EntriesExport
return Response::create(
$book->getBook(),
200,
array(
[
'Content-Description' => 'File Transfer',
'Content-type' => 'application/epub+zip',
'Content-Disposition' => 'attachment; filename="'.$this->title.'.epub"',
'Content-Transfer-Encoding' => 'binary',
)
]
);
}
/**
* Use PHPMobi to dump a .mobi file.
*
* @return Response
*/
private function produceMobi()
{
@ -229,20 +221,22 @@ class EntriesExport
return Response::create(
$mobi->toString(),
200,
array(
[
'Accept-Ranges' => 'bytes',
'Content-Description' => 'File Transfer',
'Content-type' => 'application/x-mobipocket-ebook',
'Content-Disposition' => 'attachment; filename="'.$this->title.'.mobi"',
'Content-Transfer-Encoding' => 'binary',
)
]
);
}
/**
* Use TCPDF to dump a .pdf file.
*
* @return Response
*/
private function producePDF()
private function producePdf()
{
$pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
@ -284,38 +278,40 @@ class EntriesExport
return Response::create(
$pdf->Output('', 'S'),
200,
array(
[
'Content-Description' => 'File Transfer',
'Content-type' => 'application/pdf',
'Content-Disposition' => 'attachment; filename="'.$this->title.'.pdf"',
'Content-Transfer-Encoding' => 'binary',
)
]
);
}
/**
* Inspired from CsvFileDumper.
*
* @return Response
*/
private function produceCSV()
private function produceCsv()
{
$delimiter = ';';
$enclosure = '"';
$handle = fopen('php://memory', 'rb+');
fputcsv($handle, array('Title', 'URL', 'Content', 'Tags', 'MIME Type', 'Language'), $delimiter, $enclosure);
fputcsv($handle, ['Title', 'URL', 'Content', 'Tags', 'MIME Type', 'Language'], $delimiter, $enclosure);
foreach ($this->entries as $entry) {
fputcsv(
$handle,
array(
[
$entry->getTitle(),
$entry->getURL(),
// remove new line to avoid crazy results
str_replace(array("\r\n", "\r", "\n"), '', $entry->getContent()),
str_replace(["\r\n", "\r", "\n"], '', $entry->getContent()),
implode(', ', $entry->getTags()->toArray()),
$entry->getMimetype(),
$entry->getLanguage(),
),
],
$delimiter,
$enclosure
);
@ -328,41 +324,56 @@ class EntriesExport
return Response::create(
$output,
200,
array(
[
'Content-type' => 'application/csv',
'Content-Disposition' => 'attachment; filename="'.$this->title.'.csv"',
'Content-Transfer-Encoding' => 'UTF-8',
)
]
);
}
private function produceJSON()
/**
* Dump a JSON file.
*
* @return Response
*/
private function produceJson()
{
return Response::create(
$this->prepareSerializingContent('json'),
200,
array(
[
'Content-type' => 'application/json',
'Content-Disposition' => 'attachment; filename="'.$this->title.'.json"',
'Content-Transfer-Encoding' => 'UTF-8',
)
]
);
}
private function produceXML()
/**
* Dump a XML file.
*
* @return Response
*/
private function produceXml()
{
return Response::create(
$this->prepareSerializingContent('xml'),
200,
array(
[
'Content-type' => 'application/xml',
'Content-Disposition' => 'attachment; filename="'.$this->title.'.xml"',
'Content-Transfer-Encoding' => 'UTF-8',
)
]
);
}
private function produceTXT()
/**
* Dump a TXT file.
*
* @return Response
*/
private function produceTxt()
{
$content = '';
$bar = str_repeat('=', 100);
@ -374,17 +385,19 @@ class EntriesExport
return Response::create(
$content,
200,
array(
[
'Content-type' => 'text/plain',
'Content-Disposition' => 'attachment; filename="'.$this->title.'.txt"',
'Content-Transfer-Encoding' => 'UTF-8',
)
]
);
}
/**
* Return a Serializer object for producing processes that need it (JSON & XML).
*
* @param string $format
*
* @return Serializer
*/
private function prepareSerializingContent($format)
@ -394,7 +407,7 @@ class EntriesExport
return $serializer->serialize(
$this->entries,
$format,
SerializationContext::create()->setGroups(array('entries_for_user'))
SerializationContext::create()->setGroups(['entries_for_user'])
);
}

View File

@ -0,0 +1,37 @@
<?php
namespace Wallabag\CoreBundle\Helper;
use Symfony\Component\Routing\Router;
/**
* Manage redirections to avoid redirecting to empty routes.
*/
class Redirect
{
private $router;
public function __construct(Router $router)
{
$this->router = $router;
}
/**
* @param string $url URL to redirect
* @param string $fallback Fallback URL if $url is null
*
* @return string
*/
public function to($url, $fallback = '')
{
if (null !== $url) {
return $url;
}
if ('' === $fallback) {
return $this->router->generate('homepage');
}
return $fallback;
}
}

View File

@ -54,7 +54,7 @@ class RuleBasedTagger
public function tagAllForUser(User $user)
{
$rules = $this->getRulesForUser($user);
$entries = array();
$entries = [];
foreach ($rules as $rule) {
$qb = $this->entryRepository->getBuilderForAllByUser($user->getId());

View File

@ -157,7 +157,7 @@ class EntryRepository extends EntityRepository
->getQuery()
->getResult();
$languages = array();
$languages = [];
foreach ($results as $result) {
$languages[$result['language']] = $result['language'];
}
@ -233,7 +233,7 @@ class EntryRepository extends EntityRepository
* @param $url
* @param $userId
*
* @return array|bool
* @return Entry|bool
*/
public function findByUrlAndUserId($url, $userId)
{

View File

@ -3,14 +3,14 @@ services:
class: Wallabag\CoreBundle\Helper\DetectActiveTheme
arguments:
- "@security.token_storage"
- %wallabag_core.theme%
- "%wallabag_core.theme%"
# custom form type
wallabag_core.form.type.config:
class: Wallabag\CoreBundle\Form\Type\ConfigType
arguments:
- %liip_theme.themes%
- %wallabag_core.languages%
- "%liip_theme.themes%"
- "%wallabag_core.languages%"
tags:
- { name: form.type }
@ -32,14 +32,29 @@ services:
wallabag_core.table_prefix_subscriber:
class: Wallabag\CoreBundle\Subscriber\TablePrefixSubscriber
arguments:
- %database_table_prefix%
- "%database_table_prefix%"
tags:
- { name: doctrine.event_subscriber }
wallabag_core.graby:
class: Graby\Graby
arguments:
- { error_message: "wallabag can't retrieve contents for this article. Please report this issue to us." }
-
error_message: "wallabag can't retrieve contents for this article. Please report this issue to us."
http_client:
user_agents:
'lifehacker.com': 'PHP/5.2'
'gawker.com': 'PHP/5.2'
'deadspin.com': 'PHP/5.2'
'kotaku.com': 'PHP/5.2'
'jezebel.com': 'PHP/5.2'
'io9.com': 'PHP/5.2'
'jalopnik.com': 'PHP/5.2'
'gizmodo.com': 'PHP/5.2'
'.wikipedia.org': 'Mozilla/5.2'
'.fok.nl': 'Googlebot/2.1'
'getpocket.com': 'PHP/5.2'
'iansommerville.com': 'PHP/5.2'
calls:
- [ setLogger, [ "@logger" ] ]
tags:
@ -77,10 +92,10 @@ services:
class: Wallabag\CoreBundle\EventListener\RegistrationConfirmedListener
arguments:
- "@doctrine.orm.entity_manager"
- %wallabag_core.theme%
- %wallabag_core.items_on_page%
- %wallabag_core.rss_limit%
- %wallabag_core.language%
- "%wallabag_core.theme%"
- "%wallabag_core.items_on_page%"
- "%wallabag_core.rss_limit%"
- "%wallabag_core.language%"
tags:
- { name: kernel.event_subscriber }
@ -99,3 +114,8 @@ services:
class: Wallabag\CoreBundle\Operator\Doctrine\Matches
tags:
- { name: rulerz.operator, executor: rulerz.executor.doctrine, operator: matches, inline: true }
wallabag_core.helper.redirect:
class: Wallabag\CoreBundle\Helper\Redirect
arguments:
- "@router"

View File

@ -512,7 +512,7 @@ img.preview {
width: 50%;
}
.pagination {
div.pagination ul {
text-align: right;
margin-bottom:50px;
}
@ -523,25 +523,25 @@ img.preview {
color: #999;
}
.pagination > * {
div.pagination ul > * {
display: inline-block;
margin-left: 0.5em;
}
.pagination a {
div.pagination ul a {
color: #999;
text-decoration: none;
}
.pagination a:hover, .pagination a:focus {
div.pagination ul a:hover, div.pagination ul a:focus {
text-decoration: underline;
}
}
.pagination .disabled {
div.pagination ul .disabled {
display: none;
}
.pagination .current {
div.pagination ul .current {
height: 25px;
padding: 4px 8px;
border: 1px solid #d5d5d5;

View File

@ -78,19 +78,6 @@ $.fn.ready(function() {
event.preventDefault();
});
/* ==========================================================================
Keyboard gestion
========================================================================== */
$(window).keydown(function(e){
if ( ( e.target.tagName.toLowerCase() !== 'input' && e.keyCode == 83 ) || (e.keyCode == 27 && $bagitForm.is(':visible') ) ) {
$bagit.removeClass("current");
$("#bagit-arrow").removeClass("arrow-down");
toggleSaveLinkForm();
return false;
}
});
/* ==========================================================================
Process all links inside an article
========================================================================== */

View File

@ -54,20 +54,6 @@ body.login main {
padding: 0;
}
#warning_message {
position: fixed;
background-color: #ff6347;
z-index: 1000;
bottom: 0;
left: 0;
width: 100%;
color: #000;
}
#warning_message a {
color: #555;
}
.border-bottom {
border-bottom: 1px solid #DDD;
}
@ -94,6 +80,14 @@ main, #content, .valign-wrapper {
margin-bottom: 0;
}
.pagination {
float: right;
}
.pagination ul {
margin: 0 !important;
}
.pagination li {
padding: 0;
}
@ -104,6 +98,18 @@ main, #content, .valign-wrapper {
display: block;
}
.pagination li.active span {
padding: 0px 10px;
height: 30px;
display: block;
color: #fff;
}
.pagination .disabled {
margin-right: 10px;
margin-left: 10px;
}
.page-footer .footer-copyright p {
display: inline;
}
@ -420,6 +426,17 @@ main ul.row {
.reader-mode span {
opacity: 1;
}
.tabs {
display: inline-block;
height: auto;
}
.tab {
min-width: 100%;
}
.indicator {
display: none;
}
}
@media only screen and (min-width : 400px) {

View File

@ -1,130 +1,425 @@
#Login
Keep me logged in: 'Forbliv logget ind'
Forgot your password?: 'Glemt adgangskoden?'
Login: 'Log ind'
Back to login: 'Tilbage til login'
Send: 'Send'
"Enter your email address below and we'll send you password reset instructions.": "Indtast din emailadresse nedenfor, så vil du modtage instrukser om at nulstille adgangskoden."
security:
login:
# page_title: 'Welcome to wallabag!'
keep_logged_in: 'Forbliv logget ind'
forgot_password: 'Glemt adgangskoden?'
submit: 'Log ind'
# register: 'Register'
username: 'Brugernavn'
password: 'Adgangskode'
# cancel: 'Cancel'
resetting:
description: "Indtast din emailadresse nedenfor, så vil du modtage instrukser om at nulstille adgangskoden."
register:
# page_title: 'Create an account'
# go_to_account: 'Go to your account'
# Menu
unread: 'ulæst'
starred: 'favoritter'
archive: 'arkiv'
all: 'alle artikler'
tags: 'tags'
config: 'Opsætning'
howto: 'how-to'
logout: 'log ud'
Filtered: 'Filtreret'
About: 'Om'
menu:
left:
unread: 'Ulæst'
starred: 'Favoritter'
archive: 'Arkiv'
all_articles: 'Alle artikler'
config: 'Opsætning'
tags: 'Tags'
# internal_settings: 'Internal Settings'
# import: 'Import'
howto: 'KUow-to'
# developer: 'Developer'
logout: 'Log ud'
about: 'Om'
search: 'Søg'
# save_link: 'Save a link'
back_to_unread: 'Tilbage til de ulæste artikler'
top:
add_new_entry: 'Tilføj ny artikel'
search: 'Søg'
filter_entries: 'Filtrer artikler'
# export: 'Export'
search_form:
input_label: 'Indtast søgning'
# Header
Back to unread articles: 'Tilbage til de ulæste artikler'
Add a new entry: 'Tilføj ny artikel'
Search: 'Søg'
Filter entries: 'Filtrer artikler'
Enter your search here: 'Indtast søgning'
Save new entry: 'Gem ny artikel'
footer:
wallabag:
# elsewhere: 'Take wallabag with you'
# social: 'Social'
# powered_by: 'powered by'
about: 'Om'
# Config screen
Settings: 'Indstillinger'
User information: 'Brugeroplysninger'
Password: 'Adgangskode'
RSS: 'RSS'
Add a user: 'Tilføj bruger'
Theme: 'Tema'
Items per page: 'Poster pr. side'
Language: 'Sprog'
Save: 'Gem'
RSS token: 'RSS-Token'
Name: 'Navn'
Email: 'Emailadresse'
No token: 'Intet token'
Reset your token: 'Nulstil token'
Create your token: 'Opret token'
Rss limit: 'RSS-grænse'
RSS links: 'RSS-Links'
'RSS feeds provided by wallabag allow you to read your saved articles with your favourite RSS reader. You need to generate a token first.': 'RSS-feeds fra wallabag gør det muligt at læse de artikler, der gemmes i wallabag, med din RSS-læser. Det kræver, at du genererer et token først.'
Old password: 'Gammel adgangskode'
New password: 'Ny adgangskode'
Repeat new password: 'Gentag adgangskode'
Username: 'Brugernavn'
config:
page_title: 'Opsætning'
tab_menu:
settings: 'Indstillinger'
rss: 'RSS'
user_info: 'Brugeroplysninger'
password: 'Adgangskode'
# rules: 'Tagging rules'
new_user: 'Tilføj bruger'
form:
save: 'Gem'
form_settings:
theme_label: 'Tema'
items_per_page_label: 'Poster pr. side'
language_label: 'Sprog'
reading_speed:
# label: 'Reading speed'
# help_message: 'You can use online tools to estimate your reading speed:'
# 100_word: 'I read ~100 words per minute'
# 200_word: 'I read ~200 words per minute'
# 300_word: 'I read ~300 words per minute'
# 400_word: 'I read ~400 words per minute'
form_rss:
description: 'RSS-feeds fra wallabag gør det muligt at læse de artikler, der gemmes i wallabag, med din RSS-læser. Det kræver, at du genererer et token først.'
token_label: 'RSS-Token'
no_token: 'Intet token'
token_create: 'Opret token'
token_reset: 'Nulstil token'
rss_links: 'RSS-Links'
rss_link:
unread: 'ulæst'
starred: 'favoritter'
archive: 'arkiv'
# rss_limit: 'Number of items in the feed'
form_user:
# two_factor_description: "Enabling two factor authentication means you'll receive an email with a code on every new untrusted connexion"
name_label: 'Navn'
email_label: 'Emailadresse'
# twoFactorAuthentication_label: 'Two factor authentication'
form_password:
old_password_label: 'Gammel adgangskode'
new_password_label: 'Ny adgangskode'
repeat_new_password_label: 'Gentag adgangskode'
form_rules:
# if_label: 'if'
# then_tag_as_label: 'then tag as'
# delete_rule_label: 'delete'
# rule_label: 'Rule'
# tags_label: 'Tags'
# faq:
# title: 'FAQ'
# tagging_rules_definition_title: 'What does « tagging rules » mean?'
# 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.'
# how_to_use_them_title: 'How do I use them?'
# 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 &lt;= 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 &gt;= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, github </i> »'
# variables_available_title: 'Which variables and operators can I use to write rules?'
# variables_available_description: 'The following variables and operators can be used to create tagging rules:'
# meaning: 'Meaning'
# variable_description:
# label: 'Variable'
# title: 'Title of the entry'
# url: 'URL of the entry'
# isArchived: 'Whether the entry is archived or not'
# isStarred: 'Whether the entry is starred or not'
# content: "The entry's content"
# language: "The entry's language"
# mimetype: "The entry's mime-type"
# readingTime: "The estimated entry's reading time, in minutes"
# domainName: 'The domain name of the entry'
# operator_description:
# label: 'Operator'
# less_than: 'Less than...'
# strictly_less_than: 'Strictly less than...'
# greater_than: 'Greater than...'
# strictly_greater_than: 'Strictly greater than...'
# equal_to: 'Equal to...'
# not_equal_to: 'Not equal to...'
# or: 'One rule OR another'
# and: 'One rule AND another'
# matches: 'Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code>'
form_new_user:
username_label: 'Brugernavn'
password_label: 'Adgangskode'
repeat_new_password_label: 'Gentag adgangskode'
plain_password_label: '????'
email_label: 'Emailadresse'
# Entries
'estimated reading time': 'estimeret læsetid'
original: original
Toggle mark as read: 'Marker som læst'
Toggle favorite: 'Skift favoritstatus'
Delete: 'Slet'
entry:
page_titles:
# unread: 'Unread entries'
# starred: 'Starred entries'
# archived: 'Archived entries'
# filtered: 'Filtered entries'
list:
# number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.'
reading_time: 'estimeret læsetid'
reading_time_minutes: 'estimeret læsetid: %readingTime% min'
reading_time_less_one_minute: 'estimeret læsetid: <small class="inferieur">&lt;</small> 1 min'
original_article: 'original'
toogle_as_read: 'Marker som læst'
toogle_as_star: 'Skift favoritstatus'
delete: 'Slet'
# export_title: 'Export'
filters:
title: 'Filtre'
status_label: 'Status'
archived_label: 'Arkiveret'
starred_label: 'Favorit'
preview_picture_label: 'Har et vist billede'
preview_picture_help: 'Forhåndsvis billede'
language_label: 'Sprog'
reading_time:
label: 'Læsetid i minutter'
from: 'fra'
to: 'til'
domain_label: 'Domænenavn'
created_at:
label: 'Oprettelsesdato'
from: 'fra'
to: 'til'
action:
clear: 'Ryd'
filter: 'Filter'
view:
left_menu:
# back_to_top: 'Back to top'
back_to_homepage: 'Tilbage'
set_as_read: 'Marker som læst'
# set_as_unread: 'Mark as unread'
set_as_favorite: 'Marker som favorit'
view_original_article: 'Originalartikel'
# re_fetch_content: 'Re-fetch content'
delete: 'Slet'
add_a_tag: 'Tliføj et tag'
share_content: 'Deling'
# share_email_label: 'Email'
download: 'Download'
# print: 'Print'
problem:
label: 'Problemer?'
description: 'Vises artiklen forkert?'
edit_title: 'Rediger titel'
original_article: 'original'
# annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations'
new:
page_title: 'Gem ny artikel'
placeholder: 'http://website.com'
form_new:
url_label: Url
edit:
# page_title: 'Edit an entry'
# title_label: 'Title'
url_label: 'Url'
# is_public_label: 'Public'
save_label: 'Gem'
# Filters
Filters: 'Filtre'
Status: 'Status'
Archived: 'Arkiveret'
Starred: 'Favorit'
Preview picture: 'Forhåndsvis billede'
Has a preview picture: 'Har et vist billede'
Reading time in minutes: 'Læsetid i minutter'
from: 'fra'
to: 'til'
website.com: 'website.com'
Domain name: 'Domænenavn'
Creation date: 'Oprettelsesdato'
dd/mm/yyyy: 'dd.mm.åååå'
Clear: 'Ryd'
Filter: 'Filter'
about:
page_title: 'Om'
top_menu:
who_behind_wallabag: 'Hvem står bag wallabag'
getting_help: 'Find hjælp'
helping: 'Hjælp wallabag'
contributors: 'Bidragsydere'
# third_party: 'Third-party libraries'
who_behind_wallabag:
developped_by: 'Udviklet af'
website: 'Hjemmeside'
many_contributors: 'Og mange andre bidragsydere ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">på Github</a>'
project_website: 'Projektets hjemmeside'
license: 'Licens'
version: 'Version'
getting_help:
documentation: 'Dokumentation'
bug_reports: 'Bugs'
support: '<a href="https://support.wallabag.org">På vor support-side</a> eller <a href="https://github.com/wallabag/wallabag/issues">på GitHub</a>'
helping:
description: 'wallabag er gratis og Open source. Du kan hjælpe os:'
by_contributing: 'ved at bidrage til projektet:'
by_contributing_2: 'et Github-issue fortæller om alt, hvad vi har brug for:'
by_paypal: 'via Paypal'
contributors:
# description: 'Thank you to contributors on wallabag web application'
third_party:
# description: 'Here are the list of third-party libraries used in wallabag (with their licenses):'
# package: 'Package'
license: 'Licens'
# About
Who is behind wallabag: "hvem står bag wallabag"
Getting help: "Find hjælp"
Helping wallabag: "hjælp wallabag"
Developed by: "Udviklet af"
website: "Hjemmeside"
And many others contributors ♥: "Og mange andre bidragsydere ♥"
on GitHub: "på GitHub"
Project website: "Projektets hjemmeside"
License: "Licens"
Version: "Version"
Documentation: "Dokumentation"
Bug reports: "Bugs"
On our support website: "På vor support-side"
or: "eller"
"wallabag is free and opensource. You can help us:": "wallabag er gratis og Open source. Du kan hjælpe os:"
"by contributing to the project:": "ved at bidrage til projektet:"
an issue lists all our needs: "et Github-issue fortæller om alt, hvad vi har brug for:"
via Paypal: "via PayPal"
howto:
page_title: 'How-to'
# page_description: 'There are several ways to save an article:'
top_menu:
browser_addons: 'Browserudvidelser'
mobile_apps: 'Apps'
bookmarklet: 'Bookmarklet'
form:
description: 'Tak gennem denne formular'
browser_addons:
firefox: 'Standardudvidelse til Firefox'
chrome: 'Chrome-udvidelse'
mobile_apps:
android:
via_f_droid: 'via F-Droid'
via_google_play: 'via Google Play'
# ios: 'on the iTunes Store'
# windows: 'on the Microsoft Store'
bookmarklet:
description: 'Træk dette link til din bogmærkeliste:'
# Howto
Form: Formular
Thanks to this form: "Tak gennem denne formular"
Browser addons: "Browserudvidelser"
Mobile apps: "Apps"
Bookmarklet: "Bookmarklet"
Standard Firefox Add-On: "Standardudvidelse til Firefox"
Chrome Extension: "Chrome-udvidelse"
download the application: "Download"
"Drag &amp; drop this link to your bookmarks bar:": "Træk dette link til din bogmærkeliste:"
quickstart:
# page_title: 'Quickstart'
# intro:
# title: 'Welcome to wallabag!'
# paragraph_1: "We'll accompany you to visit wallabag and show you some features which can interest you."
# paragraph_2: 'Follow us!'
# configure:
# title: 'Configure the application'
# language: 'Change language and design'
# rss: 'Enable RSS feeds'
# tagging_rules: 'Write rules to automatically tag your articles'
# admin:
# title: 'Administration'
# description: 'As an administrator, you have privileges on wallabag. You can:'
# new_user: 'Create a new user'
# analytics: 'Configure analytics'
# sharing: 'Enable some parameters about article sharing'
# export: 'Configure export'
# import: 'Configure import'
# first_steps:
# title: 'First steps'
# new_article: 'Save your first article'
# unread_articles: 'And classify it!'
# migrate:
# title: 'Migrate from an existing service'
# description: "Are you using another service? We'll help you to retrieve your data on wallabag."
# pocket: 'Migrate from Pocket'
# wallabag_v1: 'Migrate from wallabag v1'
# wallabag_v2: 'Migrate from wallabag v2'
# developer:
# title: 'Developers'
# create_application: 'Create your third application'
# docs:
# title: 'Full documentation'
# annotate: 'Annotate your article'
# export: 'Convert your articles into ePUB or PDF'
# search_filters: 'See how you can look for an article by using search engine and filters'
# fetching_errors: 'What can I do if an article encounters errors during fetching?'
# all_docs: 'And so many other articles!'
# support:
# title: 'Support'
# description: 'If you need some help, we are here for you.'
# github: 'On GitHub'
# email: 'By email'
# gitter: 'On Gitter'
# Flash messages
Information updated: "Oplysninger opdateret"
"Config saved. Some parameters will be considered after disconnection.": "Opsætning gemt. Visse ændringer vil først fremgå ved næste login."
RSS information updated: "RSS-oplysninger opdateret"
Password updated: "Adgangskode opdateret"
Entry starred: "Artikel markeret som favorit"
Entry unstarred: "Artikel ikke længere markeret som favorit"
Entry archived: "Artikel arkiveret"
Entry unarchived: "Artikel ikke længere arkiveret"
Entry deleted: "Artikel slettet"
tag:
page_title: 'Tags'
list:
# number_on_the_page: '{0} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.'
# Entry
Mark as read: 'Marker som læst'
Favorite: 'Marker som favorit'
back: 'tilbage'
original article: 'Originalartikel'
Add a tag: 'Tliføj et tag'
Share: 'Deling'
Download: 'Download'
Does this article appear wrong?: "Vises artiklen forkert?"
Problems?: 'Problemer?'
Edit title: "Rediger titel"
import:
# page_title: 'Import'
# page_description: 'Welcome to wallabag importer. Please select your previous service that you want to migrate.'
# action:
# import_contents: 'Import contents'
# form:
# mark_as_read_title: 'Mark all as read?'
# mark_as_read_label: 'Mark all imported entries as read'
# file_label: 'File'
# save_label: 'Upload file'
# pocket:
# page_title: 'Import > Pocket'
# 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."
# config_missing:
# description: "Pocket import isn't configured."
# admin_message: 'You need to define %keyurls%a pocket_consumer_key%keyurle%.'
# user_message: 'Your server admin needs to define an API Key for Pocket.'
# 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.'
# connect_to_pocket: 'Connect to Pocket and import data'
# wallabag_v1:
# page_title: 'Import > Wallabag v1'
# 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.'
# how_to: 'Please select your wallabag export and click on the below button to upload and import it.'
# wallabag_v2:
# page_title: 'Import > Wallabag v2'
# 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.'
developer:
# page_title: 'Developer'
# welcome_message: 'Welcome to the wallabag API'
# documentation: 'Documentation'
# how_to_first_app: 'How to create my first application'
# full_documentation: 'View full API documentation'
# list_methods: 'List API methods'
# clients:
# title: 'Clients'
# create_new: 'Create a new client'
# existing_clients:
# title: 'Existing clients'
# field_id: 'Client ID'
# field_secret: 'Client secret'
# field_uris: 'Redirect URIs'
# field_grant_types: 'Grant type allowed'
# no_client: 'No client yet.'
# remove:
# warn_message_1: 'You have the ability to remove this client. This action is IRREVERSIBLE !'
# warn_message_2: "If you remove it, every app configured with that client won't be able to auth on your wallabag."
# action: 'Remove this client'
# client:
# page_title: 'Developer > New client'
# page_description: 'You are about to create a new client. Please fill the field below for the redirect URI of your application.'
# form:
# redirect_uris_label: 'Redirect URIs'
# save_label: 'Create a new client'
# action_back: 'Back'
# client_parameter:
# page_title: 'Developer > Client parameters'
# page_description: 'Here are your client parameters.'
# field_id: 'Client ID'
# field_secret: 'Client secret'
# back: 'Back'
# read_howto: 'Read the howto "Create my first application"'
# howto:
# page_title: 'Developer > How to create my first application'
# description:
# 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.'
# paragraph_2: 'You need a token to communicate between your 3rd application and wallabag API.'
# paragraph_3: 'To create this token, you need <a href="%link%">to create a new client</a>.'
# paragraph_4: 'Now, create your token (replace client_id, client_secret, username and password with the good values):'
# paragraph_5: 'The API will return a response like this:'
# paragraph_6: 'The access_token is useful to do a call to the API endpoint. For example:'
# paragraph_7: 'This call will return all the entries for your user.'
# paragraph_8: 'If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.'
# back: 'Back'
validator:
password_must_match: 'De indtastede adgangskoder skal være ens'
password_too_short: 'Adgangskoden skal være mindst 8 tegn'
# password_wrong_value: 'Wrong value for your current password'
# item_per_page_too_high: 'This will certainly kill the app'
# rss_limit_too_hight: 'This will certainly kill the app'
flashes:
config:
notice:
config_saved: 'Opsætning gemt. Visse ændringer vil først fremgå ved næste login.'
password_updated: 'Adgangskode opdateret'
# password_not_updated_demo: "In demonstration mode, you can't change password for this user."
user_updated: 'Oplysninger opdateret'
rss_updated: 'RSS-oplysninger opdateret'
# tagging_rules_updated: 'Tagging rules updated'
# tagging_rules_deleted: 'Tagging rule deleted'
# user_added: 'User "%username%" added'
# rss_token_updated: 'RSS token updated'
entry:
notice:
# entry_already_saved: 'Entry already saved on %date%'
# entry_saved: 'Entry saved'
# entry_updated: 'Entry updated'
# entry_reloaded: 'Entry reloaded'
# entry_reload_failed: 'Failed to reload entry'
entry_archived: 'Artikel arkiveret'
entry_unarchived: 'Artikel ikke længere arkiveret'
entry_starred: 'Artikel markeret som favorit'
entry_unstarred: 'Artikel ikke længere markeret som favorit'
entry_deleted: 'Artikel slettet'
tag:
notice:
# tag_added: 'Tag added'
import:
notice:
# failed: 'Import failed, please try again.'
# failed_on_file: 'Error while processing import. Please verify your import file.'
# summary: 'Import summary: %imported% imported, %skipped% already saved.'
developer:
notice:
# client_created: 'New client created.'
# client_deleted: 'Client deleted'

View File

@ -1,129 +1,425 @@
#Login
Keep me logged in: 'Angemeldet bleiben'
Forgot your password?: 'Kennwort vergessen?'
Login: 'Anmelden'
Back to login: 'Zurück zur Anmeldung'
Send: 'Senden'
"Enter your email address below and we'll send you password reset instructions.": "Gib unten deine E-Mail-Adresse ein und wir senden dir eine Anleitung für das Zurücksetzen deines Kennworts."
security:
login:
page_title: 'Willkommen bei wallabag!'
keep_logged_in: 'Angemeldet bleiben'
forgot_password: 'Kennwort vergessen?'
submit: 'Anmelden'
register: 'Registrieren'
username: 'Benutzername'
password: 'Kennwort'
cancel: 'Abbrechen'
resetting:
description: "Gib unten deine E-Mail-Adresse ein und wir senden dir eine Anleitung für das Zurücksetzen deines Kennworts."
register:
page_title: 'Account erstellen'
go_to_account: 'Gehe zu deinem Account'
# Menu
unread: 'ungelesen'
starred: 'favoriten'
archive: 'archiv'
all: 'alle artikel'
tags: 'tags'
config: 'konfiguration'
howto: 'how-to'
logout: 'abmelden'
Filtered: 'Gefiltert'
About: 'Über'
menu:
left:
unread: 'Ungelesen'
starred: 'Favoriten'
archive: 'Archiv'
all_articles: 'Alle Artikel'
config: 'Konfiguration'
tags: 'Tags'
internal_settings: 'Interne Einstellungen'
import: 'Importieren'
howto: 'How-To'
developer: 'Entwickler'
logout: 'Abmelden'
about: 'Über'
search: 'Suche'
save_link: 'Link speichern'
back_to_unread: 'Zurück zu ungelesenen Artikeln'
top:
add_new_entry: 'Neuen Artikel hinzufügen'
search: 'Suche'
filter_entries: 'Artikel filtern'
export: 'Exportieren'
search_form:
input_label: 'Suchbegriff hier eingeben'
# Header
Back to unread articles: 'Zurück zu ungelesenen Artikeln'
Add a new entry: 'Neuen Artikel hinzufügen'
Search: 'Suche'
Filter entries: 'Artikel filtern'
Enter your search here: 'Suchbegriff hier eingeben'
Save new entry: 'Neuen Artikel speichern'
footer:
wallabag:
elsewhere: 'Nimm wallabag mit dir mit'
social: 'Soziales'
powered_by: 'angetrieben von'
about: 'Über'
# Config screen
Settings: 'Einstellungen'
User information: 'Benutzer-Information'
Password: 'Kennwort'
RSS: 'RSS'
Add a user: 'Benutzer hinzufügen'
Theme: 'Theme'
Items per page: 'Einträge pro Seite'
Language: 'Sprache'
Save: 'Speichern'
RSS token: 'RSS-Token'
Name: 'Name'
Email: 'E-Mail-Adresse'
No token: 'Kein Token'
Reset your token: 'Token zurücksetzen'
Create your token: 'Token erstellen'
Rss limit: 'RSS-Limit'
RSS links: 'RSS-Links'
'RSS feeds provided by wallabag allow you to read your saved articles with your favourite RSS reader. You need to generate a token first.': '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.'
Old password: 'Altes Kennwort'
New password: 'Neues Kennwort'
Repeat new password: 'Neues Kennwort wiederholen'
Username: 'Benutzername'
config:
page_title: 'Einstellungen'
tab_menu:
settings: 'Einstellungen'
rss: 'RSS'
user_info: 'Benutzer-Information'
password: 'Kennwort'
rules: 'Tagging-Regeln'
new_user: 'Benutzer hinzufügen'
form:
save: 'Speichern'
form_settings:
theme_label: 'Theme'
items_per_page_label: 'Einträge pro Seite'
language_label: 'Sprache'
reading_speed:
label: 'Lesegeschwindigkeit'
help_message: 'Du kannst Online-Tools nutzen, um deine Lesegeschwindigkeit herauszufinden.'
100_word: 'Ich lese ~100 Wörter pro Minute'
200_word: 'Ich lese ~200 Wörter pro Minute'
300_word: 'Ich lese ~300 Wörter pro Minute'
400_word: 'Ich lese ~400 Wörter pro Minute'
form_rss:
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.'
token_label: 'RSS-token'
no_token: 'Kein Token'
token_create: 'Token erstellen'
token_reset: 'Token zurücksetzen'
rss_links: 'RSS-Links'
rss_link:
unread: 'ungelesen'
starred: 'favoriten'
archive: 'archiv'
rss_limit: 'Anzahl der Einträge im Feed'
form_user:
two_factor_description: "Wenn du die Zwei-Faktor-Authentifizierung aktivierst, erhältst du eine E-Mail mit einem Code bei jeder nicht vertraulichen Verbindung"
name_label: 'Name'
email_label: 'E-Mail-Adresse'
twoFactorAuthentication_label: 'Zwei-Faktor-Authentifizierung'
form_password:
old_password_label: 'Altes Kennwort'
new_password_label: 'Neues Kennwort'
repeat_new_password_label: 'Neues Kennwort wiederholen'
form_rules:
if_label: 'Wenn'
then_tag_as_label: 'dann tagge als'
delete_rule_label: 'löschen'
rule_label: 'Regel'
tags_label: 'Tags'
faq:
title: 'FAQ'
tagging_rules_definition_title: 'Was bedeuten die "Tagging-Regeln"?'
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.'
how_to_use_them_title: 'Wie nutze ich sie?'
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 &lt;= 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 &gt;= 5 AND domainName = "github.com"</i>" then tag as "<i>long reading, github </i>"'
variables_available_title: 'Welche Variablen und Operatoren kann ich nutzen, um Regeln zu schreiben?'
variables_available_description: 'Die folgenden Variablen und Operatoren können genutzt werden, um Tagging-Regeln zu erstellen:'
meaning: 'Bedeutung'
variable_description:
label: 'Variable'
title: 'Titel des Eintrags'
url: 'URL des Eintrags'
isArchived: 'gibt an, ob der Eintrag archiviert ist oder nicht'
isStarred: 'gibt an, ob der Eintrag favorisiert ist oder nicht'
content: "Inhalt des Eintrags"
language: "Sprache des Eintrags"
mimetype: "MIME-Typ des Eintrags"
readingTime: "Die geschätzte Lesezeit in Minuten"
domainName: 'Der Domain-Name des Eintrags'
operator_description:
label: 'Operator'
less_than: 'Weniger oder gleich als…'
strictly_less_than: 'Weniger als…'
greater_than: 'Größer oder gleich als…'
strictly_greater_than: 'Größer als…'
equal_to: 'gleich'
not_equal_to: 'ungleich'
or: 'Eine Regel ODER die andere'
and: 'Eine Regel UND eine andere'
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>'
form_new_user:
username_label: 'Benutzername'
password_label: 'Kennwort'
repeat_new_password_label: 'Neues Kennwort wiederholen'
plain_password_label: '????'
email_label: 'E-Mail-Adresse'
# Entries
'estimated reading time': 'geschätzte Lesezeit'
original: original
Toggle mark as read: 'Gelesen-Status ändern'
Toggle favorite: 'Favoriten-Status ändern'
Delete: 'Löschen'
entry:
page_titles:
unread: 'Ungelesene Einträge'
starred: 'Favorisierte Einträge'
archived: 'Archivierte Einträge'
filtered: 'Gefilterte Einträge'
list:
number_on_the_page: '{0} Es gibt keine Einträge.|{1} Es gibt einen Eintrag.|]1,Inf[ Es gibt %count% Einträge.'
reading_time: 'geschätzte Lesezeit'
reading_time_minutes: 'geschätzte Lesezeit: %readingTime% min'
reading_time_less_one_minute: 'geschätzte Lesezeit: <small class="inferieur">&lt;</small> 1 min'
original_article: 'original'
toogle_as_read: 'Gelesen-Status ändern'
toogle_as_star: 'Favoriten-Status ändern'
delete: 'Löschen'
export_title: 'Exportieren'
filters:
title: 'Filters'
status_label: 'Status'
archived_label: 'Archiviert'
starred_label: 'Favorisiert'
preview_picture_label: 'Vorschaubild vorhanden'
preview_picture_help: 'Vorschaubild'
language_label: 'Sprache'
reading_time:
label: 'Lesezeit in Minuten'
from: 'von'
to: 'bis'
domain_label: 'Domain-Name'
created_at:
label: 'Erstellungsdatum'
from: 'von'
to: 'bis'
action:
clear: 'Zurücksetzen'
filter: 'Filter'
view:
left_menu:
back_to_top: 'Nach oben'
back_to_homepage: 'Zurück'
set_as_read: 'Als gelesen markieren'
set_as_unread: 'Als ungelesen markieren'
set_as_favorite: 'Favorisieren'
view_original_article: 'Original-Artikel'
re_fetch_content: 'Inhalt neu laden'
delete: 'Löschen'
add_a_tag: 'Tag hinzufügen'
share_content: 'Teilen'
share_email_label: 'E-Mail'
download: 'Herunterladen'
print: 'Drucken'
problem:
label: 'Probleme?'
description: 'Erscheint dieser Artikel falsch?'
edit_title: 'Titel ändern'
original_article: 'original'
annotations_on_the_entry: '{0} Keine Anmerkungen|{1} Eine Anmerkung|]1,Inf[ %nbAnnotations% Anmerkungen'
new:
page_title: 'Neuen Artikel speichern'
placeholder: 'https://website.de'
form_new:
url_label: URL
edit:
page_title: 'Eintrag bearbeiten'
title_label: 'Titel'
url_label: 'URL'
is_public_label: 'Öffentlich'
save_label: 'Speichern'
# Filters
Filters: 'Filter'
Status: 'Status'
Archived: 'Archiviert'
Starred: 'Favorisiert'
Preview picture: 'Vorschaubild'
Has a preview picture: 'Vorschaubild vorhanden'
Reading time in minutes: 'Lesezeit in Minuten'
from: 'von'
to: 'bis'
website.com: 'website.com'
Domain name: 'Domain-Name'
Creation date: 'Erstellungsdatum'
dd/mm/yyyy: 'dd.mm.yyyy'
Clear: 'zurücksetzen'
Filter: 'Filter'
about:
page_title: 'Über'
top_menu:
who_behind_wallabag: 'Wer steht hinter wallabag'
getting_help: 'Hilfe bekommen'
helping: 'wallabag unterstützen'
contributors: 'Unterstützer'
third_party: 'Third-party libraries'
who_behind_wallabag:
developped_by: 'Entwickelt von'
website: 'Webseite'
many_contributors: 'Und vielen anderen Unterstützern ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">auf Github</a>'
project_website: 'Projektwebseite'
license: 'Lizenz'
version: 'Version'
getting_help:
documentation: 'Dokumentation'
bug_reports: 'Bugs'
support: '<a href="https://support.wallabag.org">Auf unserer Support-Webseite</a> oder <a href="https://github.com/wallabag/wallabag/issues">auf GitHub</a>'
helping:
description: 'wallabag ist kostenlos und Open-Source. Du kannst uns helfen:'
by_contributing: 'indem du zu dem Projekt beiträgst:'
by_contributing_2: 'ein Issue listet alle unsere Bedürfnisse:'
by_paypal: 'via PayPal'
contributors:
description: 'Ein Dankeschön an die Unterstützer von wallabag'
third_party:
description: 'Hier ist eine Liste der verwendeten Bibliotheken in wallabag (mit den jeweiligen Lizenzen):'
package: 'Paket'
license: 'Lizenz'
# About
Who is behind wallabag: "Wer steht hinter wallabag"
Getting help: "Hilfe bekommen"
Helping wallabag: "wallabag unterstützen"
Developed by: "Entwickelt von"
website: "Webseite"
And many others contributors ♥: "Und vielen anderen Unterstützern ♥"
on GitHub: "auf GitHub"
Project website: "Projektwebseite"
License: "Lizenz"
Version: "Version"
Documentation: "Dokumentation"
Bug reports: "Bugs"
On our support website: "Auf unserer Support-Webseite"
or: "oder"
"wallabag is free and opensource. You can help us:": "wallabag ist kostenlos und Open-Source. Du kannst uns helfen:"
"by contributing to the project:": "indem du zu dem Projekt beiträgst:"
an issue lists all our needs: "ein Issue listet alle unsere Bedürfnisse:"
via Paypal: "via PayPal"
howto:
page_title: 'How-To'
page_description: 'Es gibt mehrere Möglichkeiten, einen Artikel zu speichern:'
top_menu:
browser_addons: 'Browser-Addons'
mobile_apps: 'Apps'
bookmarklet: 'Bookmarklet'
form:
description: 'Danke an dieses Formular'
browser_addons:
firefox: 'Firefox-Erweiterung'
chrome: 'Chrome-Erweiterung'
mobile_apps:
android:
via_f_droid: 'via F-Droid'
via_google_play: 'via Google Play'
ios: 'im iTunes-Store'
windows: 'im Microsoft-Store'
bookmarklet:
description: 'Ziehe diesen Link in deine Lesezeichenleiste:'
# Howto
Form: Formular
Thanks to this form: "Danke an dieses Formular"
Browser addons: "Browser-Addons"
Mobile apps: "Apps"
Bookmarklet: "Bookmarklet"
Standard Firefox Add-On: "Firefox-Erweiterung"
Chrome Extension: "Chrome-Erweiterung"
download the application: "herunterladen"
"Drag &amp; drop this link to your bookmarks bar:": "Ziehe diesen Link in deine Lesezeichenleiste:"
quickstart:
page_title: 'Schnelleinstieg'
intro:
title: 'Willkommen zu wallabag!'
paragraph_1: "Wir werden dich bei der Benutzung von wallabag begleiten und dir einige Funktionen zeigen, die dich interessieren könnten."
paragraph_2: 'Folge uns!'
configure:
title: 'Anwendung konfigurieren'
language: 'Sprache und Design ändern'
rss: 'RSS-Feeds aktivieren'
tagging_rules: 'Schreibe Regeln, um deine Beiträge automatisch zu taggen (verschlagworten)'
admin:
title: 'Administration'
description: 'Als Adminstrator hast du einige Privilegien. Du kannst:'
new_user: 'Einen neuen Nutzer anlegen'
analytics: 'das Tracking konfigurieren'
sharing: 'Einige Parameter für das Teilen von Artikel setzen'
export: 'Export-Einstellungen ändern'
import: 'Import-Einstellungen ändern'
first_steps:
title: 'Erste Schritte'
new_article: 'Speichere deinen ersten Artikel'
unread_articles: 'Und klassifiziere ihn!'
migrate:
title: 'Von einem anderen Dienst migrieren'
description: "Du nutzt einen anderen Dienst? Wir helfen dir, um deine Daten zu wallabag zu transportieren."
pocket: 'von Pocket migrieren'
wallabag_v1: 'von wallabag v1 migrieren'
wallabag_v2: 'von wallabag v2 migrieren'
developer:
title: 'Entwickler'
create_application: 'Erstelle eine Anwendung und nutze die wallabag API'
docs:
title: 'Komplette Dokumentation'
annotate: 'Anmerkungen zu Artikeln hinzufügen'
export: 'Artikel nach ePUB oder PDF konvertieren'
search_filters: 'Schau nach, wie du nach einem Artikel über die Such- und Filterfunktion suchen kannst'
fetching_errors: 'Was kann ich machen, wenn ein Artikel Fehler beim Herunterladen des Inhalts zeigt?'
all_docs: 'Und viele weitere Artikel!'
support:
title: 'Support'
description: 'Wenn du Hilfe brauchst, wir sind für dich da.'
github: 'Auf GitHub'
email: 'Über E-Mail'
gitter: 'Auf Gitter'
# Flash messages
Information updated: "Information aktualisiert"
"Config saved. Some parameters will be considered after disconnection.": "Konfiguration gespeichert. Einige Einstellungen werden erst nach einer erneuten Anmeldung übernommen."
RSS information updated: "RSS-Informationen aktualisiert"
Password updated: "Kennwort aktualisiert"
Entry starred: "Artikel favorisiert"
Entry unstarred: "Artikel defavorisiert"
Entry archived: "Artikel archiviert"
Entry unarchived: "Artikel dearchiviert"
Entry deleted: "Artikel gelöscht"
tag:
page_title: 'Tags'
list:
number_on_the_page: '{0} Es gibt keine Tags.|{1} Es gibt einen Tag.|]1,Inf[ Es gibt %count% Tags.'
# Entry
Mark as read: 'Als gelesen markieren'
Favorite: 'Favorisieren'
back: 'zurück'
original article: 'Original-Artikel'
Add a tag: 'Tag hinzufügen'
Share: 'Teilen'
Download: 'Herunterladen'
Does this article appear wrong?: "Erscheint dieser Artikel falsch?"
Problems?: 'Probleme?'
Edit title: "Titel ändern"
import:
page_title: 'Importieren'
page_description: 'Willkommen beim wallabag-Importer. Wähle deinen vorherigen Service aus, von dem du die Daten migrieren willst.'
action:
import_contents: 'Inhalte importieren'
form:
mark_as_read_title: 'Alle als gelesen markieren?'
mark_as_read_label: 'Alle importierten Einträge als gelesen markieren'
file_label: 'Datei'
save_label: 'Datei hochladen'
pocket:
page_title: 'Aus Pocket importieren'
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."
config_missing:
description: "Pocket-Import ist nicht konfiguriert."
admin_message: 'Du musst noch den %keyurls%a pocket_consumer_key%keyurle% definieren.'
user_message: 'Der Server-Administrator muss noch einen API-Key für Pocket konfigurieren.'
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.'
connect_to_pocket: 'Mit Pocket verbinden und Daten importieren'
wallabag_v1:
page_title: 'Aus wallabag v1 importieren'
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.'
how_to: 'Wähle die Export-Datei aus und klicke den nachfolgenden Button, um diese hochzuladen und zu importieren.'
wallabag_v2:
page_title: 'Aus wallabag v2 importieren'
description: 'Dieser Import wird all deine Artikel aus wallabag v2 importieren. Gehe auf "Alle Artikel" und dann, in der Exportieren-Seitenleiste auf "JSON". Dabei erhältst du eine "All articles.json"-Datei.'
developer:
page_title: 'Entwickler'
welcome_message: 'Willkomen zur wallabag-API'
documentation: 'Dokumentation'
how_to_first_app: 'Wie erstelle ich meine erste Anwendung'
full_documentation: 'Komplette API-Dokumentation einsehen'
# list_methods: 'List API methods'
clients:
title: 'Clients'
create_new: 'Neuen Client erstellen'
existing_clients:
title: 'Bestehende Clients'
field_id: 'Client-ID'
field_secret: 'Client-Secret'
field_uris: 'Weiterleitungs-URIs'
field_grant_types: "Erlaubte grant_types"
no_client: 'Bisher kein Client.'
remove:
warn_message_1: 'Du hast die Möglichkeit, diesen Client zu entfernen. DIESE AKTION IST NICHT WIDERRUFBAR!'
warn_message_2: "Wenn du ihn entfernst, hat keine der damit konfigurierten Anwendungen mehr die Möglichkeit, sich in deinen wallabag-Account anzumelden."
action: 'Client entfernen'
client:
page_title: 'Entwickler > Neuer Client'
page_description: 'Du bist dabei, einen neuen Client zu erstellen. Fülle das nachfolgende Feld für die Weiterleitungs-URIs deiner Anwendung aus.'
form:
redirect_uris_label: 'Weiterleitungs-URIs'
save_label: 'Neuen Client erstellen'
action_back: 'Zurück'
client_parameter:
page_title: 'Entwickler > Client-Parameter'
page_description: 'Dies sind deine Client-Parameter.'
field_id: 'Client-ID'
field_secret: 'Client-Secret'
back: 'Zurück'
read_howto: 'Lese des How-To zu "Wie erstelle ich meine erste Anwendung"'
howto:
page_title: 'Entwickler > Wie erstelle ich meine erste Anwendung'
description:
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.'
paragraph_2: 'Du benötigst einen Token, damit deine Anwendung mit der wallabag-API kommunizieren kann.'
paragraph_3: 'Um diesen Token zu erstellen, muss <a href="%link%">ein neuer Client erstellt werden</a>.'
paragraph_4: 'Nun erstelle deinen Token (ersetze client_id, client_secret, username und password mit deinen Werten):'
paragraph_5: 'Die API wird eine Antwort der folgenden Art zurückgeben:'
paragraph_6: 'Der access_token ist nützlich, um die API aufzurufen. Beispiel:'
paragraph_7: 'Dieser Aufruf wird alle Einträge für den Nutzer zurückgeben.'
paragraph_8: 'Wenn du alle API-Endpunkte sehen willst, werfe einen Blick auf die <a href="%link%">API-Dokumentation</a>.'
back: 'Zurück'
validator:
password_must_match: 'Die Kennwort-Felder müssen übereinstimmen.'
password_too_short: 'Kennwort-Mindestlänge von acht Zeichen nicht erfüllt'
password_wrong_value: 'Falscher Wert für dein aktuelles Kennwort'
item_per_page_too_high: 'Dies wird die Anwendung möglicherweise beenden'
rss_limit_too_hight: 'Dies wird die Anwendung möglicherweise beenden'
flashes:
config:
notice:
config_saved: 'Konfiguration gespeichert. Einige Einstellungen werden erst nach einer erneuten Anmeldung übernommen.'
password_updated: 'Kennwort aktualisiert'
password_not_updated_demo: "Im Test-Modus kannst du das Kennwort nicht ändern."
user_updated: 'Information aktualisiert'
rss_updated: 'RSS-Informationen aktualisiert'
tagging_rules_updated: 'Tagging-Regeln aktualisiert'
tagging_rules_deleted: 'Tagging-Regel gelöscht'
user_added: 'Benutzer "%username%" erstellt'
rss_token_updated: 'RSS-Token aktualisiert'
entry:
notice:
entry_already_saved: 'Eintrag bereits am %date% gespeichert'
entry_saved: 'Eintag gespeichert'
entry_updated: 'Eintrag aktualisiert'
entry_reloaded: 'Eintrag neugeladen'
entry_reload_failed: 'Neuladen des Eintrags fehlgeschlagen'
entry_archived: 'Artikel archiviert'
entry_unarchived: 'Artikel dearchiviert'
entry_starred: 'Artikel favorisiert'
entry_unstarred: 'Artikel defavorisiert'
entry_deleted: 'Artikel gelöscht'
tag:
notice:
tag_added: 'Tag hinzugefügt'
import:
notice:
failed: 'Import fehlgeschlagen, bitte erneut probieren.'
failed_on_file: 'Fehler während des Imports. Bitte überprüfe deine Import-Datei.'
summary: 'Import-Zusammenfassung: %imported% importiert, %skipped% bereits gespeichert.'
developer:
notice:
client_created: 'Neuer Client erstellt.'
client_deleted: 'Client gelöscht'

View File

@ -0,0 +1,425 @@
security:
login:
page_title: 'Welcome to wallabag!'
keep_logged_in: 'Keep me logged in'
forgot_password: 'Forgot your password?'
submit: 'Login'
register: 'Register'
username: 'Username'
password: 'Password'
cancel: 'Cancel'
resetting:
description: "Enter your email address below and we'll send you password reset instructions."
register:
page_title: 'Create an account'
go_to_account: 'Go to your account'
menu:
left:
unread: 'Unread'
starred: 'Starred'
archive: 'Archive'
all_articles: 'All entries'
config: 'Config'
tags: 'Tags'
internal_settings: 'Internal Settings'
import: 'Import'
howto: 'How to'
developer: 'Developer'
logout: 'Logout'
about: 'About'
search: 'Search'
save_link: 'Save a link'
back_to_unread: 'Back to unread articles'
top:
add_new_entry: 'Add a new entry'
search: 'Search'
filter_entries: 'Filter entries'
export: 'Export'
search_form:
input_label: 'Enter your search here'
footer:
wallabag:
elsewhere: 'Take wallabag with you'
social: 'Social'
powered_by: 'powered by'
about: 'About'
config:
page_title: 'Config'
tab_menu:
settings: 'Settings'
rss: 'RSS'
user_info: 'User information'
password: 'Password'
rules: 'Tagging rules'
new_user: 'Add a user'
form:
save: 'Save'
form_settings:
theme_label: 'Theme'
items_per_page_label: 'Items per page'
language_label: 'Language'
reading_speed:
label: 'Reading speed'
help_message: 'You can use online tools to estimate your reading speed:'
100_word: 'I read ~100 words per minute'
200_word: 'I read ~200 words per minute'
300_word: 'I read ~300 words per minute'
400_word: 'I read ~400 words per minute'
form_rss:
description: 'RSS feeds provided by wallabag allow you to read your saved articles with your favourite RSS reader. You need to generate a token first.'
token_label: 'RSS token'
no_token: 'No token'
token_create: 'Create your token'
token_reset: 'Regenerate your token'
rss_links: 'RSS links'
rss_link:
unread: 'unread'
starred: 'starred'
archive: 'archived'
rss_limit: 'Number of items in the feed'
form_user:
two_factor_description: "Enabling two factor authentication means you'll receive an email with a code on every new untrusted connexion"
name_label: 'Name'
email_label: 'Email'
twoFactorAuthentication_label: 'Two factor authentication'
form_password:
old_password_label: 'Current password'
new_password_label: 'New password'
repeat_new_password_label: 'Repeat new password'
form_rules:
if_label: 'if'
then_tag_as_label: 'then tag as'
delete_rule_label: 'delete'
rule_label: 'Rule'
tags_label: 'Tags'
faq:
title: 'FAQ'
tagging_rules_definition_title: 'What does « tagging rules » mean?'
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.'
how_to_use_them_title: 'How do I use them?'
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 &lt;= 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 &gt;= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, github </i> »'
variables_available_title: 'Which variables and operators can I use to write rules?'
variables_available_description: 'The following variables and operators can be used to create tagging rules:'
meaning: 'Meaning'
variable_description:
label: 'Variable'
title: 'Title of the entry'
url: 'URL of the entry'
isArchived: 'Whether the entry is archived or not'
isStarred: 'Whether the entry is starred or not'
content: "The entry's content"
language: "The entry's language"
mimetype: "The entry's mime-type"
readingTime: "The estimated entry's reading time, in minutes"
domainName: 'The domain name of the entry'
operator_description:
label: 'Operator'
less_than: 'Less than...'
strictly_less_than: 'Strictly less than...'
greater_than: 'Greater than...'
strictly_greater_than: 'Strictly greater than...'
equal_to: 'Equal to...'
not_equal_to: 'Not equal to...'
or: 'One rule OR another'
and: 'One rule AND another'
matches: 'Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code>'
form_new_user:
username_label: 'Username'
password_label: 'Password'
repeat_new_password_label: 'Repeat new password'
plain_password_label: '????'
email_label: 'Email'
entry:
page_titles:
unread: 'Unread entries'
starred: 'Starred entries'
archived: 'Archived entries'
filtered: 'Filtered entries'
list:
number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.'
reading_time: 'estimated reading time'
reading_time_minutes: 'estimated reading time: %readingTime% min'
reading_time_less_one_minute: 'estimated reading time: <small class="inferieur">&lt;</small> 1 min'
original_article: 'original'
toogle_as_read: 'Toggle mark as read'
toogle_as_star: 'Toggle favorite'
delete: 'Delete'
export_title: 'Export'
filters:
title: 'Filters'
status_label: 'Status'
archived_label: 'Archived'
starred_label: 'Starred'
preview_picture_label: 'Has a preview picture'
preview_picture_help: 'Preview picture'
language_label: 'Language'
reading_time:
label: 'Reading time in minutes'
from: 'from'
to: 'to'
domain_label: 'Domain name'
created_at:
label: 'Creation date'
from: 'from'
to: 'to'
action:
clear: 'Clear'
filter: 'Filter'
view:
left_menu:
back_to_top: 'Back to top'
back_to_homepage: 'Back'
set_as_read: 'Mark as read'
set_as_unread: 'Mark as unread'
set_as_favorite: 'Favorite'
view_original_article: 'Original article'
re_fetch_content: 'Re-fetch content'
delete: 'Delete'
add_a_tag: 'Add a tag'
share_content: 'Share'
share_email_label: 'Email'
download: 'Download'
print: 'Print'
problem:
label: 'Problems?'
description: 'Does this article appear wrong?'
edit_title: 'Edit title'
original_article: 'original'
annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations'
new:
page_title: 'Save new entry'
placeholder: 'http://website.com'
form_new:
url_label: Url
edit:
page_title: 'Edit an entry'
title_label: 'Title'
url_label: 'Url'
is_public_label: 'Public'
save_label: 'Save'
about:
page_title: 'About'
top_menu:
who_behind_wallabag: 'Who is behind wallabag'
getting_help: 'Getting help'
helping: 'Helping wallabag'
contributors: 'Contributors'
third_party: 'Third-party libraries'
who_behind_wallabag:
developped_by: 'Developed by'
website: 'website'
many_contributors: 'And many others contributors ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">on Github</a>'
project_website: 'Project website'
license: 'License'
version: 'Version'
getting_help:
documentation: 'Documentation'
bug_reports: 'Bug reports'
support: '<a href="https://support.wallabag.org">On our support website</a> or <a href="https://github.com/wallabag/wallabag/issues">on GitHub</a>'
helping:
description: 'wallabag is free and opensource. You can help us:'
by_contributing: 'by contributing to the project:'
by_contributing_2: 'an issue lists all our needs'
by_paypal: 'via Paypal'
contributors:
description: 'Thank you to contributors on wallabag web application'
third_party:
description: 'Here are the list of third-party libraries used in wallabag (with their licenses):'
package: 'Package'
license: 'License'
howto:
page_title: 'How to'
page_description: 'There are several ways to save an article:'
top_menu:
browser_addons: 'Browser addons'
mobile_apps: 'Mobile apps'
bookmarklet: 'Bookmarklet'
form:
description: 'Thanks to this form'
browser_addons:
firefox: 'Standard Firefox Add-On'
chrome: 'Chrome Extension'
mobile_apps:
android:
via_f_droid: 'via F-Droid'
via_google_play: 'via Google Play'
ios: 'on the iTunes Store'
windows: 'on the Microsoft Store'
bookmarklet:
description: 'Drag & drop this link to your bookmarks bar:'
quickstart:
page_title: 'Quickstart'
intro:
title: 'Welcome to wallabag!'
paragraph_1: "We'll accompany you to visit wallabag and show you some features which can interest you."
paragraph_2: 'Follow us!'
configure:
title: 'Configure the application'
language: 'Change language and design'
rss: 'Enable RSS feeds'
tagging_rules: 'Write rules to automatically tag your articles'
admin:
title: 'Administration'
description: 'As an administrator, you have privileges on wallabag. You can:'
new_user: 'Create a new user'
analytics: 'Configure analytics'
sharing: 'Enable some parameters about article sharing'
export: 'Configure export'
import: 'Configure import'
first_steps:
title: 'First steps'
new_article: 'Save your first article'
unread_articles: 'And classify it!'
migrate:
title: 'Migrate from an existing service'
description: "Are you using another service? We'll help you to retrieve your data on wallabag."
pocket: 'Migrate from Pocket'
wallabag_v1: 'Migrate from wallabag v1'
wallabag_v2: 'Migrate from wallabag v2'
developer:
title: 'Developers'
create_application: 'Create your third application'
docs:
title: 'Full documentation'
annotate: 'Annotate your article'
export: 'Convert your articles into ePUB or PDF'
search_filters: 'See how you can look for an article by using search engine and filters'
fetching_errors: 'What can I do if an article encounters errors during fetching?'
all_docs: 'And so many other articles!'
support:
title: 'Support'
description: 'If you need some help, we are here for you.'
github: 'On GitHub'
email: 'By email'
gitter: 'On Gitter'
tag:
page_title: 'Tags'
list:
number_on_the_page: '{0} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.'
import:
page_title: 'Import'
page_description: 'Welcome to wallabag importer. Please select your previous service that you want to migrate.'
action:
import_contents: 'Import contents'
form:
mark_as_read_title: 'Mark all as read?'
mark_as_read_label: 'Mark all imported entries as read'
file_label: 'File'
save_label: 'Upload file'
pocket:
page_title: 'Import > Pocket'
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."
config_missing:
description: "Pocket import isn't configured."
admin_message: 'You need to define %keyurls%a pocket_consumer_key%keyurle%.'
user_message: 'Your server admin needs to define an API Key for Pocket.'
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.'
connect_to_pocket: 'Connect to Pocket and import data'
wallabag_v1:
page_title: 'Import > Wallabag v1'
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.'
how_to: 'Please select your wallabag export and click on the below button to upload and import it.'
wallabag_v2:
page_title: 'Import > Wallabag v2'
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.'
developer:
page_title: 'Developer'
welcome_message: 'Welcome to the wallabag API'
documentation: 'Documentation'
how_to_first_app: 'How to create my first application'
full_documentation: 'View full API documentation'
list_methods: 'List API methods'
clients:
title: 'Clients'
create_new: 'Create a new client'
existing_clients:
title: 'Existing clients'
field_id: 'Client ID'
field_secret: 'Client secret'
field_uris: 'Redirect URIs'
field_grant_types: 'Grant type allowed'
no_client: 'No client yet.'
remove:
warn_message_1: 'You have the ability to remove this client. This action is IRREVERSIBLE !'
warn_message_2: "If you remove it, every app configured with that client won't be able to auth on your wallabag."
action: 'Remove this client'
client:
page_title: 'Developer > New client'
page_description: 'You are about to create a new client. Please fill the field below for the redirect URI of your application.'
form:
redirect_uris_label: 'Redirect URIs'
save_label: 'Create a new client'
action_back: 'Back'
client_parameter:
page_title: 'Developer > Client parameters'
page_description: 'Here are your client parameters.'
field_id: 'Client ID'
field_secret: 'Client secret'
back: 'Back'
read_howto: 'Read the howto "Create my first application"'
howto:
page_title: 'Developer > How to create my first application'
description:
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.'
paragraph_2: 'You need a token to communicate between your 3rd application and wallabag API.'
paragraph_3: 'To create this token, you need <a href="%link%">to create a new client</a>.'
paragraph_4: 'Now, create your token (replace client_id, client_secret, username and password with the good values):'
paragraph_5: 'The API will return a response like this:'
paragraph_6: 'The access_token is useful to do a call to the API endpoint. For example:'
paragraph_7: 'This call will return all the entries for your user.'
paragraph_8: 'If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.'
back: 'Back'
validator:
password_must_match: 'The password fields must match.'
password_too_short: 'Password should by at least 8 chars long'
password_wrong_value: 'Wrong value for your current password'
item_per_page_too_high: 'This will certainly kill the app'
rss_limit_too_hight: 'This will certainly kill the app'
flashes:
config:
notice:
config_saved: 'Config saved. Some parameters will be considered after disconnection.'
password_updated: 'Password updated'
password_not_updated_demo: "In demonstration mode, you can't change password for this user."
user_updated: 'Information updated'
rss_updated: 'RSS information updated'
tagging_rules_updated: 'Tagging rules updated'
tagging_rules_deleted: 'Tagging rule deleted'
user_added: 'User "%username%" added'
rss_token_updated: 'RSS token updated'
entry:
notice:
entry_already_saved: 'Entry already saved on %date%'
entry_saved: 'Entry saved'
entry_updated: 'Entry updated'
entry_reloaded: 'Entry reloaded'
entry_reload_failed: 'Failed to reload entry'
entry_archived: 'Entry archived'
entry_unarchived: 'Entry unarchived'
entry_starred: 'Entry starred'
entry_unstarred: 'Entry unstarred'
entry_deleted: 'Entry deleted'
tag:
notice:
tag_added: 'Tag added'
import:
notice:
failed: 'Import failed, please try again.'
failed_on_file: 'Error while processing import. Please verify your import file.'
summary: 'Import summary: %imported% imported, %skipped% already saved.'
developer:
notice:
client_created: 'New client created.'
client_deleted: 'Client deleted'

View File

@ -1,242 +1,425 @@
#Login
Keep me logged in: 'Mantenme conectado'
Forgot your password?: '¿Ha olvidado su contraseña?'
Login: 'Conectarse'
Back to login: 'Revenir au formulaire de connexion'
Send: 'Envíar'
"Enter your email address below and we'll send you password reset instructions.": "Introduce tu dirección de email y le enviaremos las instrucciones para resetear la contraseña"
Register: 'Registrarse'
security:
login:
page_title: '¡Bienvenido a wallabag !'
keep_logged_in: 'Manténgame conectado'
forgot_password: '¿Se ha olvidado de su contraseña?'
submit: 'Conectarse'
register: 'Registrarse'
username: 'Nombre de usuario'
password: 'Contraseña'
# cancel: 'Cancel'
resetting:
description: "Introduzca su dirección del correo electrónico y le enviaremos las instrucciones para reiniciar la contraseña"
register:
page_title: 'Crear una cuenta'
go_to_account: 'Acceder su cuenta'
# Menu
unread: 'Sin leer'
starred: 'Favoritos'
archive: 'Archivo'
all: 'Todos los artículos'
tags: 'Tags'
config: 'Configuración'
internal settings: 'Configuración interna'
import: 'Importar'
howto: 'Ayuda'
logout: 'Desconectarse'
Filtered: 'Articulos filtrados'
About: 'Acerca de'
menu:
left:
unread: 'Sin leer'
starred: 'Favoritos'
archive: 'Archivo'
all_articles: 'Todos artículos'
config: 'Configuración'
tags: 'Etiquetas'
internal_settings: 'Configuración interna'
import: 'Importar'
howto: 'Ayuda'
developer: 'Promotor'
logout: 'Desconectarse'
about: 'Acerca de'
search: 'Buscar'
save_link: 'Archivar un enlace'
back_to_unread: 'Volver a los artículos sin leer'
top:
add_new_entry: 'Añadir un nuevo artículo'
search: 'Buscar'
filter_entries: 'Filtrar los artículos'
export: 'Exportar'
search_form:
input_label: 'Introduzca su búsqueda aquí'
# Header
Back to unread articles: 'Volver a los artículos sin leer'
Add a new entry: 'Añadir un nuevo artículo'
Search: 'Buscar'
Filter entries: 'Filtrar los artículos'
Enter your search here: 'Introduce tu búsqueda aquí'
Save new entry: 'Guardar un nuevo artículo'
Export: 'Exportar'
footer:
wallabag:
elsewhere: 'Lleve wallabag consigo'
social: 'Social'
# powered_by: 'powered by'
about: 'Acerca de'
# Config screen
Settings: 'Configuración'
User information: 'Información de usuario'
Password: 'Contraseña'
RSS: 'RSS'
Add a user: 'Añadir un usuario'
Theme: 'Tema'
Items per page: "Número de artículos por página"
Language: 'Idioma'
Save: 'Enregistrer'
RSS token: 'RSS token'
RSS token updated: 'RSS token actualizado '
Name: 'Nombre'
Email: 'Direccion e-mail'
No token: 'Aucun jeton généré'
Reset your token: 'Resetear token'
Create your token: 'Crear token'
Rss limit: "Límite de artículos en feed RSS"
RSS links: 'URL de su feed RSS'
"RSS feeds provided by wallabag allow you to read your saved articles with your favourite RSS reader. You need to generate a token first.": "Los feeds RSS de wallabag permiten leer los artículos guardados con su lector RSS favorito. Necesita generar un token primero"
Old password: 'Contraseña actual'
New password: 'Nueva contraseña'
Repeat new password: 'Confirmar la nueva contraseña'
Username: "Nombre de usuario"
Two factor authentication: "Autentificación de dos factores"
"Enabling two factor authentication means you'll receive an email with a code on every new untrusted connexion": "Con la autentificación de dos factores recibirá código mediante email en cada nueva conexión que no sea de confianza"
config:
page_title: 'Configuración'
tab_menu:
settings: 'Configuración'
rss: 'RSS'
user_info: 'Información de usuario'
password: 'Contraseña'
rules: 'Reglas de etiquetado automáticas'
new_user: 'Añadir un usuario'
form:
save: 'Guardar'
form_settings:
theme_label: 'Tema'
items_per_page_label: 'Número de artículos por página'
language_label: 'Idioma'
reading_speed:
label: 'Velocidad de leer'
help_message: 'Se puede usar las técnicas para calcular su velocidad de leer:'
100_word: 'Leo ~100 palabras por minuto'
200_word: 'Leo ~200 palabras por minuto'
300_word: 'Leo ~300 palabras por minuto'
400_word: 'Leo ~400 palabras por minuto'
form_rss:
description: 'Los feeds RSS de wallabag permiten leer los artículos guardados con su lector RSS favorito. Necesita generar un token primero'
token_label: 'RSS token'
# no_token: 'No token'
token_create: 'Crear token'
token_reset: 'Reiniciar token'
rss_links: 'URL de su feed RSS'
rss_link:
unread: 'sin leer'
starred: 'favoritos'
archive: 'archivo'
rss_limit: 'Límite de artículos en feed RSS'
form_user:
two_factor_description: "Con la autentificación de dos factores recibirá código mediante email en cada nueva conexión que no sea de confianza"
name_label: 'Nombre'
email_label: 'Direccion e-mail'
twoFactorAuthentication_label: 'Autentificación de dos factores'
form_password:
old_password_label: 'Contraseña actual'
new_password_label: 'Nueva contraseña'
repeat_new_password_label: 'Confirmar la nueva contraseña'
form_rules:
if_label: 'si'
then_tag_as_label: 'Etiquete como'
delete_rule_label: 'Borre'
rule_label: 'Regla'
tags_label: 'Etiquetas'
faq:
title: 'FAQ'
tagging_rules_definition_title: '¿Qué significa reglas de etiquetado autómaticas?'
tagging_rules_definition_description: 'Son las reglas usadas por Wallabag para etiquetar automáticamente los nuevos artículos.<br />Cada vez que un nuevo artículo sea añadido, todas las reglas de etiquetado automáticas serán usadas para etiquetarlo, ayudándole a clasificar automáticamente los artículos.'
how_to_use_them_title: '¿Cómo se utilizan?'
how_to_use_them_description: 'Supongamos que quiere etiquetar nuevos artículos como « <i>lectura corta</i> » cuando el tiempo de leer sea menos de 3 minutos. <br /> En ese caso, debe poner « tiempo de leer &lt;= 3 » en el <i>Regla</i> campo y « <i>lectura corta</i> » en el <i>Etiquetas</i> campo.<br />Algunas etiquetas se pueden ser añadidas al mismo tiempo por separarlas con una coma: « <i>lectura corta, debe leer</i> »<br />Reglas complejas se pueden ser escritas por usar operadores predefinidos: si « <i>tiempo de leer &gt;= 5 Y nombre del dominio = "github.com"</i> » entonces etiquete como « <i>lectura larga, github </i> »'
variables_available_title: '¿Qué variables y operadores se pueden utilizar para escribir las reglas?'
variables_available_description: 'Las siguientes variables y operadores se pueden utilizar para crear las reglas de etiquetado automáticas:'
meaning: 'Significado'
variable_description:
label: 'Variable'
title: 'Titúlo del artículo'
url: 'URL del artículo'
isArchived: 'El artículo está guardado o no'
isStarred: 'Si el artículo es un favorito o no'
content: "El contenido del artículo"
language: "El idioma del artículo"
mimetype: "Tipo MIME del artículo"
readingTime: "El tiempo estimado de lectura del artículo, en minutos"
domainName: 'El dominio del artículo'
operator_description:
label: 'Operador'
less_than: 'Menos que…'
strictly_less_than: 'Estrictámente menos que…'
greater_than: 'Más que…'
strictly_greater_than: 'Estrictámente mas que…'
equal_to: 'Egual a…'
not_equal_to: 'Diferente de…'
or: 'Una regla U otra'
and: 'Una regla Y la otra'
matches: 'Pruebe si un <i>sujeto</i> corresponde a una <i>búsqueda</i> (insensible a mayusculas).<br />Ejemplo : <code>título coincide "football"</code>'
form_new_user:
username_label: 'Nombre de usuario'
password_label: 'Contraseña'
repeat_new_password_label: 'Confirmar la nueva contraseña'
plain_password_label: '????'
email_label: 'Email'
# Tagging rules
Tagging rules: "Reglas de etiquetado automáticas"
What does « tagging rules » mean?: "¿Qué significa reglas de etiquetado autómaticas?"
"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.": "Son las reglas usadas por Wallabag para etiquetar automáticamente los nuevos artículos.<br />Cáda vez que un nuevo artículo es añadido, todas las reglas de etiquetado automáticas serán usadas para etiquetarlo, ayudandote a clasificar automáticamente los artículos."
How do I use them?: "¿Cómo se utilizan?"
"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 &lt;= 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 &gt;= 5 AND domainName = \"github.com\"</i> » then tag as « <i>long reading, github </i> »": "Imaginons que voulez attribuer aux nouveaux articles le tag « <i>lecture courte</i> » lorsque le temps de lecture est inférieur à 3 minutes.<br />Dans ce cas, vous devriez mettre « readingTime &lt;= 3 » dans le champ <i>Règle</i> et « <i>lecture courte</i> » dans le champ <i>Tag</i>.<br />Plusieurs tags peuvent être ajoutés simultanément en les séparant par des virgules : « <i>lecture courte, à lire</i> »<br />Des règles complexes peuvent être créées en utilisant des opérateurs prédéfinis: si « <i>readingTime &gt;= 5 AND domainName = \"github.com\"</i> » alors attribuer les tags « <i>lecteur longue, github </i> »"
Which variables and operators can I use to write rules?: "¿Qué variables y operadores se pueden utilizar para escribir las reglas?"
The following variables and operators can be used to create tagging rules:: "Las siguientes variables y operadores se pueden utilizar para crear las reglas de etiquetado automáticas:"
Variable: "Variable"
Meaning: "Significado"
Operator: "Operador"
Title of the entry: "Titúlo del artículo"
Less than…: "Menos que…"
URL of the entry: "URL del artículo"
Strictly less than…: "Estrictámente menos que…"
Whether the entry is archived or not: "El artículo está guardado o no"
Greater than…: "Más que…"
Whether the entry is starred or not: "Si el artículo es un favorito o no"
Strictly greater than…: "Estrictámente mas que…"
The entry's content: "El contenido del artículo"
Equal to…: "Egual a…"
The entry's language: "El idoma del artículo"
Not equal to…: "Diferente de…"
The entry's mime-type: "Tipo MIME del artículo"
One rule or another: "Una regla o otra"
The estimated entry's reading time, in minutes: "El tiempo estimado de lectura del artículo, en minutos"
One rule and another: "Una regla y la otra"
The domain name of the entry: "El dominio del artículo"
"Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches \"football\"</code>": "Prueba si un <i>sujeto</i> corresponde a una <i>busqueda</i> (insensible a mayusculas).<br />Ejemplo : <code>título coincide \"football\"</code>"
Rule: "Regla"
FAQ: "FAQ"
entry:
page_titles:
unread: 'Artúclos no leídos'
starred: 'Artículos favoritos'
archived: 'Artículos archivados'
filtered: 'Artículos filtrados'
list:
number_on_the_page: '{0} No hay artículos.|{1} Hay un artículo.|]1,Inf[ Hay %count% artículos.'
reading_time: 'tiempo estimado de lectura'
reading_time_minutes: 'tiempo estimado de lectura: %readingTime% min'
reading_time_less_one_minute: 'tiempo estimado de lectura: <small class="inferieur">&lt;</small> 1 min'
original_article: 'original'
toogle_as_read: 'Marcar como leído/ no leído'
toogle_as_star: 'Marcar como favorito/ no favorito'
delete: 'Suprimir'
export_title: 'Exportar'
filters:
title: 'Filtros'
status_label: 'Estatus'
archived_label: 'Archivado'
starred_label: 'Favorito'
preview_picture_label: 'Hay una foto'
preview_picture_help: 'Foto de preview'
language_label: 'Idioma'
reading_time:
label: 'Duración de lectura en minutos'
from: 'de'
to: 'a'
domain_label: 'Nombre de dominio'
created_at:
label: 'Fecha de creación'
from: 'de'
to: 'a'
action:
clear: 'Limpiar'
filter: 'Filtrar'
view:
left_menu:
# back_to_top: 'Back to top'
back_to_homepage: 'Volver'
set_as_read: 'Marcar como leído'
# set_as_unread: 'Mark as unread'
set_as_favorite: 'Marcar como favorito'
view_original_article: 'Artículo original'
re_fetch_content: 'Redescargar el contenido'
delete: 'Suprimir'
add_a_tag: 'Añadir una etiqueta'
share_content: 'Compartir'
share_email_label: 'Direccion e-mail'
download: 'Descargar'
# print: 'Print'
problem:
label: '¿Algún problema?'
description: '¿Este artículo no se muestra bien?'
edit_title: 'Modificar el título'
original_article: 'original'
annotations_on_the_entry: '{0} Sin anotaciones|{1} Una anotación|]1,Inf[ %nbAnnotations% anotaciones'
new:
page_title: 'Guardar un nuevo artículo'
placeholder: 'http://website.com'
form_new:
url_label: Url
edit:
page_title: 'Editar una artículo'
title_label: 'Título'
url_label: 'Url'
is_public_label: 'Es Público'
save_label: 'Guardar'
# Entries
"estimated reading time: %readingTime% min": "tiempo estimado de lectura: %readingTime% min"
"estimated reading time: %inferior% 1 min": "tiempo estimado de lectura: %inferior% 1 min"
original: "original"
Toggle mark as read: 'Marcar cómo leído/ no leído'
Toggle favorite: 'Marcar cómo favorito/ no favorito'
Delete: 'Suprimir'
"{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.": "{0} No hay artículos.|{1} Hay un artículo.|]1,Inf[ Hay %count% artículos."
http://website: "http://website"
"{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations": "{0} Sin anotaciones|{1} Una anotación|]1,Inf[ %nbAnnotations% anotaciones"
about:
page_title: 'Acerca de'
top_menu:
who_behind_wallabag: 'Equipo del desarrollo de wallabag'
getting_help: 'Pedir ayuda'
helping: 'Ayudar a wallabag'
contributors: 'Colaboradores'
third_party: 'Librerías de terceros'
who_behind_wallabag:
developped_by: 'Desarrollado por'
website: 'Sitio web'
many_contributors: 'Y muchos otros colaboradores ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">en Github</a>'
project_website: 'Sitio web del proyecto'
license: 'Licencia'
version: 'Versión'
getting_help:
documentation: 'Documentación'
bug_reports: 'Reporte de errores'
support: '<a href="https://support.wallabag.org">En nuestra web de soporte website</a> o <a href="https://github.com/wallabag/wallabag/issues">en GitHub</a>'
helping:
description: 'wallabag es libre y gratuito. Usted puede ayudarnos :'
by_contributing: 'contribuyendo al proyecto :'
by_contributing_2: 'nuestras necesidades están en un ticket'
by_paypal: 'via Paypal'
contributors:
description: 'Gradias a los colaboradores de la aplicación web de wallabag'
third_party:
description: 'Aquí está la lista de las dependencias utilizadas por wallabag (con sus licencias) :'
package: 'Paquete'
license: 'Licencia'
# Edit entry
Edit an entry: "Editar una artículo"
Title: "Título"
Is public: "Es Público"
howto:
page_title: 'Ayuda'
page_description: 'Hay muchas maneras para guardar un artículo:'
top_menu:
browser_addons: 'Extensiones de navigador'
mobile_apps: 'Aplicaciones para smartphone'
bookmarklet: 'Bookmarklet'
form:
description: 'Gracias a este formulario'
browser_addons:
firefox: 'Extensión Firefox'
chrome: 'Extensión Chrome'
mobile_apps:
android:
via_f_droid: 'via F-Droid'
via_google_play: 'via Google Play'
ios: 'por la tienda de iTunes'
windows: 'por la tienda de Microsoft'
bookmarklet:
description: 'Desplazar y soltar este link en la barra de marcadores :'
# tag
Tags: Tags
"{0} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.": "{0} No hay ningun tag.|{1} Hay un tag.|]1,Inf[ Hay %count% tags."
quickstart:
page_title: 'Comienzo rápido'
intro:
title: 'Bienvenido a wallabag !'
paragraph_1: "Le acompañaremos a su visita de wallabag y le mostraremos algunas características que le pueden interesar."
paragraph_2: '¡Siganos!'
configure:
title: 'Configure la aplicación'
language: 'Cambie el idoma y el diseño de la aplicación'
rss: 'Activar los feeds RSS'
# tagging_rules: 'Write rules to automatically tag your articles'
admin:
# title: 'Administration'
# description: 'As an administrator, you have privileges on wallabag. You can:'
# new_user: 'Create a new user'
# analytics: 'Configure analytics'
# sharing: 'Enable some parameters about article sharing'
# export: 'Configure export'
# import: 'Configure import'
first_steps:
title: 'Prieros pasos'
new_article: 'Guarde su primer artículo'
unread_articles: '¡Y clasifiquelo!'
migrate:
title: 'Migrar de un servicio existente'
description: "¿Está usando otro servicio? Le ayudaremos a migrar sus datos a wallabag."
pocket: 'Migrar desde Pocket'
wallabag_v1: 'Migrar desde wallabag v1'
wallabag_v2: 'Migrar desde wallabag v2'
developer:
# title: 'Developers'
# create_application: 'Create your third application'
docs:
title: 'Documentación completa'
# annotate: 'Annotate your article'
export: 'Convierta sus artículos a ePub o a PDF'
search_filters: 'Aprenda a utilizar el buscador y los filtros para encontrar el artículo que le interese'
# fetching_errors: 'What can I do if an article encounters errors during fetching?'
all_docs: '¡Y muchos más artículos!'
support:
title: 'Soporte'
description: 'Sí necesita ayuda, estamos disponibles para usted.'
github: 'En GitHub'
email: 'Por email'
gitter: 'En Gitter'
# Filters
Filters: 'Filtros'
Status: 'Estatus'
Archived: 'Archivado'
Starred: 'Favorito'
Preview picture: 'Foto de preview'
Has a preview picture: 'Hay una foto'
Reading time in minutes: 'Duración de lectura en minutos'
from: 'de'
to: 'a'
website.com: 'website.com'
Domain name: 'Nombre de dominio'
Creation date: 'Fecha de creación'
dd/mm/yyyy: 'dd/mm/aaaa'
Clear: 'Limpiar'
Filter: 'Filtrar'
website.com: "website.com"
tag:
page_title: 'Etiquetas'
list:
number_on_the_page: '{0} No hay ningun etiqueta.|{1} Hay un etiqueta.|]1,Inf[ Hay %count% etiquetas.'
# About
About: "Acerca de"
Who is behind wallabag: "Equipo de desarrollo de wallabag"
Getting help: "Conseguir ayuda"
Helping wallabag: "Ayudar a wallabag"
Developed by: "Desarrollado por"
website: "Sitio web"
And many others contributors ♥: "Y muchos otros contribuidores ♥"
on GitHub: "en GitHub"
Project website: "Web del proyecto"
License: "Licencia"
Version: "Versión"
Documentation: "Documentación"
Bug reports: "Reporte de errores"
On our support website: "En nuestra web de soporte"
or: "o"
"wallabag is free and opensource. You can help us:": "wallabag es libre y gratuito. Usted puede ayudarnos :"
"by contributing to the project:": "contribuyendo al proyecto :"
an issue lists all our needs: "nuestras necesidades están en un ticket"
via Paypal: "via Paypal"
Take wallabag with you: "Llevate wallabag contigo"
Social: "Social"
powered by: "propulsé par"
Contributors: "Contribuidores"
Thank you to contributors on wallabag web application: "Gradias a los contribuidores de la aplicación web de wallabag"
Third-party libraries: "Librerías de terceeros"
"Here are the list of third-party libraries used in wallabag (with their licenses):": "Aquí está la lista de las dependencias utilizadas por wallabag (con sus licencias):"
Package: Paquete
License: Licencia
import:
page_title: 'Importar'
page_description: 'Bienvenido al útil de migración de wallabag. Seleccione el servicio previo del que usted quiera migrar.'
action:
import_contents: 'Importar los contenidos'
form:
# mark_as_read_title: 'Mark all as read?'
# mark_as_read_label: 'Mark all imported entries as read'
file_label: 'Fichero'
save_label: 'Importar el fichero'
pocket:
page_title: 'Importar > Pocket'
description: "Va a importar sus datos de Pocket. Pocket no nos permite descargar el contenido de su servicio, así que el contenido de cada artículo será redescargado por wallabag."
config_missing:
description: "La importación de Pocket no está configurada."
admin_message: 'Debe definir %keyurls%una clava del API Pocket%keyurle%.'
user_message: 'El administrador de vuestro servidor debe definir una clave API Pocket.'
authorize_message: 'Puedes importar sus datos desde su cuenta de Pocket. Sólo tienes que pulsar en el botón para autrizar que wallabag se conecte a getpocket.com.'
connect_to_pocket: 'Conectese a Pocket para importar los datos'
wallabag_v1:
page_title: 'Importar > Wallabag v1'
description: 'Va a importar sus artículos de wallabag v1. En su configuración de wallabag v1, pulse sobre "Exportar JSON" dentro de la sección "Exportar sus datos de wallabag". Usted tendrá un fichero "wallabag-export-1-xxxx-xx-xx.json".'
how_to: 'Seleccione el fichero de su exportación de wallabag v1 y puelse en el botón para subirla y importarla.'
wallabag_v2:
page_title: 'Importar > Wallabag v2'
description: 'Va a importar sus artículos de otra instancia de wallabag v2. Vaya a Todos los artículos, entonces, en la barra lateral, clickee en "JSON". Usted tendrá un fichero "All articles.json"'
# Howto
Form: "Formulario"
Thanks to this form: "Gracias a este formulario"
Browser addons: "Extensiones de navigador"
Mobile apps: "Applicaciones para smartphone"
Bookmarklet: "Bookmarklet"
Standard Firefox Add-On: "Extensión Firefox"
Chrome Extension: "Extensión Chrome"
download the application: "descargar la aplicación"
"Drag &amp; drop this link to your bookmarks bar:": "Desplazar y soltar este link en la barra de marcadores :"
developer:
# page_title: 'Developer'
# welcome_message: 'Welcome to the wallabag API'
# documentation: 'Documentation'
# how_to_first_app: 'How to create my first application'
# full_documentation: 'View full API documentation'
# list_methods: 'List API methods'
# clients:
# title: 'Clients'
# create_new: 'Create a new client'
# existing_clients:
# title: 'Existing clients'
# field_id: 'Client ID'
# field_secret: 'Client secret'
# field_uris: 'Redirect URIs'
# field_grant_types: 'Grant type allowed'
# no_client: 'No client yet.'
# remove:
# warn_message_1: 'You have the ability to remove this client. This action is IRREVERSIBLE !'
# warn_message_2: "If you remove it, every app configured with that client won't be able to auth on your wallabag."
# action: 'Remove this client'
# client:
# page_title: 'Developer > New client'
# page_description: 'You are about to create a new client. Please fill the field below for the redirect URI of your application.'
# form:
# redirect_uris_label: 'Redirect URIs'
# save_label: 'Create a new client'
# action_back: 'Back'
# client_parameter:
# page_title: 'Developer > Client parameters'
# page_description: 'Here are your client parameters.'
# field_id: 'Client ID'
# field_secret: 'Client secret'
# back: 'Back'
# read_howto: 'Read the howto "Create my first application"'
# howto:
# page_title: 'Developer > How to create my first application'
# description:
# 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.'
# paragraph_2: 'You need a token to communicate between your 3rd application and wallabag API.'
# paragraph_3: 'To create this token, you need <a href="%link%">to create a new client</a>.'
# paragraph_4: 'Now, create your token (replace client_id, client_secret, username and password with the good values):'
# paragraph_5: 'The API will return a response like this:'
# paragraph_6: 'The access_token is useful to do a call to the API endpoint. For example:'
# paragraph_7: 'This call will return all the entries for your user.'
# paragraph_8: 'If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.'
# back: 'Back'
# Flash messages
Information updated: "Su información personal ha sido actualizada"
"Config saved. Some parameters will be considered after disconnection.": "Configuración guardada. Algunos parámetros serán recargados cuando se vuelva a conectar."
RSS information updated: "La configuración de los feeds RSS ha sido actualizada"
Password updated: "Contraseña actualizada"
Entry starred: "Artículo guardado en los favoritos"
Entry unstarred: "Artículo retirado de los favoritos"
Entry archived: "Artículo archivado"
Entry unarchived: "Artículo desarchivado"
Entry deleted: "Artículo suprimido"
Tagging rule deleted: "Regla de etiquetado borrada"
Tagging rules updated: "Regla de etiquetado actualizada"
User "%username%" added: 'Usuario "%username%" añadido'
In demonstration mode, you can't change password for this user.: 'En modo demo, no puedes cambiar la contraseña del usuario.'
validator:
password_must_match: 'Las contraseñas no coinciden'
password_too_short: 'La contraseña debe tener al menos 8 carácteres'
# password_wrong_value: 'Wrong value for your current password'
# item_per_page_too_high: 'This will certainly kill the app'
# rss_limit_too_hight: 'This will certainly kill the app'
# Entry
Mark as read: 'Marcar como leído'
Favorite: 'Marcar cómo favorito'
back: 'Volver'
original article: 'Artículo original'
Add a tag: 'Añadir una etiqueta'
Share: 'Compartir'
Download: 'Descargar'
Does this article appear wrong?: "¿Este artículo no se muestra bien?"
Problems?: '¿Algún problema?'
Edit title: "Modificar el título"
Re-fetch content: "Redescargar el contenido"
Tag added: "Etiqueta añadida"
# Import
Welcome to wallabag importer. Please select your previous service that you want to migrate.: "Bienvenido al útil de migración de wallabag. Seleccione el servicio previo del que usted quiera migrar."
"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.": "Va a importar sus datos de Pocket. Pocket no nos permite descargar el contenido de su servicio, así que el contenido de cada artículo será redescargado por wallabag."
"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.": "Va a importar sus artículos de wallabag v1. En su configuración de wallabag v1, pulse sobre \"Exportar JSON\" dentro de la sección \"Exportar sus datos de wallabag\". Usted tendrá un fichero \"wallabag-export-1-xxxx-xx-xx.json\"."
"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.": "Va a importar sus artículos de otra instancia de wallabag v2. Vaya a Todos los artículos, entonces, en la barra lateral, clickee en \"JSON\". Usted tendrá un fichero \"All articles.json\""
"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.": "Puedes importar sus datos desde su cuenta de Pocket. Sólo tienes que pulsar en el botón para autrizar que wallabag se conecte a getpocket.com."
Import > Pocket: "Importar > Pocket"
Pocket import isn't configured.: "La importación de Pocket no está configurada."
You need to define %keyurls% a pocket_consumer_key %keyurle%.: "Debe definir %keyurls% una clava del API Pocket %keyurle%."
Your server admin needs to define an API Key for Pocket.: "El administrador de vuestro servidor debe definir una clave API Pocket."
Connect to Pocket and import data: "Conectese a Pocket para importar los datos"
Please select your wallabag export and click on the below button to upload and import it.: "Seleccione el fichero de su exportación de wallabag v1 y puelse en el botón para subirla y importarla."
File: "Fichero"
Upload file: "Importar el fichero"
Import contents: "Importar los contenidos"
Import: "Importar"
Import > Wallabag v1: "Importar > Wallabag v1"
Import > Wallabag v2: "Importar > Wallabag v2"
# Quickstart
Quickstart: Comienzo rápido
Welcome to wallabag!: "Bienvenido a wallabag !"
We'll accompany you to visit wallabag and show you some features which can interess you.: "Le acompañaremos a su visita de wallabag y le mostraremos algunas características que le pueden interesar."
Follow us!: "¡Siganos!"
Configure the application: "Configure la aplicación"
Change language and design: "Cambie el idoma y el diseño de la aplicación"
Enable RSS feeds: "Activar los feeds RSS"
First steps: "Prieros pasos"
Save your first article: "Guarde su primer artículo"
And classify it!: "¡Y clasifiquelo!"
Migrate from an existing service: "Migrar de un servicio existente"
You're using an other service? We'll help you to retrieve your data on wallabag.: "¿Está usando otro servicio? Le ayudaremos a migrar sus datos a wallabag."
Migrate from Pocket: "Migrar desde Pocket"
Migrate from wallabag v1: "Migrar desde wallabag v1"
Full documentation: "Documentación completa"
Convert your articles into ePUB or PDF: "Convierta sus artículos a ePub o a PDF"
See how you can look for an article by using search engine and filters: "Aprenda a utilizar el buscador y los filtros para encontrar el artículo que le interese"
And so many other articles!: "¡Y muchos más artículos!"
Support: "Soporte"
If you need some help, we are here for you.: "Sí necesita ayuda, estamos disponibles para usted."
On GitHub: "En GitHub"
By email: "Por email"
On Gitter: "On Gitter"
flashes:
config:
notice:
config_saved: 'Configuración guardada. Algunos parámetros serán recargados cuando se vuelva a conectar.'
password_updated: 'Contraseña actualizada'
password_not_updated_demo: "En modo demo, no puedes cambiar la contraseña del usuario."
user_updated: 'Su información personal ha sido actualizada'
rss_updated: 'La configuración de los feeds RSS ha sido actualizada'
tagging_rules_updated: 'Regla de etiquetado borrada'
tagging_rules_deleted: 'Regla de etiquetado actualizada'
user_added: 'Usuario "%username%" añadido'
rss_token_updated: 'RSS token actualizado'
entry:
notice:
# entry_already_saved: 'Entry already saved on %date%'
# entry_saved: 'Entry saved'
# entry_updated: 'Entry updated'
# entry_reloaded: 'Entry reloaded'
# entry_reload_failed: 'Failed to reload entry'
entry_archived: 'Artículo archivado'
entry_unarchived: 'Artículo desarchivado'
entry_starred: 'Artículo guardado en los favoritos'
entry_unstarred: 'Artículo retirado de los favoritos'
entry_deleted: 'Artículo suprimido'
tag:
notice:
tag_added: 'Etiqueta añadida'
import:
notice:
# failed: 'Import failed, please try again.'
# failed_on_file: 'Error while processing import. Please verify your import file.'
# summary: 'Import summary: %imported% imported, %skipped% already saved.'
developer:
notice:
# client_created: 'New client created.'
# client_deleted: 'Client deleted'

View File

@ -1,129 +1,425 @@
#Login
Keep me logged in: 'مرا به خاطر بسپار'
Forgot your password?: ' رمزتان را گم کرده‌اید؟'
Login: 'ورود'
Back to login: 'بازگشت به صفحهٔ ورود'
Send: 'بفرست'
"Enter your email address below and we'll send you password reset instructions.": "نشانی ایمیل خود را بنویسید تا راهنمای تغییر رمز را برایتان بفرستیم."
security:
login:
page_title: 'به wallabag خوش آمدید!'
keep_logged_in: 'مرا به خاطر بسپار'
forgot_password: ' رمزتان را گم کرده‌اید؟'
submit: 'ورود'
register: 'نام‌نویسی'
username: 'نام کاربری'
password: 'رمز'
cancel: 'لغو'
resetting:
description: "نشانی ایمیل خود را بنویسید تا راهنمای تغییر رمز را برایتان بفرستیم."
register:
page_title: 'حساب بسازید'
go_to_account: 'حساب خود را ببینید'
# Menu
unread: 'خوانده‌نشده'
starred: 'برگزیده'
archive: ایگانی'
all: 'همه'
tags: 'برچسب‌ها'
config: 'پیکربندی'
howto: 'خودآموز'
logout: 'خروج'
Filtered: 'فیلترشده'
About: 'درباره'
menu:
left:
unread: 'خوانده‌نشده'
starred: رگزیده'
archive: 'بایگانی'
all_articles: 'همه'
config: 'پیکربندی'
tags: 'برچسب‌ها'
internal_settings: 'تنظیمات درونی'
import: 'درون‌ریزی'
howto: 'خودآموز'
developer: 'سازندگان'
logout: 'خروج'
about: 'درباره'
search: 'جستجو'
save_link: 'ذخیرهٔ یک پیوند'
back_to_unread: 'بازگشت به خوانده‌نشده‌ها'
top:
add_new_entry: 'افزودن مقالهٔ تازه'
search: 'جستجو'
filter_entries: 'فیلترکردن مقاله‌ها'
export: 'برون‌بری'
search_form:
input_label: 'جستجوی خود را این‌جا بنویسید:'
# Header
Back to unread articles: 'بازگشت به خوانده‌نشده‌ها'
Add a new entry: 'افزودن مقالهٔ تازه'
Search: 'جستجو'
Filter entries: 'فیلترکردن مقاله‌ها'
Enter your search here: 'جستجوی خود را این‌جا بنویسید:'
Save new entry: 'ذخیرهٔ مقالهٔ تازه'
footer:
wallabag:
elsewhere: 'wallabag همراه شما'
social: 'شبکه‌های اجتماعی'
powered_by: 'توانمند با'
about: 'درباره'
# Config screen
Settings: 'تنظیمات'
User information: 'اطلاعات کاربر'
Password: 'رمز'
RSS: 'آر-اس-اس'
Add a user: 'افزودن کاربر'
Theme: 'پوسته'
Items per page: 'تعداد مقاله در هر صفحه'
Language: 'زبان'
Save: 'ذخیره'
RSS token: 'کد آر-اس-اس'
Name: 'نام'
Email: 'نشانی ایمیل'
No token: 'بدون کد'
Reset your token: 'بازنشانی کد'
Create your token: 'کد خود را بسازید'
Rss limit: 'محدودیت آر-اس-اس'
RSS links: 'پیوند آر-اس-اس'
'RSS feeds provided by wallabag allow you to read your saved articles with your favourite RSS reader. You need to generate a token first.': 'با خوراک آر-اس-اس که wallabag در اختیارتان می‌گذارد، می‌توانید مقاله‌های ذخیره‌شده را در نرم‌افزار آر-اس-اس دلخواه خود بخوانید. برای این کار نخست باید یک کد بسازید.'
Old password: 'رمز قدیمی'
New password: 'رمز تازه'
Repeat new password: 'رمز تازه را دوباره بنویسید'
Username: 'نام کاربری'
config:
page_title: 'پیکربندی'
tab_menu:
settings: 'تنظیمات'
rss: 'آر-اس-اس'
user_info: 'اطلاعات کاربر'
password: 'رمز'
rules: 'برچسب‌گذاری خودکار'
new_user: 'افزودن کاربر'
form:
save: 'ذخیره'
form_settings:
theme_label: 'پوسته'
items_per_page_label: 'تعداد مقاله در هر صفحه'
language_label: 'زبان'
reading_speed:
label: 'سرعت خواندن'
help_message: 'سرعت خواندن‌تان را با ابزارهای آنلاین تخمین بزنید:'
100_word: 'من تقریباً ۱۰۰ واژه را در دقیقه می‌خوانم'
200_word: 'من تقریباً ۲۰۰ واژه را در دقیقه می‌خوانم'
300_word: 'من تقریباً ۳۰۰ واژه را در دقیقه می‌خوانم'
400_word: 'من تقریباً ۴۰۰ واژه را در دقیقه می‌خوانم'
form_rss:
description: 'با خوراک آر-اس-اس که wallabag در اختیارتان می‌گذارد، می‌توانید مقاله‌های ذخیره‌شده را در نرم‌افزار آر-اس-اس دلخواه خود بخوانید. برای این کار نخست باید یک کد بسازید.'
token_label: 'کد آر-اس-اس'
no_token: 'بدون کد'
token_create: 'کد خود را بسازید'
token_reset: 'بازنشانی کد'
rss_links: 'پیوند آر-اس-اس'
rss_link:
unread: 'خوانده‌نشده'
starred: 'برگزیده'
archive: 'بایگانی'
rss_limit: 'محدودیت آر-اس-اس'
form_user:
two_factor_description: "با فعال‌کردن تأیید ۲مرحله‌ای هر بار که اتصال تأییدنشده‌ای برقرار شد، به شما یک کد از راه ایمیل فرستاده می‌شود"
name_label: 'نام'
email_label: 'نشانی ایمیل'
twoFactorAuthentication_label: 'تأیید ۲مرحله‌ای'
form_password:
old_password_label: 'رمز قدیمی'
new_password_label: 'رمز تازه'
repeat_new_password_label: 'رمز تازه را دوباره بنویسید'
form_rules:
if_label: 'اگر'
then_tag_as_label: 'این برچسب را بزن'
delete_rule_label: 'پاک کن'
rule_label: 'قانون'
tags_label: 'برچسب‌ها'
faq:
title: 'پرسش‌های متداول'
tagging_rules_definition_title: 'برچسب‌گذاری خودکار یعنی چه؟'
# 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.'
# how_to_use_them_title: 'How do I use them?'
# 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 &lt;= 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 &gt;= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, github </i> »'
# variables_available_title: 'Which variables and operators can I use to write rules?'
# variables_available_description: 'The following variables and operators can be used to create tagging rules:'
# meaning: 'Meaning'
# variable_description:
# label: 'Variable'
# title: 'Title of the entry'
# url: 'URL of the entry'
# isArchived: 'Whether the entry is archived or not'
# isStarred: 'Whether the entry is starred or not'
# content: "The entry's content"
# language: "The entry's language"
# mimetype: "The entry's mime-type"
# readingTime: "The estimated entry's reading time, in minutes"
# domainName: 'The domain name of the entry'
# operator_description:
# label: 'Operator'
# less_than: 'Less than...'
# strictly_less_than: 'Strictly less than...'
# greater_than: 'Greater than...'
# strictly_greater_than: 'Strictly greater than...'
# equal_to: 'Equal to...'
# not_equal_to: 'Not equal to...'
# or: 'One rule OR another'
# and: 'One rule AND another'
# matches: 'Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code>'
form_new_user:
username_label: 'نام کاربری'
password_label: 'رمز'
repeat_new_password_label: 'رمز تازه را دوباره بنویسید'
plain_password_label: '????'
email_label: 'نشانی ایمیل'
# Entries
'estimated reading time': 'زمان تخمینی برای خواندن'
original: اصلی
Toggle mark as read: 'خوانده‌شده/خوانده‌نشده'
Toggle favorite: 'برگزیده/نابرگزیده'
Delete: 'پاک کردن'
entry:
page_titles:
unread: 'مقاله‌های خوانده‌نشده'
starred: 'مقاله‌های برگزیده'
archived: 'مقاله‌های بایگانی‌شده'
filtered: 'مقاله‌های فیلترشده'
list:
number_on_the_page: '{0} هیج مقاله‌ای نیست.|{1} یک مقاله هست.|]1,Inf[ %count% مقاله هست.'
reading_time: 'زمان تخمینی برای خواندن'
reading_time_minutes: 'زمان تخمینی برای خواندن: %readingTime% min'
reading_time_less_one_minute: 'زمان تخمینی برای خواندن: <small class="inferieur">&lt;</small> 1 min'
original_article: 'original'
toogle_as_read: 'خوانده‌شده/خوانده‌نشده'
toogle_as_star: 'برگزیده/نابرگزیده'
delete: 'پاک کردن'
export_title: 'برون‌بری'
filters:
title: 'فیلتر'
status_label: 'وضعیت'
archived_label: 'بایگانی‌شده'
starred_label: 'برگزیده'
preview_picture_label: 'دارای عکس پیش‌نمایش'
preview_picture_help: 'پیش‌نمایش عکس'
language_label: 'زبان'
reading_time:
label: 'زمان خواندن به دقیقه'
from: 'از'
to: 'تا'
domain_label: 'نام دامنه'
created_at:
label: 'زمان ساخت'
from: 'از'
to: 'تا'
action:
clear: 'از نو'
filter: 'فیلتر'
view:
left_menu:
back_to_top: 'بازگشت به بالای صفحه'
back_to_homepage: 'بازگشت'
set_as_read: 'خوانده‌شده'
set_as_unread: 'به عنوان خوانده‌نشده علامت بزن'
set_as_favorite: 'برگزیده'
view_original_article: 'مقالهٔ اصلی'
re_fetch_content: 'مقاله‌ها را دوباره دریافت کن'
delete: 'پاک کردن'
add_a_tag: 'افزودن برچسب'
share_content: 'هم‌رسانی'
share_email_label: 'نشانی ایمیل'
download: 'بارگیری'
print: 'چاپ'
problem:
label: 'مشکلات؟'
description: 'آیا مقاله نادرست نشان داده شده؟'
edit_title: 'ویرایش عنوان'
original_article: 'اصلی'
annotations_on_the_entry: '{0} بدون حاشیه|{1} یک حاشیه|]1,Inf[ %nbحاشیه% annotations'
new:
page_title: 'ذخیرهٔ مقالهٔ تازه'
placeholder: 'http://website.com'
form_new:
url_label: نشانی
edit:
page_title: 'ویرایش مقاله'
title_label: 'عنوان'
url_label: 'نشانی'
is_public_label: 'عمومی'
save_label: 'ذخیره'
# Filters
Filters: 'فیلتر'
Status: 'وضعیت'
Archived: 'بایگانی‌شده'
Starred: 'برگزیده'
Preview picture: 'پیش‌نمایش عکس'
Has a preview picture: 'دارای عکس پیش‌نمایش'
Reading time in minutes: 'زمان خواندن به دقیقه'
from: 'از'
to: 'تا'
website.com: 'website.com'
Domain name: 'نام دامنه'
Creation date: 'زمان ساخت'
dd/mm/yyyy: 'dd.mm.yyyy'
Clear: 'از نو'
Filter: 'فیلتر'
about:
page_title: 'درباره'
top_menu:
who_behind_wallabag: 'سازندگان wallabag'
getting_help: 'گرفتن کمک'
helping: 'کمک‌کردن به wallabag'
contributors: 'مشارکت‌کنندگان'
third_party: 'کتابخانه‌های نرم‌افزاری'
who_behind_wallabag:
developped_by: 'ساختهٔ'
website: 'وب‌گاه'
many_contributors: 'و بسیاری دیگر از مشارکت‌کنندگان ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">روی Github</a>'
project_website: 'وب‌گاه پروژه'
license: 'پروانه'
version: 'نسخه'
getting_help:
documentation: 'راهنما'
bug_reports: 'گزارش اشکال‌ها'
support: '<a href="https://support.wallabag.org">در وب‌گاه پشتیبانی</a> یا <a href="https://github.com/wallabag/wallabag/issues">روی GitHub</a>'
helping:
description: 'wallabag رایگان، آزاد، و متن‌باز است. شما می‌توانید به ما کمک کنید:'
by_contributing: 'با مشارکت در پروژه:'
by_contributing_2: 'فهرست نیازمندی‌های ما در این صفحه است:'
by_paypal: 'از راه Paypal'
contributors:
description: 'از مشارکت شما در برنامهٔ وب wallabag ممنونیم.'
third_party:
description: 'فهرست کتابخانه‌های نرم‌افزاری که در wallabag به کار رفته‌اند (به همراه پروانهٔ آن‌ها) :'
package: 'بسته'
license: 'پروانه'
# About
Who is behind wallabag: "سازندگان wallabag"
Getting help: "گرفتن کمک"
Helping wallabag: "کمک‌کردن به wallabag"
Developed by: "ساختهٔ"
website: "وب‌گاه"
And many others contributors ♥: "و بسیاری دیگر از مشارکت‌کنندگان ♥"
on GitHub: "روی GitHub"
Project website: "وب‌گاه پروژه"
License: "پروانه"
Version: "نسخه"
Documentation: "راهنما"
Bug reports: "گزارش اشکال‌ها"
On our support website: "در وب‌گاه پشتیبانی"
or: "یا"
"wallabag is free and opensource. You can help us:": "wallabag رایگان، آزاد، و متن‌باز است. شما می‌توانید به ما کمک کنید:"
"by contributing to the project:": "با مشارکت در پروژه:"
an issue lists all our needs: "فهرست نیازمندی‌های ما در این صفحه است:"
via Paypal: "از راه PayPal"
howto:
page_title: 'خودآموز'
page_description: 'راه‌های زیادی برای ذخیرهٔ مقاله‌ها هست:'
top_menu:
browser_addons: 'افزونه برای مرورگرها'
mobile_apps: 'برنامه‌های موبایل'
bookmarklet: 'ابزار علامت‌گذاری صفحه‌ها'
form:
description: 'به کمک این فرم'
browser_addons:
firefox: 'افزونهٔ فایرفاکس'
chrome: 'افزونهٔ کروم'
mobile_apps:
android:
via_f_droid: 'از راه F-Droid'
via_google_play: 'از راه Google Play'
ios: 'از راه iTunes Store'
windows: 'از راه Microsoft Store'
bookmarklet:
description: 'این پیوند را به نوار بوک‌مارک مرورگرتان بکشید:'
# Howto
Form: فرم
Thanks to this form: "به کمک این فرم"
Browser addons: "افزونه برای مرورگرها"
Mobile apps: "برنامه‌های موبایل"
Bookmarklet: "ابزار علامت‌گذاری صفحه‌ها"
Standard Firefox Add-On: "افزونهٔ فایرفاکس"
Chrome Extension: "افزونهٔ کروم"
download the application: "برنامه را باربگیرید"
"Drag &amp; drop this link to your bookmarks bar:": "این پیوند را به نوار بوک‌مارک مرورگرتان بکشید:"
quickstart:
page_title: 'Quickstart'
intro:
title: 'به wallabag خوش آمدید!!'
paragraph_1: "به شما کمک خواهیم کرد تا wallabag را بشناسید و با برخی از ویژگی‌های جالبش آشنا شوید"
paragraph_2: 'ادامه دهید!'
configure:
title: 'برنامه را تنظیم کنید'
language: 'زبان و نمای برنامه را تغییر دهید'
rss: 'خوراک آر-اس-اس را فعال کنید'
tagging_rules: 'قانون‌های برچسب‌گذاری خودکار مقاله‌هایتان را تعریف کنید'
admin:
title: 'مدیریت'
description: 'به عنوان مدیر، شما دسترسی‌های بیشتری به wallabag دارید. شما می‌توانید:'
new_user: 'کاربر تازه‌ای بسازید'
analytics: 'تحلیل‌های آماری را تنظیم کنید'
sharing: 'گزینه‌های مربوط به هم‌رسانی مقاله‌ها را فعال کنید'
export: 'برون‌سپاری را تنظیم کنید'
import: 'درون‌ریزی را تنظیم کنید'
first_steps:
title: 'گام نخست'
new_article: 'نخستین مقالهٔ خود را ذخیره کنید'
unread_articles: 'و آن را طبقه‌بندی کنید!'
migrate:
title: 'از سرویس قبلی خود به این‌جا مهاجرت کنید'
description: "آیا سرویس دیگری را به‌کار می‌برید؟ داده‌هایتان را به wallabag بیاورید.."
pocket: 'مهاجرت از Pocket'
wallabag_v1: 'مهاجرت از نسخهٔ یکم wallabag'
wallabag_v2: 'مهاجرت از نسخهٔ دوم wallabag'
developer:
title: 'برنامه‌نویسان'
create_application: 'برنامهٔ wallabag خود را بسازید'
docs:
title: 'راهنمای کامل'
annotate: 'روی مقاله‌هایتان یادداشت بگذارید'
export: 'مقاله‌هایتان را به قالب ePUB یا PDF دربیاورید'
search_filters: 'به کمک موتور جستجو و فیلترها به دنبال مقاله‌هایتان بگردید'
fetching_errors: 'اگر مقاله‌ای هنگام ذخیره‌ شدن به مشکل برخورد چه کار کنید؟'
all_docs: 'و بسیاری از موضوعات دیگر'
support:
title: 'پشتیبانی'
description: 'به کمک نیاز دارید؟ ما پشتیبان شما هستیم!'
github: 'روی گیت‌هاب'
email: 'با ایمیل'
gitter: 'روی گیتر'
# Flash messages
Information updated: "اطلاعات به‌روز شد"
"Config saved. Some parameters will be considered after disconnection.": "پیکربندی ذخیره شد. برخی از تنظیمات پس از این که قطع شدید اعمال می‌شود."
RSS information updated: "اطلاعات آر-اس-اس به‌روز شد"
Password updated: "رمز به‌روز شد"
Entry starred: "مقاله برگزیده شد"
Entry unstarred: "مقاله نابرگزیده شد"
Entry archived: "مقاله بایگانی شد"
Entry unarchived: "مقاله از بایگانی درآمد"
Entry deleted: "مقاله پاک شد"
tag:
page_title: 'برچسب‌ها'
list:
number_on_the_page: '{0} هیچ برچسبی نیست.|{1} یک برچسب هست.|]1,Inf[ %count% برچسب هست.'
# Entry
Mark as read: 'خوانده‌شده'
Favorite: 'برگزیده'
back: 'بازگشت'
original article: 'مقالهٔ اصلی'
Add a tag: 'افزودن برچسب'
Share: 'هم‌رسانی'
Download: 'بارگیری'
Does this article appear wrong?: "آیا مقاله نادرست نشان داده شده؟"
Problems?: 'مشکلات؟'
Edit title: "ویرایش عنوان"
import:
page_title: 'درون‌ریزی'
page_description: 'به درون‌ریز wallabag خوش آمدید. لطفاً سرویس قبلی خود را که می‌خواهید از آن مهاجرت کنید انتخاب کنید.'
action:
import_contents: 'درون‌ریزی مقاله‌ها'
form:
mark_as_read_title: 'علامت‌زدن همه به عنوان خوانده‌شده؟'
mark_as_read_label: 'همهٔ مقاله‌های درون‌ریزی شده را به عنوان خوانده‌شده علامت بزن'
file_label: 'پرونده'
save_label: 'بارگذاری پرونده'
pocket:
page_title: 'درون‌ریزی > Pocket'
description: "این برنامه همهٔ داده‌های Pocket شما را درون‌ریزی می‌کند. سرویس Pocket اجازه نمی‌دهد که متن مقاله‌ها را درون‌ریزی کنیم، بنابراین wallabag متن مقاله‌ها را دوباره از اینترنت دریافت می‌کند."
config_missing:
description: "درون‌ریزی از Pocket تنظیم نشده است."
admin_message: 'شما باید %keyurls%یک pocket_consumer_key%keyurle% تعریف کنید.'
user_message: 'مدیر سرور شما باید یک API Key برای Pocket تعریف کند.'
authorize_message: 'شما می‌توانید داده‌هایتان را از حساب Pocket خود درون‌ریزی کنید. روی دکمهٔ زیر کلیک کنید و به برنامه اجازه دهید تا به getpocket.com وصل شود.'
connect_to_pocket: 'به Pocket وصل شو و داده‌ها را دریافت کن'
wallabag_v1:
page_title: 'درون‌ریزی > Wallabag v1'
description: 'این برنامه همهٔ داده‌های شما را در نسخهٔ ۱ wallabag درون‌ریزی می‌کند. در صفحهٔ تنظیمات، روی "JSON export" در بخش "Export your wallabag data" کلیک کنید. با این کار شما پرونده‌ای به شکل "wallabag-export-1-xxxx-xx-xx.json" دریافت خواهید کرد.'
how_to: 'لطفاً پرونده را انتخاب کنید و روی دکمهٔ زیر کلیک کنید تا بارگذاری و درون‌ریزی شود.'
wallabag_v2:
page_title: 'درون‌ریزی > Wallabag v2'
description: 'این برنامه همهٔ داده‌های شما را در نسخهٔ ۲ wallabag درون‌ریزی می‌کند. به بخش «همهٔ مقاله‌ها» بروید و در بخش «برون‌ریزی» روی "JSON" کلیک کنید. با این کار شما پرونده‌ای به شکل "All articles.json" دریافت خواهید کرد.'
developer:
# page_title: 'Developer'
# welcome_message: 'Welcome to the wallabag API'
# documentation: 'Documentation'
# how_to_first_app: 'How to create my first application'
# full_documentation: 'View full API documentation'
# list_methods: 'List API methods'
# clients:
# title: 'Clients'
# create_new: 'Create a new client'
# existing_clients:
# title: 'Existing clients'
# field_id: 'Client ID'
# field_secret: 'Client secret'
# field_uris: 'Redirect URIs'
# field_grant_types: 'Grant type allowed'
# no_client: 'No client yet.'
# remove:
# warn_message_1: 'You have the ability to remove this client. This action is IRREVERSIBLE !'
# warn_message_2: "If you remove it, every app configured with that client won't be able to auth on your wallabag."
# action: 'Remove this client'
# client:
# page_title: 'Developer > New client'
# page_description: 'You are about to create a new client. Please fill the field below for the redirect URI of your application.'
# form:
# redirect_uris_label: 'Redirect URIs'
# save_label: 'Create a new client'
# action_back: 'بازگشت'
# client_parameter:
# page_title: 'Developer > Client parameters'
# page_description: 'Here are your client parameters.'
# field_id: 'Client ID'
# field_secret: 'Client secret'
# back: 'بازگشت'
# read_howto: 'Read the howto "Create my first application"'
# howto:
# page_title: 'Developer > How to create my first application'
# description:
# 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.'
# paragraph_2: 'You need a token to communicate between your 3rd application and wallabag API.'
# paragraph_3: 'To create this token, you need <a href="%link%">to create a new client</a>.'
# paragraph_4: 'Now, create your token (replace client_id, client_secret, username and password with the good values):'
# paragraph_5: 'The API will return a response like this:'
# paragraph_6: 'The access_token is useful to do a call to the API endpoint. For example:'
# paragraph_7: 'This call will return all the entries for your user.'
# paragraph_8: 'If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.'
# back: 'بازگشت'
validator:
password_must_match: 'رمزها باید یکی باشند'
password_too_short: 'رمز شما باید ۸ حرف یا بیشتر باشد'
password_wrong_value: 'رمز فعلی را اشتباه وارد کرده‌اید'
item_per_page_too_high: 'با این تعداد برنامه به فنا می‌رود'
rss_limit_too_hight: 'با این تعداد برنامه به فنا می‌رود'
flashes:
config:
notice:
config_saved: 'پیکربندی ذخیره شد. برخی از تنظیمات پس از این که قطع شدید اعمال می‌شود.'
password_updated: 'رمز به‌روز شد'
password_not_updated_demo: "در حالت نمایشی نمی‌توانید رمز کاربر را عوض کنید."
user_updated: 'اطلاعات به‌روز شد'
rss_updated: 'اطلاعات آر-اس-اس به‌روز شد'
tagging_rules_updated: 'برچسب‌گذاری خودکار به‌روز شد'
tagging_rules_deleted: 'قانون برچسب‌گذاری پاک شد'
user_added: 'کابر "%username%" افزوده شد'
rss_token_updated: 'کد آر-اس-اس به‌روز شد'
entry:
notice:
entry_already_saved: 'این مقاله در تاریخ %date% ذخیره شده بود'
entry_saved: 'مقاله ذخیره شد'
entry_updated: 'مقاله به‌روز شد'
entry_reloaded: 'مقاله به‌روز شد'
entry_reload_failed: 'به‌روزرسانی مقاله شکست خورد'
entry_archived: 'مقاله بایگانی شد'
entry_unarchived: 'مقاله از بایگانی درآمد'
entry_starred: 'مقاله برگزیده شد'
entry_unstarred: 'مقاله نابرگزیده شد'
entry_deleted: 'مقاله پاک شد'
tag:
notice:
tag_added: 'برچسب افزوده شد'
import:
notice:
failed: 'درون‌ریزی شکست خورد. لطفاً دوباره تلاش کنید.'
failed_on_file: 'خطا هنگام پردازش پروندهٔ ورودی. آیا پروندهٔ درون‌ریزی شده سالم است؟'
summary: 'گزارش درون‌ریزی: %imported% وارد شد, %skipped% از قبل ذخیره شده بود.'
developer:
notice:
# client_created: 'New client created.'
# client_deleted: 'Client deleted'

View File

@ -1,277 +1,425 @@
#Login
Keep me logged in: 'Rester connecté'
Forgot your password?: 'Mot de passe oublié ?'
Login: 'Se connecter'
Back to login: 'Revenir au formulaire de connexion'
Send: 'Envoyer'
"Enter your email address below and we'll send you password reset instructions.": "Saisissez votre adresse e-mail ci-dessous, nous vous enverrons les instructions pour réinitialiser votre mot de passe."
Register: 'Créer un compte'
security:
login:
page_title: 'Bienvenue sur wallabag !'
keep_logged_in: 'Rester connecté'
forgot_password: 'Mot de passe oublié ?'
submit: 'Se connecter'
register: 'Créer un compte'
username: "Nom d'utilisateur"
password: 'Mot de passe'
cancel: 'Annuler'
resetting:
description: "Saisissez votre adresse e-mail ci-dessous, nous vous enverrons les instructions pour réinitialiser votre mot de passe."
register:
page_title: 'Se créer un compte'
go_to_account: 'Aller sur votre compte'
# Menu
unread: 'Non lus'
starred: 'Favoris'
archive: 'Lus'
all: 'Tous les articles'
tags: 'Tags'
config: 'Configuration'
internal settings: 'Configuration interne'
import: 'Importer'
howto: 'Aide'
logout: 'Déconnexion'
Filtered: 'Articles filtrés'
About: 'À propos'
menu:
left:
unread: 'Non lus'
starred: 'Favoris'
archive: 'Lus'
all_articles: 'Tous les articles'
config: 'Configuration'
tags: 'Tags'
internal_settings: 'Configuration interne'
import: 'Importer'
howto: 'Aide'
developer: 'Développeur'
logout: 'Déconnexion'
about: 'À propos'
search: 'Recherche'
save_link: 'Sauvegarder un nouvel article'
back_to_unread: 'Retour aux articles non lus'
top:
add_new_entry: 'Sauvegarder un nouvel article'
search: 'Rechercher'
filter_entries: 'Filtrer les articles'
export: 'Exporter'
search_form:
input_label: 'Saisissez votre terme de recherche'
# Header
Back to unread articles: 'Retour aux articles non lus'
Add a new entry: 'Sauvegarder un nouvel article'
Search: 'Rechercher'
Filter entries: 'Filtrer les articles'
Enter your search here: 'Saisissez votre terme de recherche'
Save new entry: 'Sauvegarder un nouvel article'
Export: Exporter
footer:
wallabag:
elsewhere: 'Emportez wallabag avec vous'
social: 'Social'
powered_by: 'propulsé par'
about: 'À propos'
page_title: 'Configuration'
# Config screen
Settings: 'Paramètres'
User information: 'Mon compte'
Password: 'Mot de passe'
RSS: 'RSS'
Add a user: 'Créer un compte'
Theme: 'Thème'
Items per page: "Nombre d'articles par page"
Language: 'Langue'
Save: 'Enregistrer'
RSS token: 'Jeton RSS'
RSS token updated: 'Jeton RSS mis à jour'
Name: 'Nom'
Email: 'Adresse e-mail'
No token: 'Aucun jeton généré'
Reset your token: 'Réinitialisez votre jeton'
Create your token: 'Créez votre jeton'
Rss limit: "Nombre d'articles dans un flux RSS"
RSS links: 'URL de vos flux RSS'
"RSS feeds provided by wallabag allow you to read your saved articles with your favourite RSS reader. You need to generate a token first.": "Les flux RSS fournis par wallabag vous permettent de lire vos articles sauvegardés dans votre lecteur de flux préféré. Pour pouvoir les utiliser, vous devez d'abord créer un jeton."
Old password: 'Mot de passe actuel'
New password: 'Nouveau mot de passe'
Repeat new password: 'Confirmez votre nouveau mot de passe'
Username: "Nom d'utilisateur"
Two factor authentication: "Double authentification"
"Enabling two factor authentication means you'll receive an email with a code on every new untrusted connexion": "Activer l'authentification double-facteur veut dire que vous allez recevoir un code par email à chaque nouvelle connexion non approuvée."
config:
tab_menu:
settings: 'Paramètres'
rss: 'RSS'
user_info: 'Mon compte'
password: 'Mot de passe'
rules: 'Règles de tag automatiques'
new_user: 'Créer un compte'
form:
save: 'Enregistrer'
form_settings:
theme_label: 'Thème'
items_per_page_label: "Nombre d'articles par page"
language_label: 'Langue'
reading_speed:
label: 'Vitesse de lecture'
help_message: 'Vous pouvez utiliser un outil en ligne pour estimer votre vitesse de lecture :'
100_word: 'Je lis environ 100 mots par minute'
200_word: 'Je lis environ 200 mots par minute'
300_word: 'Je lis environ 300 mots par minute'
400_word: 'Je lis environ 400 mots par minute'
form_rss:
description: "Les flux RSS fournis par wallabag vous permettent de lire vos articles sauvegardés dans votre lecteur de flux préféré. Pour pouvoir les utiliser, vous devez d'abord créer un jeton."
token_label: 'Jeton RSS'
no_token: 'Aucun jeton généré'
token_create: 'Créez votre jeton'
token_reset: 'Réinitialisez votre jeton'
rss_links: 'URL de vos flux RSS'
rss_link:
unread: 'non lus'
starred: 'favoris'
archive: 'lus'
rss_limit: "Nombre d'articles dans le flux"
form_user:
two_factor_description: "Activer l'authentification double-facteur veut dire que vous allez recevoir un code par email à chaque nouvelle connexion non approuvée."
name_label: 'Nom'
email_label: 'Adresse e-mail'
twoFactorAuthentication_label: 'Double authentification'
form_password:
old_password_label: 'Mot de passe actuel'
new_password_label: 'Nouveau mot de passe'
repeat_new_password_label: 'Confirmez votre nouveau mot de passe'
form_rules:
if_label: 'si'
then_tag_as_label: 'alors attribuer les tags'
delete_rule_label: 'supprimer'
rule_label: 'Règle'
tags_label: 'Tags'
faq:
title: 'FAQ'
tagging_rules_definition_title: 'Que signifient les règles de tag automatiques ?'
tagging_rules_definition_description: "Ce sont des règles utilisées par wallabag pour classer automatiquement vos nouveaux articles.<br />À chaque fois qu'un nouvel article est ajouté, toutes les règles de tag automatiques seront utilisées afin d'ajouter les tags que vous avez configurés, vous épargnant ainsi l'effort de classifier vos articles manuellement."
how_to_use_them_title: 'Comment les utiliser ?'
how_to_use_them_description: 'Imaginons que voulez attribuer aux nouveaux articles le tag « <i>lecture courte</i> » lorsque le temps de lecture est inférieur à 3 minutes.<br />Dans ce cas, vous devriez mettre « readingTime &lt;= 3 » dans le champ <i>Règle</i> et « <i>lecture courte</i> » dans le champ <i>Tag</i>.<br />Plusieurs tags peuvent être ajoutés simultanément en les séparant par des virgules : « <i>lecture courte, à lire</i> »<br />Des règles complexes peuvent être créées en utilisant des opérateurs prédéfinis: si « <i>readingTime &gt;= 5 AND domainName = \"github.com\"</i> » alors attribuer les tags « <i>lecture longue, github </i> »'
variables_available_title: 'Quelles variables et opérateurs puis-je utiliser pour écrire des règles ?'
variables_available_description: 'Les variables et opérateurs suivants peuvent être utilisés pour écrire des règles de tag automatiques :'
meaning: 'Signification'
variable_description:
label: 'Variable'
title: "Titre de l'article"
url: "URL de l'article"
isArchived: "Si l'article est archivé ou non"
isStarred: "Si l'article est favori ou non"
content: "Le contenu de l'article"
language: "La langue de l'article"
mimetype: "Le type MIME de l'article"
readingTime: "Le temps de lecture estimé de l'article, en minutes"
domainName: "Le nom de domaine de l'article"
operator_description:
label: 'Opérateur'
less_than: 'Moins que…...'
strictly_less_than: 'Strictement moins que…'
greater_than: 'Plus que…'
strictly_greater_than: 'Strictement plus que…'
equal_to: 'Égal à…'
not_equal_to: 'Différent de…'
or: "Une règle OU l'autre"
and: "Une règle ET l'autre"
matches: 'Teste si un <i>sujet</i> correspond à une <i>recherche</i> (non sensible à la casse).<br />Exemple : <code>title matches "football"</code>'
form_new_user:
username_label: "Nom d'utilisateur"
password_label: 'Mot de passe'
repeat_new_password_label: 'Confirmez votre nouveau mot de passe'
plain_password_label: 'Mot de passe en clair'
email_label: 'Adresse e-mail'
# Tagging rules
Tagging rules: "Règles de tag automatiques"
What does « tagging rules » mean?: "Que signifient les règles de tag automatiques ?"
"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.": "Ce sont des règles utilisées par wallabag pour classer automatiquement vos nouveaux articles.<br />À chaque fois qu'un nouvel article est ajouté, toutes les règles de tag automatiques seront utilisées afin d'ajouter les tags que vous avez configurés, vous épargnant ainsi l'effort de classifier vos articles manuellement."
How do I use them?: "Comment les utiliser ?"
"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 &lt;= 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 &gt;= 5 AND domainName = \"github.com\"</i> » then tag as « <i>long reading, github </i> »": "Imaginons que voulez attribuer aux nouveaux articles le tag « <i>lecture courte</i> » lorsque le temps de lecture est inférieur à 3 minutes.<br />Dans ce cas, vous devriez mettre « readingTime &lt;= 3 » dans le champ <i>Règle</i> et « <i>lecture courte</i> » dans le champ <i>Tag</i>.<br />Plusieurs tags peuvent être ajoutés simultanément en les séparant par des virgules : « <i>lecture courte, à lire</i> »<br />Des règles complexes peuvent être créées en utilisant des opérateurs prédéfinis: si « <i>readingTime &gt;= 5 AND domainName = \"github.com\"</i> » alors attribuer les tags « <i>lecteur longue, github </i> »"
Which variables and operators can I use to write rules?: "Quelles variables et opérateurs puis-je utiliser pour écrire des règles ?"
The following variables and operators can be used to create tagging rules:: "Les variables et opérateurs suivants peuvent être utilisés pour écrire des règles de tag automatiques :"
Variable: "Variable"
Meaning: "Signification"
Operator: "Opérateur"
Title of the entry: "Titre de l'article"
Less than…: "Moins que…"
URL of the entry: "URL de l'article"
Strictly less than…: "Strictement moins que…"
Whether the entry is archived or not: "Si l'article est archivé ou non"
Greater than…: "Plus que…"
Whether the entry is starred or not: "Si l'article est favori ou non"
Strictly greater than…: "Strictement plus que…"
The entry's content: "Le contenu de l'article"
Equal to…: "Égal à…"
The entry's language: "La langue de l'article"
Not equal to…: "Différent de…"
The entry's mime-type: "Le Type MIME de l'article"
One rule or another: "Une règle ou l'autre"
The estimated entry's reading time, in minutes: "Le temps de lecture estimé de l'article, en minutes"
One rule and another: "Une règle et l'autre"
The domain name of the entry: "Le nom de domaine de l'article"
"Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches \"football\"</code>": "Teste si un <i>sujet</i> correspond à une <i>recherche</i> (non sensible à la casse).<br />Exemple : <code>title matches \"football\"</code>"
Rule: "Règle"
FAQ: "FAQ"
entry:
page_titles:
unread: 'Articles non lus'
starred: 'Articles favoris'
archived: 'Articles lus'
filtered: 'Articles filtrés'
list:
number_on_the_page: "{0} Il n'y a pas d'articles.|{1} Il y a un article.|]1,Inf[ Il y a %count% articles."
reading_time: 'durée de lecture'
reading_time_minutes: 'durée de lecture: %readingTime% min'
reading_time_less_one_minute: 'durée de lecture: <small class="inferieur">&lt;</small> 1 min'
original_article: 'original'
toogle_as_read: 'Marquer comme lu/non lu'
toogle_as_star: 'Marquer comme favori'
delete: 'Supprimer'
export_title: 'Exporter'
filters:
title: 'Filtres'
status_label: 'Status'
archived_label: 'Lus'
starred_label: 'Favoris'
preview_picture_label: 'A une photo'
preview_picture_help: 'Photo'
language_label: 'Langue'
reading_time:
label: 'Durée de lecture en minutes'
from: 'de'
to: 'à'
domain_label: 'Nom de domaine'
created_at:
label: 'Date de création'
from: 'de'
to: 'à'
action:
clear: 'Effacer'
filter: 'Filtrer'
view:
left_menu:
back_to_top: 'Revenir en haut'
back_to_homepage: 'Retour'
set_as_read: 'Marquer comme lu'
set_as_unread: 'Marquer comme non lu'
set_as_favorite: 'Mettre en favori'
view_original_article: 'Article original'
re_fetch_content: 'Recharger le contenu'
delete: 'Supprimer'
add_a_tag: 'Ajouter un tag'
share_content: 'Partager'
share_email_label: 'Email'
download: 'Télécharger'
print: 'Imprimer'
problem:
label: 'Un problème ?'
description: "Est-ce que cet article s'affiche mal ?"
edit_title: 'Modifier le titre'
original_article: 'original'
annotations_on_the_entry: '{0} Aucune annotation|{1} Une annotation|]1,Inf[ %nbAnnotations% annotations'
new:
page_title: 'Sauvegarder un nouvel article'
placeholder: 'http://website.com'
form_new:
url_label: Url
edit:
page_title: 'Éditer un article'
title_label: 'Titre'
url_label: 'Url'
is_public_label: 'Public'
save_label: 'Enregistrer'
# Entries
"estimated reading time: %readingTime% min": "durée de lecture : %readingTime% min"
"estimated reading time: %inferior% 1 min": "durée de lecture : %inferior% 1 min"
original: "original"
Toggle mark as read: 'Marquer comme lu/non lu'
Toggle favorite: 'Marquer comme favori'
Delete: 'Supprimer'
"{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.": "{0} Il n'y a pas d'articles.|{1} Il y a un article.|]1,Inf[ Il y a %count% articles."
http://website: "http://siteweb"
"{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations": "{0} Aucune annotation|{1} Une annotation|]1,Inf[ %nbAnnotations% annotations"
about:
page_title: 'À propos'
top_menu:
who_behind_wallabag: "L'équipe derrière wallabag"
getting_help: "Besoin d'aide"
helping: 'Aider wallabag'
contributors: 'Contributeurs'
third_party: 'Librairies tierces'
who_behind_wallabag:
developped_by: 'Développé par'
website: 'Site web'
many_contributors: 'Et plein de contributeurs ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">sur Github</a>'
project_website: 'Site web du projet'
license: 'Licence'
version: 'Version'
getting_help:
documentation: 'Documentation'
bug_reports: 'Rapport de bugs'
support: '<a href="https://support.wallabag.org">Sur notre site de support</a> ou <a href="https://github.com/wallabag/wallabag/issues">sur GitHub</a>'
helping:
description: 'wallabag est gratuit et opensource. Vous pouvez nous aider :'
by_contributing: 'en contribuant au projet :'
by_contributing_2: 'un ticket recense tous nos besoins'
by_paypal: 'via Paypal'
contributors:
description: "Merci aux contributeurs de l'application web de wallabag"
third_party:
description: 'Voici la liste des dépendances utilisées dans wallabag (et leur license) :'
package: 'Dépendance'
license: 'Licence'
# Edit entry
Edit an entry: "Éditer un article"
Title: "Titre"
Is public: "Public"
howto:
page_title: 'Aide'
page_description: "Il y a plusieurs façon d'enregistrer un article :"
top_menu:
browser_addons: 'Extensions de navigateur'
mobile_apps: 'Applications smartphone'
bookmarklet: 'Bookmarklet'
form:
description: 'Grâce à ce formulaire'
browser_addons:
firefox: 'Extension Firefox'
chrome: 'Extension Chrome'
mobile_apps:
android:
via_f_droid: 'via F-Droid'
via_google_play: 'via Google Play'
ios: 'sur iTunes Store'
windows: 'sur Microsoft Store'
bookmarklet:
description: 'Glissez et déposez ce lien dans votre barre de favoris :'
# tag
Tags: Tags
"{0} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.": "{0} Il n'y a pas de tag.|{1} Il y a un tag.|]1,Inf[ Il y a %count% tags."
quickstart:
page_title: 'Pour bien débuter'
intro:
title: 'Bienvenue sur wallabag !'
paragraph_1: "Nous allons vous accompagner pour vous faire faire le tour de la maison et vous présenter quelques fonctionnalités qui pourraient vous intéresser pour vous approprier cet outil."
paragraph_2: 'Suivez-nous !'
configure:
title: "Configurez l'application"
language: "Changez la langue et le design de l'application"
rss: 'Activez les flux RSS'
tagging_rules: 'Écrivez des règles pour classer automatiquement vos articles'
admin:
title: 'Administration'
description: "En tant qu'adminitrasteur sur wallabag, vous avez des privilèges qui vous permette de :"
new_user: 'Créer un nouvel utilisateur'
analytics: 'Configurer les statistiques'
sharing: 'Activer des paramètres de partages'
export: 'Configurer les export'
import: 'Configurer les import'
first_steps:
title: 'Premiers pas'
new_article: 'Ajoutez votre premier article'
unread_articles: 'Et rangez-le !'
migrate:
title: 'Migrer depuis un service existant'
description: "Vous êtes un ancien utilisateur d'un service existant ? Nous allons vous aider à récupérer vos données sur wallabag."
pocket: 'Migrer depuis Pocket'
wallabag_v1: 'Migrer depuis wallabag v1'
wallabag_v2: 'Migrer depuis wallabag v2'
developer:
title: 'Pour les développeurs'
create_application: 'Créer votre application tierce'
docs:
title: 'Documentation complète'
annotate: 'Annotater votre article'
export: 'Convertissez vos articles en ePub ou en PDF'
search_filters: "Apprenez à utiliser le moteur de recherche et les filtres pour retrouver l'article qui vous intéresse"
fetching_errors: "Que faire si mon article n'est pas correctement récupéré ?"
all_docs: "Et encore plein d'autres choses !"
support:
title: 'Support'
description: 'Parce que vous avez peut-être besoin de nous poser une question, nous sommes disponibles pour vous.'
github: 'Sur GitHub'
email: 'Par e-mail'
gitter: 'Sur Gitter'
# Filters
Filters: 'Filtres'
Status: 'Statut'
Archived: 'Lu'
Starred: 'Favori'
Preview picture: 'Photo'
Has a preview picture: 'A une photo'
Reading time in minutes: 'Durée de lecture en minutes'
from: 'de'
to: 'à'
website.com: 'website.com'
Domain name: 'Nom de domaine'
Creation date: 'Date de création'
dd/mm/yyyy: 'jj/mm/aaaa'
Clear: 'Effacer'
Filter: 'Filtrer'
website.com: "siteweb.com"
tag:
page_title: 'Tags'
list:
number_on_the_page: "{0} Il n'y a pas de tag.|{1} Il y a un tag.|]1,Inf[ Il y a %count% tags."
# About
About: "À propos"
Who is behind wallabag: "L'équipe derrière wallabag"
Getting help: "Besoin d'aide"
Helping wallabag: "Aider wallabag"
Developed by: "Développé par"
website: "Site web"
And many others contributors ♥: "Et plein de contributeurs ♥"
on GitHub: "sur GitHub"
Project website: "Site web du projet"
License: "Licence"
Version: "Version"
Documentation: "Documentation"
Bug reports: "Rapport de bugs"
On our support website: "Sur notre site de support"
or: "ou"
"wallabag is free and opensource. You can help us:": "wallabag est gratuit et opensource. Vous pouvez nous aider :"
"by contributing to the project:": "en contribuant au projet :"
an issue lists all our needs: "un ticket recense tous nos besoins"
via Paypal: "via Paypal"
Take wallabag with you: "Emportez wallabag avec vous"
Social: "Social"
powered by: "propulsé par"
Contributors: "Contributeurs"
Thank you to contributors on wallabag web application: "Merci aux contributeurs de l'application web de wallabag"
Third-party libraries: Librairies tierces
"Here are the list of third-party libraries used in wallabag (with their licenses):": "Voici la liste des dépendances utilisées dans wallabag (et leur license) :"
Package: Dépendance
License: Licence
import:
page_title: 'Importer'
page_description: "Bienvenue dans l'outil de migration de wallabag. Choisissez ci-dessous le service depuis lequel vous souhaitez migrer."
action:
import_contents: 'Importer les contenus'
form:
mark_as_read_title: 'Marquer tout comme lu ?'
mark_as_read_label: 'Marquer tous les contenus importés comme lus'
file_label: 'Fichier'
save_label: 'Importer le fichier'
pocket:
page_title: 'Importer > Pocket'
description: "Cet outil va importer toutes vos données de Pocket. Pocket ne nous autorise pas à récupérer le contenu depuis leur service, donc wallabag doit reparcourir chaque article pour récupérer son contenu."
config_missing:
description: "L'import à partir de Pocket n'est pas configuré."
admin_message: "Vous devez définir %keyurls%une clé pour l'API Pocket%keyurle%."
user_message: "L'administrateur de votre serveur doit définir une clé pour l'API Pocket."
authorize_message: "Vous pouvez importer vos données depuis votre compte Pocket. Vous n'avez qu'à cliquer sur le bouton ci-dessous et à autoriser wallabag à se connecter à getpocket.com."
connect_to_pocket: 'Se connecter à Pocket et importer les données'
wallabag_v1:
page_title: 'Importer > Wallabag v1'
description: 'Cet outil va importer toutes vos données de wallabag v1. Sur votre page de configuration de wallabag v1, cliquez sur "Export JSON" dans la section "Exporter vos données de wallabag". Vous allez récupérer un fichier "wallabag-export-1-xxxx-xx-xx.json".'
how_to: "Choisissez le fichier de votre export wallabag v1 et cliquez sur le bouton ci-dessous pour l'importer."
wallabag_v2:
page_title: 'Importer > Wallabag v2'
description: "Cet outil va importer tous vos articles d'une autre instance de wallabag v2. Allez dans tous vos articles, puis, sur la barre latérale, cliquez sur \"JSON\". Vous allez récupérer un fichier \"All articles.json\""
# Howto
Form: "Formulaire"
Thanks to this form: "Grâce à ce formulaire"
Browser addons: "Extensions de navigateur"
Mobile apps: "Applications smartphone"
Bookmarklet: "Bookmarklet"
Standard Firefox Add-On: "Extension Firefox"
Chrome Extension: "Extension Chrome"
download the application: "téléchargez l'application"
"Drag &amp; drop this link to your bookmarks bar:": "Glissez et déposez ce lien dans votre barre de favoris :"
developer:
page_title: 'Développeur'
welcome_message: "Bienvenue sur l'API de wallabag"
documentation: 'Documentation'
how_to_first_app: 'Comment créer votre première application'
full_documentation: "Voir la documentation complète de l'API"
list_methods: "Lister toutes les méthodes de l'API"
clients:
title: 'Clients'
create_new: 'Créer une nouveau client'
existing_clients:
title: 'Les clients existants'
field_id: 'ID Client'
field_secret: 'Clé secrète'
field_uris: 'URLs de redirection'
field_grant_types: 'Type de privilège accordé'
no_client: 'Aucun client pour le moment'
remove:
warn_message_1: 'Vous avez la possibilité de supprimer un client. Cette action est IRREVERSIBLE !'
warn_message_2: "Si vous supprimez un client, toutes les applications qui l'utilisaient ne fonctionneront plus avec votre compte wallabag."
action: 'Supprimer ce client'
client:
page_title: 'Développeur > Nouveau client'
page_description: "Vous allez créer un nouveau client. Merci de remplir l'url de redirection vers votre application."
form:
redirect_uris_label: 'URLs de redirection'
save_label: 'Créer un nouveau client'
action_back: 'Retour'
client_parameter:
page_title: 'Développeur > Les paramètres de votre client'
page_description: 'Voilà les paramètres de votre client'
field_id: 'ID Client'
field_secret: 'Clé secrète'
back: 'Retour'
read_howto: 'Lire "comment créer ma première application"'
howto:
page_title: 'Développeur > Comment créer votre première application'
description:
paragraph_1: "Les commandes suivantes utilisent la <a href=\"https://github.com/jkbrzt/httpie\">librarie HTTPie</a>. Assurez-vous qu'elle soit installée avant de l'utiliser."
paragraph_2: "Vous avez besoin d'un token pour échanger entre votre application et l'API de wallabag."
paragraph_3: 'Pour créer un token, vous devez <a href="%link%">créer un nouveau client</a>.'
paragraph_4: 'Maintenant créez votre token (remplacer client_id, client_secret, username et password avec les bonnes valeurs):'
paragraph_5: "L'API vous retournera une réponse comme ça :"
paragraph_6: "L'access_token doit être utilisé pour faire un appel à l'API. Par exemple :"
paragraph_7: "Cet appel va retourner tous les articles de l'utilisateur."
paragraph_8: "Si vous voulez toutes les méthodes de l'API, jetez un oeil <a href=\"%link%\">à la documentation de l'API</a>."
back: 'Retour'
# Flash messages
Information updated: "Vos informations personnelles ont bien été mises à jour"
"Config saved. Some parameters will be considered after disconnection.": "Les paramètres ont bien été mis à jour. Certains seront pris en compte après déconnexion."
RSS information updated: "La configuration des flux RSS a bien été mise à jour"
Password updated: "Votre mot de passe a bien été mis à jour"
Entry starred: "Article ajouté dans les favoris"
Entry unstarred: "Article retiré des favoris"
Entry archived: "Article marqué comme lu"
Entry unarchived: "Article marqué comme non lu"
Entry deleted: "Article supprimé"
Tagging rule deleted: "Règle supprimée"
Tagging rules updated: "Règles mises à jour"
User "%username%" added: 'Utilisateur "%username%" ajouté'
In demonstration mode, you can't change password for this user.: 'En démo, vous ne pouvez pas changer le mot de passe de cet utilisateur.'
validator:
password_must_match: 'Les deux mots de passe doivent être les mêmes'
password_too_short: 'Le mot de passe doit contenir au moins 8 caractères'
password_wrong_value: 'Votre mot de passe actuel est faux'
item_per_page_too_high: "Ca ne va pas plaire à l'application"
rss_limit_too_hight: "Ca ne va pas plaire à l'application"
# Entry
Mark as read: 'Marquer comme lu'
Favorite: 'Mettre en favori'
back: 'Retour'
original article: 'Article original'
Add a tag: 'Ajouter un tag'
Share: 'Partager'
Download: 'Télécharger'
Does this article appear wrong?: "Est-ce que cet article s'affiche mal ?"
Problems?: 'Un problème ?'
Edit title: "Modifier le titre"
Re-fetch content: "Recharger le contenu"
Tag added: "Tag ajouté"
# Import
Welcome to wallabag importer. Please select your previous service that you want to migrate.: "Bienvenue dans l'outil de migration de wallabag. Choisissez ci-dessous le service depuis lequel vous souhaitez migrer."
"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.": "Cet outil va importer toutes vos données de Pocket. Pocket ne nous autorise pas à récupérer le contenu depuis leur service, donc wallabag doit reparcourir chaque article pour récupérer son contenu."
"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.": "Cet outil va importer toutes vos données de wallabag v1. Sur votre page de configuration de wallabag v1, cliquez sur \"Export JSON\" dans la section \"Exporter vos données de wallabag\". Vous allez récupérer un fichier \"wallabag-export-1-xxxx-xx-xx.json\"."
"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.": "Cet outil va importer tous vos articles d'une autre instance de wallabag v2. Allez dans tous vos articles, puis, sur la barre latérale, cliquez sur \"JSON\". Vous allez récupérer un fichier \"All articles.json\""
"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.": "Vous pouvez importer vos données depuis votre compte Pocket. Vous n'avez qu'à cliquer sur le bouton ci-dessous et à autoriser wallabag à se connecter à getpocket.com."
Import > Pocket: "Import > Pocket"
Pocket import isn't configured.: "L'import à partir de Pocket n'est pas configuré."
You need to define %keyurls% a pocket_consumer_key %keyurle%.: "Vous devez définir %keyurls% une clé pour l'API Pocket %keyurle%."
Your server admin needs to define an API Key for Pocket.: L'administrateur de votre serveur doit définir une clé pour l'API Pocket."
Connect to Pocket and import data: "Se connecter à Pocket et importer les données"
Please select your wallabag export and click on the below button to upload and import it.: "Choisissez le fichier de votre export wallabag v1 et cliquez sur le bouton ci-dessous pour l'importer."
File: "Fichier"
Upload file: "Importer le fichier"
Import contents: "Importer les contenus"
Import: "Importer"
Import > Wallabag v1: "Importer > Wallabag v1"
Import > Wallabag v2: "Importer > Wallabag v2"
Mark all as read ?: "Marquer tout comme lu ?"
Mark all imported entries as read: "Marquer tous les contenus importés comme lus"
# Quickstart
Quickstart: Pour bien débuter
Welcome to wallabag!: "Bienvenue sur wallabag !"
We'll accompany you to visit wallabag and show you some features which can interess you.: "Nous allons vous accompagner pour vous faire faire le tour de la maison et vous présenter quelques fonctionnalités qui pourraient vous intéresser pour vous approprier cet outil."
Follow us!: "Suivez-nous !"
Configure the application: "Configurez l'application"
Change language and design: "Changez la langue et le design de l'application"
Enable RSS feeds: "Activez les flux RSS"
First steps: "Premiers pas"
Save your first article: "Ajoutez votre premier article"
And classify it!: "Et rangez-le !"
Migrate from an existing service: "Migrer depuis un service existant"
You're using an other service? We'll help you to retrieve your data on wallabag.: "Vous êtes un ancien utilisateur d'un service existant ? Nous allons vous aider à récupérer vos données sur wallabag."
Migrate from Pocket: "Migrer depuis Pocket"
Migrate from wallabag v1: "Migrer depuis wallabag v1"
Full documentation: "Documentation complète"
Convert your articles into ePUB or PDF: "Convertissez vos articles en ePub ou en PDF"
See how you can look for an article by using search engine and filters: "Apprenez à utiliser le moteur de recherche et les filtres pour retrouver l'article qui vous intéresse"
And so many other articles!: "Et encore plein d'autres choses !"
Support: "Support"
If you need some help, we are here for you.: "Parce que vous avez peut-être besoin de nous poser une question, nous sommes disponibles pour vous."
On GitHub: "Sur GitHub"
By email: "Par email"
On Gitter: "Sur Gitter"
# developer
Developer: Développeur
Welcome to the wallabag API: "Bienvenue sur l'API de wallabag"
How to create my first application: "Comment créer votre première application"
View full API documentation: "Voir la documentation complète de l'API"
Clients: "Clients"
Create a new client: "Créer une nouveau client"
Existing clients: "Les clients existants"
Client ID: "ID Client"
Client secret: "Clé secrète"
Redirect URIs: "URLs de redirection"
Grant type allowed: "Type de privilège accordé"
You have the ability to remove this client. This action is IRREVERSIBLE !: "Vous avez la possibilité de supprimer un client. Cette action est IRREVERSIBLE !"
If you remove it, every app configured with that client won't be able to auth on your wallabag.: "Si vous supprimez un client, toutes les applications qui l'utilisaient ne fonctionneront plus avec votre compte wallabag."
Remove this client: "Supprimer ce client"
New client: "Nouveau client"
You are about to create a new client. Please fill the field below for the redirect URI of your application.: "Vous allez créer un nouveau client. Merci de remplir l'url de redirection vers votre application."
Back: "Retour"
Client parameters: "Les paramètres de votre client"
New client created.: "Nouveau client créé."
Here are your client parameters.: "Voilà les paramètres de votre client"
Read the howto "Create my first application": "Lire \"comment créer ma première application\""
Client deleted: "Client supprimé"
No client yet.: "Aucun client pour le moment"
"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.": "Les commandes suivantes utilisent la <a href=\"https://github.com/jkbrzt/httpie\">librarie HTTPie</a>. Assurez-vous qu'elle soit installée avant de l'utiliser."
You need a token to communicate between your 3rd application and wallabag API.: "Vous avez besoin d'un token pour échanger entre votre application et l'API de wallabag."
"To create this token, you need <a href=\"%link%\">to create a new client</a>.": "Pour créer un token, vous devez <a href=\"%link%\">créer un nouveau client</a>."
Now, create your token (replace client_id, client_secret, username and password with the good values):: "Maintenant créez votre token (remplacer client_id, client_secret, username et password avec les bonnes valeurs):"
The API will return a response like this:: "L'API vous retournera une réponse comme ça:"
The access_token is useful to do a call to the API endpoint. For example:: "L'access_token doit être utilisé pour faire un appel à l'API. Par exemple :"
This call will return all the entries for your user.: "Cet appel va retourner tous les articles de l'utilisateur."
"If you want to see all the API endpoints, you can have a look <a href=\"%link%\">to our API documentation</a>.": "Si vous voulez toutes les méthodes de l'API, jetez un oeil <a href=\"%link%\">à la documentation de l'API</a>."
flashes:
config:
notice:
config_saved: 'Les paramètres ont bien été mis à jour. Certains seront pris en compte après déconnexion.'
password_updated: 'Votre mot de passe a bien été mis à jour'
password_not_updated_demo: "En démo, vous ne pouvez pas changer le mot de passe de cet utilisateur."
user_updated: 'Vos informations personnelles ont bien été mises à jour'
rss_updated: 'La configuration des flux RSS a bien été mise à jour'
tagging_rules_updated: 'Règles mises à jour'
tagging_rules_deleted: 'Règle supprimée'
user_added: 'Utilisateur "%username%" ajouté'
rss_token_updated: 'Jeton RSS mis à jour'
entry:
notice:
entry_already_saved: 'Article déjà sauvergardé le %date%'
entry_saved: 'Article enregistré'
entry_updated: 'Article mis à jour'
entry_reloaded: 'Article rechargé'
entry_reload_failed: "Le rechargement de l'article a échoué"
entry_archived: 'Article marqué comme lu'
entry_unarchived: 'Article marqué comme non lu'
entry_starred: 'Article ajouté dans les favoris'
entry_unstarred: 'Article retiré des favoris'
entry_deleted: 'Article supprimé'
tag:
notice:
tag_added: 'Tag ajouté'
import:
notice:
failed: "L'import a échoué, veuillez ré-essayer"
failed_on_file: "Erreur lors du traitement de l'import. Vérifier votre fichier."
summary: "Rapport d'import: %imported% importés, %skipped% déjà présent."
developer:
notice:
client_created: 'Nouveau client créé'
client_deleted: 'Client supprimé'

View File

@ -0,0 +1,425 @@
security:
login:
page_title: 'Benvenguda sus wallabag !'
keep_logged_in: 'Demorar connectat'
forgot_password: 'Senhal doblidat ?'
submit: 'Se connectar'
register: 'Crear un compte'
username: "Nom d'utilizaire"
password: 'Senhal'
cancel: 'Anullar'
resetting:
description: "Picatz vòstra adreça de corrièl çai-jos, vos mandarem las instruccions per reïnicializar vòstre senhal."
register:
page_title: 'Se crear un compte'
go_to_account: 'Anar sus vòstre compte'
menu:
left:
unread: 'Pas legits'
starred: 'Favorits'
archive: 'Legits'
all_articles: 'Tots los articles'
config: 'Configuracion'
tags: 'Etiquetas'
internal_settings: 'Configuracion interna'
import: 'Importar'
howto: 'Ajuda'
developer: 'Desvolopador'
logout: 'Déconnexion'
about: 'A prepaus'
search: 'Cercar'
save_link: 'Enregistrar un novèl article'
back_to_unread: 'Tornar als articles pas legits'
top:
add_new_entry: 'Enregistrar un novèl article'
search: 'Cercar'
filter_entries: 'Filtrar los articles'
export: 'Exportar'
search_form:
input_label: 'Picatz vòstre mot-clau a cercar aquí'
footer:
wallabag:
elsewhere: 'Emportatz wallabag amb vosaultres'
social: 'Social'
powered_by: 'propulsat per'
about: 'A prepaus'
page_title: 'Configuracion'
config:
tab_menu:
settings: 'Paramètres'
rss: 'RSS'
user_info: 'Mon compte'
password: 'Senhal'
rules: "Règlas d'etiquetas automaticas"
new_user: 'Crear un compte'
form:
save: 'Enregistrar'
form_settings:
theme_label: 'Tèma'
items_per_page_label: "Nombre d'articles per pagina"
language_label: 'Lenga'
reading_speed:
label: 'Velocitat de lectura'
help_message: 'Podètz utilizar una aisina en linha per estimar vòstra velocitat de lectura :'
100_word: "Legissi a l'entorn de 100 mots per minuta"
200_word: "Legissi a l'entorn de 200 mots per minuta"
300_word: "Legissi a l'entorn de 300 mots per minuta"
400_word: "Legissi a l'entorn de 400 mots per minuta"
form_rss:
description: "Los fluxes RSS fornits per wallabag vos permeton de legir vòstres articles salvagardats dins vòstre lector de fluxes preferit. Per los poder emplegar, vos cal, d'en primièr crear un geton."
token_label: 'Geton RSS'
no_token: 'Aucun jeton généré'
token_create: 'Pas cap de geton generat'
token_reset: 'Reïnicializatz vòstre geton'
rss_links: 'URL de vòstres fluxes RSS'
rss_link:
unread: 'pas legits'
starred: 'favorits'
archive: 'legits'
rss_limit: "Nombre d'articles dins un flux RSS"
form_user:
two_factor_description: "Activar l'autentificacion doble-factor vòl dire que recebretz un còdi per corrièl per cada novèla connexion pas aprovada."
name_label: 'Nom'
email_label: 'Adreça de corrièl'
twoFactorAuthentication_label: 'Dobla autentificacion'
form_password:
old_password_label: 'Senhal actual'
new_password_label: 'Senhal novèl'
repeat_new_password_label: 'Confirmatz vòstre novèl senhal'
form_rules:
if_label: 'se'
then_tag_as_label: 'alara atribuir las etiquetas'
delete_rule_label: 'suprimir'
rule_label: 'Règla'
tags_label: 'Etiquetas'
faq:
title: 'FAQ'
tagging_rules_definition_title: "Qué significa las règlas d'etiquetas automaticas ?"
tagging_rules_definition_description: "Son de règlas utilizadas per wallabad per classar automaticament vòstres novèls articles.<br />Cada còp qu'un novèl article es apondut, totas las règlas d'etiquetas automaticas seràn utilizadas per ajustar d'etiquetas qu'avètz configuradas, en vos esparnhant l'esfòrç de classificar vòstres articles manualament."
how_to_use_them_title: 'Cossí las utilizar ?'
how_to_use_them_description: "Imaginem que volètz atribuir als novèls article l'etiqueta « <i>lectura corta</i> » quand lo temps per legir es inferior a 3 minutas.<br />Dins aquel cas, deuriatz metre « readingTime &lt;= 3 » dins lo camp <i>Règla</i> e « <i>lectura corta</i> » dins lo camp <i>Etiqueta</i>.<br />Mai d'una etiquetas pòdon èsser apondudas simultanèament ne las separant amb de virgulas : « <i>lectura corta, per ligir</i> »<br />De règlas complèxas pòdon èsser creadas en emplegant d'operators predefinits : se « <i>readingTime &gt;= 5 AND domainName = \"github.com\"</i> » alara atribuir las etiquetas « <i>lectura longa, github </i> »"
variables_available_title: 'Quinas variablas e operators pòdi utilizar per escriure de règlas ?'
variables_available_description: "Las variablas e operators seguents pòdon èsser utilizats per escriure de règlas d'etiquetas automaticas :"
meaning: 'Significacion'
variable_description:
label: 'Variabla'
title: "Títol de l'article"
url: "URL de l'article"
isArchived: "Se l'article es archivat o pas"
isStarred: "Se l'article es favorit o pas"
content: "Lo contengut de l'article"
language: "La lenga de l'article"
mimetype: "Lo tipe MIME de l'article"
readingTime: "Lo temps de lectura estimat de l'article, en minutas"
domainName: "Lo nom de domeni de l'article"
operator_description:
label: 'Operator'
less_than: 'Mens que…...'
strictly_less_than: 'Estrictament mens que…'
greater_than: 'Mai que…'
strictly_greater_than: 'Estrictament mai que…'
equal_to: 'Egal a…'
not_equal_to: 'Diferent de…'
or: "Una règla O l'autra"
and: "Una règla E l'autra"
matches: 'Teste se un <i>subjècte</i> correspond a una <i>recerca</i> (non sensibla a la cassa).<br />Exemple : <code>title matches \"football\"</code>'
form_new_user:
username_label: "Nom d'utilizaire"
password_label: 'Senhal'
repeat_new_password_label: 'Confirmatz vòstre novèl senhal'
plain_password_label: 'Senhal en clar'
email_label: 'Adreça de corrièl'
entry:
page_titles:
unread: 'Articles pas legits'
starred: 'Articles favorits'
archived: 'Articles legits'
filtered: 'Articles filtrats'
list:
number_on_the_page: "{0} I a pas cap d'article.|{1} I a un article.|]1,Inf[ I a %count% articles."
reading_time: 'durada de lectura'
reading_time_minutes: 'durada de lectura : %readingTime% min'
reading_time_less_one_minute: 'durada de lectura : <small class="inferieur">&lt;</small> 1 min'
original_article: 'original'
toogle_as_read: 'Marcar coma legit/pas legit'
toogle_as_star: 'Marcar coma favorit'
delete: 'Suprimir'
export_title: 'Exportar'
filters:
title: 'Filtres'
status_label: 'Estatus'
archived_label: 'Legits'
starred_label: 'Favorits'
preview_picture_label: 'A una fotò'
preview_picture_help: 'Fotò'
language_label: 'Lenga'
reading_time:
label: 'Durada de lectura en minutas'
from: 'de'
to: 'per'
domain_label: 'Nom de domeni'
created_at:
label: 'Data de creacion'
from: 'de'
to: 'per'
action:
clear: 'Escafar'
filter: 'Filtrar'
view:
left_menu:
back_to_top: 'Tornar en naut'
back_to_homepage: 'Tornar'
set_as_read: 'Marcar coma legit'
set_as_unread: 'Marcar coma pas legit'
set_as_favorite: 'Metre en favori'
view_original_article: 'Article original'
re_fetch_content: 'Tornar cargar lo contengut'
delete: 'Suprimir'
add_a_tag: 'Ajustar una etiqueta'
share_content: 'Partatjar'
share_email_label: 'Corrièl'
download: 'Telecargar'
print: 'Imprimir'
problem:
label: 'Un problèma ?'
description: "Marca mal la presentacion d'aqueste article ?"
edit_title: 'Modificar lo títol'
original_article: 'original'
annotations_on_the_entry: "{0} Pas cap d'anotacion|{1} Una anotacion|]1,Inf[ %nbAnnotations% anotacions"
new:
page_title: 'Enregistrar un novèl article'
placeholder: 'http://website.com'
form_new:
url_label: Url
edit:
page_title: 'Modificar un article'
title_label: 'Títol'
url_label: 'Url'
is_public_label: 'Public'
save_label: 'Enregistrar'
about:
page_title: 'A prepaus'
top_menu:
who_behind_wallabag: "L'equipa darrèr wallabag"
getting_help: "Besonh d'ajuda"
helping: 'Ajudar wallabag'
contributors: 'Contributors'
third_party: 'Bibliotècas tèrças'
who_behind_wallabag:
developped_by: 'Desvolopat per'
website: 'Site web'
many_contributors: 'E un fum de contributors ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">sur Github</a>'
project_website: 'Site web del projète'
license: 'Licéncia'
version: 'Version'
getting_help:
documentation: 'Documentacion'
bug_reports: 'Rapòrt de bugs'
support: "<a href=\"https://support.wallabag.org\">Sus nòstre site d'assisténcia</a> ou <a href=\"https://github.com/wallabag/wallabag/issues\">sur GitHub</a>"
helping:
description: 'wallabag es a gratuit e opensource. Nos podètz ajudar :'
by_contributing: 'en ajudant lo projècte :'
by_contributing_2: 'un bilhet recensa totes nòstres besonhs'
by_paypal: 'via Paypal'
contributors:
description: "Mercés als contributors de l'aplicacion web de wallabag"
third_party:
description: 'Aquí la lista de las dependéncias utilizadas dins wallabag (e lor licéncia) :'
package: 'Dependéncia'
license: 'Licéncia'
howto:
page_title: 'Ajuda'
page_description: "I a mai d'un biai d'enregistrar un article :"
top_menu:
browser_addons: 'Extensions de navigator'
mobile_apps: 'Aplicacions mobil'
bookmarklet: 'Bookmarklet'
form:
description: 'Gràcias a aqueste formulari'
browser_addons:
firefox: 'Extension Firefox'
chrome: 'Extension Chrome'
mobile_apps:
android:
via_f_droid: 'via F-Droid'
via_google_play: 'via Google Play'
ios: 'sus iTunes Store'
windows: 'sus Microsoft Store'
bookmarklet:
description: 'Lisatz-depausatz aqueste ligam dins vòstra barra de favorits :'
quickstart:
page_title: 'Per ben començar'
intro:
title: 'Benvenguda sus wallabag !'
paragraph_1: "Anem vos guidar per far lo torn de la proprietat e vos presentar unas fonccionalitats que vos poirián interessar per vos apropriar aquesta aisina."
paragraph_2: 'Seguètz-nos '
configure:
title: "Configuratz l'aplicacio"
language: "Cambiatz la lenga e l'estil de l'aplicacion"
rss: 'Activatz los fluxes RSS'
tagging_rules: 'Escrivètz de règlas per classar automaticament vòstres articles'
admin:
title: 'Administracion'
description: "En qualitat d'adminitrastor sus wallabag, avètz de privilègis que vos permeton de :"
new_user: 'Crear un novèl utilizaire'
analytics: 'Configurar las estadisticas'
sharing: 'Activar de paramètres de partatge'
export: 'Configurar los expòrt'
import: 'Configurar los impòrt'
first_steps:
title: 'Primièrs passes'
new_article: 'Ajustatz vòstre primièr article'
unread_articles: 'E racaptatz-lo !'
migrate:
title: 'Migrar dempuèi un servici existent'
description: "Sètz un ancian utilizaire d'un servici existent ? Vos ajudarem a trapar vòstras donadas sus wallabag."
pocket: 'Migrar dempuèi Pocket'
wallabag_v1: 'Migrar dempuèi wallabag v1'
wallabag_v2: 'Migrar dempuèi wallabag v2'
developer:
title: 'Pels desvolopadors'
create_application: 'Crear vòstra aplicacion tèrça'
docs:
title: 'Documentacion complèta'
annotate: 'Anotatar vòstre article'
export: 'Convertissètz vòstres articles en ePub o en PDF'
search_filters: "Aprenètz a utilizar lo motor de recèrca e los filtres per retrobar l'article que vos interèssa"
fetching_errors: "Qué far se mon article es pas recuperat coma cal ?"
all_docs: "E encara plen de causas mai !"
support:
title: 'Assisténcia'
description: 'Perque avètz benlèu besonh de nos pausar una question, sèm disponibles per vosautres.'
github: 'Sus GitHub'
email: 'Per e-mail'
gitter: 'Sus Gitter'
tag:
page_title: 'Etiquetas'
list:
number_on_the_page: "{0} I a pas cap d'etiquetas.|{1} I a una etiqueta.|]1,Inf[ I a %count% etiquetas."
import:
page_title: 'Importar'
page_description: "Benvenguda sus l'aisina de migracion de wallabag. Causissètz çai-jos lo servici dempuèi lo qual volètz migrar."
action:
import_contents: 'Importar los contenguts'
form:
mark_as_read_title: 'Tot marcar coma legit ?'
mark_as_read_label: 'Marcar tot los contenguts importats coma legits'
file_label: 'Fichièr'
save_label: 'Importar lo fichièr'
pocket:
page_title: 'Importer > Pocket'
description: "Aquesta aisina importarà totas vòstras donadas de Pocket. Pocket nos permet pas de recuperar lo contengut dempuèi lor servidor, alara wallabag deu tornar fulhetar cada article per recuperar son contengut."
config_missing:
description: "L'importacion dempuèi Pocket es pas configurada."
admin_message: "Vos cal definir %keyurls% una clau per l'API Pocket %keyurle%."
user_message: "L'administrator de vòstre servidor deu definir una clau per l'API Pocket."
authorize_message: "Podètz importar vòstras donadas dempuèi vòstre compte Pocket. Vos cal pas que clicar sul boton çai-jos e autorizar wallabag a se connectar a getpocket.com."
connect_to_pocket: 'Se connectar a Pocket e importar las donadas'
wallabag_v1:
page_title: 'Importer > Wallabag v1'
description: 'Aquesta aisina importarà totas vòstras donadas de wallabag v1. Sus vòstre pagina de configuracion de wallabag v1, clicatz sus \"Export JSON\" dins la seccion \"Exportar vòstras donadas de wallabag\". Traparatz un fichièr \"wallabag-export-1-xxxx-xx-xx.json\".'
how_to: "Causissètz lo fichièr de vòstra exportacion wallabag v1 e clicatz sul boton çai-jos per l'importar."
wallabag_v2:
page_title: 'Importer > Wallabag v2'
description: "Aquesta aisina importarà totas vòstras donadas d'una instància mai de wallabag v2. Anatz dins totes vòstres articles, puèi, sus la barra laterala, clicatz sus \"JSON\". Traparatz un fichièr \"All articles.json\""
developer:
page_title: 'Desvolopador'
welcome_message: "Benvenguda sus l'API de wallabag"
documentation: 'Documentacion'
how_to_first_app: 'Cossí crear vòstra primièra aplicacion'
full_documentation: "Veire la documentacion completa de l'API"
# list_methods: 'List API methods'
clients:
title: 'Clients'
create_new: 'Crear un novèl client'
existing_clients:
title: 'Los clients existents'
field_id: 'ID Client'
field_secret: 'Clé secreta'
field_uris: 'URLs de redireccion'
field_grant_types: 'Tipe de privilègi acordat'
no_client: 'Pas cap de client pel moment'
remove:
warn_message_1: 'Avètz la possibilitat de supriimr un client. Aquesta accion es IRREVERSIBLA !'
warn_message_2: "Se suprimissètz un client, totas las aplicacions que l'emplegan foncionaràn pas mai amb vòstre compte wallabag."
action: 'Suprimir aqueste client'
client:
page_title: 'Desvlopador > Novèl client'
page_description: "Anatz crear un novèl client. Mercés de cumplir l'url de redireccion cap a vòstra aplicacion."
form:
redirect_uris_label: 'URLs de redireccion'
save_label: 'Crear un novèl client'
action_back: 'Retorn'
client_parameter:
page_title: 'Desvolopador > Los paramètres de vòstre client'
page_description: 'Vaquí los paramètres de vòstre client'
field_id: 'ID Client'
field_secret: 'Clau secreta'
back: 'Retour'
read_howto: 'Legir \"cossí crear ma primièra aplicacion\"'
howto:
page_title: 'Desvolopador > Cossí crear ma primièra aplicacion'
description:
paragraph_1: "Las comandas seguentas utilizan la <a href=\"https://github.com/jkbrzt/httpie\">libraria HTTPie</a>. Asseguratz-vos que siasqueòu installadas abans de l'utilizar."
paragraph_2: "Vos cal un geton per escambiar entre vòstra aplicacion e l'API de wallabar."
paragraph_3: 'Per crear un geton, vos cal crear <a href=\"%link%\">crear un novèl client</a>.'
paragraph_4: 'Ara creatz un geton (remplaçar client_id, client_secret, username e password amb las bonas valors) :'
paragraph_5: "L'API vos tornarà una responsa coma aquò :"
paragraph_6: "L'access_token deu èsser emplegat per far una requèsta a l'API. Per exemple :"
paragraph_7: "Aquesta requèsta tornarà totes los articles de l'utilizaire."
paragraph_8: "Se volètz totas las adreças d'accès de l'API, donatz un còp duèlh <a href=\"%link%\">a la documentacion de l'API</a>."
back: 'Retorn'
validator:
password_must_match: 'Cal que los dos senhals siasquen los meteisses'
password_too_short: 'Lo senhal deu aver almens 8 caractèrs'
password_wrong_value: 'Vòstre senhal actual es pas bon'
item_per_page_too_high: "Aquò li agradarà pas a l'aplicacion"
rss_limit_too_hight: "Aquò li agradarà pas a l'aplicacion"
flashes:
config:
notice:
config_saved: 'Los paramètres son ben estats meses a jorn. Certans seràn aplicats aprèp desconnexion.'
password_updated: 'Vòstre senhal es ben estat mes a jorn'
password_not_updated_demo: "En demostration, podètz pas cambiar lo senhal d'aqueste utilizaire."
user_updated: 'Vòstres informacions personnelas son ben estadas mesas a jorn'
rss_updated: 'La configuracion dels fluxes RSS es ben estada mesa a jorn'
tagging_rules_updated: 'Règlas misa a jorn'
tagging_rules_deleted: 'Règla suprimida'
user_added: 'Utilizaire "%username%" apondut'
rss_token_updated: 'Geton RSS mes a jorn'
entry:
notice:
entry_already_saved: 'Article ja salvargardat lo %date%'
entry_saved: 'Article enregistrat'
entry_updated: 'Article mes a jorn'
entry_reloaded: 'Article recargat'
entry_reload_failed: "Fracàs de l'actualizacion de l'article"
entry_archived: 'Article marcat coma legit'
entry_unarchived: 'Article marcat coma pas legit'
entry_starred: 'Article apondut dins los favorits'
entry_unstarred: 'Article quitat dels favorits'
entry_deleted: 'Article suprimit'
tag:
notice:
tag_added: 'Etiqueta aponduda'
import:
notice:
failed: "L'importacion a fracassat, mercés de tornar ensajar"
failed_on_file: "Errorr pendent du tractament de l'import. Mercés de verificar vòstre fichièr."
summary: "Rapòrt d'import: %imported% importats, %skipped% ja presents."
developer:
notice:
client_created: 'Novèl client creat'
client_deleted: 'Client suprimit'

View File

@ -1,129 +1,425 @@
#Login
Keep me logged in: 'Zapamiętaj mnie'
Forgot your password?: 'Zapomniałeś hasła'
Login: 'Loguj'
Back to login: 'Wróć do logowania'
Send: 'Wyślij'
"Enter your email address below and we'll send you password reset instructions.": 'Wpisz swój adres email poniżej. Wyślemy Ci instrukcję resetowania hasła'
security:
login:
page_title: 'Witaj w wallabag!'
keep_logged_in: 'Zapamiętaj mnie'
forgot_password: 'Zapomniałeś hasła'
submit: 'Loguj'
register: 'Zarejestruj'
username: 'Nazwa użytkownika'
password: 'Hasło'
cancel: 'Anuluj'
resetting:
description: "Wpisz swój adres email poniżej. Wyślemy Ci instrukcję resetowania hasła"
register:
page_title: 'Utwórz konto'
go_to_account: 'Idź do konta'
# Menu
unread: 'nieprzeczytane'
starred: 'oznaczone gwiazdką'
archive: 'archiwum'
all: 'wszystkie'
tags: 'tagi'
config: 'konfiguracja'
howto: 'howto'
logout: 'wyloguj'
Filtered: 'Filtrowane'
About: 'O nas'
menu:
left:
unread: 'Nieprzeczytane'
starred: 'Oznaczone gwiazdką'
archive: 'Archiwum'
all_articles: 'Wszystkie'
config: 'Konfiguracja'
tags: 'Tagi'
internal_settings: 'Wewnętrzne ustawienia'
import: 'Importuj'
howto: 'Howto'
developer: 'Deweloper'
logout: 'Wyloguj'
about: 'O nas'
search: 'Szukaj'
save_link: 'Zapisz link'
back_to_unread: 'Powrót do nieprzeczytanych artykułów'
top:
add_new_entry: 'Dodaj nowy wpis'
search: 'Szukaj'
filter_entries: 'Filtruj wpisy'
export: 'Eksportuj'
search_form:
input_label: 'Wpisz swoje zapytanie tutaj'
# Header
Back to unread articles: 'Powrót do nieprzeczytanych artykułów'
Add a new entry: 'Dodaj nowy wpis'
Search: 'Szukaj'
Filter entries: 'Filtruj wpisy'
Enter your search here: 'Wpisz swoje zapytanie tutaj:'
Save new entry: 'Zapisz nowy wpis'
footer:
wallabag:
elsewhere: 'Weż wallabag ze sobą'
social: 'Społeczność'
powered_by: 'Kontrolowany przez'
about: 'O nas'
# Config screen
Settings: 'Ustawienia'
User information: 'Informacje o użytkowniku'
Password: 'Hasło'
RSS: 'Kanał RSS'
Add a user: 'Dodaj użytkownika'
Theme: 'Temat'
Items per page: 'Ilość elementóœ na stronie'
Language: 'Język'
Save: 'Zapisz'
RSS token: 'Token RSS'
Name: 'Nazwa'
Email: 'Adres email'
No token: 'Brak tokena'
Reset your token: 'Zresetuj swojego tokena'
Create your token: 'Stwórz tokena'
Rss limit: 'Limit RSS'
RSS links: 'Link do RSS'
RSS feeds provided by wallabag allow you to read your saved articles with your favourite RSS reader. You need to generate a token first.': 'Kanały RSS prowadzone przez wallabag pozwalają Ci na czytanie twoich zapisanych artykułów w twoium ulubionym czytniku RSS. Musisz najpierw wynegenerować tokena.'
Old password: 'Stare hasło'
New password: 'Nowe hasło'
Repeat new password: 'Powtórz nowe hasło'
Username: 'Nazwa użytkownika'
config:
page_title: 'Konfiguracja'
tab_menu:
settings: 'Ustawienia'
rss: 'Kanał RSS'
user_info: 'Informacje o użytkowniku'
password: 'Hasło'
rules: 'Zasady tagowania'
new_user: 'Dodaj użytkownika'
form:
save: 'Zapisz'
form_settings:
theme_label: 'Temat'
items_per_page_label: 'Ilość elementóœ na stronie'
language_label: 'Język'
reading_speed:
label: 'Prędkość czytania'
help_message: 'Możesz skorzystać z narzędzi online do określenia twojej prędkości czytania:'
100_word: 'Czytam ~100 słów na minutę'
200_word: 'Czytam ~200 słów na minutę'
300_word: 'Czytam ~300 słów na minutę'
400_word: 'Czytam ~400 słów na minutę'
form_rss:
description: 'Kanały RSS prowadzone przez wallabag pozwalają Ci na czytanie twoich zapisanych artykułów w twoium ulubionym czytniku RSS. Musisz najpierw wynegenerować tokena.'
token_label: 'Token RSS'
no_token: 'Brak tokena'
token_create: 'Stwórz tokena'
token_reset: 'Zresetuj swojego tokena'
rss_links: 'RSS links'
rss_link:
unread: 'nieprzeczytane'
starred: 'oznaczone gwiazdką'
archive: 'archiwum'
rss_limit: 'Link do RSS'
form_user:
two_factor_description: "Włączenie autoryzacji dwuetapowej oznacza, że będziesz otrzymywał maile z kodem przy każdym nowym, niezaufanyum połączeniu"
name_label: 'Nazwa'
email_label: 'Adres email'
twoFactorAuthentication_label: 'Autoryzacja dwuetapowa'
form_password:
old_password_label: 'Stare hasło'
new_password_label: 'Nowe hasło'
repeat_new_password_label: 'Powtórz nowe hasło'
form_rules:
if_label: 'jeżeli'
then_tag_as_label: 'wtedy otaguj jako'
delete_rule_label: 'usuń'
rule_label: 'Reguła'
tags_label: 'Tagi'
faq:
title: 'FAQ'
tagging_rules_definition_title: 'Co oznaczają « reguły tagowania » ?'
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.'
how_to_use_them_title: 'Jak ich użyć?'
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 &lt;= 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 &gt;= 5 I nazwaDomeny = "github.com"</i> » wtedy otagój jako « <i>dłuższy tekst, github </i> »'
variables_available_title: 'Jakich zmiennych i operatorów mogę użyć przy pisaniu reguł?'
variables_available_description: 'Następujące zmienne i operatory mogą być użyte przy tworzeniu reguł tagowania:'
meaning: 'Znaczenie'
variable_description:
label: 'Zmienna'
title: 'Tytuł wpisu'
url: 'Adres URL wpisu'
isArchived: 'Czy wpis został zarchiwizowany czy nie'
isStarred: 'Czy wpis został oznaczony gwiazdką czy nie'
content: 'Zawartość wpisu'
language: 'Język wpisu'
mimetype: 'Mime-type wpisu'
readingTime: 'Szacunkowy czas czytania wpisu w minutach'
domainName: 'Nazwa domeny wpisu'
operator_description:
label: 'Operator'
less_than: 'Mniej niż...'
strictly_less_than: 'Wyłącznie mniej niż...'
greater_than: 'Więcej niż...'
strictly_greater_than: 'Wyłącznie więcej niż...'
equal_to: 'Równe...'
not_equal_to: 'Nierówny...'
or: 'Jedna reguła LUB inna'
and: 'Jedna reguła I inna'
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>'
form_new_user:
username_label: 'Nazwa użytkownika'
password_label: 'Hasło'
repeat_new_password_label: 'Powtórz nowe hasło'
plain_password_label: 'Jawne hasło'
email_label: 'Adres email'
# Entries
'estimated reading time': 'Szacunkowy czas czytania'
original: 'oryginał'
Toggle mark as read: 'Oznacz jako przeczytane'
Toggle favorite: 'Oznacz jako ulubione'
Delete: 'Usuń'
entry:
page_titles:
unread: 'Nieprzeczytane wpisy'
starred: 'Wpisy oznaczone gwiazdką'
archived: 'Zarchiwizowane wpisy'
filtered: 'Odfiltrowane wpisy'
list:
number_on_the_page: '{0} Nie ma wpisów.|{1} Jest jeden wpis.|]1,Inf[ Są %count% wpisy.'
reading_time: 'szacunkowy czas czytania'
reading_time_minutes: 'szacunkowy czas czytania: %readingTime% min'
reading_time_less_one_minute: 'szacunkowy czas czytania: <small class="inferieur">&lt;</small> 1 min'
original_article: 'oryginał'
toogle_as_read: 'Oznacz jako przeczytane'
toogle_as_star: 'Oznacz jako ulubione'
delete: 'Usuń'
export_title: 'Export'
filters:
title: 'Filtry'
status_label: 'Status'
archived_label: 'Zarchiwizowane'
starred_label: 'Oznaczone gwiazdką'
preview_picture_label: 'Posiada podgląd obrazu'
preview_picture_help: 'Podgląd obrazu'
language_label: 'Język'
reading_time:
label: 'Czas czytania w minutach'
from: 'od'
to: 'do'
domain_label: 'Nazwa domeny'
created_at:
label: 'Czas stworzenia'
from: 'od'
to: 'do'
action:
clear: 'Wyczyść'
filter: 'Filtruj'
view:
left_menu:
back_to_top: 'Wróć na górę'
back_to_homepage: 'Cofnij'
set_as_read: 'Oznacz jako przeczytane'
set_as_unread: 'Oznacz jako nieprzeczytane'
set_as_favorite: 'Ulubione'
view_original_article: 'Oryginalny artykuł'
re_fetch_content: 'Pobierz ponownie treść'
delete: 'Usuń'
add_a_tag: 'Dodaj tag'
share_content: 'Udostępnij'
share_email_label: 'Adres email'
download: 'Pobierz'
print: 'Drukuj'
problem:
label: 'Problemy'
description: 'Czy ten artykuł wygląda źle?'
edit_title: 'Edytuj tytuł'
original_article: 'oryginalny'
annotations_on_the_entry: '{0} Nie ma adnotacji |{1} Jedna adnotacja |]1,Inf[ %nbAnnotations% adnotacji'
new:
page_title: 'Zapisz nowy wpis'
placeholder: 'http://website.com'
form_new:
url_label: Url
edit:
page_title: 'Edytuj wpis'
title_label: 'Tytuł'
url_label: 'Adres URL'
is_public_label: 'Publiczny'
save_label: 'Zapisz'
# Filters
Filters: 'Filtry'
Status: 'Status'
Archived: 'Zarchiwizowane'
Starred: 'Oznaczone gwiazdką'
Preview picture: 'Podgląd obrazu'
Has a preview picture: 'Posiada podgląd obrazu'
Reading time in minutes: 'Czas czytania w minutach'
from: 'od'
to: 'do'
website.com: 'website.com'
Domain name: 'Nazwa domeny'
Creation date: 'Czas stworzenia'
dd/mm/yyyy: 'dd.mm.yyyy'
Clear: 'Wyczyść'
Filter: 'Filtruj'
about:
page_title: 'O nas'
top_menu:
who_behind_wallabag: 'Kto stoi za wallabag'
getting_help: 'Pomoc'
helping: 'Pomóż wallabag'
contributors: 'Osoby, które pomogły przy projekcie'
third_party: 'Biblioteki Third-party'
who_behind_wallabag:
developped_by: 'Stworzony przez'
website: 'strona internetowa'
many_contributors: 'i wielu innych ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">na GitHubie</a>'
project_website: 'Stona projektu'
license: 'Licencja'
version: 'Wersja'
getting_help:
documentation: 'Dokumentacja'
bug_reports: 'Raportuj błędy'
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>'
helping:
description: 'wallabag jest darmowy i otwartoźródłowy. Możesz nam pomóc:'
by_contributing: 'przez przyłączenie się do projektu:'
by_contributing_2: 'lista wszystkich naszych potrzeb'
by_paypal: 'przez Paypal'
contributors:
description: 'Podziękuj osobą, które przyczyniły się do projektu przez aplikację webową'
third_party:
description: 'Tutaj znajduje się lista Third-party bibliotek użytych w wallabag (z ich licencjami):'
package: 'Paczka'
license: 'Licencja'
# About
Who is behind wallabag: 'Kto stoi za wallabag'
Getting help: 'Pomoc'
Helping wallabag: 'Pomóż wallabag'
Developed by: 'Stworzony przez'
website: 'strona internetowa'
And many others contributors ♥: ' i wielu innych ♥'
on GitHub: 'na GitHubie'
Project website: 'Stona projektu'
License: 'Licencja'
Version: 'Wersja'
Documentation: 'Dokumentacja'
Bug reports: 'Raportuj błędy'
On our support website: 'Na naszeej stronie wsparcia technicznego'
or: 'lub'
'wallabag is free and opensource. You can help us:': 'wallabag jest darmowy i otwartoźródłowy. Możesz nam pomóc: '
'by contributing to the project:': 'przez przyłączenie się do projektu:'
an issue lists all our needs: 'lista wszystkich naszych potrzeb'
via Paypal: 'przez PayPal'
howto:
page_title: 'Howto'
page_description: 'Sposoby zapisania artykułu:'
top_menu:
browser_addons: 'Wtyczki dla przeglądarki'
mobile_apps: 'Aplikacje mobilne'
bookmarklet: 'Bookmarklet'
form:
description: 'Podziękuj przez ten formularz'
browser_addons:
firefox: 'Standardowe rozszerzenie dla Firefox'
chrome: 'Rozszerzenie dla Chrome'
mobile_apps:
android:
via_f_droid: 'w F-Droid'
via_google_play: 'w Google Play'
ios: 'w iTunes Store'
windows: 'w Microsoft Store'
bookmarklet:
description: 'Przeciągnij i upuść ten link na swój pasek zakładek'
# Howto
Form: 'Od'
Thanks to this form: 'Podziękuj przez ten formularz'
Browser addons: 'Wtyczki dla przeglądarki'
Mobile apps: 'Aplikacje mobilne'
Bookmarklet: 'Bookmarklet'
Standard Firefox Add-On: 'Standardowe rozszerzenia dla Firefox'
Chrome Extension: 'Rozszerzenie dla Chrome'
download the application: 'Pobierz aplikację '
'Drag &amp; drop this link to your bookmarks bar:': 'Przeciągnij i upuść ten link na swój pasek zakładek'
quickstart:
page_title: 'Szybki start'
intro:
title: 'Witaj w wallabag!'
paragraph_1: "Będziemy ci towarzyszyli w Twojej poznaniu wallabag i pokażemy możliwości, które mogą cię zainteresować."
paragraph_2: 'Śledź nas!'
configure:
title: 'Konfiguruj aplikację'
language: 'Zmień język i wygląd'
rss: 'Włącz kanały RSS'
tagging_rules: 'Napisz reguły pozwalające na automatyczne otagowanie twoich artykułów'
admin:
title: 'Administracja'
description: 'Jako administrator wallabag, możesz:'
new_user: 'Tworzyć nowego użytkownika'
analytics: 'Configure analytics'
sharing: 'Włączyć pewne parametry dotyczące udostępniania artykułów'
export: 'Skonfigurować eksport'
import: 'Skonfigurować import'
first_steps:
title: 'Pierwsze kroki'
new_article: 'Zapisz swój pierwszy artukuł'
unread_articles: 'I sklasyfikuj go!'
migrate:
title: 'Migruj w istniejącej usługi'
description: "Używasz innej usługi? Pomożemy ci pobrać twoje dane do wallabag."
pocket: 'Migruj z Pocket'
wallabag_v1: 'Migruj z wallabag v1'
wallabag_v2: 'Migruj z wallabag v2'
developer:
title: 'Deweloperzy'
create_application: 'Stwórz swoją aplikację'
docs:
title: 'Pełna Dokumentacja'
annotate: 'Dadaj adnotację do swojego artykułu'
export: 'Konwertuj swoje artykuły do ePUB lub PDF'
search_filters: 'Zabacz jak możesz znaleźć artykuł dzięku użyciu silnika wyszukiwarki i filtrów'
fetching_errors: 'Co mogę zrobić jeżeli artukuł napotka błędy podczas pobierania?'
all_docs: 'I wiele innych artykułów!'
support:
title: 'Wsparcie'
description: 'Jeżeli potrzebujesz pomocy, jesteśmy tutaj dla ciebie.'
github: 'na GitHubie'
email: 'przez email'
gitter: 'na Gitterze'
# Flash messages
Information updated: 'Informacje zaktualizowane'
Config saved. Some parameters will be considered after disconnection.': 'Konfiguracja zapisana. Niektóre parametry zostaną uznane po rozłączeniu'
RSS information updated: 'Informacje RSS zaktualizowane'
Password updated: 'Hasło zaktualizowane'
Entry starred: 'Wpis oznaczony gwiazdką'
Entry unstarred: 'Wpis odznaczony gwiazdką'
Entry archived: 'Wpis dodany do archiwum'
Entry unarchived: 'Wpis usunięty z archiwum'
Entry deleted: 'Wpis usunięty'
tag:
page_title: 'Tagi'
list:
number_on_the_page: '{0} Nie ma tagów.|{1} Jest jeden tag.|]1,Inf[ Są %count% tagi.'
# Entry
Mark as read: 'Oznacz jako przeczytane'
Favorite: 'Ulubione'
back: 'Cofnij'
original article: 'Oryginalny artykuł'
Add a tag: 'Dodaj tag'
Share: 'Udostępnij'
Download: 'Pobierz'
Does this article appear wrong?: 'Czy ten artykuł wygląda źle?'
Problems?: 'Problemy'
Edit title: 'Edytuj tytuł'
import:
page_title: 'Import'
page_description: 'Witaj w importerze Wallabag. Wybierz swoją poprzednią usługę, z której chcech migrować.'
action:
import_contents: 'Import zawartości'
form:
mark_as_read_title: 'Oznaczyć wszystkie jako przeczytane?'
mark_as_read_label: 'Oznacz wszystkie zaimportowane wpisy jako przeczytane'
file_label: 'Plik'
save_label: 'Właduj plik'
pocket:
page_title: 'Import > Pocket'
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."
config_missing:
description: "Import z Pocket nie jest skonfigurowany."
admin_message: 'Musisz zdefiniować %keyurls%a pocket_consumer_key%keyurle%.'
user_message: 'Admin twojego servera musi zdefiniować API Key dla Pocket.'
authorize_message: 'Możesz zaimportować dane ze swojego konta Pocket. Kliknij poniższy przycisk i autoryzuj aplikacje aby połączyć się z getpocket.com.'
connect_to_pocket: 'Połącz z Pocket i importuj dane'
wallabag_v1:
page_title: 'Import > Wallabag v1'
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".'
how_to: 'Wybierz swój plik eksportu z wallabag i kliknij poniższy przycisk, aby go załadować.'
wallabag_v2:
page_title: 'Import > Wallabag v2'
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".'
developer:
page_title: 'Deweloper'
welcome_message: 'Witaj w API wallabag'
documentation: 'Dokumentacja'
how_to_first_app: 'Jak stworzyć moją pierwszą aplikację'
full_documentation: 'Pokaż pełne API'
# list_methods: 'List API methods'
clients:
title: 'Klienci'
create_new: 'Utwórz nowego klienta'
existing_clients:
title: 'Istniejący klienci'
field_id: 'Client ID'
field_secret: 'Client secret'
field_uris: 'Przekieruj URIs'
field_grant_types: 'Przyznaj pozwolenie'
no_client: 'Nie ma jeszcze klienta.'
remove:
warn_message_1: 'Masz możliwość usunięcia tego klienta. Ta akcja jest NIEODWRACALNA !'
warn_message_2: "Jeżeli go usuniesz, aplikacje skonfigurowane z tym klientem nię będa w stanie autoryzować twojego wallabag."
action: 'Usuń tego klienta'
client:
page_title: 'Deweloper > Nowy klient'
page_description: 'Tworzysz nowego klienta. Wypełnij poniższe pole w celu przekierowania URI twojej aplikacji.'
form:
redirect_uris_label: 'Przekieruj adresy URI'
save_label: 'Stwórz nowego klienta'
action_back: 'Cofnij'
client_parameter:
page_title: 'Deweloper > Parametry klienta'
page_description: 'Tutaj znajdują się parametry klienta.'
field_id: 'Client ID'
field_secret: 'Client secret'
back: 'Cofnij'
read_howto: 'Przeczytaj jak "Stworzyć moją pierwszą aplikację"'
howto:
page_title: 'Deweloper > Jak stworzyć moją pierwszą aplikację'
description:
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'
paragraph_2: 'Potrzebujesz tokena w celu nawiązania komunikacji między swoją aplikacją a API wallabag.'
paragraph_3: 'W celu stworzenia tokena musisz <a href="%link%">stwórz nowego klienta</a>.'
paragraph_4: 'Teraz, utwórz tokena (zmień client_id, client_secret, username i password z poprawnymi wartościami):'
paragraph_5: 'API powinno zwrócić taką informację:'
paragraph_6: 'access_token jest użyteczny do wywołania API endpoint. Na przykład:'
paragraph_7: 'To wywołanie zwróci wszystkie twoje wpisy.'
paragraph_8: 'Jeżeli chcesz wyświetlić wszystkie punkty końcowe API, zobacz <a href="%link%">Dokumentacja naszego API</a>.'
back: 'Cofnij'
validator:
password_must_match: 'Hasło w polach musi być takie same'
password_too_short: 'Hasło powinno mieć minimum 8 znaków długości'
password_wrong_value: 'Twoje obecne hasło jest błędne'
item_per_page_too_high: 'To może spowodować problemy z aplikacją'
rss_limit_too_hight: 'To może spowodować problemy z aplikacją'
flashes:
config:
notice:
config_saved: 'Konfiguracja zapisana. Niektóre parametry zostaną uznane po rozłączeniu'
password_updated: 'Hasło zaktualizowane'
password_not_updated_demo: "In demonstration mode, you can't change password for this user."
user_updated: 'Informacje zaktualizowane'
rss_updated: 'Informacje RSS zaktualizowane'
tagging_rules_updated: 'Reguły tagowania zaktualizowane'
tagging_rules_deleted: 'Reguła tagowania usunięta'
user_added: 'Użytkownik "%username%" dodany'
rss_token_updated: 'Token kanału RSS zaktualizowany'
entry:
notice:
entry_already_saved: 'Wpis już został dodany %date%'
entry_saved: 'Wpis zapisany'
entry_updated: 'Wpis zaktualizowany'
entry_reloaded: 'Wpis ponownie załadowany'
entry_reload_failed: 'Błąd ponownego załadowania'
entry_archived: 'Wpis dodany do archiwum'
entry_unarchived: 'Wpis usunięty z archiwum'
entry_starred: 'Wpis oznaczony gwiazdką'
entry_unstarred: 'Wpis odznaczony gwiazdką'
entry_deleted: 'Wpis usunięty'
tag:
notice:
tag_added: 'Tag dodany'
import:
notice:
failed: 'Nieudany import, prosimy spróbować ponownie.'
failed_on_file: 'Błąd podczas ptrzetwarzania pliku. Sprawdż swój importowany plik.'
summary: 'Podsumowanie importu: %imported% zaimportowane, %skipped% już zapisane.'
developer:
notice:
client_created: 'Nowy klient utworzony.'
client_deleted: 'Klient usunięty'

View File

@ -1,129 +1,425 @@
#Login
Keep me logged in: 'Ține-mă logat'
Forgot your password?: 'Ți-ai uitat parola?'
Login: 'Logare'
Back to login: 'Înapoi la logare'
Send: 'Trimite'
"Enter your email address below and we'll send you password reset instructions.": "Introduceți adresa de e-mail, iar noi vă vom trimite instrucțiunile pentru resetarea parolei."
security:
login:
# page_title: 'Welcome to wallabag!'
keep_logged_in: 'Ține-mă logat'
forgot_password: 'Ți-ai uitat parola?'
submit: 'Logare'
# register: 'Register'
username: 'Nume de utilizator'
password: 'Parolă'
# cancel: 'Cancel'
resetting:
description: "Introduceți adresa de e-mail, iar noi vă vom trimite instrucțiunile pentru resetarea parolei."
register:
# page_title: 'Create an account'
# go_to_account: 'Go to your account'
# Menu
unread: 'necitite'
starred: 'cu steluță'
archive: 'arhivă'
all: 'toate'
tags: 'tag-uri'
config: 'configurație'
howto: 'cum să'
logout: 'delogare'
Filtered: 'Filtrate'
About: 'Despre'
menu:
left:
unread: 'Necitite'
starred: 'Cu steluță'
archive: 'Arhivă'
all_articles: 'Toate'
config: 'Configurație'
tags: 'Tag-uri'
# internal_settings: 'Internal Settings'
# import: 'Import'
howto: 'Cum să'
# developer: 'Developer'
logout: 'cum să'
about: 'Despre'
search: 'Căutare'
# save_link: 'Save a link'
back_to_unread: 'Înapoi la articolele necitite'
top:
add_new_entry: 'Introdu un nou articol'
search: 'Căutare'
filter_entries: 'Filtrează articolele'
# export: 'Export'
search_form:
input_label: 'Introdu căutarea ta'
# Header
Back to unread articles: 'Înapoi la articolele necitite'
Add a new entry: 'Introdu un nou articol'
Search: 'Căutare'
Filter entries: 'Filtrează articolele'
Enter your search here: 'Introdu căutarea ta'
Save new entry: 'Salvează un nou articol'
footer:
wallabag:
# elsewhere: 'Take wallabag with you'
# social: 'Social'
# powered_by: 'powered by'
about: 'Despre'
# Config screen
Settings: 'Setări'
User information: 'Informații despre utilizator'
Password: 'Parolă'
RSS: 'RSS'
Add a user: 'Crează un utilizator'
Theme: 'Temă'
Items per page: 'Articole pe pagină'
Language: 'Limbă'
Save: 'Salvează'
RSS token: 'RSS-Token'
Name: 'Nume'
Email: 'E-mail'
No token: 'Fără token'
Reset your token: 'Resetează-ți token-ul'
Create your token: 'Crează-ți token'
Rss limit: 'Limită RSS'
RSS links: 'Link-uri RSS'
'RSS feeds provided by wallabag allow you to read your saved articles with your favourite RSS reader. You need to generate a token first.': 'Feed-urile RSS oferite de wallabag îți permit să-ți citești articolele salvate în reader-ul tău preferat RSS.'
Old password: 'Parola veche'
New password: 'Parola nouă'
Repeat new password: 'Repetă parola'
Username: 'Nume de utilizator'
config:
page_title: 'Configurație'
tab_menu:
settings: 'Setări'
rss: 'RSS'
user_info: 'Informații despre utilizator'
password: 'Parolă'
# rules: 'Tagging rules'
new_user: 'Crează un utilizator'
form:
save: 'Salvează'
form_settings:
theme_label: 'Temă'
items_per_page_label: 'Articole pe pagină'
language_label: 'Limbă'
reading_speed:
# label: 'Reading speed'
# help_message: 'You can use online tools to estimate your reading speed:'
# 100_word: 'I read ~100 words per minute'
# 200_word: 'I read ~200 words per minute'
# 300_word: 'I read ~300 words per minute'
# 400_word: 'I read ~400 words per minute'
form_rss:
description: 'Feed-urile RSS oferite de wallabag îți permit să-ți citești articolele salvate în reader-ul tău preferat RSS.'
token_label: 'RSS-Token'
no_token: 'Fără token'
token_create: 'Crează-ți token'
token_reset: 'Resetează-ți token-ul'
rss_links: 'Link-uri RSS'
rss_link:
unread: 'unread'
starred: 'starred'
archive: 'archived'
rss_limit: 'Limită RSS'
form_user:
# two_factor_description: "Enabling two factor authentication means you'll receive an email with a code on every new untrusted connexion"
name_label: 'Nume'
email_label: 'E-mail'
# twoFactorAuthentication_label: 'Two factor authentication'
form_password:
old_password_label: 'Parola veche'
new_password_label: 'Parola nouă'
repeat_new_password_label: 'Repeat new password'
form_rules:
# if_label: 'if'
# then_tag_as_label: 'then tag as'
# delete_rule_label: 'delete'
# rule_label: 'Rule'
# tags_label: 'Tags'
# faq:
# title: 'FAQ'
# tagging_rules_definition_title: 'What does « tagging rules » mean?'
# 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.'
# how_to_use_them_title: 'How do I use them?'
# 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 &lt;= 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 &gt;= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, github </i> »'
# variables_available_title: 'Which variables and operators can I use to write rules?'
# variables_available_description: 'The following variables and operators can be used to create tagging rules:'
# meaning: 'Meaning'
# variable_description:
# label: 'Variable'
# title: 'Title of the entry'
# url: 'URL of the entry'
# isArchived: 'Whether the entry is archived or not'
# isStarred: 'Whether the entry is starred or not'
# content: "The entry's content"
# language: "The entry's language"
# mimetype: "The entry's mime-type"
# readingTime: "The estimated entry's reading time, in minutes"
# domainName: 'The domain name of the entry'
# operator_description:
# label: 'Operator'
# less_than: 'Less than...'
# strictly_less_than: 'Strictly less than...'
# greater_than: 'Greater than...'
# strictly_greater_than: 'Strictly greater than...'
# equal_to: 'Equal to...'
# not_equal_to: 'Not equal to...'
# or: 'One rule OR another'
# and: 'One rule AND another'
# matches: 'Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code>'
form_new_user:
username_label: 'Nume de utilizator'
password_label: 'Parolă'
repeat_new_password_label: 'Repeat new password'
plain_password_label: '????'
email_label: 'E-mail'
# Entries
'estimated reading time': 'timp estimat de citire'
original: original
Toggle mark as read: 'Comută marcat ca citit'
Toggle favorite: 'Comută marcat ca favorit'
Delete: 'Șterge'
entry:
page_titles:
# unread: 'Unread entries'
# starred: 'Starred entries'
# archived: 'Archived entries'
# filtered: 'Filtered entries'
list:
# number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.'
reading_time: 'timp estimat de citire'
reading_time_minutes: 'timp estimat de citire: %readingTime% min'
reading_time_less_one_minute: 'timp estimat de citire: <small class="inferieur">&lt;</small> 1 min'
original_article: 'original'
toogle_as_read: 'Comută marcat ca citit'
toogle_as_star: 'Comută marcat ca favorit'
delete: 'Șterge'
# export_title: 'Export'
filters:
title: 'Filtre'
status_label: 'Status'
archived_label: 'Arhivat'
starred_label: 'Steluțe'
preview_picture_label: 'Are o imagine de previzualizare'
preview_picture_help: 'Previzualizare imagine'
language_label: 'Limbă'
reading_time:
label: 'Timp de citire în minute'
from: 'de la'
to: 'către'
domain_label: 'Nume domeniu'
created_at:
label: 'Data creării'
from: 'de la'
to: 'către'
action:
clear: 'Șterge'
filter: 'Filtru'
view:
left_menu:
# back_to_top: 'Back to top'
back_to_homepage: 'Înapoi'
set_as_read: 'Marchează ca citit'
# set_as_unread: 'Mark as unread'
set_as_favorite: 'Favorit'
view_original_article: 'Articol original'
# re_fetch_content: 'Re-fetch content'
delete: 'Șterge'
add_a_tag: 'Adaugă un tag'
share_content: 'Dă mai departe'
share_email_label: 'E-mail'
download: 'Descarcă'
# print: 'Print'
problem:
label: 'Probleme?'
description: 'Îți pare ciudat articolul?'
edit_title: 'Editează titlul'
original_article: 'original'
# annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations'
new:
page_title: 'Salvează un nou articol'
placeholder: 'http://website.com'
form_new:
url_label: Url
edit:
# page_title: 'Edit an entry'
# title_label: 'Title'
url_label: 'Url'
# is_public_label: 'Public'
save_label: 'Salvează'
# Filters
Filters: 'Filtre'
Status: 'Status'
Archived: 'Arhivat'
Starred: 'Steluțe'
Preview picture: 'Previzualizare imagine'
Has a preview picture: 'Are o imagine de previzualizare'
Reading time in minutes: 'Timp de citire în minute'
from: 'de la'
to: 'către'
website.com: 'website.com'
Domain name: 'Nume domeniu'
Creation date: 'Data creării'
dd/mm/yyyy: 'zz/ll/aaaa'
Clear: 'Șterge'
Filter: 'Filtru'
about:
page_title: 'Despre'
top_menu:
who_behind_wallabag: 'Cine e în spatele wallabag'
getting_help: 'Ajutor'
helping: 'Cum să ajuți wallabag'
# contributors: 'Contributors'
# third_party: 'Third-party libraries'
who_behind_wallabag:
developped_by: 'Dezvoltat de'
website: 'website'
many_contributors: 'Și mulți alți contribuitori ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">pe Github</a>'
project_website: 'Website-ul proiectului'
license: 'Licență'
version: 'Versiune'
getting_help:
documentation: 'Documentație'
bug_reports: 'Bug-uri'
support: '<a href="https://support.wallabag.org">Pe site-ul nostru de suport</a> sau <a href="https://github.com/wallabag/wallabag/issues">pe GitHub</a>'
helping:
description: 'wallabag este gratis și Open-Source. Cum ne poți ajuta:'
by_contributing: 'contribuind la proiect:'
by_contributing_2: 'o problemă ne listează toate nevoile:'
by_paypal: 'prin Paypal'
contributors:
# description: 'Thank you to contributors on wallabag web application'
third_party:
# description: 'Here are the list of third-party libraries used in wallabag (with their licenses):'
# package: 'Package'
license: 'Licență'
# About
Who is behind wallabag: "Cine e în spatele wallabag"
Getting help: "Ajutor"
Helping wallabag: "Cum să ajuți wallabag"
Developed by: "Dezvoltat de"
website: "website"
And many others contributors ♥: "Și mulți alți contribuitori ♥"
on GitHub: "pe GitHub"
Project website: "Website-ul proiectului"
License: "Licență"
Version: "Versiune"
Documentation: "Documentație"
Bug reports: "Bug-uri"
On our support website: "Pe site-ul nostru de suport"
or: "sau"
"wallabag is free and opensource. You can help us:": "wallabag este gratis și Open-Source. Cum ne poți ajuta:"
"by contributing to the project:": "contribuind la proiect:"
an issue lists all our needs: "o problemă ne listează toate nevoile:"
via Paypal: "prin PayPal"
howto:
page_title: 'Cum să'
# page_description: 'There are several ways to save an article:'
top_menu:
browser_addons: 'Add-On-uri de Browser'
mobile_apps: 'Aplicații mobile'
bookmarklet: 'Bookmarklet'
form:
description: 'Mulțumită acestui formular'
browser_addons:
firefox: 'Add-On standard de Firefox'
chrome: 'Extensie Chrome'
mobile_apps:
android:
via_f_droid: 'prin F-Droid'
via_google_play: 'prin Google Play'
ios: 'prin iTunes Store'
windows: 'prin Microsoft Store'
bookmarklet:
description: 'Drag &amp; drop acest link în bara de bookmark-uri:'
# Howto
Form: Formular
Thanks to this form: "Mulțumită acestui formular"
Browser addons: "Add-On-uri de Browser"
Mobile apps: "Aplicații mobile"
Bookmarklet: "Bookmarklet"
Standard Firefox Add-On: "Add-On standard de Firefox"
Chrome Extension: "Extensie Chrome"
download the application: "descarcă aplicația"
"Drag &amp; drop this link to your bookmarks bar:": "Drag &amp; drop acest link în bara de bookmark-uri:"
quickstart:
# page_title: 'Quickstart'
# intro:
# title: 'Welcome to wallabag!'
# paragraph_1: "We'll accompany you to visit wallabag and show you some features which can interest you."
# paragraph_2: 'Follow us!'
# configure:
# title: 'Configure the application'
# language: 'Change language and design'
# rss: 'Enable RSS feeds'
# tagging_rules: 'Write rules to automatically tag your articles'
# admin:
# title: 'Administration'
# description: 'As an administrator, you have privileges on wallabag. You can:'
# new_user: 'Create a new user'
# analytics: 'Configure analytics'
# sharing: 'Enable some parameters about article sharing'
# export: 'Configure export'
# import: 'Configure import'
# first_steps:
# title: 'First steps'
# new_article: 'Save your first article'
# unread_articles: 'And classify it!'
# migrate:
# title: 'Migrate from an existing service'
# description: "Are you using another service? We'll help you to retrieve your data on wallabag."
# pocket: 'Migrate from Pocket'
# wallabag_v1: 'Migrate from wallabag v1'
# wallabag_v2: 'Migrate from wallabag v2'
# developer:
# title: 'Developers'
# create_application: 'Create your third application'
# docs:
# title: 'Full documentation'
# annotate: 'Annotate your article'
# export: 'Convert your articles into ePUB or PDF'
# search_filters: 'See how you can look for an article by using search engine and filters'
# fetching_errors: 'What can I do if an article encounters errors during fetching?'
# all_docs: 'And so many other articles!'
# support:
# title: 'Support'
# description: 'If you need some help, we are here for you.'
# github: 'On GitHub'
# email: 'By email'
# gitter: 'On Gitter'
# Flash messages
Information updated: "Informație actualizată"
"Config saved. Some parameters will be considered after disconnection.": "configurație salvată. Unii parametrii vor fi considerați după deconectare."
RSS information updated: "Informație RSS actualizată"
Password updated: "Parolă actualizată"
Entry starred: "Articol adăugat la favorite"
Entry unstarred: "Articol șters de la favorite"
Entry archived: "Articol arhivat"
Entry unarchived: "Articol dezarhivat"
Entry deleted: "Articol șters"
tag:
page_title: 'Tag-uri'
list:
# number_on_the_page: '{0} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.'
# Entry
Mark as read: 'Marchează ca citit'
Favorite: 'Favorit'
back: 'înapoi'
original article: 'articol original'
Add a tag: 'Adaugă un tag'
Share: 'Dă mai departe'
Download: 'Descarcă'
Does this article appear wrong?: "Îți pare ciudat articolul?"
Problems?: 'Probleme?'
Edit title: "Editează titlul"
import:
# page_title: 'Import'
# page_description: 'Welcome to wallabag importer. Please select your previous service that you want to migrate.'
# action:
# import_contents: 'Import contents'
# form:
# mark_as_read_title: 'Mark all as read?'
# mark_as_read_label: 'Mark all imported entries as read'
# file_label: 'File'
# save_label: 'Upload file'
# pocket:
# page_title: 'Import > Pocket'
# 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."
# config_missing:
# description: "Pocket import isn't configured."
# admin_message: 'You need to define %keyurls%a pocket_consumer_key%keyurle%.'
# user_message: 'Your server admin needs to define an API Key for Pocket.'
# 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.'
# connect_to_pocket: 'Connect to Pocket and import data'
# wallabag_v1:
# page_title: 'Import > Wallabag v1'
# 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.'
# how_to: 'Please select your wallabag export and click on the below button to upload and import it.'
# wallabag_v2:
# page_title: 'Import > Wallabag v2'
# 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.'
developer:
# page_title: 'Developer'
# welcome_message: 'Welcome to the wallabag API'
# documentation: 'Documentation'
# how_to_first_app: 'How to create my first application'
# full_documentation: 'View full API documentation'
# list_methods: 'List API methods'
# clients:
# title: 'Clients'
# create_new: 'Create a new client'
# existing_clients:
# title: 'Existing clients'
# field_id: 'Client ID'
# field_secret: 'Client secret'
# field_uris: 'Redirect URIs'
# field_grant_types: 'Grant type allowed'
# no_client: 'No client yet.'
# remove:
# warn_message_1: 'You have the ability to remove this client. This action is IRREVERSIBLE !'
# warn_message_2: "If you remove it, every app configured with that client won't be able to auth on your wallabag."
# action: 'Remove this client'
# client:
# page_title: 'Developer > New client'
# page_description: 'You are about to create a new client. Please fill the field below for the redirect URI of your application.'
# form:
# redirect_uris_label: 'Redirect URIs'
# save_label: 'Create a new client'
# action_back: 'Back'
# client_parameter:
# page_title: 'Developer > Client parameters'
# page_description: 'Here are your client parameters.'
# field_id: 'Client ID'
# field_secret: 'Client secret'
# back: 'Back'
# read_howto: 'Read the howto "Create my first application"'
# howto:
# page_title: 'Developer > How to create my first application'
# description:
# 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.'
# paragraph_2: 'You need a token to communicate between your 3rd application and wallabag API.'
# paragraph_3: 'To create this token, you need <a href="%link%">to create a new client</a>.'
# paragraph_4: 'Now, create your token (replace client_id, client_secret, username and password with the good values):'
# paragraph_5: 'The API will return a response like this:'
# paragraph_6: 'The access_token is useful to do a call to the API endpoint. For example:'
# paragraph_7: 'This call will return all the entries for your user.'
# paragraph_8: 'If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.'
# back: 'Back'
validator:
password_must_match: 'Câmpurile destinate parolelor trebuie să se potrivească'
password_too_short: 'Parola ar trebui să conțină cel puțin 8 caractere'
# password_wrong_value: 'Wrong value for your current password'
# item_per_page_too_high: 'This will certainly kill the app'
# rss_limit_too_hight: 'This will certainly kill the app'
flashes:
config:
notice:
config_saved: 'Configurație salvată. Unii parametrii vor fi considerați după deconectare.'
password_updated: 'Parolă actualizată'
password_not_updated_demo: "In demonstration mode, you can't change password for this user."
user_updated: 'Informație actualizată'
rss_updated: 'Informație RSS actualizată'
# tagging_rules_updated: 'Tagging rules updated'
# tagging_rules_deleted: 'Tagging rule deleted'
# user_added: 'User "%username%" added'
# rss_token_updated: 'RSS token updated'
entry:
notice:
# entry_already_saved: 'Entry already saved on %date%'
# entry_saved: 'Entry saved'
# entry_updated: 'Entry updated'
# entry_reloaded: 'Entry reloaded'
# entry_reload_failed: 'Failed to reload entry'
entry_archived: 'Articol arhivat'
entry_unarchived: 'Articol dezarhivat'
entry_starred: 'Articol adăugat la favorite'
entry_unstarred: 'Articol șters de la favorite'
entry_deleted: 'Articol șters'
tag:
notice:
# tag_added: 'Tag added'
import:
notice:
# failed: 'Import failed, please try again.'
# failed_on_file: 'Error while processing import. Please verify your import file.'
# summary: 'Import summary: %imported% imported, %skipped% already saved.'
developer:
notice:
# client_created: 'New client created.'
# client_deleted: 'Client deleted'

View File

@ -1,226 +1,425 @@
# Login
Keep me logged in: 'Oturumumu açık tut'
Forgot your password?: 'Şifrenizi mi unuttunuz?'
Login: 'Giriş Yap'
Back to login: 'Giriş yapma ekranına geri dön'
Send: 'Gönder'
Register: 'Kayıt Ol'
security:
login:
page_title: 'wallabag'
keep_logged_in: 'Oturumumu açık tut'
forgot_password: 'Şifrenizi mi unuttunuz?'
submit: 'Giriş Yap'
register: 'Kayıt Ol'
username: 'Kullanıcı adı'
password: 'Şifre'
# cancel: 'Cancel'
resetting:
# description: "Enter your email address below and we'll send you password reset instructions."
register:
# page_title: 'Create an account'
# go_to_account: 'Go to your account'
# Menu
unread: 'Okunmayan'
starred: 'Favoriler'
archive: 'Arşiv'
all: 'Hepsi'
tags: 'Etiketler'
config: 'Yapılandırma'
import: 'İçe Aktar'
howto: 'Yardım'
logout: 'Çıkış Yap'
Filtered: 'Filtreli'
About: 'Hakkımızda'
menu:
left:
unread: 'Okunmayan'
starred: 'Favoriler'
archive: 'Arşiv'
all_articles: 'Hepsi'
config: 'Yapılandırma'
tags: 'Etiketler'
# internal_settings: 'Internal Settings'
import: 'İçe Aktar'
howto: 'Yardım'
# developer: 'Developer'
logout: ıkış Yap'
about: 'Hakkımızda'
search: 'Ara'
# save_link: 'Save a link'
back_to_unread: 'Okunmayan makalelere geri dön'
top:
add_new_entry: 'Yeni bir makale ekle'
search: 'Ara'
filter_entries: 'Filtrele'
export: 'Dışa Aktar'
search_form:
input_label: 'Aramak istediğiniz herhangi bir şey yazın'
# Header
Back to unread articles: 'Okunmayan makalelere geri dön'
Add a new entry: 'Yeni bir makale ekle'
Search: 'Ara'
Filter entries: 'Filtrele'
Enter your search here: 'Aramak istediğiniz herhangi bir şey yazın'
Save new entry: 'Yeni makaleyi kaydet'
footer:
wallabag:
elsewhere: 'wallabag her an seninle'
social: 'Sosyal'
powered_by: 'powered by'
about: 'Hakkımızda'
# Config screen
Settings: 'Ayarlar'
User information: 'Kullanıcı bilgileri'
Tagging rules: "Etiketleme kuralları"
Password: 'Şifre'
RSS: 'RSS'
Add a user: 'Bir kullanıcı ekle'
Theme: 'Tema'
Items per page: "Sayfa başına makale sayısı"
Language: 'Dil'
Save: 'Kaydet'
RSS token: 'RSS belirteci (token)'
Name: 'İsim'
Email: 'E-posta'
No token: 'Belirteç (token) yok'
Reset your token: 'Belirteci (token) sıfırla'
Create your token: 'Yeni belirteç (token) oluştur'
Rss limit: "RSS içeriğinden talep edilecek makale limiti"
RSS links: 'RSS akış bağlantıları'
"RSS feeds provided by wallabag allow you to read your saved articles with your favourite RSS reader. You need to generate a token first.": "wallabag RSS akışı kaydetmiş olduğunuz makalelerini favori RSS okuyucunuzda görüntülemenizi sağlar. Bunu yapabilmek için öncelikle belirteç (token) oluşturmalısınız."
Old password: 'Eski şifre'
New password: 'Yeni şifre'
Repeat new password: 'Yeni şifrenin tekrarı'
Username: "Kullanıcı adı"
Two factor authentication: "İki adımlı doğrulama"
"Enabling two factor authentication means you'll receive an email with a code on every new untrusted connexion": "İki adımlı doğrulamayı aktifleştirdiğinizde, her yeni güvenilmeyen bağlantılarda size e-posta ile bir kod alacaksınız."
Baggy: "Baggy"
Material: "Material"
English: "İngilizce"
Français: "Fransızca"
Deutsch: "Almanca"
Türkçe: "Türkçe"
config:
page_title: 'Yapılandırma'
tab_menu:
settings: 'Ayarlar'
rss: 'RSS'
user_info: 'Kullanıcı bilgileri'
password: 'Şifre'
rules: 'Etiketleme kuralları'
new_user: 'Bir kullanıcı ekle'
form:
save: 'Kaydet'
form_settings:
theme_label: 'Tema'
items_per_page_label: 'Sayfa başına makale sayısı'
language_label: 'Dil'
reading_speed:
# label: 'Reading speed'
# help_message: 'You can use online tools to estimate your reading speed:'
# 100_word: 'I read ~100 words per minute'
# 200_word: 'I read ~200 words per minute'
# 300_word: 'I read ~300 words per minute'
# 400_word: 'I read ~400 words per minute'
form_rss:
description: 'wallabag RSS akışı kaydetmiş olduğunuz makalelerini favori RSS okuyucunuzda görüntülemenizi sağlar. Bunu yapabilmek için öncelikle belirteç (token) oluşturmalısınız.'
token_label: 'RSS belirteci (token)'
no_token: 'Belirteç (token) yok'
token_create: 'Yeni belirteç (token) oluştur'
token_reset: 'Belirteci (token) sıfırla'
rss_links: 'RSS akış bağlantıları'
rss_link:
unread: 'okunmayan'
starred: 'favoriler'
archive: 'arşiv'
rss_limit: 'RSS içeriğinden talep edilecek makale limiti'
form_user:
two_factor_description: "İki adımlı doğrulamayı aktifleştirdiğinizde, her yeni güvenilmeyen bağlantılarda size e-posta ile bir kod alacaksınız."
name_label: 'İsim'
email_label: 'E-posta'
twoFactorAuthentication_label: 'İki adımlı doğrulama'
form_password:
old_password_label: 'Eski şifre'
new_password_label: 'Yeni şifre'
repeat_new_password_label: 'Yeni şifrenin tekrarı'
form_rules:
# if_label: 'if'
# then_tag_as_label: 'then tag as'
# delete_rule_label: 'delete'
rule_label: 'Kural'
tags_label: 'Etiketler'
faq:
title: 'S.S.S.'
tagging_rules_definition_title: '« etiketleme kuralları » ne anlama geliyor?'
# 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.'
how_to_use_them_title: 'Bunu nasıl kullanırım?'
# 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 &lt;= 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 &gt;= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, github </i> »'
variables_available_title: 'Kurallar içerisinde hangi değişken ve operatörleri kullanabilirim?'
variables_available_description: 'Etiket kuralı oluşturmak istediğinizde aşağıdaki değişken ve operatörleri kullanabilirsin:'
meaning: 'Anlamı'
variable_description:
label: 'Değişken'
title: 'Makalenin başlığı'
url: 'Makalenin bağlantısı'
isArchived: 'Makale arşivlendi mi? Arşivlenmedi mi?'
isStarred: 'Makale favorilere eklendi mi? Eklenmedi mi?'
content: "Makalenin içeriği"
language: "Makalenin dili"
mimetype: "Makalenin mime türü"
readingTime: "Makalenin dakika cinsinden tahmini okuma süresi"
domainName: 'Makalenin bulunduğu internet sitesinin alan adı'
operator_description:
label: 'Operatör'
less_than: 'Küçüktür ve eşittir…'
strictly_less_than: 'Küçüktür…'
greater_than: 'Büyüktür ve eşittir…'
strictly_greater_than: 'Büyüktür…'
equal_to: 'Eşittir…'
not_equal_to: 'Eşit değildir…'
or: 'Bir kural veya birbaşkası'
and: 'Bir kural ve diğeri'
# matches: 'Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code>'
form_new_user:
username_label: 'Kullanıcı adı'
password_label: 'Şifre'
repeat_new_password_label: 'Yeni şifrenin tekrarı'
plain_password_label: '????'
email_label: 'E-posta'
# Tagging rules
Rule: "Kural"
Tags: "Etiketler"
FAQ: "S.S.S."
Variable: "Değişken"
Meaning: "Anlamı"
Operator: "Operatör"
"What does « tagging rules » mean?": "« etiketleme kuralları » ne anlama geliyor?"
"How do I use them?": "Bunu nasıl kullanırım?"
"Which variables and operators can I use to write rules?": "Kurallar içerisinde hangi değişken ve operatörleri kullanabilirim?"
"The following variables and operators can be used to create tagging rules:": "Etiket kuralı oluşturmak istediğinizde aşağıdaki değişken ve operatörleri kullanabilirsin:"
Title of the entry: "Makalenin başlığı"
URL of the entry: "Makalenin bağlantısı"
The domain name of the entry: "Makalenin bulunduğu internet sitesinin alan adı"
"The entry's content": "Makalenin içeriği"
"The entry's language": "Makalenin dili"
"The entry's mime-type": "Makalenin mime türü"
"The estimated entry's reading time, in minutes": "Makalenin dakika cinsinden tahmini okuma süresi"
"Whether the entry is archived or not": "Makale arşivlendi mi? Arşivlenmedi mi?"
"Whether the entry is starred or not": "Makale favorilere eklendi mi? Eklenmedi mi?"
"Less than…": "Küçüktür ve eşittir…"
"Strictly less than…": "Küçüktür…"
"Greater than…": "Büyüktür ve eşittir…"
"Strictly greater than…": "Büyüktür…"
"Equal to…": "Eşittir…"
"Not equal to…": "Eşit değildir…"
"One rule or another": "Bir kural veya birbaşkası"
"One rule and another": "Bir kural ve diğeri"
entry:
page_titles:
# unread: 'Unread entries'
# starred: 'Starred entries'
# archived: 'Archived entries'
# filtered: 'Filtered entries'
list:
number_on_the_page: '{0} Herhangi bir makale yok.|{1} Burada bir adet makale var.|]1,Inf[ Burada %count% adet makale var.'
reading_time: 'tahmini okuma süresi'
reading_time_minutes: 'tahmini okuma süresi: %readingTime% min'
reading_time_less_one_minute: 'tahmini okuma süresi: <small class="inferieur">&lt;</small> 1 min'
original_article: 'orijinal'
toogle_as_read: 'Okundu/okunmadı olarak işaretle'
toogle_as_star: 'Favorilere ekle/çıkar'
delete: 'Sil'
export_title: 'Dışa Aktar'
filters:
title: 'Filtreler'
status_label: 'Durum'
archived_label: 'Arşiv'
starred_label: 'Favori'
preview_picture_label: 'Resim önizlemesi varsa'
preview_picture_help: 'Resim önizlemesi'
language_label: 'Dil'
reading_time:
label: 'Dakika cinsinden okuma süresi'
from: 'başlangıç'
to: 'bitiş'
domain_label: 'Alan adı'
created_at:
label: 'Oluşturulma tarihi'
from: 'başlangıç'
to: 'bitiş'
action:
clear: 'Temizle'
filter: 'Filtrele'
view:
left_menu:
# back_to_top: 'Back to top'
back_to_homepage: 'Back'
set_as_read: 'Okundu olarak işaretle'
set_as_unread: 'Okunmadı olarak işaretle'
set_as_favorite: 'Favorilere ekle/çıkar'
view_original_article: 'Orijinal makale'
re_fetch_content: 'İçeriği yenile'
delete: 'Sil'
add_a_tag: 'Bir etiket ekle'
share_content: 'Paylaş'
share_email_label: 'E-posta'
download: 'İndir'
# print: 'Print'
problem:
label: 'Bir sorun mu var?'
description: 'Bu makalede herhangi bir yanlışlık mı var?'
edit_title: 'Başlığı düzenle'
original_article: 'orijinal'
# annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations'
new:
page_title: 'Yeni makaleyi kaydet'
placeholder: 'http://website.com'
form_new:
url_label: Url
edit:
page_title: 'Makaleyi düzenle'
title_label: 'Başlık'
url_label: 'Url'
is_public_label: 'Herkes tarafından erişime açık olsun mu?'
save_label: 'Kaydet'
# Entries
'estimated reading time': 'tahmini okuma süresi'
original: "orijinal"
Toggle mark as read: 'Okundu/okunmadı olarak işaretle'
Toggle favorite: 'Favorilere ekle/çıkar'
Delete: 'Sil'
about:
page_title: 'Hakkımızda'
top_menu:
who_behind_wallabag: "wallabag'in arkasındakiler"
getting_help: 'Yardım'
helping: 'wallabag destek olun'
# contributors: 'Contributors'
# third_party: 'Third-party libraries'
who_behind_wallabag:
developped_by: 'Geliştiriciler'
website: 'i̇nternet sitesi'
many_contributors: 'Ve katkıda bulunanlar ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">GitHub üzerinde</a>'
project_website: 'Proje internet sitesi'
license: 'Lisans'
version: 'Sürüm'
getting_help:
documentation: 'Dokümantasyon'
bug_reports: 'Sorun bildir'
support: '<a href="https://support.wallabag.org">Destek internet sitesinde</a> ya da <a href="https://github.com/wallabag/wallabag/issues">GitHub üzerinde</a>'
helping:
description: 'wallabag açık kaynak kodlu ve ücretsizdir. Bize destek ol :'
by_contributing: 'projemize katkıda bulunun :'
by_contributing_2: 'ihtiyacımız olanların listelendiği yapılacaklar listesi'
by_paypal: 'PayPal ile'
contributors:
# description: 'Thank you to contributors on wallabag web application'
third_party:
# description: 'Here are the list of third-party libraries used in wallabag (with their licenses):'
# package: 'Package'
license: 'Lisans'
# Filters
Filters: 'Filtreler'
Status: 'Durum'
Archived: 'Arşiv'
Starred: 'Favori'
Preview picture: 'Resim önizlemesi'
Has a preview picture: 'Resim önizlemesi varsa'
Reading time in minutes: 'Dakika cinsinden okuma süresi'
from: 'başlangıç'
to: 'bitiş'
website.com: 'internet-sitesi.com'
Domain name: 'Alan adı'
Creation date: 'Oluşturulma tarihi'
dd/mm/yyyy: 'dd/mm/aaaa'
Clear: 'Temizle'
Filter: 'Filtrele'
howto:
page_title: 'Yardım'
# page_description: 'There are several ways to save an article:'
top_menu:
browser_addons: 'Tarayıcı eklentileri'
mobile_apps: 'Mobil uygulamalar'
bookmarklet: 'Bookmarklet'
form:
description: 'Yeni makale kaydet'
browser_addons:
firefox: 'Standart Firefox Eklentisi'
chrome: 'Chrome Eklentisi'
mobile_apps:
android:
# via_f_droid: 'via F-Droid'
# via_google_play: 'via Google Play'
# ios: 'on the iTunes Store'
# windows: 'on the Microsoft Store'
bookmarklet:
description: "Bu bağlantı ile yer imlerinizi sürükleyip bırakarak wallabag'e ekleyebilirsiniz:"
# About
Who is behind wallabag: "wallabag'in arkasındakiler"
Getting help: "Yardım"
Helping wallabag: "wallabag destek olun"
Developed by: "Geliştiriciler:"
website: "İnternet sitesi"
And many others contributors ♥: "Ve katkıda bulunanlar ♥"
on GitHub: "GitHub üzerinde"
Project website: "Proje internet sitesi"
License: "Lisans"
Version: "Sürüm"
Documentation: "Dokümantasyon"
Bug reports: "Sorun bildir"
On our support website: "Destek internet sitesinde"
or: "ya da"
"wallabag is free and opensource. You can help us:": "wallabag açık kaynak kodlu ve ücretsizdir. Bize destek ol :"
"by contributing to the project:": "projemize katkıda bulunun :"
an issue lists all our needs: "ihtiyacımız olanların listelendiği yapılacaklar listesi"
via Paypal: "PayPal ile"
quickstart:
page_title: 'Hızlı başlangıç'
intro:
title: 'wallabag'
paragraph_1: "wallabag kurduğunuz için teşekkür ederiz. Bu sayfada biz size eşlik edecek ve ilginizi çekecek birkaç özellik göstereceğim."
paragraph_2: 'Bizi takip edin!'
configure:
title: 'Uygulamayı Yapılandırma'
language: 'Dili ve tasarımı değiştirme'
rss: 'RSS akışını aktifleştirme'
# tagging_rules: 'Write rules to automatically tag your articles'
admin:
# title: 'Administration'
# description: 'As an administrator, you have privileges on wallabag. You can:'
# new_user: 'Create a new user'
# analytics: 'Configure analytics'
# sharing: 'Enable some parameters about article sharing'
# export: 'Configure export'
# import: 'Configure import'
first_steps:
title: 'İlk adım'
new_article: 'İlk makalenizi kaydedin'
unread_articles: 'Ve bunu sınıflandırın!'
migrate:
title: 'Varolan servislerden veri aktarma'
description: "Kullanmakta olduğunuz farklı bir hizmet mi var? Biz size yardımcı olacak ve verilerinizi wallabag'e aktarmanıza yardımcı olacağız."
pocket: "Pocket üzerindeki verilerinizi wallabag'e aktarın"
wallabag_v1: "wallabag v1 üzerindeki verilerinizi wallabag'in yeni sürümüne aktarın"
wallabag_v2: "wallabag v2 üzerindeki verilerinizi wallabag'in yeni sürümüne aktarın"
developer:
# title: 'Developers'
# create_application: 'Create your third application'
docs:
title: 'Dokümantasyon'
# annotate: 'Annotate your article'
export: 'Makalelerinizi ePUB ya da PDF formatına çevirme'
search_filters: 'Makaleleri görüntülemek için arama motorlarını ve filteri kullanma'
# fetching_errors: 'What can I do if an article encounters errors during fetching?'
all_docs: 'Ve daha fazlası!'
support:
title: 'Destek'
description: 'Eğer yardıma ihtiyacınız varsa, biz her daim senin için burada olacağız.'
github: 'GitHub'
email: 'E-posta'
gitter: 'Gitter'
# Howto
Form: "Form"
Thanks to this form: "Yeni makale kaydet"
Browser addons: "Tarayıcı eklentileri"
Mobile apps: "Mobil uygulamalar"
Bookmarklet: "Bookmarklet"
Standard Firefox Add-On: "Standart Firefox Eklentisi"
Chrome Extension: "Chrome Eklentisi"
download the application: "uygulamayı indir"
"Drag &amp; drop this link to your bookmarks bar:": "Bu bağlantı ile yer imlerinizi sürükleyip bırakarak wallabag'e ekleyebilirsiniz:"
via F-Droid: "F-Droid"
via Google Play: "Google Play"
bag it!: "bag it!"
tag:
page_title: 'Etiketler'
list:
number_on_the_page: '{0} Herhangi bir etiket yok.|{1} Burada bir adet etiket var.|]1,Inf[ Burada %count% adet etiket var.'
# Flash messages
Information updated: "Bilgiler güncellendi"
"Config saved. Some parameters will be considered after disconnection.": "Yapılandırma ayarları kaydedildi. Bazı yapılandırmalar tekrar giriş yaptığınızda aktif olacaktır."
RSS information updated: "RSS bilgiler güncellendi"
Password updated: "Şifre güncellendi"
Entry starred: "Makale favorilere eklendi"
Entry unstarred: "Makale favorilerden çıkartıldı"
Entry archived: "Makale arşivlendi"
Entry unarchived: "Makale arşivden çıkartıldı"
Entry reloaded: "Makale içeriği yenilendi"
Entry deleted: "Makale silindi"
Entry saved: "Makale kaydedildi"
Tag added: "Etiket eklendi"
import:
page_title: 'İçe Aktar'
page_description: 'wallabag içe aktarma aracına hoşgeldiniz. Lütfen içe aktarmak istediğiiz önceki servisinizi seçin.'
action:
import_contents: 'İçe Aktar contents'
form:
# mark_as_read_title: 'Mark all as read?'
# mark_as_read_label: 'Mark all imported entries as read'
file_label: 'Dosya'
save_label: 'Dosyayı yükle'
pocket:
page_title: 'İçe Aktar > Pocket'
description: "Bu araç tüm Pocket verinizi içe aktarır. Pocket içeriklerin getirilmesine izin vermez, okunabilen içerikler wallabag tarafından yeniden getirilir."
config_missing:
# description: "Pocket import isn't configured."
# admin_message: 'You need to define %keyurls%a pocket_consumer_key%keyurle%.'
# user_message: 'Your server admin needs to define an API Key for Pocket.'
authorize_message: 'Pocket hesabınızda verilerinizi içe aktarabilmemiz için öncelikle aşağıdaki butona tıklayın. Daha sonra, getpocket.com üzerindeki uygulamamıza gereken izinleri verin. Hepsi bu kadar!'
connect_to_pocket: "Pocket'a bağlanın ve verilerinizi içe aktarın"
wallabag_v1:
page_title: 'İçe Aktar > Wallabag v1'
description: 'Bu araç wallabag v1 üzerindeki tüm makalelerinizi içe aktarır. Yapılandırma sayfasında, "Export your wallabag data" sekmesinden "JSON export" adımını izleyin. Bu adım size "wallabag-export-1-xxxx-xx-xx.json" isimli bir dosya verecektir.'
how_to: 'Aşağıdaki butona tıklayarak wallabag v1 tarafından dışa aktarılmış dosyanızı yükleyin.'
wallabag_v2:
page_title: 'İçe Aktar > Wallabag v2'
# 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.'
# Entry
Mark as read: 'Okundu olarak işaretle'
Mark as unread: 'Okunmadı olarak işaretle'
Favorite: 'Favorilere ekle/çıkar'
back: 'geri dön'
original article: 'Orijinal makale'
Add a tag: 'Bir etiket ekle'
Share: 'Paylaş'
Download: 'İndir'
Does this article appear wrong?: "Bu makalede herhangi bir yanlışlık mı var?"
Problems?: 'Bir sorun mu var?'
Edit title: "Başlığı düzenle"
"{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.": "{0} Herhangi bir makale yok.|{1} Burada bir adet makale var.|]1,Inf[ Burada %count% adet makale var."
"{0} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.": "{0} Herhangi bir etiket yok.|{1} Burada bir adet etiket var.|]1,Inf[ Burada %count% adet etiket var."
Reload content: "İçeriği yenile"
Edit an entry: "Makaleyi düzenle"
Title: "Başlık"
Is public: "Herkes tarafından erişime açık olsun mu?"
developer:
# page_title: 'Developer'
# welcome_message: 'Welcome to the wallabag API'
# documentation: 'Documentation'
# how_to_first_app: 'How to create my first application'
# full_documentation: 'View full API documentation'
# list_methods: 'List API methods'
# clients:
# title: 'Clients'
# create_new: 'Create a new client'
# existing_clients:
# title: 'Existing clients'
# field_id: 'Client ID'
# field_secret: 'Client secret'
# field_uris: 'Redirect URIs'
# field_grant_types: 'Grant type allowed'
# no_client: 'No client yet.'
# remove:
# warn_message_1: 'You have the ability to remove this client. This action is IRREVERSIBLE !'
# warn_message_2: "If you remove it, every app configured with that client won't be able to auth on your wallabag."
# action: 'Remove this client'
# client:
# page_title: 'Developer > New client'
# page_description: 'You are about to create a new client. Please fill the field below for the redirect URI of your application.'
# form:
# redirect_uris_label: 'Redirect URIs'
# save_label: 'Create a new client'
# action_back: 'Back'
# client_parameter:
# page_title: 'Developer > Client parameters'
# page_description: 'Here are your client parameters.'
# field_id: 'Client ID'
# field_secret: 'Client secret'
# back: 'Back'
# read_howto: 'Read the howto "Create my first application"'
# howto:
# page_title: 'Developer > How to create my first application'
# description:
# 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.'
# paragraph_2: 'You need a token to communicate between your 3rd application and wallabag API.'
# paragraph_3: 'To create this token, you need <a href="%link%">to create a new client</a>.'
# paragraph_4: 'Now, create your token (replace client_id, client_secret, username and password with the good values):'
# paragraph_5: 'The API will return a response like this:'
# paragraph_6: 'The access_token is useful to do a call to the API endpoint. For example:'
# paragraph_7: 'This call will return all the entries for your user.'
# paragraph_8: 'If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.'
# back: 'Back'
# Import
Import: "İçe Aktar"
"Import > Pocket": "İçe Aktar > Pocket"
"Import > Wallabag v1": "İçe Aktar > Wallabag v1"
Welcome to wallabag importer. Please select your previous service that you want to migrate.: "wallabag içe aktarma aracına hoşgeldiniz. Lütfen içe aktarmak istediğiiz önceki servisinizi seçin."
"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.": "Bu araç tüm Pocket verinizi içe aktarır. Pocket içeriklerin getirilmesine izin vermez, okunabilen içerikler wallabag tarafından yeniden getirilir."
"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.": "Bu araç wallabag v1 üzerindeki tüm makalelerinizi içe aktarır. Yapılandırma sayfasında, \"Export your wallabag data\" sekmesinden \"JSON export\" adımını izleyin. Bu adım size \"wallabag-export-1-xxxx-xx-xx.json\" isimli bir dosya verecektir."
"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.": "Pocket hesabınızda verilerinizi içe aktarabilmemiz için öncelikle aşağıdaki butona tıklayın. Daha sonra, getpocket.com üzerindeki uygulamamıza gereken izinleri verin. Hepsi bu kadar!"
Connect to Pocket and import data: "Pocket'a bağlanın ve verilerinizi içe aktarın"
Please select your wallabag export and click on the below button to upload and import it.: "Aşağıdaki butona tıklayarak wallabag v1 tarafından dışa aktarılmış dosyanızı yükleyin."
File: "Dosya"
Upload file: "Dosyayı yükle"
Import contents: "İçerikleri içe aktar"
validator:
# password_must_match: 'The password fields must match.'
# password_too_short: 'Password should by at least 8 chars long'
# password_wrong_value: 'Wrong value for your current password'
# item_per_page_too_high: 'This will certainly kill the app'
# rss_limit_too_hight: 'This will certainly kill the app'
# Quickstart
Welcome to wallabag!: "wallabag"
Quickstart: "Hızlı başlangıç"
We'll accompany you to visit wallabag and show you some features which can interess you.: "wallabag kurduğunuz için teşekkür ederiz. Bu sayfada biz size eşlik edecek ve ilginizi çekecek birkaç özellik göstereceğim."
Follow us!: "Bizi takip edin!"
Configure the application: "Uygulamayı Yapılandırma"
Change language and design: "Dili ve tasarımı değiştirme"
Enable RSS feeds: "RSS akışını aktifleştirme"
First steps: "İlk adım"
Save your first article: "İlk makalenizi kaydedin"
And classify it!: "Ve bunu sınıflandırın!"
Migrate from an existing service: "Varolan servislerden veri aktarma"
You're using an other service? We'll help you to retrieve your data on wallabag.: "Kullanmakta olduğunuz farklı bir hizmet mi var? Biz size yardımcı olacak ve verilerinizi wallabag'e aktarmanıza yardımcı olacağız."
Migrate from Pocket: "Pocket üzerindeki verilerinizi wallabag'e aktarın"
Migrate from wallabag v1: "wallabag v1 üzerindeki verilerinizi wallabag'in yeni sürümüne aktarın"
Full documentation: "Dokümantasyon"
Convert your articles into ePUB or PDF: "Makalelerinizi ePUB ya da PDF formatına çevirme"
See how you can look for an article by using search engine and filters: "Makaleleri görüntülemek için arama motorlarını ve filteri kullanma"
And so many other articles!: "Ve daha fazlası!"
Support: "Destek"
Social: "Sosyal"
If you need some help, we are here for you.: "Eğer yardıma ihtiyacınız varsa, biz her daim senin için burada olacağız."
On GitHub: "GitHub"
By email: "E-posta"
On Gitter: "Gitter"
Export: "Dışa Aktar"
"http://website": "http://internet-sitesi"
Take wallabag with you: "wallabag her an seninle"
about: "hakkımızda"
powered by: "powered by"
flashes:
config:
notice:
config_saved: 'Yapılandırma ayarları kaydedildi. Bazı yapılandırmalar tekrar giriş yaptığınızda aktif olacaktır.'
password_updated: 'Şifre güncellendi'
password_not_updated_demo: "In demonstration mode, you can't change password for this user."
user_updated: 'Bilgiler güncellendi'
rss_updated: 'RSS bilgiler güncellendi'
tagging_rules_updated: 'Tagging rules updated'
tagging_rules_deleted: 'Tagging rule deleted'
user_added: 'User "%username%" added'
rss_token_updated: 'RSS token updated'
entry:
notice:
entry_already_saved: 'Entry already saved on %date%'
entry_saved: 'Makale kaydedildi'
# entry_updated: 'Entry updated'
entry_reloaded: 'Makale içeriği yenilendi'
# entry_reload_failed: 'Failed to reload entry'
entry_archived: 'Makale arşivlendi'
entry_unarchived: 'Makale arşivden çıkartıldı'
entry_starred: 'Makale favorilere eklendi'
entry_unstarred: 'Makale favorilerden çıkartıldı'
entry_deleted: 'Makale silindi'
tag:
notice:
tag_added: 'Etiket eklendi'
import:
notice:
# failed: 'Import failed, please try again.'
# failed_on_file: 'Error while processing import. Please verify your import file.'
# summary: 'Import summary: %imported% imported, %skipped% already saved.'
developer:
notice:
# client_created: 'New client created.'
# client_deleted: 'Client deleted'

Some files were not shown because too many files have changed in this diff Show More