]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Merge pull request #1774 from wallabag/v2-key-translation
authorNicolas Lœuillet <nicolas@loeuillet.org>
Mon, 21 Mar 2016 11:47:57 +0000 (12:47 +0100)
committerNicolas Lœuillet <nicolas@loeuillet.org>
Mon, 21 Mar 2016 11:47:57 +0000 (12:47 +0100)
Switch to keys in translated files

115 files changed:
.travis.yml
app/config/config_test.yml
bin/php-cs-fixer [new symlink]
composer.json
docs/en/developer/translate.rst
docs/fr/developer/translate.rst
src/Wallabag/CoreBundle/Controller/ConfigController.php
src/Wallabag/CoreBundle/Controller/DeveloperController.php
src/Wallabag/CoreBundle/Controller/EntryController.php
src/Wallabag/CoreBundle/Controller/TagController.php
src/Wallabag/CoreBundle/Entity/Config.php
src/Wallabag/CoreBundle/Form/Type/ChangePasswordType.php
src/Wallabag/CoreBundle/Form/Type/ClientType.php
src/Wallabag/CoreBundle/Form/Type/ConfigType.php
src/Wallabag/CoreBundle/Form/Type/EditEntryType.php
src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php
src/Wallabag/CoreBundle/Form/Type/NewEntryType.php
src/Wallabag/CoreBundle/Form/Type/NewTagType.php
src/Wallabag/CoreBundle/Form/Type/NewUserType.php
src/Wallabag/CoreBundle/Form/Type/RssType.php
src/Wallabag/CoreBundle/Form/Type/TaggingRuleType.php
src/Wallabag/CoreBundle/Form/Type/UserInformationType.php
src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
src/Wallabag/CoreBundle/Resources/translations/messages.en.yml [new file with mode: 0644]
src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
src/Wallabag/CoreBundle/Resources/translations/validators.da.yml [deleted file]
src/Wallabag/CoreBundle/Resources/translations/validators.es.yml [deleted file]
src/Wallabag/CoreBundle/Resources/translations/validators.fa.yml [deleted file]
src/Wallabag/CoreBundle/Resources/translations/validators.fr.yml [deleted file]
src/Wallabag/CoreBundle/Resources/translations/validators.pl.yml [deleted file]
src/Wallabag/CoreBundle/Resources/translations/validators.ro.yml [deleted file]
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/client.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/client_parameters.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/howto_app.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/index.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/edit.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.xml.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entry.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/new.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/new_form.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/about.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/howto.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/quickstart.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/new_form.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/tags.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Developer/client.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Developer/client_parameters.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Developer/howto_app.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Developer/index.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/edit.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.xml.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/new.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/new_form.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Static/about.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Static/howto.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Static/quickstart.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Tag/new_form.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Tag/tags.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig
src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php
src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php
src/Wallabag/CoreBundle/Tests/Controller/SecurityControllerTest.php
src/Wallabag/CoreBundle/Tests/Controller/TagControllerTest.php
src/Wallabag/ImportBundle/Controller/PocketController.php
src/Wallabag/ImportBundle/Controller/WallabagV1Controller.php
src/Wallabag/ImportBundle/Controller/WallabagV2Controller.php
src/Wallabag/ImportBundle/Form/Type/UploadImportType.php
src/Wallabag/ImportBundle/Import/PocketImport.php
src/Wallabag/ImportBundle/Import/WallabagV1Import.php
src/Wallabag/ImportBundle/Import/WallabagV2Import.php
src/Wallabag/ImportBundle/Resources/views/Import/index.html.twig
src/Wallabag/ImportBundle/Resources/views/Pocket/index.html.twig
src/Wallabag/ImportBundle/Resources/views/WallabagV1/index.html.twig
src/Wallabag/ImportBundle/Resources/views/WallabagV2/index.html.twig
src/Wallabag/ImportBundle/Tests/Controller/PocketControllerTest.php
src/Wallabag/ImportBundle/Tests/Controller/WallabagV1ControllerTest.php
src/Wallabag/ImportBundle/Tests/Controller/WallabagV2ControllerTest.php
src/Wallabag/ImportBundle/Tests/Import/PocketImportTest.php
src/Wallabag/ImportBundle/Tests/Import/WallabagV1ImportTest.php
src/Wallabag/ImportBundle/Tests/Import/WallabagV2ImportTest.php
src/Wallabag/UserBundle/Resources/translations/wallabag_user.en.yml
src/Wallabag/UserBundle/Resources/translations/wallabag_user.fr.yml
src/Wallabag/UserBundle/Resources/translations/wallabag_user.tr.yml
src/Wallabag/UserBundle/Resources/views/Authentication/form.html.twig [moved from src/Wallabag/UserBundle/Resources/views/themes/material/Authentication/form.html.twig with 96% similarity]
src/Wallabag/UserBundle/Resources/views/ChangePassword/changePassword_content.html.twig [moved from src/Wallabag/UserBundle/Resources/views/themes/material/ChangePassword/changePassword_content.html.twig with 100% similarity]
src/Wallabag/UserBundle/Resources/views/Registration/checkEmail.html.twig [moved from src/Wallabag/UserBundle/Resources/views/themes/material/Registration/checkEmail.html.twig with 100% similarity]
src/Wallabag/UserBundle/Resources/views/Registration/confirmed.html.twig [moved from src/Wallabag/UserBundle/Resources/views/themes/material/Registration/confirmed.html.twig with 84% similarity]
src/Wallabag/UserBundle/Resources/views/Registration/register_content.html.twig [moved from src/Wallabag/UserBundle/Resources/views/themes/material/Registration/register_content.html.twig with 97% similarity]
src/Wallabag/UserBundle/Resources/views/Resetting/checkEmail.html.twig [moved from src/Wallabag/UserBundle/Resources/views/themes/material/Resetting/checkEmail.html.twig with 100% similarity]
src/Wallabag/UserBundle/Resources/views/Resetting/passwordAlreadyRequested.html.twig [moved from src/Wallabag/UserBundle/Resources/views/themes/material/Resetting/passwordAlreadyRequested.html.twig with 100% similarity]
src/Wallabag/UserBundle/Resources/views/Resetting/request_content.html.twig [moved from src/Wallabag/UserBundle/Resources/views/themes/material/Resetting/request_content.html.twig with 82% similarity]
src/Wallabag/UserBundle/Resources/views/Resetting/reset_content.html.twig [moved from src/Wallabag/UserBundle/Resources/views/themes/material/Resetting/reset_content.html.twig with 100% similarity]
src/Wallabag/UserBundle/Resources/views/Security/login.html.twig [moved from src/Wallabag/UserBundle/Resources/views/themes/material/Security/login.html.twig with 75% similarity]
src/Wallabag/UserBundle/Resources/views/TwoFactor/email_auth_code.html.twig
src/Wallabag/UserBundle/Resources/views/layout.html.twig [moved from src/Wallabag/UserBundle/Resources/views/themes/material/layout.html.twig with 88% similarity]
src/Wallabag/UserBundle/Resources/views/themes/baggy/Authentication/form.html.twig [deleted file]
src/Wallabag/UserBundle/Resources/views/themes/baggy/Registration/register.html.twig [deleted file]
src/Wallabag/UserBundle/Resources/views/themes/baggy/Registration/register_content.html.twig [deleted file]
src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/checkEmail.html.twig [deleted file]
src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/request.html.twig [deleted file]
src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/request_content.html.twig [deleted file]
src/Wallabag/UserBundle/Resources/views/themes/baggy/Security/login.html.twig [deleted file]
src/Wallabag/UserBundle/Resources/views/themes/baggy/layout.html.twig [deleted file]

index 5741b533a51aeb7d893c62c024daba1898f7b6ff..e2bf90cab5be8a83772a2d51c5a66d5dafe783e5 100644 (file)
@@ -11,6 +11,7 @@ addons:
 
 # cache vendor dirs
 cache:
+    apt: true
     directories:
         - vendor
         - $HOME/.composer/cache
@@ -28,6 +29,9 @@ env:
 
 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
@@ -53,3 +57,5 @@ script:
     - travis_wait composer install --no-interaction --no-progress --prefer-dist -o
     - 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 ; fi;
index 2fd489bea4a4ef1f0c1ed68562e84c22fdfe9645..d43d872aba7cc3a29f33eb99599d799de86b87d9 100644 (file)
@@ -7,6 +7,8 @@ framework:
         storage_id: session.storage.mock_file
     profiler:
         collect: false
+    translator:
+        enabled: false
 
 web_profiler:
     toolbar: false
diff --git a/bin/php-cs-fixer b/bin/php-cs-fixer
new file mode 120000 (symlink)
index 0000000..902e8f5
--- /dev/null
@@ -0,0 +1 @@
+../vendor/fabpot/php-cs-fixer/php-cs-fixer
\ No newline at end of file
index a1a7ebb49654d152d80fc1dbce89d71d2db65319..1abf6f20b0eef9e2cc341655a6f0c76fb96ef036 100644 (file)
@@ -86,7 +86,8 @@
         "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": [
index 33b0ebdb1dfc6738c5a691a4f49e979a62d059a9..39478fd506fa886e98098f347ce6b160a2dec257 100644 (file)
@@ -14,7 +14,7 @@ Translation files
 
 You can find translation files here: https://github.com/wallabag/wallabag/tree/v2/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:
index 87e78cb4bd82576ba7e87f86a842d6300ca5d06b..410aafe62f9000f2753c41ab251f486efd8fdc05 100644 (file)
@@ -15,7 +15,7 @@ Fichiers de traductions
 
 Les principaux fichiers de traduction se trouvent ici : https://github.com/wallabag/wallabag/tree/v2/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 :
index 1930a2ae4357c30997d3c2a9a97148e9bdacc7a3..779be2689897a3344a279f4b667acbc03b0cffbe 100644 (file)
@@ -45,7 +45,7 @@ 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'));
@@ -57,9 +57,9 @@ class ConfigController extends Controller
 
         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);
@@ -82,7 +82,7 @@ class ConfigController extends Controller
 
             $this->get('session')->getFlashBag()->add(
                 'notice',
-                'Information updated'
+                'flashes.config.notice.user_updated'
             );
 
             return $this->redirect($this->generateUrl('config').'#set3');
@@ -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');
@@ -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');
@@ -147,7 +147,7 @@ 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', array('%username%' => $newUser->getUsername()))
             );
 
             return $this->redirect($this->generateUrl('config').'#set6');
@@ -192,7 +192,7 @@ class ConfigController extends Controller
 
         $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');
index e5cfd83c656b67209d3f78d87ae3b5d56543729f..7cb0ead257bc23fc2d05e8f40c5482b3555965a9 100644 (file)
@@ -49,7 +49,7 @@ class DeveloperController extends Controller
 
             $this->get('session')->getFlashBag()->add(
                 'notice',
-                'New client created.'
+                'flashes.developer.notice.client_created'
             );
 
             return $this->render('WallabagCoreBundle:Developer:client_parameters.html.twig', array(
@@ -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'));
index 0fae3a0ff1d49687749a6cb802de2d5686a151cf..1a0b80ac589fd8eed9b3c363274640d7c5316171 100644 (file)
@@ -55,7 +55,7 @@ class EntryController extends Controller
             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', array('%date%' => $existingEntry->getCreatedAt()->format('d-m-Y')))
                 );
 
                 return $this->redirect($this->generateUrl('view', array('id' => $existingEntry->getId())));
@@ -64,7 +64,7 @@ class EntryController extends Controller
             $this->updateEntry($entry);
             $this->get('session')->getFlashBag()->add(
                 'notice',
-                'Entry saved'
+                'flashes.entry.notice.entry_saved'
             );
 
             return $this->redirect($this->generateUrl('homepage'));
@@ -128,7 +128,7 @@ 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())));
@@ -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(
@@ -334,9 +334,14 @@ 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'));
@@ -359,9 +364,14 @@ 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'));
@@ -394,7 +404,7 @@ 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
index 7b34939d2495847074fbf270f436ff6849d4580e..56e5195c1fc0075af5d9896416a5c9f5e5965ee3 100644 (file)
@@ -43,7 +43,7 @@ class TagController extends Controller
 
             $this->get('session')->getFlashBag()->add(
                 'notice',
-                'Tag added'
+                'flashes.tag.notice.tag_added'
             );
 
             return $this->redirect($this->generateUrl('view', array('id' => $entry->getId())));
index e18b543b19070c5271d1ffc9a13f05e341a6abcd..a25656d3b36597a38661b050f5bcebe95a071eb7 100644 (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,7 +68,7 @@ class Config
      * @Assert\Range(
      *      min = 1,
      *      max = 100000,
-     *      maxMessage = "This will certainly kill the app"
+     *      maxMessage = "validator.rss_limit_too_hight"
      * )
      */
     private $rssLimit;
index 7d05a5d81442cb5f3ba04852f7c33b3fcd8b47fc..841af51e0d20d42590affd9e20a6d45f30dcdd32 100644 (file)
@@ -16,23 +16,27 @@ class ChangePasswordType extends AbstractType
     {
         $builder
             ->add('old_password', PasswordType::class, array(
-                'constraints' => new UserPassword(array('message' => 'Wrong value for your current password')),
+                'constraints' => new UserPassword(array('message' => 'validator.password_wrong_value')),
+                'label' => 'config.form_password.old_password_label',
             ))
             ->add('new_password', RepeatedType::class, array(
                 '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'),
+                'first_options' => array('label' => 'config.form_password.new_password_label'),
+                'second_options' => array('label' => 'config.form_password.repeat_new_password_label'),
                 'constraints' => array(
                     new Constraints\Length(array(
                         'min' => 8,
-                        'minMessage' => 'Password should by at least 8 chars long',
+                        'minMessage' => 'validator.password_too_short',
                     )),
                     new Constraints\NotBlank(),
                 ),
+                'label' => 'config.form_password.new_password_label',
+            ))
+            ->add('save', SubmitType::class, array(
+                'label' => 'config.form.save',
             ))
-            ->add('save', SubmitType::class)
         ;
     }
 
index dd9347150582f22a0bf1e1a7cd3a60432be843a0..9f6204147094830fcd252392b85d42b1cd70ba40 100644 (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, array('required' => true, 'label' => 'developer.client.form.redirect_uris_label'))
+            ->add('save', SubmitType::class, array('label' => 'developer.client.form.save_label'))
         ;
 
         $builder->get('redirect_uris')
index 0a5ea6cc8f37397f0c7484dfe1d2962851c8a075..b30b4706af4a750ae7548f413a5a4988b0392661 100644 (file)
@@ -33,21 +33,28 @@ class ConfigType extends AbstractType
             ->add('theme', ChoiceType::class, array(
                 'choices' => array_flip($this->themes),
                 'choices_as_values' => true,
+                'label' => 'config.form_settings.theme_label',
+            ))
+            ->add('items_per_page', null, array(
+                'label' => 'config.form_settings.items_per_page_label',
             ))
-            ->add('items_per_page')
             ->add('reading_speed', ChoiceType::class, array(
+                'label' => 'config.form_settings.reading_speed.label',
                 'choices' => array(
-                    'I read ~100 words per minute' => '0.5',
-                    'I read ~200 words per minute' => '1',
-                    'I read ~300 words per minute' => '1.5',
-                    'I read ~400 words per minute' => '2',
+                    '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, array(
                 'choices' => array_flip($this->languages),
                 'choices_as_values' => true,
+                'label' => 'config.form_settings.language_label',
+            ))
+            ->add('save', SubmitType::class, array(
+                'label' => 'config.form.save',
             ))
-            ->add('save', SubmitType::class)
         ;
     }
 
index 2b1e1ef43c76a0c744a37ee6f985b3826ca70e4f..23d7b23984d3e4059695d3fd4c64ea7f588aab0f 100644 (file)
@@ -14,9 +14,22 @@ 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, array(
+                'required' => true,
+                'label' => 'entry.edit.title_label',
+            ))
+            ->add('is_public', CheckboxType::class, array(
+                'required' => false,
+                'label' => 'entry.edit.is_public_label',
+            ))
+            ->add('url', TextType::class, array(
+                'disabled' => true,
+                'required' => false,
+                'label' => 'entry.edit.url_label',
+            ))
+            ->add('save', SubmitType::class, array(
+                'label' => 'entry.edit.save_label',
+            ))
         ;
     }
 
index ee10bc8b517135deac7303beea15fa7c00e2d11b..ec36503b721fe84a6fa3738c6a5f8c5d8bc2cc17 100644 (file)
@@ -34,7 +34,9 @@ class EntryFilterType extends AbstractType
     public function buildForm(FormBuilderInterface $builder, array $options)
     {
         $builder
-            ->add('readingTime', NumberRangeFilterType::class)
+            ->add('readingTime', NumberRangeFilterType::class, array(
+                'label' => 'entry.filters.reading_time.label',
+            ))
             ->add('createdAt', DateRangeFilterType::class, array(
                     'left_date_options' => array(
                         'attr' => array(
@@ -50,6 +52,7 @@ class EntryFilterType extends AbstractType
                         'format' => 'dd/MM/yyyy',
                         'widget' => 'single_text',
                     ),
+                    'label' => 'entry.filters.created_at.label',
                 )
             )
             ->add('domainName', TextFilterType::class, array(
@@ -62,9 +65,14 @@ class EntryFilterType extends AbstractType
 
                     return $filterQuery->createCondition($expression);
                 },
+                'label' => 'entry.filters.domain_label',
+            ))
+            ->add('isArchived', CheckboxFilterType::class, array(
+                'label' => 'entry.filters.archived_label',
+            ))
+            ->add('isStarred', CheckboxFilterType::class, array(
+                'label' => 'entry.filters.starred_label',
             ))
-            ->add('isArchived', CheckboxFilterType::class)
-            ->add('isStarred', CheckboxFilterType::class)
             ->add('previewPicture', CheckboxFilterType::class, array(
                 'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
                     if (false === $values['value']) {
@@ -75,10 +83,12 @@ class EntryFilterType extends AbstractType
 
                     return $filterQuery->createCondition($expression);
                 },
+                'label' => 'entry.filters.preview_picture_label',
             ))
             ->add('language', ChoiceFilterType::class, array(
                 'choices' => array_flip($this->repository->findDistinctLanguageByUser($this->user->getId())),
                 'choices_as_values' => true,
+                'label' => 'entry.filters.language_label',
             ))
         ;
     }
index fbce13f1fe0cd97b73f29bde1b4cc4ebfe4bb840..69fab6fbc1055f6c06755457d4459a69e3aacf1a 100644 (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,8 +12,10 @@ 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, array(
+                'required' => true,
+                'label' => 'entry.new.form_new.url_label',
+            ))
         ;
     }
 
index 0f5590311dbd9cba91bf29a1b21cd5ec56968171..c7568de772ffe4c75d86cc8b9ea4e9af8d8f44d5 100644 (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;
@@ -14,7 +13,6 @@ class NewTagType extends AbstractType
     {
         $builder
             ->add('label', TextType::class, array('required' => true))
-            ->add('save', SubmitType::class)
         ;
     }
 
index 6eb0e63f7f46cc2bbba2807c474a3083e80f0d3d..60fcc20c625c7d283eda3b4478ca103d33c59a17 100644 (file)
@@ -17,22 +17,30 @@ class NewUserType extends AbstractType
     public function buildForm(FormBuilderInterface $builder, array $options)
     {
         $builder
-            ->add('username', TextType::class, array('required' => true))
+            ->add('username', TextType::class, array(
+                'required' => true,
+                'label' => 'config.form_new_user.username_label',
+            ))
             ->add('plainPassword', RepeatedType::class, array(
                 'type' => PasswordType::class,
-                'invalid_message' => 'The password fields must match',
-                'first_options' => array('label' => 'Password'),
-                'second_options' => array('label' => 'Repeat new password'),
+                'invalid_message' => 'validator.password_must_match',
+                'first_options' => array('label' => 'config.form_new_user.password_label'),
+                'second_options' => array('label' => 'config.form_new_user.repeat_new_password_label'),
                 'constraints' => array(
                     new Constraints\Length(array(
                         'min' => 8,
-                        'minMessage' => 'Password should by at least 8 chars long',
+                        'minMessage' => 'validator.password_too_short',
                     )),
                     new Constraints\NotBlank(),
                 ),
+                'label' => 'config.form_new_user.plain_password_label',
+            ))
+            ->add('email', EmailType::class, array(
+                'label' => 'config.form_new_user.email_label',
+            ))
+            ->add('save', SubmitType::class, array(
+                'label' => 'config.form.save',
             ))
-            ->add('email', EmailType::class)
-            ->add('save', SubmitType::class)
         ;
     }
 
index def8782cc12261afe35d57e8555d60ebfff474ac..a9f68e542019889326386b2ae1300157cfd22e79 100644 (file)
@@ -12,8 +12,12 @@ class RssType extends AbstractType
     public function buildForm(FormBuilderInterface $builder, array $options)
     {
         $builder
-            ->add('rss_limit')
-            ->add('save', SubmitType::class)
+            ->add('rss_limit', null, array(
+                'label' => 'config.form_rss.rss_limit',
+            ))
+            ->add('save', SubmitType::class, array(
+                'label' => 'config.form.save',
+            ))
         ;
     }
 
index 5815b8c66b9af96d1a5bdfb7e30315acb5a4988e..cfee21f17cfabb06eea0e2ac51a0158190ddbe12 100644 (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, array(
+                'required' => true,
+                'label' => 'config.form_rules.rule_label',
+            ))
+            ->add('save', SubmitType::class, array(
+                'label' => 'config.form.save',
+            ))
         ;
 
         $tagsField = $builder
-            ->create('tags', TextType::class)
+            ->create('tags', TextType::class, array(
+                'label' => 'config.form_rules.tags_label',
+            ))
             ->addModelTransformer(new StringToListTransformer(','));
 
         $builder->add($tagsField);
index f491b0ae3c16cd2dd8aa023565f1a2b52a98c9cb..799ea39e6871e478f39fa2ed3c2b6328907f103f 100644 (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, array(
+                'label' => 'config.form_user.name_label',
+            ))
+            ->add('email', EmailType::class, array(
+                'label' => 'config.form_user.email_label',
+            ))
+            ->add('twoFactorAuthentication', CheckboxType::class, array(
+                'required' => false,
+                'label' => 'config.form_user.twoFactorAuthentication_label',
+            ))
+            ->add('save', SubmitType::class, array(
+                'label' => 'config.form.save',
+            ))
             ->remove('username')
             ->remove('plainPassword')
         ;
index d3311d3a8f60284ced4faf8c883e311d7e4fb048..40ae4e5a25a84725614ad51f711f24f91baa5cb2 100644 (file)
-#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'
+        # archive: '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'
+    # 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'
index 8b75594c982d67edc17e8e354b371cbd04be23e2..34f567b1e74c5e3c1fe41ebd1ba6d448c67d4e5f 100644 (file)
-#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: 'Welcome to wallabag!'
+        keep_logged_in: 'Angemeldet bleiben'
+        forgot_password: 'Kennwort vergessen?'
+        submit: 'Anmelden'
+        # register: 'Register'
+        username: 'Benutzername'
+        password: 'Kennwort'
+        # cancel: 'Cancel'
+    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: 'Create an account'
+        # go_to_account: 'Go to your 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: 'Internal Settings'
+        # import: 'Import'
+        howto: 'How-to'
+        # developer: 'Developer'
+        logout: 'Abmelden'
+        about: 'Über'
+        search: 'Suche'
+        # save_link: 'Save a link'
+        back_to_unread: 'Zurück zu ungelesenen Artikeln'
+    top:
+        add_new_entry: 'Neuen Artikel hinzufügen'
+        search: 'Suche'
+        filter_entries: 'Artikel filtern'
+        # export: 'Export'
+    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: 'Take wallabag with you'
+        # social: 'Social'
+        # powered_by: 'powered by'
+        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: 'Config'
+    tab_menu:
+        settings: 'Einstellungen'
+        rss: 'RSS'
+        user_info: 'Benutzer-Information'
+        password: 'Kennwort'
+        # rules: 'Tagging rules'
+        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: '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: '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: '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: 'E-Mail-Adresse'
+        # twoFactorAuthentication_label: 'Two factor authentication'
+    form_password:
+        old_password_label: 'Altes Kennwort'
+        new_password_label: 'Neues Kennwort'
+        repeat_new_password_label: 'Neues Kennwort wiederholen'
+    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: '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: 'Unread entries'
+        # starred: 'Starred entries'
+        # archive: '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: '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: 'Export'
+    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: 'Back to top'
+            back_to_homepage: 'Zurück'
+            set_as_read: 'Als gelesen markieren'
+            # set_as_unread: 'Mark as unread'
+            set_as_favorite: 'Favorisieren'
+            view_original_article: 'Original-Artikel'
+            # re_fetch_content: 'Re-fetch content'
+            delete: 'Löschen'
+            add_a_tag: 'Tag hinzufügen'
+            share_content: 'Teilen'
+            # share_email_label: 'Email'
+            download: 'Herunterladen'
+            # print: 'Print'
+            problem:
+                label: 'Probleme?'
+                description: 'Erscheint dieser Artikel falsch?'
+        edit_title: 'Titel ändern'
+        original_article: 'original'
+        # annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations'
+    new:
+        page_title: 'Neuen Artikel speichern'
+        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: '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: 'Contributors'
+        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: '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: '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: 'There are several ways to save an article:'
+    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: 'on the iTunes Store'
+        # windows: 'on the 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: '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: "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} There is no tag.|{1} There is one tag.|]1,Inf[ There are %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: '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'
+    # 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: 'Konfiguration gespeichert. Einige Einstellungen werden erst nach einer erneuten Anmeldung übernommen.'
+            password_updated: 'Kennwort aktualisiert'
+            # password_not_updated_demo: "In demonstration mode, you can't change password for this user."
+            user_updated: 'Information aktualisiert'
+            rss_updated: 'RSS-Informationen aktualisiert'
+            # 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 archiviert'
+            entry_unarchived: 'Artikel dearchiviert'
+            entry_starred: 'Artikel favorisiert'
+            entry_unstarred: 'Artikel defavorisiert'
+            entry_deleted: 'Artikel gelöscht'
+    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'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
new file mode 100644 (file)
index 0000000..1e49d4b
--- /dev/null
@@ -0,0 +1,424 @@
+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'
+        archive: '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: 'Orignal 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'
+    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'
index b666f2df410091e5b67409e16a174b57d165b549..9b32d0386595bae6a3b29ee119862224691889c8 100644 (file)
-#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: 'Mantenme conectado'
+        forgot_password: '¿Ha olvidado su contraseña?'
+        submit: 'Conectarse'
+        register: 'Registrarse'
+        username: 'Nombre de usuario'
+        password: 'Contraseña'
+        # cancel: 'Cancel'
+    resetting:
+        description: "Introduce tu dirección de email y le enviaremos las instrucciones para resetear la contraseña"
+    register:
+        # page_title: 'Create an account'
+        # go_to_account: 'Go to your account'
 
-# 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 los artículos'
+        config: 'Configuración'
+        tags: 'Tags'
+        internal_settings: 'Configuración interna'
+        import: 'Importar'
+        howto: 'Ayuda'
+        # developer: 'Developer'
+        logout: 'Desconectarse'
+        about: 'Acerca de'
+        search: 'Buscar'
+        # save_link: 'Save a link'
+        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: 'Introduce tu 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: 'Llevate wallabag contigo'
+        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: '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: '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: 'Resetear 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: 'if'
+        # then_tag_as_label: 'then tag as'
+        # delete_rule_label: 'delete'
+        rule_label: 'Regla'
+        tags_label: 'Tags'
+        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 />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_to_use_them_title: '¿Cómo se utilizan?'
+            # 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: '¿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 idoma 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 O otra'
+                and: 'Una regla Y la otra'
+                matches: 'Prueba si un <i>sujeto</i> corresponde a una <i>busqueda</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: 'Unread entries'
+        # starred: 'Starred entries'
+        # archive: 'Archived entries'
+        # filtered: 'Filtered entries'
+    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 cómo leído/ no leído'
+        toogle_as_star: 'Marcar cómo 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 cómo 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 de desarrollo de wallabag'
+        getting_help: 'Conseguir ayuda'
+        helping: 'Ayudar a wallabag'
+        contributors: 'Contribuidores'
+        third_party: 'Librerías de terceeros'
+    who_behind_wallabag:
+        developped_by: 'Desarrollado por'
+        website: 'Sitio web'
+        many_contributors: 'Y muchos otros contribuidores ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">en Github</a>'
+        project_website: 'Web del proyecto'
+        license: 'Licencia'
+        version: 'Version'
+    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 contribuidores 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: 'There are several ways to save an article:'
+    top_menu:
+        browser_addons: 'Extensiones de navigador'
+        mobile_apps: 'Applicaciones 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: 'on the iTunes Store'
+        # windows: 'on the Microsoft Store'
+    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: 'Tags'
+    list:
+        number_on_the_page: '{0} No hay ningun tag.|{1} Hay un tag.|]1,Inf[ Hay %count% tags.'
 
-# 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'
+    # 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'
index e0ef31020b181339ec6544d48978710d4c90d796..97f52a78415305ac5315198b9a4cc7b04d3427d1 100644 (file)
-#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: 'Welcome to wallabag!'
+        keep_logged_in: 'مرا به خاطر بسپار'
+        forgot_password: ' رمزتان را گم کرده‌اید؟'
+        submit: 'ورود'
+        # register: 'Register'
+        username: 'نام کاربری'
+        password: 'رمز'
+        # cancel: 'Cancel'
+    resetting:
+        description: "نشانی ایمیل خود را بنویسید تا راهنمای تغییر رمز را برایتان بفرستیم."
+    register:
+        # page_title: 'Create an account'
+        # go_to_account: 'Go to your account'
 
-# Menu
-unread: 'خوانده‌نشده'
-starred: 'برگزیده'
-archive: 'بایگانی'
-all: 'همه'
-tags: 'برچسب‌ها'
-config: 'پیکربندی'
-howto: 'خودآموز'
-logout: 'خروج'
-Filtered: 'فیلترشده'
-About: 'درباره'
+menu:
+    left:
+        unread: 'خوانده‌نشده'
+        starred: 'برگزیده'
+        archive: 'بایگانی'
+        all_articles: 'همه'
+        config: 'پیکربندی'
+        tags: 'برچسب‌ها'
+        # internal_settings: 'Internal Settings'
+        # import: 'Import'
+        howto: 'خودآموز'
+        # developer: 'Developer'
+        logout: 'خروج'
+        about: 'درباره'
+        search: 'جستجو'
+        # save_link: 'Save a link'
+        back_to_unread: 'بازگشت به خوانده‌نشده‌ها'
+    top:
+        add_new_entry: 'افزودن مقالهٔ تازه'
+        search: 'جستجو'
+        filter_entries: 'فیلترکردن مقاله‌ها'
+        # export: '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: 'Take wallabag with you'
+        # social: 'Social'
+        # powered_by: '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: 'Tagging rules'
+        new_user: 'افزودن کاربر'
+    form:
+        save: 'ذخیره'
+    form_settings:
+        theme_label: 'پوسته'
+        items_per_page_label: 'تعداد مقاله در هر صفحه'
+        language_label: 'زبان'
+        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 در اختیارتان می‌گذارد، می‌توانید مقاله‌های ذخیره‌شده را در نرم‌افزار آر-اس-اس دلخواه خود بخوانید. برای این کار نخست باید یک کد بسازید.'
+        token_label: 'کد آر-اس-اس'
+        no_token: 'بدون کد'
+        token_create: 'کد خود را بسازید'
+        token_reset: 'بازنشانی کد'
+        rss_links: 'پیوند آر-اس-اس'
+        rss_link:
+            unread: 'خوانده‌نشده'
+            starred: 'برگزیده'
+            archive: 'بایگانی'
+        rss_limit: 'محدودیت آر-اس-اس'
+    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: 'نام'
+        email_label: 'نشانی ایمیل'
+        # twoFactorAuthentication_label: 'Two factor authentication'
+    form_password:
+        old_password_label: 'رمز قدیمی'
+        new_password_label: 'رمز تازه'
+        repeat_new_password_label: 'رمز تازه را دوباره بنویسید'
+    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: 'نام کاربری'
+        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: 'Unread entries'
+        # starred: 'Starred entries'
+        # archive: '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: 'زمان تخمینی برای خواندن'
+        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: 'Export'
+    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 top'
+            back_to_homepage: 'بازگشت'
+            set_as_read: 'خوانده‌شده'
+            # set_as_unread: 'Mark as unread'
+            set_as_favorite: 'برگزیده'
+            view_original_article: 'مقالهٔ اصلی'
+            # re_fetch_content: 'Re-fetch content'
+            delete: 'پاک کردن'
+            add_a_tag: 'افزودن برچسب'
+            share_content: 'هم‌رسانی'
+            share_email_label: 'نشانی ایمیل'
+            download: 'بارگیری'
+            # print: 'Print'
+            problem:
+                label: 'مشکلات؟'
+                description: 'آیا مقاله نادرست نشان داده شده؟'
+        edit_title: 'ویرایش عنوان'
+        original_article: 'original'
+        # annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations'
+    new:
+        page_title: 'ذخیرهٔ مقالهٔ تازه'
+        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: 'ذخیره'
 
-# 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: 'Contributors'
+        # third_party: 'Third-party libraries'
+    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: '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: 'پروانه'
 
-# 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: 'There are several ways to save an article:'
+    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: '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: "اطلاعات به‌روز شد"
-"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} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.'
 
-# Entry
-Mark as read: 'خوانده‌شده'
-Favorite: 'برگزیده'
-back: 'بازگشت'
-original article: 'مقالهٔ اصلی'
-Add a tag: 'افزودن برچسب'
-Share: 'هم‌رسانی'
-Download: 'بارگیری'
-Does this article appear wrong?: "آیا مقاله نادرست نشان داده شده؟"
-Problems?: 'مشکلات؟'
-Edit title: "ویرایش عنوان"
+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'
+    # 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: '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: 'پیکربندی ذخیره شد. برخی از تنظیمات پس از این که قطع شدید اعمال می‌شود.'
+            password_updated: 'رمز به‌روز شد'
+            # password_not_updated_demo: "In demonstration mode, you can't change password for this user."
+            user_updated: 'اطلاعات به‌روز شد'
+            rss_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_unarchived: 'مقاله از بایگانی درآمد'
+            entry_starred: 'مقاله برگزیده شد'
+            entry_unstarred: 'مقاله نابرگزیده شد'
+            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'
index 7c6ad07e8dc105d31bb45333dc79fcdd5939f1a3..56172463848a493f6b792297d018cc40262749e6 100644 (file)
-#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"
-Reading speed: "Vitesse de lecture"
-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."
-"I read ~100 words per minute": "Je lis environ 100 mots par minute"
-"I read ~200 words per minute": "Je lis environ 200 mots par minute"
-"I read ~300 words per minute": "Je lis environ 300 mots par minute"
-"I read ~400 words per minute": "Je lis environ 400 mots par minute"
-"You can use online tools to estimate your reading speed": "Vous pouvez utiliser un outil en ligne pour estimer votre vitesse de lecture"
-"like this one": "comme celui-ci"
+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'
+        archive: '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"
+    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é'
index 61f05c89d1eb6f5624369f56baf247bc98f1660b..daeac4bf8148c776d78c9fcdc857f9bab5453645 100644 (file)
-#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: 'Welcome to wallabag!'
+        keep_logged_in: 'Zapamiętaj mnie'
+        forgot_password: 'Zapomniałeś hasła'
+        submit: 'Loguj'
+        # register: 'Register'
+        username: 'Nazwa użytkownika'
+        password: 'Hasło'
+        # cancel: 'Cancel'
+    resetting:
+        description: "Wpisz swój adres email poniżej. Wyślemy Ci instrukcję resetowania hasła"
+    register:
+        # page_title: 'Create an account'
+        # go_to_account: 'Go to your account'
 
-# 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: 'Internal Settings'
+        # import: 'Import'
+        howto: 'Howto'
+        # developer: 'Developer'
+        logout: 'Wyloguj'
+        about: 'O nas'
+        search: 'Szukaj'
+        # save_link: 'Save a link'
+        back_to_unread: 'Powrót do nieprzeczytanych artykułów'
+    top:
+        add_new_entry: 'Dodaj nowy wpis'
+        search: 'Szukaj'
+        filter_entries: 'Filtruj wpisy'
+        # export: 'Export'
+    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: 'Take wallabag with you'
+        # social: 'Social'
+        # powered_by: 'powered by'
+        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: 'Settings'
+        rss: 'Kanał RSS'
+        user_info: 'Informacje o użytkowniku'
+        password: 'Hasło'
+        # rules: 'Tagging rules'
+        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: '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: '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: "Enabling two factor authentication means you'll receive an email with a code on every new untrusted connexion"
+        name_label: 'Nazwa'
+        email_label: 'Adres email'
+        # twoFactorAuthentication_label: 'Two factor authentication'
+    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: 'if'
+        # then_tag_as_label: 'then tag as'
+        delete_rule_label: 'usuń'
+        # 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: 'Nazwa użytkownika'
+        password_label: 'Hasło'
+        repeat_new_password_label: 'Powtórz nowe hasło'
+        plain_password_label: '????'
+        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: 'Unread entries'
+        # starred: 'Starred entries'
+        # archive: '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: '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: 'Back to top'
+            back_to_homepage: 'Cofnij'
+            set_as_read: 'Oznacz jako przeczytane'
+            # set_as_unread: 'Mark as unread'
+            set_as_favorite: 'Ulubione'
+            view_original_article: 'Oryginalny artykuł'
+            # re_fetch_content: 'Re-fetch content'
+            delete: 'Usuń'
+            add_a_tag: 'Dodaj tag'
+            share_content: 'Udostępnij'
+            share_email_label: 'Adres email'
+            download: 'Pobierz'
+            # print: 'Print'
+            problem:
+                label: 'Problemy'
+                description: 'Czy ten artykuł wygląda źle?'
+        edit_title: 'Edytuj tytuł'
+        original_article: 'oryginalny'
+        # annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations'
+    new:
+        page_title: 'Zapisz nowy wpis'
+        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: '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: 'Contributors'
+        # third_party: 'Third-party libraries'
+    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 naszeej 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: '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: '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: 'There are several ways to save an article:'
+    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 rozszerzenia dla Firefox'
+        chrome: 'Rozszerzenie dla Chrome'
+    mobile_apps:
+        android:
+            via_f_droid: 'przez F-Droid'
+            via_google_play: 'przez Google Play'
+        ios: 'przez iTunes Store'
+        windows: 'przez 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: '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: '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} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.'
 
-# 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: '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'
+    # 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: 'Cofnij'
+    # client_parameter:
+    #     page_title: 'Developer > Client parameters'
+    #     page_description: 'Here are your client parameters.'
+    #     field_id: 'Client ID'
+    #     field_secret: 'Client secret'
+    #     back: 'Cofnij'
+    #     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: '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: '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: '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: '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: '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 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'
index d779bcbd317cdf6a881e808983245cb7d93ec701..af4470b2fa20cfc5716b625b0bd65180b1a81f4b 100644 (file)
-#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'
+        # archive: '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'
+    # 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'
index 6d9bf0db890311eaf962e87fa690bf9942d69b66..5d859950d858a190e9c64ed29c85895be893e638 100644 (file)
-# 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'
+        # archive: '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'
+    # 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'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/validators.da.yml b/src/Wallabag/CoreBundle/Resources/translations/validators.da.yml
deleted file mode 100644 (file)
index 196f1ad..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# Config screen
-The password fields must match: 'De indtastede adgangskoder skal være ens'
-Password should by at least 8 chars long: 'Adgangskoden skal være mindst 8 tegn'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/validators.es.yml b/src/Wallabag/CoreBundle/Resources/translations/validators.es.yml
deleted file mode 100644 (file)
index 5c0b6df..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# Config screen
-The password fields must match: 'Las contraseñas no coinciden'
-Password should by at least 8 chars long: 'La contraseña debe tener al menos 8 carácteres'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/validators.fa.yml b/src/Wallabag/CoreBundle/Resources/translations/validators.fa.yml
deleted file mode 100644 (file)
index fe63af7..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# Config screen
-The password fields must match: 'رمزها باید یکی باشند'
-Password should by at least 8 chars long: 'رمز شما باید ۸ حرف یا بیشتر باشد'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/validators.fr.yml b/src/Wallabag/CoreBundle/Resources/translations/validators.fr.yml
deleted file mode 100644 (file)
index 40513f2..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# Config screen
-The password fields must match: 'Les deux mots de passe doivent être les mêmes'
-Password should by at least 8 chars long: 'Le mot de passe doit contenir au moins 8 caractères'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/validators.pl.yml b/src/Wallabag/CoreBundle/Resources/translations/validators.pl.yml
deleted file mode 100644 (file)
index f3cde46..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# Config screen
-The password fields must match: 'Hasło w polach musi być takie same '
-Password should by at least 8 chars long: 'Hasło powinno mieć minimum 8 znaków długości'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/validators.ro.yml b/src/Wallabag/CoreBundle/Resources/translations/validators.ro.yml
deleted file mode 100644 (file)
index d6d4dfc..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# Config screen
-The password fields must match: 'Câmpurile destinate parolelor trebuie să se potrivească'
-Password should by at least 8 chars long: 'Parola ar trebui să conțină cel puțin 8 caractere'
index 54faa788c0b466a6211535600bc35174b7401adb..89e6e0765ce4e76e6326de03440eff056cb6a9a6 100644 (file)
@@ -1,9 +1,9 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}Config{% endtrans %}{% endblock %}
+{% block title %}{{ 'config.page_title'|trans }}{% endblock %}
 
 {% block content %}
-    <h2>{% trans %}Wallabag configuration{% endtrans %}</h2>
+    <h2>{{ 'config.tab_menu.settings'|trans }}</h2>
 
     {{ form_start(form.config) }}
         {{ form_errors(form.config) }}
                 {{ form_label(form.config.reading_speed) }}
                 {{ form_errors(form.config.reading_speed) }}
                 {{ form_widget(form.config.reading_speed) }}
-                <p>{% trans %}You can use online tools to estimate your reading speed{% endtrans %} (<a href="http://www.myreadspeed.com/calculate/">{% trans %}like this one{%endtrans%}</a>).</p>
+                <p>
+                    {{ 'config.form_settings.reading_speed.help_message'|trans }}
+                    <a href="http://www.myreadspeed.com/calculate/">myreadspeed</a>
+                </p>
             </div>
         </fieldset>
 
         {{ form_rest(form.config) }}
     </form>
 
-    <h2>{% trans %}RSS configuration{% endtrans %}</h2>
+    <h2>{{ 'config.tab_menu.rss'|trans }}</h2>
 
     {{ form_start(form.rss) }}
         {{ form_errors(form.rss) }}
 
         <div class="row">
-            {% trans %}RSS feeds provided by wallabag allow you to read your saved articles with your favourite RSS reader.{% endtrans %}
+            {{ 'config.form_rss.description'|trans }}
         </div>
 
         <fieldset class="w500p inline">
                 {% if rss.token %}
                     {{ rss.token }}
                 {% else %}
-                    <em>No token</em>
+                    <em>{{ 'config.form_rss.no_token'|trans }}</em>
                 {% endif %}
                 –
-                <a href="{{ path('generate_token') }}">Regenerate ?</a>
+                <a href="{{ path('generate_token') }}">
+                    {% if rss.token %}
+                        {{ 'config.form_rss.token_reset'|trans }}
+                    {% else %}
+                        {{ 'config.form_rss.token_create'|trans }}
+                    {% endif %}
+                </a>
             </div>
         </fieldset>
 
+        {% if rss.token %}
         <fieldset class="w500p inline">
             <div class="row">
-                <label>Rss links:</label>
-                {% if rss.token %}
-                    <ul>
-                        <li><a href="{{ path('unread_rss', {'username': rss.username, 'token': rss.token}) }}">unread</a></li>
-                        <li><a href="{{ path('starred_rss', {'username': rss.username, 'token': rss.token}) }}">fav</a></li>
-                        <li><a href="{{ path('archive_rss', {'username': rss.username, 'token': rss.token}) }}">archives</a></li>
-                    </ul>
-                {% else %}
-                    <strong>You need to generate a token first.</strong>
-                {% endif %}
+                <label>{{ 'config.form_rss.rss_links'|trans }}</label>
+                <ul>
+                    <li><a href="{{ path('unread_rss', {'username': rss.username, 'token': rss.token}) }}">unread</a></li>
+                    <li><a href="{{ path('starred_rss', {'username': rss.username, 'token': rss.token}) }}">fav</a></li>
+                    <li><a href="{{ path('archive_rss', {'username': rss.username, 'token': rss.token}) }}">archives</a></li>
+                </ul>
             </div>
         </fieldset>
+        {% endif %}
 
         <fieldset class="w500p inline">
             <div class="row">
@@ -92,7 +99,7 @@
         {{ form_rest(form.rss) }}
     </form>
 
-    <h2>{% trans %}User information{% endtrans %}</h2>
+    <h2>{{ 'config.tab_menu.user_info'|trans }}</h2>
 
     {{ form_start(form.user) }}
         {{ form_errors(form.user) }}
 
         {% if twofactor_auth %}
         <div class="row">
-            {% trans %}Enabling two factor authentication means you'll receive an email with a code on every new untrusted connexion{% endtrans %}
+            {{ 'config.form_user.two_factor_description'|trans }}
         </div>
 
         <fieldset class="w500p inline">
         {{ form_rest(form.user) }}
     </form>
 
-    <h2>{% trans %}Change your password{% endtrans %}</h2>
+    <h2>{{ 'config.tab_menu.password'|trans }}</h2>
 
     {{ form_start(form.pwd) }}
         {{ form_errors(form.pwd) }}
         {{ form_rest(form.pwd) }}
     </form>
 
-    <h2>{% trans %}Tagging rules{% endtrans %}</h2>
+    <h2>{{ 'config.tab_menu.rules'|trans }}}</h2>
 
     <ul>
         {% for tagging_rule in app.user.config.taggingRules %}
         <li>
-            if « {{ tagging_rule.rule }} » then tag as « {{ tagging_rule.tags|join(', ') }} »
-            <a href="{{ path('delete_tagging_rule', {id: tagging_rule.id}) }}" title="{% trans %}Delete{% endtrans %}" class="tool delete icon-trash icon"></a>
+            {{ 'config.form_rules.if_label'|trans }}
+            « {{ tagging_rule.rule }} »
+            {{ 'config.form_rules.then_tag_as_label'|trans }}
+            « {{ tagging_rule.tags|join(', ') }} »
+            <a href="{{ path('delete_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.delete_rule_label'|trans }}" class="tool delete icon-trash icon"></a>
         </li>
         {% endfor %}
     </ul>
     </form>
 
     {% if is_granted('ROLE_SUPER_ADMIN') %}
-    <h2>{% trans %}Add a user{% endtrans %}</h2>
+    <h2>{{ 'config.tab_menu.new_user'|trans }}</h2>
 
     {{ form_start(form.new_user) }}
         {{ form_errors(form.new_user) }}
index c9ce6d0870233490b2f3bd288a99f57318336b4d..78a9dc046175955982304f5b71e289c383d9fec1 100644 (file)
@@ -1,6 +1,6 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}New client{% endtrans %}{% endblock %}
+{% block title %}{{ 'developer.client.page_title'|trans }}{% endblock %}
 
 {% block content %}
 <div class="row">
@@ -8,7 +8,7 @@
         <div class="card-panel settings">
 
             <div class="row">
-                <p>{% trans %}You are about to create a new client. Please fill the field below for the redirect URI of your application.{% endtrans %}</p>
+                <p>{{ 'developer.client.page_description'|trans }}</p>
                 {{ form_start(form) }}
                 {{ form_errors(form) }}
 
@@ -18,7 +18,7 @@
                     {{ form_widget(form.redirect_uris) }}
                 </div>
 
-                <a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{% trans %}Back{% endtrans %}</a>
+                <a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{{ 'developer.client.action_back'|trans }}</a>
                 {{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
 
                 {{ form_rest(form) }}
index a214dfd0b3a7984c2adcc39a2981a305ad7d86a8..b615fa3b6a8e1aa0eb3609a5a1c34c89eb660da3 100644 (file)
@@ -1,20 +1,20 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}Client parameters{% endtrans %}{% endblock %}
+{% block title %}{{ 'developer.client_parameter.page_title'|trans }}{% endblock %}
 
 {% block content %}
 <div class="row">
     <div class="col s12">
         <div class="card-panel settings">
             <div class="row">
-                <p>{% trans %}Here are your client parameters.{% endtrans %}</p>
+                <p>{{ 'developer.client_parameter.page_description'|trans }}</p>
                 <ul>
-                    <li>{% trans %}Client ID{% endtrans %}: <strong><pre>{{ client_id }}</pre></strong></li>
-                    <li>{% trans %}Client secret{% endtrans %}: <strong><pre>{{ client_secret }}</pre></strong></li>
+                    <li>{{ 'developer.client_parameter.field_id'|trans }}: <strong><pre>{{ client_id }}</pre></strong></li>
+                    <li>{{ 'developer.client_parameter.field_secret'|trans }}: <strong><pre>{{ client_secret }}</pre></strong></li>
                 </ul>
 
-                <a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{% trans %}Back{% endtrans %}</a>
-                <a href="{{ path('developer_howto_firstapp') }}" class="btn waves-effect waves-light">{% trans %}Read the howto "Create my first application"{% endtrans %}</a>
+                <a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{{ 'developer.client_parameter.back'|trans }}</a>
+                <a href="{{ path('developer_howto_firstapp') }}" class="btn waves-effect waves-light">{{ 'developer.client_parameter.read_howto'|trans }}</a>
             </div>
         </div>
     </div>
index 382e6311297b2df2e9a466dcb8b9869810767fc5..acbc2c889d257b7a8da94cca3608c440ad01e1a1 100644 (file)
@@ -1,6 +1,6 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}How to create my first application{% endtrans %}{% endblock %}
+{% block title %}{{ 'developer.howto.page_title'|trans }}{% endblock %}
 
 {% block css %}
     {{ parent() }}
         <div class="card-panel settings">
 
             <div class="row">
-                <p>{% trans %}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.{% endtrans %}</p>
-                <p>{% trans %}You need a token to communicate between your 3rd application and wallabag API.{% endtrans %}</p>
-                <p>{% trans with {'%link%': path('developer_create_client')} %}To create this token, you need <a href="%link%">to create a new client</a>.{% endtrans %}</p>
-                <p>{% trans %}Now, create your token (replace client_id, client_secret, username and password with the good values):{% endtrans %}</p>
+                <p>{{ 'developer.howto.description.paragraph_1'|trans|raw }}</p>
+                <p>{{ 'developer.howto.description.paragraph_2'|trans }}</p>
+                <p>{{ 'developer.howto.description.paragraph_3'|trans({'%link%': path('developer_create_client')})|raw }}</p>
+                <p>{{ 'developer.howto.description.paragraph_4'|trans }}</p>
                 <p>
                     <pre><code class="language-bash">http POST http://v2.wallabag.org/oauth/v2/token \
     grant_type=password \
@@ -25,7 +25,7 @@
     username=yourUsername \
     password=yourPassw0rd</code></pre>
                 </p>
-                <p>{% trans %}The API will return a response like this:{% endtrans %}</p>
+                <p>{{ 'developer.howto.description.paragraph_5'|trans }}</p>
                 <p>
                     <pre><code class="language-bash">HTTP/1.1 200 OK
 Cache-Control: no-store, private
@@ -45,14 +45,14 @@ X-Powered-By: PHP/5.5.9-1ubuntu4.13
     "token_type": "bearer"
 }</code></pre>
                 </p>
-                <p>{% trans %}The access_token is useful to do a call to the API endpoint. For example:{% endtrans %}</p>
+                <p>{{ 'developer.howto.description.paragraph_6'|trans }}</p>
                 <p>
                     <pre><code class="language-bash">http GET http://v2.wallabag.org/api/entries.json \
     "Authorization:Bearer ZWFjNjA3ZWMwYWVmYzRkYTBlMmQ3NTllYmVhOGJiZDE0ZTg1NjE4MjczOTVlNzM0ZTRlMWQ0MmRlMmYwNTk5Mw"</code></pre>
                 </p>
-                <p>{% trans %}This call will return all the entries for your user.{% endtrans %}</p>
-                <p>{% trans with {'%link%': path('nelmio_api_doc_index')} %}If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.{% endtrans %}</p>
-                <p><a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{% trans %}Back{% endtrans %}</a></p>
+                <p>{{ 'developer.howto.description.paragraph_7'|trans }}</p>
+                <p>{{ 'developer.howto.description.paragraph_8'|trans({'%link%': path('nelmio_api_doc_index')})|raw }}</p>
+                <p><a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{{ 'developer.howto.back'|trans }}</a></p>
             </div>
 
         </div>
index 2e7dbcab709e419afd576fd81e5ab81bf6b6a423..e12779b75370897cb2ad4d8486078e98e5a5999b 100644 (file)
@@ -1,6 +1,6 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}Developer{% endtrans %}{% endblock %}
+{% block title %}{{ 'developer.page_title'|trans }}{% endblock %}
 
 {% block content %}
 <div class="row">
@@ -8,21 +8,21 @@
         <div class="card-panel settings">
 
             <div class="row">
-                <h3>{% trans %}Welcome to the wallabag API{% endtrans %}</h3>
+                <h3>{{ 'developer.welcome_message'|trans }}</h3>
 
-                <h4>{% trans %}Documentation{% endtrans %}</h4>
+                <h4>{{ 'developer.documentation'|trans }}</h4>
 
                 <ul>
-                    <li><a href="{{ path('developer_howto_firstapp') }}">{% trans %}How to create my first application{% endtrans %}</a></li>
-                    <li><a href="{{ path('nelmio_api_doc_index') }}">{% trans %}View full API documentation{% endtrans %}</a></li>
+                    <li><a href="{{ path('developer_howto_firstapp') }}">{{ 'developer.how_to_first_app'|trans }}</a></li>
+                    <li><a href="{{ path('nelmio_api_doc_index') }}">{{ 'developer.full_documentation'|trans }}</a></li>
                 </ul>
 
-                <h4>{% trans %}Clients{% endtrans %}</h4>
+                <h4>{{ 'developer.clients.title'|trans }}</h4>
                 <ul>
-                    <li><a href="{{ path('developer_create_client') }}">{% trans %}Create a new client{% endtrans %}</a></li>
+                    <li><a href="{{ path('developer_create_client') }}">{{ 'developer.clients.create_new'|trans }}</a></li>
                 </ul>
 
-                <h4>{% trans %}Existing clients{% endtrans %}</h4>
+                <h4>{{ 'developer.existing_clients.title'|trans }}</h4>
                 {% if clients %}
                     <ul class="collapsible" data-collapsible="expandable">
                         {% for client in clients %}
                                 <div class="collapsible-body">
                                     <table class="striped">
                                         <tr>
-                                            <td>{% trans %}Client ID{% endtrans %}</td>
+                                            <td>{{ 'developer.existing_clients.field_id'|trans }}</td>
                                             <td><strong><code>{{ client.id }}_{{ client.randomId }}</code></strong></td>
                                         </tr>
                                         <tr>
-                                            <td>{% trans %}Client secret{% endtrans %}</td>
+                                            <td>{{ 'developer.existing_clients.field_secret'|trans }}</td>
                                             <td><strong><code>{{ client.secret }}</code></strong></td>
                                         </tr>
                                         <tr>
-                                            <td>{% trans %}Redirect URIs{% endtrans %}</td>
+                                            <td>{{ 'developer.existing_clients.field_uris'|trans }}</td>
                                             <td><strong><code>{{ client.redirectUris|json_encode() }}</code></strong></td>
                                         </tr>
                                         <tr>
-                                            <td>{% trans %}Grant type allowed{% endtrans %}</td>
+                                            <td>{{ 'developer.existing_clients.field_grant_types'|trans }}</td>
                                             <td><strong><code>{{ client.allowedGrantTypes|json_encode() }}</code></strong></td>
                                         </tr>
                                     </table>
                                     <p>
-                                        {% trans %}You have the ability to remove this client. This action is IRREVERSIBLE !{% endtrans %}<br/>
-                                        {% trans %}If you remove it, every app configured with that client won't be able to auth on your wallabag.{% endtrans %}<br/>
-                                        <a class="waves-effect waves-light red btn" href="{{ path('developer_delete_client', {'id': client.id}) }}">{% trans %}Remove this client{% endtrans %}</a>
+                                        {{ 'developer.remove.warn_message_1'|trans }}<br/>
+                                        {{ 'developer.remove.warn_message_2'|trans }}<br/>
+                                        <a class="waves-effect waves-light red btn" href="{{ path('developer_delete_client', {'id': client.id}) }}">{{ 'developer.remove.action'|trans }}</a>
                                     </p>
                                 </div>
                             </li>
                         {% endfor %}
                     </ul>
                 {% else %}
-                    {% trans %}No client yet.{% endtrans %}
+                    {{ 'developer.existing_clients.no_client'|trans }}
                 {% endif %}
             </div>
 
index 0d4d5ad2585640f711f23dc92167696ed2ffd4da..e974fc69453fd592a7a8380478893cac595fc814 100644 (file)
@@ -1,6 +1,6 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}Edit an entry{% endtrans %}{% endblock %}
+{% block title %}{{ 'entry.edit.page_title'|trans }}{% endblock %}
 
 {% block content %}
     {{ form(form) }}
index 7271bdaa2058ca262a0b4d8b2efa429ee2c3282a..f718043b05ffedc383c99011b4177ff558019a09 100644 (file)
@@ -1,13 +1,13 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title "Unread" %}
+{% block title %}{{ 'entry.page_titles.unread'|trans }}{% endblock %}
 
 {% block content %}
     {% block pager %}
         <div class="results">
-            <div class="nb-results">{{ entries.count }} {% trans %}entries{% endtrans %}</div>
+            <div class="nb-results">{{ 'entry.list.number_on_the_page'|transchoice(entries.count) }}</div>
                 <div class="pagination">
-                <a href="#" id="filter">{% trans %}Filter{% endtrans %}</a>
+                <a href="#" id="filter">{{ 'entry.filters.title'|trans }}</a>
                 {% if entries is not empty %}
                     –
                     {% for p in range(1, entries.nbPages) if entries.nbPages > 1 %}
         </div>
     {% endblock %}
 
-    {% if entries is empty %}
-        <div class="messages warning"><p>{% trans %}No articles found.{% endtrans %}</p></div>
-    {% else %}
-        {% for entry in entries %}
-            <div id="entry-{{ entry.id|e }}" class="entry">
-                <h2><a href="{{ path('view', { 'id': entry.id }) }}">{{ entry.title|raw }}</a></h2>
-                {% if entry.readingTime > 0 %}
-                    <div class="estimatedTime">
-                        <span class="tool reading-time">
-                            {% trans with {'%readingTime%': entry.readingTime } %}estimated reading time: %readingTime% min{% endtrans %}
-                        </span>
-                    </div>
-                {% else %}
-                    <div class="estimatedTime">
-                        <span class="tool reading-time">
-                        {% trans with {'%inferior%': '<small class="inferieur">&lt;</small>'} %}estimated reading time: %inferior% 1 min{% endtrans %}
-                        </span>
-                    </div>
-                {% endif %}
-
-                <ul class="tools links">
-                    <li><a title="{% trans %}Toggle mark as read{% endtrans %}" class="tool icon-check icon {% if entry.isArchived == 0 %}archive-off{% else %}archive{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"><span>{% trans %}Toggle mark as read{% endtrans %}</span></a></li>
-                    <li><a title="{% trans %}toggle favorite{% endtrans %}" class="tool icon-star icon {% if entry.isStarred == 0 %}fav-off{% else %}fav{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"><span>{% trans %}toggle favorite{% endtrans %}</span></a></li>
-                    <li><a title="{% trans %}delete{% endtrans %}" class="tool delete icon-trash icon" href="{{ path('delete_entry', { 'id': entry.id }) }}"><span>{% trans %}delete{% endtrans %}</span></a></li>
-                    <li><a href="{{ entry.url|e }}" target="_blank" title="{% trans %}original{% endtrans %} : {{ entry.title|e }}" class="tool link icon-link icon"><span>{{ entry.domainName|removeWww }}</span></a></li>
-                </ul>
-                {% if entry.previewPicture is null %}
-                    <p>{{ entry.content|striptags|slice(0, 300) }}&hellip;</p>
-                {% else %}
-                    <img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" />
-                {% endif %}
-            </div>
-        {% endfor %}
-    {% endif %}
+    {% for entry in entries %}
+        <div id="entry-{{ entry.id|e }}" class="entry">
+            <h2><a href="{{ path('view', { 'id': entry.id }) }}">{{ entry.title|raw }}</a></h2>
+            {% if entry.readingTime > 0 %}
+                <div class="estimatedTime">
+                    <span class="tool reading-time">
+                        {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': entry.readingTime}) }}
+                    </span>
+                </div>
+            {% else %}
+                <div class="estimatedTime">
+                    <span class="tool reading-time">
+                    {{ 'entry.list.reading_time_less_one_minute'|trans|raw }}
+                    </span>
+                </div>
+            {% endif %}
+
+            <ul class="tools links">
+                <li><a title="{{ 'entry.list.toogle_as_read'|trans }}" class="tool icon-check icon {% if entry.isArchived == 0 %}archive-off{% else %}archive{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"><span>{{ 'entry.list.toogle_as_read'|trans }}</span></a></li>
+                <li><a title="{{ 'entry.list.toogle_as_star'|trans }}" class="tool icon-star icon {% if entry.isStarred == 0 %}fav-off{% else %}fav{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"><span>{{ 'entry.list.toogle_as_star'|trans }}</span></a></li>
+                <li><a title="{{ 'entry.list.delete'|trans }}" class="tool delete icon-trash icon" href="{{ path('delete_entry', { 'id': entry.id }) }}"><span>{{ 'entry.list.delete'|trans }}</span></a></li>
+                <li><a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.list.original_article'|trans }} : {{ entry.title|e }}" class="tool link icon-link icon"><span>{{ entry.domainName|removeWww }}</span></a></li>
+            </ul>
+            {% if entry.previewPicture is null %}
+                <p>{{ entry.content|striptags|slice(0, 300) }}&hellip;</p>
+            {% else %}
+                <img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" />
+            {% endif %}
+        </div>
+    {% endfor %}
 
     <aside id="filter-form" class="">
         <form method="get" action="{{ path('all') }}">
-            <h2>{% trans %}Filters{% endtrans %}</h2>
+            <h2>{{ 'entry.filters.title'|trans }}</h2>
             <a href="javascript: void(null);" id="filter-form-close" class="close-button--popup close-button">&times;</a>
 
             <div id="filter-status" class="filter-group">
                 <div class="">
-                    <label>{% trans %}Status{% endtrans %}</label>
+                    <label>{{ 'entry.filters.status_label'|trans }}</label>
                 </div>
                 <div class="input-field">
                     {{ form_widget(form.isArchived) }}
-                    <label for="entry_filter_isArchived">{% trans %}Archived{% endtrans %}</label>
+                    {{ form_label(form.isArchived) }}
                 </div>
 
                 <div class="input-field">
                     {{ form_widget(form.isStarred) }}
-                    <label for="entry_filter_isStarred">{% trans %}Starred{% endtrans %}</label>
+                    {{ form_label(form.isStarred) }}
                 </div>
 
                 <div class="input-field">
                     {{ form_widget(form.previewPicture) }}
-                    <label for="entry_filter_previewPicture">{% trans %}Has a preview picture{% endtrans %}</label>
+                    {{ form_label(form.previewPicture) }}
                 </div>
             </div>
 
             <div id="filter-language" class="filter-group">
-                <label for="entry_filter_language">{% trans %}Language{% endtrans %}</label>
+                {{ form_label(form.language) }}
                 <div class="input-field ">
                     {{ form_widget(form.language) }}
                 </div>
 
             <div id="filter-reading-time" class="filter-group">
                 <div class="">
-                    <label>{% trans %}Reading time in minutes{% endtrans %}</label>
+                    {{ form_label(form.readingTime) }}
                 </div>
                 <div class="input-field ">
-                    <label for="entry_filter_readingTime_left_number">{% trans %}from{% endtrans %}</label>
+                    <label for="entry_filter_readingTime_left_number">{{ 'entry.filters.reading_time.from'|trans }}</label>
                     {{ form_widget(form.readingTime.left_number, {'type': 'number'}) }}
                 </div>
                 <div class="input-field ">
-                    <label for="entry_filter_readingTime_right_number">{% trans %}to{% endtrans %}</label>
+                    <label for="entry_filter_readingTime_right_number">{{ 'entry.filters.reading_time.to'|trans }}</label>
                     {{ form_widget(form.readingTime.right_number, {'type': 'number'}) }}
                 </div>
             </div>
 
             <div id="filter-domain-name" class="filter-group">
-                <label for="entry_filter_domainName">{% trans %}Domain name{% endtrans %}</label>
+                {{ form_label(form.domainName) }}
                 <div class="input-field ">
                     {{ form_widget(form.domainName, {'type': 'text', 'attr' : {'placeholder': 'website.com'} }) }}
                 </div>
 
             <div id="filter-creation-date" class="filter-group">
                 <div class="">
-                    <label>{% trans %}Creation date{% endtrans %}</label>
+                    {{ form_label(form.createdAt) }}
                 </div>
                 <div class="input-field ">
-                    <label for="entry_filter_createdAt_left_date" class="active">{% trans %}from{% endtrans %}</label>
+                    <label for="entry_filter_createdAt_left_date" class="active">{{ 'entry.filters.created_at.from'|trans }}</label>
                     {{ form_widget(form.createdAt.left_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.left_date.vars.value} }) }}
                 </div>
                 <div class="input-field ">
-                    <label for="entry_filter_createdAt_right_date" class="active">{% trans %}to{% endtrans %}</label>
+                    <label for="entry_filter_createdAt_right_date" class="active">{{ 'entry.filters.created_at.to'|trans }}</label>
                     {{ form_widget(form.createdAt.right_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.right_date.vars.value} }) }}
                 </div>
             </div>
-            <div id="filter-buttons" class="filter-group">
 
+            <div id="filter-buttons" class="filter-group">
                 <div class="">
-                    <a href="#!" class="center waves-effect waves-green btn-flat" id="clear_form_filters">{% trans %}Clear{% endtrans %}</a>
+                    <a href="#!" class="center waves-effect waves-green btn-flat" id="clear_form_filters">{{ 'entry.filters.action.clear'|trans }}</a>
                 </div>
 
-                <button class="btn waves-effect waves-light" type="submit" id="submit-filter" value="filter">{% trans %}Filters{% endtrans %}</button>
-
-                </div>
+                <button class="btn waves-effect waves-light" type="submit" id="submit-filter" value="filter">{{ 'entry.filters.action.filter'|trans }}</button>
+            </div>
         </form>
     </aside>
 
index a39a8dc37a5c684112c7a906e5c61a9f00f81384..98f7194cfc82174e30079468caac8b8e600fab9b 100644 (file)
@@ -18,9 +18,9 @@
                 <description>
                     <![CDATA[
                     {%- if entry.readingTime > 0 -%}
-                        {% trans %}estimated reading time :{% endtrans %} {{ entry.readingTime }} min
+                        {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': entry.readingTime}) }}
                     {%- else -%}
-                        {% trans %}estimated reading time :{% endtrans %} &lt; 1 min
+                        {{ 'entry.list.reading_time_less_one_minute'|trans|raw }}
                     {%- endif %}
 
                     {{ entry.content|raw -}}
index 9323e7873aa03a6d399363d64cd1f99125830dce..3cda3949eaecd356c575f365762b1c1d06c377e0 100644 (file)
@@ -5,32 +5,32 @@
 {% block content %}
     <div id="article">
         <header class="mbm">
-            <h1>{{ entry.title|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" title="{% trans %}Edit title{% endtrans %}">✎</a></h1>
+            <h1>{{ entry.title|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" title="{{ 'entry.view.edit_title'|trans }}">✎</a></h1>
         </header>
 
         <div id="article_toolbar">
         <ul class="links">
-            <li class="topPosF"><a href="#top" title="{% trans %}Back to top{% endtrans %}" class="tool top icon icon-arrow-up-thick"><span>{% trans %}Back to top{% endtrans %}</span></a></li>
-            <li><a href="{{ entry.url|e }}" target="_blank" title="{% trans %}original{% endtrans %} : {{ entry.title|e }}" class="tool link icon icon-link"><span>{{ entry.domainName|removeWww }}</span></a></li>
-            <li><a title="{% trans %}Re-fetch content{% endtrans %}" class="tool icon icon-reload" href="{{ path('reload_entry', { 'id': entry.id }) }}"><span>{% trans %}Re-fetch content{% endtrans %}</span></a></li>
-            <li><a title="{% if entry.isArchived == 0 %}{% trans %}Mark as read{% endtrans %}{% else %}{% trans %}Mark as unread{% endtrans %}{% endif %}" class="tool icon icon-check {% if entry.isArchived == 0 %}archive-off{% else %}archive{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"><span>{% if entry.isArchived == 0 %}{% trans %}Mark as read{% endtrans %}{% else %}{% trans %}Mark as unread{% endtrans %}{% endif %}</span></a></li>
-            <li><a title="{% trans %}Favorite{% endtrans %}" class="tool icon icon-star {% if entry.isStarred == 0 %}fav-off{% else %}fav{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"><span>{% trans %}Toggle favorite{% endtrans %}</span></a></li>
-            <li><a id="nav-btn-add-tag" title="{% trans %}Add a tag{% endtrans %}"><span>{% trans %}Tag{% endtrans %}</span></a></li>
-            <li><a title="{% trans %}Delete{% endtrans %}" class="tool delete icon icon-trash" href="{{ path('delete_entry', { 'id': entry.id }) }}"><span>{% trans %}Delete{% endtrans %}</span></a></li>
-            {% if craue_setting('share_twitter') %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter icon icon-twitter" title="{% trans %}Tweet{% endtrans %}"><span>{% trans %}Tweet{% endtrans %}</span></a></li>{% endif %}
-            {% if craue_setting('share_mail') %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&amp;body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="{% trans %}Email{% endtrans %}"><span>{% trans %}Email{% endtrans %}</span></a></li>{% endif %}
-            {% if craue_setting('share_shaarli') %}<li><a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&amp;title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="{% trans %}shaarli{% endtrans %}"><span>{% trans %}shaarli{% endtrans %}</span></a></li>{% endif %}
-            {% if craue_setting('share_diaspora') %}<li><a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}&notes=&v=1&noui=1&jump=doclose" target="_blank" class="tool diaspora icon-image icon-image--diaspora" title="{% trans %}diaspora{% endtrans %}"><span>{% trans %}diaspora{% endtrans %}</span></a></li>{% endif %}
-            {% if craue_setting('carrot') %}<li><a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" class="tool carrot icon-image icon-image--carrot" target="_blank" title="{% trans %}carrot{% endtrans %}"><span>Carrot</span></a></li>{% endif %}
-            {% if craue_setting('show_printlink') %}<li><a title="{% trans %}Print{% endtrans %}" class="tool icon icon-print" href="javascript: window.print();"><span>{% trans %}Print{% endtrans %}</span></a></li>{% endif %}
+            <li class="topPosF"><a href="#top" title="{{ 'entry.view.left_menu.back_to_top'|trans }}" class="tool top icon icon-arrow-up-thick"><span>{{ 'entry.view.left_menu.set_as_read'|trans }}</span></a></li>
+            <li><a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool link icon icon-link"><span>{{ entry.domainName|removeWww }}</span></a></li>
+            <li><a title="{{ 'entry.view.left_menu.re_fetch_content'|trans }}" class="tool icon icon-reload" href="{{ path('reload_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.re_fetch_content'|trans }}</span></a></li>
+            <li><a title="{% if entry.isArchived == 0 %}{{ 'entry.view.left_menu.set_as_read'|trans }}{% else %}{{ 'entry.view.left_menu.set_as_unread'|trans }}{% endif %}" class="tool icon icon-check {% if entry.isArchived == 0 %}archive-off{% else %}archive{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"><span>{% if entry.isArchived == 0 %}{{ 'entry.view.left_menu.set_as_read'|trans }}{% else %}{{ 'entry.view.left_menu.set_as_unread'|trans }}{% endif %}</span></a></li>
+            <li><a title="{{ 'entry.view.left_menu.set_as_favorite'|trans }}" class="tool icon icon-star {% if entry.isStarred == 0 %}fav-off{% else %}fav{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.set_as_favorite'|trans }}</span></a></li>
+            <li><a id="nav-btn-add-tag" title="{{ 'entry.view.left_menu.add_a_tag'|trans }}"><span>{{ 'entry.view.left_menu.add_a_tag'|trans }}</span></a></li>
+            <li><a title="{{ 'entry.view.left_menu.delete'|trans }}" class="tool delete icon icon-trash" href="{{ path('delete_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.delete'|trans }}</span></a></li>
+            {% if craue_setting('share_twitter') %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter icon icon-twitter" title="Tweet"><span>Tweet</span></a></li>{% endif %}
+            {% if craue_setting('share_mail') %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&amp;body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="Email"><span>Email</span></a></li>{% endif %}
+            {% if craue_setting('share_shaarli') %}<li><a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&amp;title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="shaarli"><span>shaarli</span></a></li>{% endif %}
+            {% if craue_setting('share_diaspora') %}<li><a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}&notes=&v=1&noui=1&jump=doclose" target="_blank" class="tool diaspora icon-image icon-image--diaspora" title="diaspora"><span>diaspora</span></a></li>{% endif %}
+            {% if craue_setting('carrot') %}<li><a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" class="tool carrot icon-image icon-image--carrot" target="_blank" title="carrot"><span>Carrot</span></a></li>{% endif %}
+            {% if craue_setting('show_printlink') %}<li><a title="{{ 'entry.view.left_menu.print'|trans }}" class="tool icon icon-print" href="javascript: window.print();"><span>{{ 'entry.view.left_menu.re_fetch_content'|trans }}</span></a></li>{% endif %}
             {% if craue_setting('export_epub') %}<li><a href="?epub&amp;method=id&amp;value={{ entry.id }}" title="Generate ePub file">EPUB</a></li>{% endif %}
             {% if craue_setting('export_mobi') %}<li><a href="?mobi&amp;method=id&amp;value={{ entry.id }}" title="Generate Mobi file">MOBI</a></li>{% endif %}
             {% if craue_setting('export_pdf') %}<li><a href="?pdf&amp;method=id&amp;value={{ entry.id }}" title="Generate PDF file">PDF</a></li>{% endif %}
-            <li><a href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&amp;body={{ entry.url|url_encode }}" title="{% trans %}Does this article appear wrong?{% endtrans %}" class="tool bad-display icon icon-delete"><span>{% trans %}Does this article appear wrong?{% endtrans %}</span></a></li>
+            <li><a href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&amp;body={{ entry.url|url_encode }}" title="{{ 'entry.view.left_menu.problem.label'|trans }}" class="tool bad-display icon icon-delete"><span>{{ 'entry.view.left_menu.problem.label'|trans }}</span></a></li>
         </ul>
     </div>
         {% set nbAnnotations = entry.annotations | length %}
-        <span class="tool link mdi-communication-comment"> {% transchoice nbAnnotations %}{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations{% endtranschoice %}</span>
+        <span class="tool link mdi-communication-comment"> {{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span>
         <aside class="tags">
             {% for tag in entry.tags %}
                 <span class="mdi-action-label-outline">{{ tag.label }}</span> <a href="{{ path('remove_tag', { 'entry': entry.id, 'tag': tag.id }) }}"><i>✘</i></a>
index 95ed0785231afa2a384e0281b3b2ff2253e2ed16..03768a3d80a0e2be4839b8a062e400dc062e66e4 100644 (file)
@@ -1,6 +1,6 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}Save new entry{% endtrans %}{% endblock %}
+{% block title %}{{ 'entry.new.page_title'|trans }}{% endblock %}
 
 {% block content %}
     {{ render(controller( "WallabagCoreBundle:Entry:addEntryForm" )) }}
index fa0a9f53f648d58d43b38b57d506c33c65e9e0ab..8c129068103eae45f79d4f723585d2895fd2d594 100644 (file)
@@ -8,7 +8,7 @@
     {% endif %}
 
     {{ form_label(form.url) }}
-    {{ form_widget(form.url) }}
+    {{ form_widget(form.url, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.new.placeholder'} }) }}
 
-    <div class="hidden">{{ form_rest(form) }}</div>
+    {{ form_rest(form) }}
 </form>
index fdd12cf7d085fceadb1284c31b3f2e4597ff73b1..5c0046d1020bce1ff31f11556f5b646f12cc0485 100644 (file)
@@ -1,57 +1,57 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}About{% endtrans %}{% endblock %}
+{% block title %}{{ 'about.page_title'|trans }}{% endblock %}
 
 {% block content %}
-    <h2>{% trans %}Who is behind wallabag{% endtrans %}</h2>
+    <h2>{{ 'about.top_menu.who_behind_wallabag'|trans }}</h2>
 
     <dl>
-        <dt>{% trans %}Developed by{% endtrans %}</dt>
-        <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{% trans %}website{% endtrans %}</a></dd>
-        <dd>Thomas Citharel — <a href="https://tcit.fr">{% trans %}website{% endtrans %}</a></dd>
-        <dd>Jérémy Benoist — <a href="http://www.j0k3r.net">{% trans %}website{% endtrans %}</a></dd>
+        <dt>{{ 'about.who_behind_wallabag.developped_by'|trans }}</dt>
+        <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
+        <dd>Thomas Citharel — <a href="https://tcit.fr">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
+        <dd>Jérémy Benoist — <a href="http://www.j0k3r.net">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
 
-        <dt>{% trans %}And many others contributors ♥{% endtrans %} <a href="https://github.com/wallabag/wallabag/graphs/contributors">{% trans %}on Github{% endtrans %}</a></dt>
+        <dt>{{ 'about.who_behind_wallabag.many_contributors'|trans|raw }}</dt>
 
-        <dt>{% trans %}Project website{% endtrans %}</dt>
+        <dt>{{ 'about.who_behind_wallabag.project_website'|trans }}</dt>
         <dd><a href="https://www.wallabag.org">https://www.wallabag.org</a></dd>
 
-        <dt>{% trans %}License{% endtrans %}: <a href="http://en.wikipedia.org/wiki/MIT_License">MIT</a></dt>
+        <dt>{{ 'about.who_behind_wallabag.license'|trans }}: <a href="http://en.wikipedia.org/wiki/MIT_License">MIT</a></dt>
 
-        <dt>{% trans %}Version{% endtrans %}: {{ version }}</dt>
+        <dt>{{ 'about.who_behind_wallabag.version'|trans }}: {{ version }}</dt>
     </dl>
 
-    <h2>{% trans %}Getting help{% endtrans %}</h2>
+    <h2>{{ 'about.top_menu.getting_help'|trans }}</h2>
 
     <dl>
-        <dt>{% trans %}Documentation{% endtrans %}</dt>
+        <dt>{{ 'about.getting_help.documentation'|trans }}</dt>
         <dd><a href="https://doc.wallabag.org/en">english</a></dd>
         <dd><a href="https://doc.wallabag.org/fr">français</a></dd>
         <dd><a href="https://doc.wallabag.org/de">deutsch</a></dd>
 
-        <dt>{% trans %}Bug reports{% endtrans %}</dt>
-        <dd><a href="https://support.wallabag.org">{% trans %}On our support website{% endtrans %}</a> {% trans %}or{% endtrans %} <a href="https://github.com/wallabag/wallabag/issues">{% trans %}on Github{% endtrans %}</a></dd>
+        <dt>{{ 'about.getting_help.bug_reports'|trans }}</dt>
+        <dd>{{ 'about.getting_help.support'|trans|raw }}</dd>
     </dl>
 
-    <h2>{% trans %}Helping wallabag{% endtrans %}</h2>
+    <h2>{{ 'about.top_menu.helping'|trans }}</h2>
 
-    <p>{% trans %}wallabag is free and opensource. You can help us:{% endtrans %}</p>
+    <p>{{ 'about.helping.description'|trans }}</p>
 
     <dl>
-        <dt>{% trans %}wallabag is free and opensource. You can help us:{% endtrans %}</dt>
-        <dd>by contributing to the project: <a href="https://github.com/wallabag/wallabag/issues/1254">an issue lists all our needs</a></dd>
-        <dd><a href="{{ paypal_url }}">{% trans %}via Paypal{% endtrans %}</a></dd>
+        <dt>{{ 'about.helping.description'|trans }}</dt>
+        <dd>{{ 'about.helping.by_contributing_2'|trans }} <a href="https://github.com/wallabag/wallabag/issues/1254">{{ 'about.helping.by_contributing'|trans }}</a></dd>
+        <dd><a href="{{ paypal_url }}">{{ 'about.helping.by_paypal'|trans }}</a></dd>
     </dl>
 
-    <h2>{% trans %}Contributors{% endtrans %}</h2>
-    <p><a href="https://github.com/wallabag/wallabag/graphs/contributors">{% trans %}Thank you to contributors on wallabag web application{% endtrans %}</a></p>
+    <h2>{{ 'about.top_menu.contributors'|trans }}</h2>
+    <p><a href="https://github.com/wallabag/wallabag/graphs/contributors">{{ 'about.contributors.description'|trans }}</a></p>
 
-    <h2>{% trans %}Third-party libraries{% endtrans %}</h2>
-    <p>{% trans %}Here are the list of third-party libraries used in wallabag (with their licenses):{% endtrans %}</p>
-    <table>
+    <h2>{{ 'about.top_menu.third_party'|trans }}</h2>
+    <p>{{ 'about.third_party.description'|trans }}</p>
+    <table class="striped">
         <tr>
-            <th>{% trans %}Package{% endtrans %}</th>
-            <th>{% trans %}License{% endtrans %}</th>
+            <th>{{ 'about.third_party.package'|trans }}</th>
+            <th>{{ 'about.third_party.license'|trans }}</th>
         </tr>
         <tr><td>behat/transliterator</td><td>Artistic 1.0</td></tr>
         <tr><td>CraueConfigBundle</td><td>MIT</td></tr>
index e32264f3e9b2b21046996a99afea40b075cee714..8da1afa0f8c7c5f89d97993776d9163fc07ea343 100644 (file)
@@ -1,28 +1,28 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}Howto{% endtrans %}{% endblock %}
+{% block title %}{{ 'howto.page_title'|trans }}{% endblock %}
 
 {% block content %}
-    <h2>{% trans %}Howto{% endtrans %}</h2>
+    <h2>{{ 'howto.page_title'|trans }}</h2>
 
-    <p>{% trans %}There are several ways to save an article:{% endtrans %}</p>
+    <p>{{ 'howto.page_description'|trans }}</p>
     <ul>
-        <li><a href="{{ path('new') }}">{% trans %}Thanks to this form{% endtrans %}</a></li>
+        <li><a href="{{ path('new') }}">{{ 'howto.form.description'|trans }}</a></li>
     </ul>
-    <h3>{% trans %}Browser Addons{% endtrans %}</h3>
+    <h3>{{ 'howto.top_menu.browser_addons'|trans }}</h3>
     <ul>
-        <li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{% trans %}Standard Firefox Add-On{% endtrans %}</a></li>
-        <li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{% trans %}Chrome Extension{% endtrans %}</a></li>
+        <li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{{ 'howto.browser_addons.firefox'|trans }}</a></li>
+        <li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{{ 'howto.browser_addons.chrome'|trans }}</a></li>
     </ul>
-    <h3>{% trans %}Mobile Apps{% endtrans %}</h3>
+    <h3>{{ 'howto.top_menu.mobile_apps'|trans }}</h3>
     <ul>
-        <li>Android: <a href="https://f-droid.org/app/fr.gaulupeau.apps.InThePoche" target="_blank">via F-Droid</a> {% trans %} or {% endtrans %} <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" target="_blank">via Google Play</a></li>
-        <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" target="_blank">{% trans %}download the application{% endtrans %}</a></li>
-        <li>Windows Phone: <a href="http://www.windowsphone.com/en-US/store/app/wallabag/d5226cf1-f422-4e00-996c-88e9c5233332" target="_blank">{% trans %}download the application{% endtrans %}</a></li>
+        <li>Android: <a href="https://f-droid.org/app/fr.gaulupeau.apps.InThePoche" target="_blank">{{ 'howto.mobile_apps.android.via_f_droid'|trans }}</a> / <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" target="_blank">{{ 'howto.mobile_apps.android.via_google_play'|trans }}</a></li>
+        <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" target="_blank">{{ 'howto.mobile_apps.ios'|trans }}</a></li>
+        <li>Windows Phone: <a href="http://www.windowsphone.com/en-US/store/app/wallabag/d5226cf1-f422-4e00-996c-88e9c5233332" target="_blank">{{ 'howto.mobile_apps.windows'|trans }}</a></li>
     </ul>
-    <h3>{% trans %}Bookmarklet{% endtrans %}</h3>
+    <h3>{{ 'howto.top_menu.bookmarklet'|trans }}</h3>
     <p>
-    {% trans %}Drag &amp; drop this link to your bookmarks bar:{% endtrans %}
+    {{ 'howto.bookmarklet.description'|trans }}
     {% include 'WallabagCoreBundle::_bookmarklet.html.twig' %}
 
 {% endblock %}
index 6b008fca6305c03ffa5e66f9c1e99b58600e2b96..5f65ce151d53dcb2e0700eb6278a07a09d48f361 100644 (file)
@@ -1,55 +1,66 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}Quickstart{% endtrans %}{% endblock %}
+{% block title %}{{ 'quickstart.page_title'|trans }}{% endblock %}
 
 {% block content %}
 
-    <h3>{% trans %}Welcome to wallabag!{% endtrans %}</h3>
-    <p>{% trans %}We'll accompany you to visit wallabag and show you some features which can interess you.{% endtrans %}</p>
-    <p>{% trans %}Follow us!{% endtrans %}</p>
-    <h4>{% trans %}Configure the application{% endtrans %}</h4>
+    <h3>{{ 'quickstart.intro.title'|trans }}</h3>
+    <p>{{ 'quickstart.intro.paragraph_1'|trans }}</p>
+    <p>{{ 'quickstart.intro.paragraph_2'|trans }}</p>
+
+    <h4>{{ 'quickstart.configure.title'|trans }}</h4>
     <ul>
-        <li><a href="{{ path('config') }}">{% trans %}Change language and design{% endtrans %}</a></li>
-        <li><a href="{{ path('config') }}#set2">{% trans %}Enable RSS feeds{% endtrans %}</a></li>
-        <li><a href="{{ path('config') }}#set5">{% trans %}Write rules to automatically tag your articles{% endtrans %}</a></li>
+        <li><a href="{{ path('config') }}">{{ 'quickstart.configure.language'|trans }}</a></li>
+        <li><a href="{{ path('config') }}#set2">{{ 'quickstart.configure.rss'|trans }}</a></li>
+        <li><a href="{{ path('config') }}#set5">{{ 'quickstart.configure.tagging_rules'|trans }}</a></li>
     </ul>
+
     {% if is_granted('ROLE_SUPER_ADMIN') %}
-        <h4>{% trans %}Administration{% endtrans %}</h4>
-        <p>{% trans %}As a administrator, you have privileges on wallabag. You can:{% endtrans %}</p>
-        <ul>
-            <li><a href="{{ path('config') }}#set6">{% trans %}Create a new user{% endtrans %}</a></li>
-            <li><a href="{{ path('craue_config_settings_modify') }}#set-analytics">{% trans %}Configure analytics{% endtrans %}</a></li>
-            <li><a href="{{ path('craue_config_settings_modify') }}#set-entry">{% trans %}Enable some parameters about article sharing{% endtrans %}</a></li>
-            <li><a href="{{ path('craue_config_settings_modify') }}#set-export">{% trans %}Configure export{% endtrans %}</a></li>
-            <li><a href="{{ path('craue_config_settings_modify') }}#set-import">{% trans %}Configure import{% endtrans %}</a></li>
-        </ul>
+    <h4>{{ 'quickstart.admin.title'|trans }}</h4>
+    <p>{{ 'quickstart.admin.description'|trans }}</p>
+    <ul>
+        <li><a href="{{ path('config') }}#set6">{{ 'quickstart.admin.new_user'|trans }}</a></li>
+        <li><a href="{{ path('craue_config_settings_modify') }}#set-analytics">{{ 'quickstart.admin.analytics'|trans }}</a></li>
+        <li><a href="{{ path('craue_config_settings_modify') }}#set-entry">{{ 'quickstart.admin.sharing'|trans }}</a></li>
+        <li><a href="{{ path('craue_config_settings_modify') }}#set-export">{{ 'quickstart.admin.export'|trans }}</a></li>
+        <li><a href="{{ path('craue_config_settings_modify') }}#set-import">{{ 'quickstart.admin.import'|trans }}</a></li>
+    </ul>
     {% endif %}
-    <h4>{% trans %}First steps{% endtrans %}</h4>
+
+    <h4>{{ 'quickstart.first_steps.title'|trans }}</h4>
     <ul>
-        <li><a href="{{ path('new') }}">{% trans %}Save your first article{% endtrans %}</a></li>
-        <li><a href="{{ path('unread') }}">{% trans %}And classify it!{% endtrans %}</a></li>
+        <li><a href="{{ path('new') }}">{{ 'quickstart.first_steps.new_article'|trans }}</a></li>
+        <li><a href="{{ path('unread') }}">{{ 'quickstart.first_steps.unread_articles'|trans }}</a></li>
     </ul>
-    <h4>{% trans %}Migrate from an existing service{% endtrans %}</h4>
-    <p>{% trans %}You're using an other service? We'll help you to retrieve your data on wallabag.{% endtrans %}</p>
+
+    <h4>{{ 'quickstart.migrate.title'|trans }}</h4>
+    <p>{{ 'quickstart.migrate.description'|trans }}</p>
     <ul>
-        <li><a href="{{ path('import_pocket') }}">{% trans %}Migrate from Pocket{% endtrans %}</a></li>
-        <li><a href="{{ path('import_wallabag_v1') }}">{% trans %}Migrate from wallabag v1{% endtrans %}</a></li>
-        <li><a href="{{ path('import_wallabag_v2') }}">{% trans %}Migrate from wallabag v2{% endtrans %}</a></li>
+        <li><a href="{{ path('import_pocket') }}">{{ 'quickstart.migrate.pocket'|trans }}</a></li>
+        <li><a href="{{ path('import_wallabag_v1') }}">{{ 'quickstart.migrate.wallabag_v1'|trans }}</a></li>
+        <li><a href="{{ path('import_wallabag_v2') }}">{{ 'quickstart.migrate.wallabag_v2'|trans }}</a></li>
     </ul>
-    <h4>{% trans %}Full documentation{% endtrans %}</h4>
+
+    <h4>{{ 'quickstart.developer.title'|trans }}</h4>
     <ul>
-        <li><a href="http://doc.wallabag.org/en/v2/user/annotations.html">{% trans %}Annotate your article{% endtrans %}</a></li>
-        <li><a href="http://doc.wallabag.org/en/v2/user/download_articles.html">{% trans %}Convert your articles into ePUB or PDF{% endtrans %}</a></li>
-        <li><a href="http://doc.wallabag.org/en/v2/user/filters.html">{% trans %}See how you can look for an article by using search engine and filters{% endtrans %}</a></li>
-        <li><a href="http://doc.wallabag.org/en/v2/user/errors_during_fetching.html">{% trans %}What can I do if an article encounters errors during fetching?{% endtrans %}</a></li>
-        <li><a href="http://doc.wallabag.org/">{% trans %}And so many other articles!{% endtrans %}</a></li>
+        <li><a href="{{ path('developer') }}">{{ 'quickstart.developer.create_application'|trans }}</a></li>
     </ul>
-    <h4>{% trans %}Support{% endtrans %}</h4>
-    <p>{% trans %}If you need some help, we are here for you.{% endtrans %}</p>
+
+    <h4>{{ 'quickstart.docs.title'|trans }}</h4>
+    <ul>
+        <li><a href="http://doc.wallabag.org/en/v2/user/annotations.html">{{ 'quickstart.docs.annotate'|trans }}</a></li>
+        <li><a href="http://doc.wallabag.org/en/v2/user/download_articles.html">{{ 'quickstart.docs.export'|trans }}</a></li>
+        <li><a href="http://doc.wallabag.org/en/v2/user/filters.html">{{ 'quickstart.docs.search_filters'|trans }}</a></li>
+        <li><a href="http://doc.wallabag.org/en/v2/user/errors_during_fetching.html">{{ 'quickstart.docs.fetching_errors'|trans }}</a></li>
+        <li><a href="http://doc.wallabag.org/">{{ 'quickstart.docs.all_docs'|trans }}</a></li>
+    </ul>
+
+    <h4>{{ 'quickstart.support.title'|trans }}</h4>
+    <p>{{ 'quickstart.support.description'|trans }}</p>
     <ul>
-        <li><a href="https://github.com/wallabag/wallabag/issues/">{% trans %}On GitHub{% endtrans %}</a></li>
-        <li><a href="mailto:hello@wallabag.org">{% trans %}By email{% endtrans %}</a></li>
-        <li><a href="https://gitter.im/wallabag/wallabag">{% trans %}On Gitter{% endtrans %}</a></li>
+        <li><a href="https://github.com/wallabag/wallabag/issues/">{{ 'quickstart.support.github'|trans }}</a></li>
+        <li><a href="mailto:hello@wallabag.org">{{ 'quickstart.support.email'|trans }}</a></li>
+        <li><a href="https://gitter.im/wallabag/wallabag">{{ 'quickstart.support.gitter'|trans }}</a></li>
     </ul>
 
 {% endblock %}
index ade7f56d7f7943959e21d1389f86f0efa4168a28..6e552560ec14c2a491e08bcd6c3b9b071ddc5cc7 100644 (file)
@@ -8,7 +8,6 @@
     {% endif %}
 
     {{ form_widget(form.label, { 'attr': {'autocomplete': 'off'} }) }}
-    {{ form_widget(form.save, { 'attr': {'class': 'btn waves-effect waves-light'}, 'label': 'add tag' }) }}
 
-    <div class="hidden">{{ form_rest(form) }}</div>
+    {{ form_rest(form) }}
 </form>
index c2a461b83d7f0c4f03a48e7e1a20377d907ad901..dfc6175132e217440f9211d0d9b64871dc377e49 100644 (file)
@@ -1,13 +1,15 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title "Tags" %}
+{% block title %}{{ 'tag.page_title'|trans }}{% endblock %}
 
 {% block content %}
-    {% if tags is empty %}
-        <div class="messages warning"><p>{% trans %}No tags found.{% endtrans %}</p></div>
-    {% else %}
-        {% for tag in tags %}
-            {{tag.label}}
-        {% endfor %}
-    {% endif %}
+    <div class="results">
+        <div class="nb-results">{{ 'tag.list.number_on_the_page'|transchoice(tags.count) }}</div>
+    </div>
+
+    <ul>
+    {% for tag in tags %}
+        <li id="tag-{{ tag.id|e }}">{{tag.label}} ({{ tag.entries.getValues | length }})</li>
+    {% endfor %}
+    </ul>
 {% endblock %}
index 7f0980660298d4f170a985746550eaa0c1a180df..0ce06962508d5930cef8190bd9164cd147b58b06 100644 (file)
 {% block menu %}
     <button id="menu" class="icon icon-menu desktopHide"><span>Menu</span></button>
     <ul id="links" class="links">
-        <li><a href="{{ path('unread') }}">{% trans %}unread{% endtrans %}</a></li>
-        <li><a href="{{ path('starred') }}">{% trans %}favorites{% endtrans %}</a></li>
-        <li><a href="{{ path('archive') }}">{% trans %}archive{% endtrans %}</a></li>
-        <li><a href="{{ path('all') }}">{% trans %}all{% endtrans %}</a></li>
-        <li><a href="{{ path('tag') }}">{% trans %}tags{% endtrans %}</a></li>
-        <li><a href="{{ path('new') }}">{% trans %}save a link{% endtrans %}</a></li>
-        <li style="position: relative;"><a href="javascript: void(null);" id="search">{% trans %}search{% endtrans %}</a>
+        <li><a href="{{ path('unread') }}">{{ 'menu.left.unread'|trans }}</a></li>
+        <li><a href="{{ path('starred') }}">{{ 'menu.left.starred'|trans }}</a></li>
+        <li><a href="{{ path('archive') }}">{{ 'menu.left.archive'|trans }}</a></li>
+        <li><a href="{{ path('all') }}">{{ 'menu.left.all_articles'|trans }}</a></li>
+        <li><a href="{{ path('tag') }}">{{ 'menu.left.tags'|trans }}</a></li>
+        <li><a href="{{ path('new') }}">{{ 'menu.left.save_link'|trans }}</a></li>
+        <li style="position: relative;"><a href="javascript: void(null);" id="search">{{ 'menu.left.search'|trans }}</a>
             <div id="search-form" class="messages info popup-form">
                 <form method="get" action="index.php">
-                    <h2>{% trans %}Search{% endtrans %}</h2>
+                    <h2>{{ 'menu.left.search'|trans }}</h2>
                     <a href="javascript: void(null);" id="search-form-close" class="close-button--popup close-button">&times;</a>
                     <input type="hidden" name="view" value="search">
-                    <input required placeholder="{% trans %}Enter your search here{% endtrans %}" type="text" name="search" id="searchfield"><br>
-                    <input id="submit-search" type="submit" value="{% trans %}Search{% endtrans %}">
+                    <input required placeholder="{{ 'menu.search_form.input_label'|trans }}" type="text" name="search" id="searchfield"><br>
+                    <input id="submit-search" type="submit" value="{{ 'menu.left.search'|trans }}">
                 </form>
             </div>
         </li>
-        <li><a href="{{ path('config') }}">{% trans %}config{% endtrans %}</a></li>
+        <li><a href="{{ path('config') }}">{{ 'menu.left.config'|trans }}</a></li>
         {% if is_granted('ROLE_SUPER_ADMIN') %}
-            <li><a href="{{ path('craue_config_settings_modify') }}">{% trans %}internal settings{% endtrans %}</a></li>
+            <li><a href="{{ path('craue_config_settings_modify') }}">{{ 'menu.left.internal_settings'|trans }}</a></li>
         {% endif %}
-        <li><a href="{{ path('import') }}">{% trans %}import{% endtrans %}</a></li>
-        <li><a href="{{ path('howto') }}">{% trans %}howto{% endtrans %}</a></li>
-        <li><a href="{{ path('developer') }}">{% trans %}Developer{% endtrans %}</a></li>
-        <li><a href="{{ path('about') }}">{% trans %}about{% endtrans %}</a></li>
-        <li><a class="icon icon-power" href="{{ path('fos_user_security_logout') }}" title="{% trans %}logout{% endtrans %}">{% trans %}logout{% endtrans %}</a></li>
+        <li><a href="{{ path('import') }}">{{ 'menu.left.import'|trans }}</a></li>
+        <li><a href="{{ path('howto') }}">{{ 'menu.left.howto'|trans }}</a></li>
+        <li><a href="{{ path('developer') }}">{{ 'menu.left.developer'|trans }}</a></li>
+        <li><a href="{{ path('about') }}">{{ 'footer.wallabag.about'|trans }}</a></li>
+        <li><a class="icon icon-power" href="{{ path('fos_user_security_logout') }}">{{ 'menu.left.logout'|trans }}</a></li>
     </ul>
 {% endblock %}
 
@@ -73,6 +73,6 @@
 
 {% block footer %}
     <footer class="w600p center mt3 mb3 smaller txtright">
-        <p>{% trans %}powered by{% endtrans %} <a href="http://wallabag.org">wallabag</a></p>
+        <p>{{ 'footer.wallabag.powered_by'|trans }} <a href="http://wallabag.org">wallabag</a></p>
     </footer>
 {% endblock %}
index 2b0b08289e935e233648b5554ec0de5d536d420a..3343a1d21f083ce67a55c2fa1965b99865043264 100644 (file)
@@ -1,6 +1,6 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}config{% endtrans %}{% endblock %}
+{% block title %}{{ 'config.page_title'|trans }}{% endblock %}
 
 {% block content %}
 
                 <div class="row">
                     <div class="div_tabs col s12">
                         <ul class="tabs">
-                            <li class="tab col s3"><a class="active" href="#set1">{% trans %}Settings{% endtrans %}</a></li>
-                            <li class="tab col s3"><a href="#set2">{% trans %}RSS{% endtrans %}</a></li>
-                            <li class="tab col s3"><a href="#set3">{% trans %}User information{% endtrans %}</a></li>
-                            <li class="tab col s3"><a href="#set4">{% trans %}Password{% endtrans %}</a></li>
-                            <li class="tab col s3"><a href="#set5">{% trans %}Tagging rules{% endtrans %}</a></li>
+                            <li class="tab col s3"><a class="active" href="#set1">{{ 'config.tab_menu.settings'|trans }}</a></li>
+                            <li class="tab col s3"><a href="#set2">{{ 'config.tab_menu.rss'|trans }}</a></li>
+                            <li class="tab col s3"><a href="#set3">{{ 'config.tab_menu.user_info'|trans }}</a></li>
+                            <li class="tab col s3"><a href="#set4">{{ 'config.tab_menu.password'|trans }}</a></li>
+                            <li class="tab col s3"><a href="#set5">{{ 'config.tab_menu.rules'|trans }}</a></li>
                             {% if is_granted('ROLE_SUPER_ADMIN') %}
-                            <li class="tab col s3"><a href="#set6">{% trans %}Add a user{% endtrans %}</a></li>
+                            <li class="tab col s3"><a href="#set6">{{ 'config.tab_menu.new_user'|trans }}</a></li>
                             {% endif %}
                         </ul>
                     </div>
@@ -28,9 +28,9 @@
 
                             <div class="row">
                                 <div class="input-field col s12">
+                                    {{ form_label(form.config.theme) }}
                                     {{ form_errors(form.config.theme) }}
                                     {{ form_widget(form.config.theme) }}
-                                    <label class="required">{% trans %}Theme{% endtrans %}</label>
                                 </div>
                             </div>
 
                                     {{ form_label(form.config.reading_speed) }}
                                     {{ form_errors(form.config.reading_speed) }}
                                     {{ form_widget(form.config.reading_speed) }}
-                                    <p>{% trans %}You can use online tools to estimate your reading speed{% endtrans %} (<a href="http://www.myreadspeed.com/calculate/">{% trans %}like this one{%endtrans%}</a>).</p>
+                                    <p>
+                                        {{ 'config.form_settings.reading_speed.help_message'|trans }}
+                                        <a href="http://www.myreadspeed.com/calculate/">myreadspeed</a>
+                                    </p>
                                 </div>
                             </div>
 
                                 </div>
                             </div>
 
-                            <div class="hidden">{{ form_rest(form.config) }}</div>
-                            <button class="btn waves-effect waves-light" type="submit" name="action">
-                                {% trans %}Save{% endtrans %}
-                            </button>
+                            {{ form_widget(form.config.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
+                            {{ form_rest(form.config) }}
                         </form>
                     </div>
 
 
                             <div class="row">
                                 <div class="input-field col s12">
-                                    {% trans %}RSS feeds provided by wallabag allow you to read your saved articles with your favourite RSS reader. You need to generate a token first.{% endtrans %}
+                                    {{ 'config.form_rss.description'|trans }}
                                 </div>
                             </div>
 
                             <div class="row">
                                 <div class="input-field col s12">
-                                    <label>{% trans %}RSS token{% endtrans %}</label>
+                                    <label>{{ 'config.form_rss.token_label'|trans }}</label>
                                     <div>
                                         {% if rss.token %}
                                             {{ rss.token }}
                                         {% else %}
-                                            <em>{% trans %}No token{% endtrans %}</em>
+                                            <em>{{ 'config.form_rss.no_token'|trans }}</em>
                                         {% endif %}
-                                        – <a href="{{ path('generate_token') }}">{% if rss.token %}{% trans %}Reset your token{% endtrans %}{% else %}{% trans %}Create your token{% endtrans %}{% endif %}</a>
+                                        – <a href="{{ path('generate_token') }}">
+                                        {% if rss.token %}
+                                            {{ 'config.form_rss.token_reset'|trans }}
+                                        {% else %}
+                                            {{ 'config.form_rss.token_create'|trans }}
+                                        {% endif %}</a>
                                     </div>
                                 </div>
                             </div>
                             {% if rss.token %}
                             <div class="row">
                                 <div class="input-field col s12">
-                                    <label>{% trans %}RSS links{% endtrans %}</label>
-                                        <ul>
-                                            <li><a href="{{ path('unread_rss', {'username': rss.username, 'token': rss.token}) }}">{% trans %}unread{% endtrans %}</a></li>
-                                            <li><a href="{{ path('starred_rss', {'username': rss.username, 'token': rss.token}) }}">{% trans %}starred{% endtrans %}</a></li>
-                                            <li><a href="{{ path('archive_rss', {'username': rss.username, 'token': rss.token}) }}">{% trans %}archive{% endtrans %}</a></li>
-                                        </ul>
-
+                                    <label>{{ 'config.form_rss.rss_links'|trans }}</label>
+                                    <ul>
+                                        <li><a href="{{ path('unread_rss', {'username': rss.username, 'token': rss.token}) }}">{{ 'config.form_rss.rss_link.unread'|trans }}</a></li>
+                                        <li><a href="{{ path('starred_rss', {'username': rss.username, 'token': rss.token}) }}">{{ 'config.form_rss.rss_link.starred'|trans }}</a></li>
+                                        <li><a href="{{ path('archive_rss', {'username': rss.username, 'token': rss.token}) }}">{{ 'config.form_rss.rss_link.archive'|trans }}</a></li>
+                                    </ul>
                                 </div>
                             </div>
                             {% endif %}
                                 </div>
                             </div>
 
-                            <div class="hidden">{{ form_rest(form.rss) }}</div>
-                            <button class="btn waves-effect waves-light" type="submit" name="action">
-                                {% trans %}Save{% endtrans %}
-                            </button>
-
+                            {{ form_widget(form.rss.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
+                            {{ form_rest(form.rss) }}
                         </form>
                     </div>
 
                             {% if twofactor_auth %}
                             <div class="row">
                                 <div class="input-field col s12">
-                                    {% trans %}Enabling two factor authentication means you'll receive an email with a code on every new untrusted connexion{% endtrans %}
+                                    {{ 'config.form_user.two_factor_description'|trans }}
                                 </div>
                             </div>
 
                             </div>
                             {% endif %}
 
-                            <div class="hidden">{{ form_rest(form.user) }}</div>
-                            <button class="btn waves-effect waves-light" type="submit" name="action">
-                                {% trans %}Save{% endtrans %}
-                            </button>
-
+                            {{ form_widget(form.user.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
+                            {{ form_rest(form.user) }}
                         </form>
                     </div>
 
                                 </div>
                             </div>
 
-                            <div class="hidden">{{ form_rest(form.pwd) }}</div>
-                            <button class="btn waves-effect waves-light" type="submit" name="action">
-                                {% trans %}Save{% endtrans %}
-                            </button>
-
+                            {{ form_widget(form.pwd.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
+                            {{ form_rest(form.pwd) }}
                         </form>
                     </div>
 
                                 <ul>
                                     {% for tagging_rule in app.user.config.taggingRules %}
                                     <li>
-                                        if « {{ tagging_rule.rule }} » then tag as « {{ tagging_rule.tags|join(', ') }} »
-                                        <a href="{{ path('delete_tagging_rule', {id: tagging_rule.id}) }}" title="{% trans %}Delete{% endtrans %}">
+                                        {{ 'config.form_rules.if_label'|trans }}
+                                        « {{ tagging_rule.rule }} »
+                                        {{ 'config.form_rules.then_tag_as_label'|trans }}
+                                        « {{ tagging_rule.tags|join(', ') }} »
+                                        <a href="{{ path('delete_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.delete_rule_label'|trans }}">
                                             <i class="tool grey-text delete mdi-action-delete"></i>
                                         </a>
                                     </li>
                                 </div>
                             </div>
 
-                            <div class="hidden">{{ form_rest(form.new_tagging_rule) }}</div>
-                            <button class="btn waves-effect waves-light" type="submit" name="action">
-                                {% trans %}Save{% endtrans %}
-                            </button>
+                            {{ form_widget(form.new_tagging_rule.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
+                            {{ form_rest(form.new_tagging_rule) }}
                         </form>
 
                         <div class="row">
                             <div class="input-field col s12">
-                                <h4>{% trans %}FAQ{% endtrans %}</h4>
+                                <h4>{{ 'config.form_rules.faq.title'|trans }}</h4>
 
-                                <h5>{% trans %}What does « tagging rules » mean?{% endtrans %}</h5>
-                                <p class="help">
-                                    {% trans %}
-                                    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.
-                                    {% endtrans %}
-                                </p>
+                                <h5>{{ 'config.form_rules.faq.tagging_rules_definition_title'|trans }}</h5>
+                                <p class="help">{{ 'config.form_rules.faq.tagging_rules_definition_description'|trans|raw }}</p>
 
-                                <h5>{% trans %}How do I use them?{% endtrans %}</h5>
-                                <p class="help">
-                                    {% trans %}
-                                    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> »
-                                    {% endtrans %}
-                                </p>
+                                <h5>{{ 'config.form_rules.faq.how_to_use_them_title'|trans }}</h5>
+                                <p class="help">{{ 'config.form_rules.faq.how_to_use_them_description'|trans|raw }}</p>
 
-                                <h5>{% trans %}Which variables and operators can I use to write rules?{% endtrans %}</h5>
+                                <h5>{{ 'config.form_rules.faq.variables_available_title'|trans }}</h5>
                                 <p class="help">
-                                    {% trans %}The following variables and operators can be used to create tagging rules:{% endtrans %}
+                                    {{ 'config.form_rules.faq.variables_available_description'|trans }}
 
-                                    <table>
+                                    <table class="bordered">
                                         <thead>
                                             <tr>
-                                                <th>{% trans %}Variable{% endtrans %}</th>
-                                                <th>{% trans %}Meaning{% endtrans %}</th>
-                                                <th>{% trans %}Operator{% endtrans %}</th>
-                                                <th>{% trans %}Meaning{% endtrans %}</th>
+                                                <th>{{ 'config.form_rules.faq.variable_description.label'|trans }}</th>
+                                                <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
+                                                <th>{{ 'config.form_rules.faq.operator_description.label'|trans }}</th>
+                                                <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
                                             </tr>
                                         </thead>
 
                                         <tbody>
                                             <tr>
                                                 <td>title</td>
-                                                <td>{% trans %}Title of the entry{% endtrans %}</td>
+                                                <td>{{ 'config.form_rules.faq.variable_description.title'|trans }}</td>
                                                 <td>&lt;=</td>
-                                                <td>{% trans %}Less than…{% endtrans %}</td>
+                                                <td>{{ 'config.form_rules.faq.operator_description.less_than'|trans }}</td>
                                             </tr>
                                             <tr>
                                                 <td>url</td>
-                                                <td>{% trans %}URL of the entry{% endtrans %}</td>
+                                                <td>{{ 'config.form_rules.faq.variable_description.url'|trans }}</td>
                                                 <td>&lt;</td>
-                                                <td>{% trans %}Strictly less than…{% endtrans %}</td>
+                                                <td>{{ 'config.form_rules.faq.operator_description.strictly_less_than'|trans }}</td>
                                             </tr>
                                             <tr>
                                                 <td>isArchived</td>
-                                                <td>{% trans %}Whether the entry is archived or not{% endtrans %}</td>
+                                                <td>{{ 'config.form_rules.faq.variable_description.isArchived'|trans }}</td>
                                                 <td>=&gt;</td>
-                                                <td>{% trans %}Greater than…{% endtrans %}</td>
+                                                <td>{{ 'config.form_rules.faq.operator_description.greater_than'|trans }}</td>
                                             </tr>
                                             <tr>
                                                 <td>isStarred</td>
-                                                <td>{% trans %}Whether the entry is starred or not{% endtrans %}</td>
+                                                <td>{{ 'config.form_rules.faq.variable_description.isStarred'|trans }}</td>
                                                 <td>&gt;</td>
-                                                <td>{% trans %}Strictly greater than…{% endtrans %}</td>
+                                                <td>{{ 'config.form_rules.faq.operator_description.strictly_greater_than'|trans }}</td>
                                             </tr>
                                             <tr>
                                                 <td>content</td>
-                                                <td>{% trans %}The entry's content{% endtrans %}</td>
+                                                <td>{{ 'config.form_rules.faq.variable_description.content'|trans }}</td>
                                                 <td>=</td>
-                                                <td>{% trans %}Equal to…{% endtrans %}</td>
+                                                <td>{{ 'config.form_rules.faq.operator_description.equal_to'|trans }}</td>
                                             </tr>
                                             <tr>
                                                 <td>language</td>
-                                                <td>{% trans %}The entry's language{% endtrans %}</td>
+                                                <td>{{ 'config.form_rules.faq.variable_description.language'|trans }}</td>
                                                 <td>!=</td>
-                                                <td>{% trans %}Not equal to…{% endtrans %}</td>
+                                                <td>{{ 'config.form_rules.faq.operator_description.not_equal_to'|trans }}</td>
                                             </tr>
                                             <tr>
                                                 <td>mimetype</td>
-                                                <td>{% trans %}The entry's mime-type{% endtrans %}</td>
+                                                <td>{{ 'config.form_rules.faq.variable_description.mimetype'|trans }}</td>
                                                 <td>OR</td>
-                                                <td>{% trans %}One rule or another{% endtrans %}</td>
+                                                <td>{{ 'config.form_rules.faq.operator_description.or'|trans }}</td>
                                             </tr>
                                             <tr>
                                                 <td>readingTime</td>
-                                                <td>{% trans %}The estimated entry's reading time, in minutes{% endtrans %}</td>
+                                                <td>{{ 'config.form_rules.faq.variable_description.readingTime'|trans }}</td>
                                                 <td>AND</td>
-                                                <td>{% trans %}One rule and another{% endtrans %}</td>
+                                                <td>{{ 'config.form_rules.faq.operator_description.and'|trans }}</td>
                                             </tr>
                                             <tr>
                                                 <td>domainName</td>
-                                                <td>{% trans %}The domain name of the entry{% endtrans %}</td>
+                                                <td>{{ 'config.form_rules.faq.variable_description.domainName'|trans }}</td>
                                                 <td>matches</td>
-                                                <td>
-                                                    {% trans %}
-                                                    Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code>
-                                                    {% endtrans %}
-                                                </td>
+                                                <td>{{ 'config.form_rules.faq.operator_description.matches'|trans|raw }}</td>
                                             </tr>
                                         </tbody>
                                     </table>
                                 </div>
                             </div>
 
-                            <div class="hidden">{{ form_rest(form.new_user) }}</div>
-                            <button class="btn waves-effect waves-light" type="submit" name="action">
-                                {% trans %}Add a user{% endtrans %}
-                            </button>
-
+                            {{ form_widget(form.new_user.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
+                            {{ form_rest(form.new_user) }}
                         </form>
                     </div>
                     {% endif %}
index c9ce6d0870233490b2f3bd288a99f57318336b4d..78a9dc046175955982304f5b71e289c383d9fec1 100644 (file)
@@ -1,6 +1,6 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}New client{% endtrans %}{% endblock %}
+{% block title %}{{ 'developer.client.page_title'|trans }}{% endblock %}
 
 {% block content %}
 <div class="row">
@@ -8,7 +8,7 @@
         <div class="card-panel settings">
 
             <div class="row">
-                <p>{% trans %}You are about to create a new client. Please fill the field below for the redirect URI of your application.{% endtrans %}</p>
+                <p>{{ 'developer.client.page_description'|trans }}</p>
                 {{ form_start(form) }}
                 {{ form_errors(form) }}
 
@@ -18,7 +18,7 @@
                     {{ form_widget(form.redirect_uris) }}
                 </div>
 
-                <a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{% trans %}Back{% endtrans %}</a>
+                <a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{{ 'developer.client.action_back'|trans }}</a>
                 {{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
 
                 {{ form_rest(form) }}
index a214dfd0b3a7984c2adcc39a2981a305ad7d86a8..b615fa3b6a8e1aa0eb3609a5a1c34c89eb660da3 100644 (file)
@@ -1,20 +1,20 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}Client parameters{% endtrans %}{% endblock %}
+{% block title %}{{ 'developer.client_parameter.page_title'|trans }}{% endblock %}
 
 {% block content %}
 <div class="row">
     <div class="col s12">
         <div class="card-panel settings">
             <div class="row">
-                <p>{% trans %}Here are your client parameters.{% endtrans %}</p>
+                <p>{{ 'developer.client_parameter.page_description'|trans }}</p>
                 <ul>
-                    <li>{% trans %}Client ID{% endtrans %}: <strong><pre>{{ client_id }}</pre></strong></li>
-                    <li>{% trans %}Client secret{% endtrans %}: <strong><pre>{{ client_secret }}</pre></strong></li>
+                    <li>{{ 'developer.client_parameter.field_id'|trans }}: <strong><pre>{{ client_id }}</pre></strong></li>
+                    <li>{{ 'developer.client_parameter.field_secret'|trans }}: <strong><pre>{{ client_secret }}</pre></strong></li>
                 </ul>
 
-                <a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{% trans %}Back{% endtrans %}</a>
-                <a href="{{ path('developer_howto_firstapp') }}" class="btn waves-effect waves-light">{% trans %}Read the howto "Create my first application"{% endtrans %}</a>
+                <a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{{ 'developer.client_parameter.back'|trans }}</a>
+                <a href="{{ path('developer_howto_firstapp') }}" class="btn waves-effect waves-light">{{ 'developer.client_parameter.read_howto'|trans }}</a>
             </div>
         </div>
     </div>
index 382e6311297b2df2e9a466dcb8b9869810767fc5..acbc2c889d257b7a8da94cca3608c440ad01e1a1 100644 (file)
@@ -1,6 +1,6 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}How to create my first application{% endtrans %}{% endblock %}
+{% block title %}{{ 'developer.howto.page_title'|trans }}{% endblock %}
 
 {% block css %}
     {{ parent() }}
         <div class="card-panel settings">
 
             <div class="row">
-                <p>{% trans %}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.{% endtrans %}</p>
-                <p>{% trans %}You need a token to communicate between your 3rd application and wallabag API.{% endtrans %}</p>
-                <p>{% trans with {'%link%': path('developer_create_client')} %}To create this token, you need <a href="%link%">to create a new client</a>.{% endtrans %}</p>
-                <p>{% trans %}Now, create your token (replace client_id, client_secret, username and password with the good values):{% endtrans %}</p>
+                <p>{{ 'developer.howto.description.paragraph_1'|trans|raw }}</p>
+                <p>{{ 'developer.howto.description.paragraph_2'|trans }}</p>
+                <p>{{ 'developer.howto.description.paragraph_3'|trans({'%link%': path('developer_create_client')})|raw }}</p>
+                <p>{{ 'developer.howto.description.paragraph_4'|trans }}</p>
                 <p>
                     <pre><code class="language-bash">http POST http://v2.wallabag.org/oauth/v2/token \
     grant_type=password \
@@ -25,7 +25,7 @@
     username=yourUsername \
     password=yourPassw0rd</code></pre>
                 </p>
-                <p>{% trans %}The API will return a response like this:{% endtrans %}</p>
+                <p>{{ 'developer.howto.description.paragraph_5'|trans }}</p>
                 <p>
                     <pre><code class="language-bash">HTTP/1.1 200 OK
 Cache-Control: no-store, private
@@ -45,14 +45,14 @@ X-Powered-By: PHP/5.5.9-1ubuntu4.13
     "token_type": "bearer"
 }</code></pre>
                 </p>
-                <p>{% trans %}The access_token is useful to do a call to the API endpoint. For example:{% endtrans %}</p>
+                <p>{{ 'developer.howto.description.paragraph_6'|trans }}</p>
                 <p>
                     <pre><code class="language-bash">http GET http://v2.wallabag.org/api/entries.json \
     "Authorization:Bearer ZWFjNjA3ZWMwYWVmYzRkYTBlMmQ3NTllYmVhOGJiZDE0ZTg1NjE4MjczOTVlNzM0ZTRlMWQ0MmRlMmYwNTk5Mw"</code></pre>
                 </p>
-                <p>{% trans %}This call will return all the entries for your user.{% endtrans %}</p>
-                <p>{% trans with {'%link%': path('nelmio_api_doc_index')} %}If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.{% endtrans %}</p>
-                <p><a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{% trans %}Back{% endtrans %}</a></p>
+                <p>{{ 'developer.howto.description.paragraph_7'|trans }}</p>
+                <p>{{ 'developer.howto.description.paragraph_8'|trans({'%link%': path('nelmio_api_doc_index')})|raw }}</p>
+                <p><a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{{ 'developer.howto.back'|trans }}</a></p>
             </div>
 
         </div>
index 2e7dbcab709e419afd576fd81e5ab81bf6b6a423..e12779b75370897cb2ad4d8486078e98e5a5999b 100644 (file)
@@ -1,6 +1,6 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}Developer{% endtrans %}{% endblock %}
+{% block title %}{{ 'developer.page_title'|trans }}{% endblock %}
 
 {% block content %}
 <div class="row">
@@ -8,21 +8,21 @@
         <div class="card-panel settings">
 
             <div class="row">
-                <h3>{% trans %}Welcome to the wallabag API{% endtrans %}</h3>
+                <h3>{{ 'developer.welcome_message'|trans }}</h3>
 
-                <h4>{% trans %}Documentation{% endtrans %}</h4>
+                <h4>{{ 'developer.documentation'|trans }}</h4>
 
                 <ul>
-                    <li><a href="{{ path('developer_howto_firstapp') }}">{% trans %}How to create my first application{% endtrans %}</a></li>
-                    <li><a href="{{ path('nelmio_api_doc_index') }}">{% trans %}View full API documentation{% endtrans %}</a></li>
+                    <li><a href="{{ path('developer_howto_firstapp') }}">{{ 'developer.how_to_first_app'|trans }}</a></li>
+                    <li><a href="{{ path('nelmio_api_doc_index') }}">{{ 'developer.full_documentation'|trans }}</a></li>
                 </ul>
 
-                <h4>{% trans %}Clients{% endtrans %}</h4>
+                <h4>{{ 'developer.clients.title'|trans }}</h4>
                 <ul>
-                    <li><a href="{{ path('developer_create_client') }}">{% trans %}Create a new client{% endtrans %}</a></li>
+                    <li><a href="{{ path('developer_create_client') }}">{{ 'developer.clients.create_new'|trans }}</a></li>
                 </ul>
 
-                <h4>{% trans %}Existing clients{% endtrans %}</h4>
+                <h4>{{ 'developer.existing_clients.title'|trans }}</h4>
                 {% if clients %}
                     <ul class="collapsible" data-collapsible="expandable">
                         {% for client in clients %}
                                 <div class="collapsible-body">
                                     <table class="striped">
                                         <tr>
-                                            <td>{% trans %}Client ID{% endtrans %}</td>
+                                            <td>{{ 'developer.existing_clients.field_id'|trans }}</td>
                                             <td><strong><code>{{ client.id }}_{{ client.randomId }}</code></strong></td>
                                         </tr>
                                         <tr>
-                                            <td>{% trans %}Client secret{% endtrans %}</td>
+                                            <td>{{ 'developer.existing_clients.field_secret'|trans }}</td>
                                             <td><strong><code>{{ client.secret }}</code></strong></td>
                                         </tr>
                                         <tr>
-                                            <td>{% trans %}Redirect URIs{% endtrans %}</td>
+                                            <td>{{ 'developer.existing_clients.field_uris'|trans }}</td>
                                             <td><strong><code>{{ client.redirectUris|json_encode() }}</code></strong></td>
                                         </tr>
                                         <tr>
-                                            <td>{% trans %}Grant type allowed{% endtrans %}</td>
+                                            <td>{{ 'developer.existing_clients.field_grant_types'|trans }}</td>
                                             <td><strong><code>{{ client.allowedGrantTypes|json_encode() }}</code></strong></td>
                                         </tr>
                                     </table>
                                     <p>
-                                        {% trans %}You have the ability to remove this client. This action is IRREVERSIBLE !{% endtrans %}<br/>
-                                        {% trans %}If you remove it, every app configured with that client won't be able to auth on your wallabag.{% endtrans %}<br/>
-                                        <a class="waves-effect waves-light red btn" href="{{ path('developer_delete_client', {'id': client.id}) }}">{% trans %}Remove this client{% endtrans %}</a>
+                                        {{ 'developer.remove.warn_message_1'|trans }}<br/>
+                                        {{ 'developer.remove.warn_message_2'|trans }}<br/>
+                                        <a class="waves-effect waves-light red btn" href="{{ path('developer_delete_client', {'id': client.id}) }}">{{ 'developer.remove.action'|trans }}</a>
                                     </p>
                                 </div>
                             </li>
                         {% endfor %}
                     </ul>
                 {% else %}
-                    {% trans %}No client yet.{% endtrans %}
+                    {{ 'developer.existing_clients.no_client'|trans }}
                 {% endif %}
             </div>
 
index c002c4c35e87e1e6d5296aa297a7f095430b57da..1c5e2aab55db0df0e4b414d47e21a5e1e0097bbd 100644 (file)
@@ -1,6 +1,6 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}Edit an entry{% endtrans %}{% endblock %}
+{% block title %}{{ 'entry.edit.page_title'|trans }}{% endblock %}
 
 {% block content %}
 
@@ -10,7 +10,6 @@
 
                 <form name="entry" method="post" action="">
                     <div class="card-content">
-
                         {% if form_errors(form) %}
                             <span class="black-text">{{ form_errors(form) }}</span>
                         {% endif %}
                             {{ form_widget(form.title) }}
                         </div>
 
+                        <div class="input-field s12">
+                            {{ form_label(form.url) }}
+                            {{ form_widget(form.url) }}
+                        </div>
+
                         <div class="input-field s12">
                             {{ form_widget(form.is_public) }}
                             {{ form_label(form.is_public) }}
                         </div>
                         <br>
-                        <button class="btn waves-effect waves-light" type="submit" name="entry[save]">
-                            {% trans %}Save{% endtrans %}
-                            <i class="mdi-content-send right"></i>
-                        </button>
+
+                        {{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
                     </div>
-                    <div class="hidden">{{ form_rest(form) }}</div>
+                    {{ form_rest(form) }}
                 </form>
 
             </div>
index 371992df41aad59aea17aebf337e06f475c52559..433b1caeb5218bb1598e25835661fa3d22bff2ea 100644 (file)
@@ -4,13 +4,13 @@
   {% set currentRoute = app.request.attributes.get('_route') %}
 
   {% if currentRoute == 'starred' %}
-    {% trans %}starred{% endtrans %}
+    {{ 'entry.page_titles.starred'|trans }}
   {% elseif currentRoute == 'archive' %}
-    {% trans %}archive{% endtrans %}
+    {{ 'entry.page_titles.archived'|trans }}
   {% elseif currentRoute == 'all' %}
-    {% trans %}Filtered{% endtrans %}
+    {{ 'entry.page_titles.filtered'|trans }}
   {% else %}
-    {% trans %}unread{% endtrans %}
+    {{ 'entry.page_titles.unread'|trans }}
   {% endif %}
 
 {% endblock %}
@@ -18,7 +18,9 @@
 {% block content %}
     {% block pager %}
     <div class="results clearfix">
-        <div class="nb-results left">{% transchoice entries.count %}{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.{% endtranschoice %}</div>
+        <div class="nb-results left">
+            {{ 'entry.list.number_on_the_page'|transchoice(entries.count) }}
+        </div>
         <ul class="pagination right">
             {% for p in range(1, entries.nbPages) if entries.nbPages > 1 %}
                 <li class="{{ currentPage == p ? 'active':'waves-effect'}}">
@@ -52,9 +54,9 @@
                                 <span class="tool reading-time">
                                     {% set readingTime = entry.readingTime / app.user.config.readingSpeed %}
                                     {% if readingTime > 0 %}
-                                        {% trans with {'%readingTime%': readingTime } %}estimated reading time: %readingTime% min{% endtrans %}
+                                        {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': readingTime}) }}
                                     {% else %}
-                                        {% trans with {'%inferior%': '<small class="inferieur">&lt;</small>'} %}estimated reading time: %inferior% 1 min{% endtrans %}
+                                        {{ 'entry.list.reading_time_less_one_minute'|trans|raw }}
                                     {% endif %}
                                 </span>
                             </div>
@@ -72,7 +74,7 @@
 
                             <div class="estimatedTime grey-text">
                                 <span class="tool reading-time">
-                                    {% trans %}estimated reading time{% endtrans %}:
+                                    {{ 'entry.list.reading_time'|trans }}
                                     {% if entry.readingTime > 0 %}{{ entry.readingTime }}{% else %}<small class="inferieur">&lt;</small> 1{% endif %} min
                                 </span>
                             </div>
                     {% endif %}
 
                     <div class="card-action">
-                        <span class="bold"><a href="{{ entry.url|e }}" target="_blank" title="{% trans %}original{% endtrans %}: {{ entry.title|e }} - {{ entry.domainName|removeWww }}" class="tool original grey-text"><span>{{ entry.domainName|removeWww|truncate(18) }}</span></a></bold>
+                        <span class="bold">
+                            <a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.list.original_article'|trans }}: {{ entry.title|e }} - {{ entry.domainName|removeWww }}" class="tool original grey-text"><span>{{ entry.domainName|removeWww|truncate(18) }}</span></a>
+                        </bold>
 
                         <ul class="tools links right">
                             <li>
-                                <a title="{% trans %}Toggle mark as read{% endtrans %}" class="tool grey-text {% if entry.isArchived == 0 %}mdi-action-done{% else %}mdi-content-redo{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"></a>
-                                <a title="{% trans %}Toggle favorite{% endtrans %}" class="tool grey-text {% if entry.isStarred == 0 %}mdi-action-favorite-outline{% else %}mdi-action-favorite{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"></a>
-                                <a title="{% trans %}Delete{% endtrans %}" class="tool grey-text delete mdi-action-delete " href="{{ path('delete_entry', { 'id': entry.id }) }}"></a>
+                                <a title="{{ 'entry.list.toogle_as_read'|trans }}" class="tool grey-text {% if entry.isArchived == 0 %}mdi-action-done{% else %}mdi-content-redo{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"></a>
+                                <a title="{{ 'entry.list.toogle_as_star'|trans }}" class="tool grey-text {% if entry.isStarred == 0 %}mdi-action-favorite-outline{% else %}mdi-action-favorite{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"></a>
+                                <a title="{{ 'entry.list.delete'|trans }}" class="tool grey-text delete mdi-action-delete " href="{{ path('delete_entry', { 'id': entry.id }) }}"></a>
                             </li>
                         </ul>
                     </div>
     {% if currentRoute == 'homepage' %}
         {% set currentRoute = 'unread' %}
     {% endif %}
-        <h4 class="center">{% trans %}Export{% endtrans %}</h4>
+        <h4 class="center">{{ 'entry.list.export_title'|trans }}</h4>
         <ul>
             {% if craue_setting('export_epub') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'epub' }) }}">EPUB</a></li>{% endif %}
             {% if craue_setting('export_mobi') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'mobi' }) }}">MOBI</a></li>{% endif %}
     <div id="filters" class="side-nav fixed right-aligned">
         <form action="{{ path('all') }}">
 
-            <h4 class="center">{% trans %}Filters{% endtrans %}</h4>
+            <h4 class="center">{{ 'entry.filters.title'|trans }}</h4>
 
             <div class="row">
                 <div class="col s12">
-                    <label>{% trans %}Status{% endtrans %}</label>
+                    <label>{{ 'entry.filters.status_label'|trans }}</label>
                 </div>
 
                 <div class="input-field col s6 with-checkbox">
                     {{ form_widget(form.isArchived) }}
-                    <label for="entry_filter_isArchived">{% trans %}Archived{% endtrans %}</label>
+                    {{ form_label(form.isArchived) }}
                 </div>
 
                 <div class="input-field col s6 with-checkbox">
                     {{ form_widget(form.isStarred) }}
-                    <label for="entry_filter_isStarred">{% trans %}Starred{% endtrans %}</label>
+                    {{ form_label(form.isStarred) }}
                 </div>
 
                 <div class="col s12">
-                    <label>{% trans %}Preview picture{% endtrans %}</label>
+                    <label>{{ 'entry.filters.preview_picture_help'|trans }}</label>
                 </div>
 
                 <div class="input-field col s12 with-checkbox">
                     {{ form_widget(form.previewPicture) }}
-                    <label for="entry_filter_previewPicture">{% trans %}Has a preview picture{% endtrans %}</label>
+                    {{ form_label(form.previewPicture) }}
                 </div>
 
                 <div class="col s12">
-                    <label>{% trans %}Language{% endtrans %}</label>
+                    {{ form_label(form.language) }}
                 </div>
 
                 <div class="input-field col s12">
                 </div>
 
                 <div class="col s12">
-                    <label>{% trans %}Reading time in minutes{% endtrans %}</label>
+                    {{ form_label(form.readingTime) }}
                 </div>
                 <div class="input-field col s6">
                     {{ form_widget(form.readingTime.left_number, {'type': 'number'}) }}
-                    <label for="entry_filter_readingTime_left_number">{% trans %}from{% endtrans %}</label>
+                    <label for="entry_filter_readingTime_left_number">{{ 'entry.filters.reading_time.from'|trans }}</label>
                 </div>
                 <div class="input-field col s6">
                     {{ form_widget(form.readingTime.right_number, {'type': 'number'}) }}
-                    <label for="entry_filter_readingTime_right_number">{% trans %}to{% endtrans %}</label>
+                    <label for="entry_filter_readingTime_right_number">{{ 'entry.filters.reading_time.to'|trans }}</label>
                 </div>
 
                 <div class="input-field col s12">
-                    {{ form_widget(form.domainName, {'type': 'text', 'attr' : {'placeholder': 'website.com' | trans} }) }}
-                    <label for="entry_filter_domainName">{% trans %}Domain name{% endtrans %}</label>
+                    {{ form_widget(form.domainName, {'type': 'text', 'attr' : {'placeholder': 'website.com'} }) }}
+                    {{ form_label(form.domainName) }}
                 </div>
 
                 <div class="col s12">
-                    <label>{% trans %}Creation date{% endtrans %}</label>
+                    {{ form_label(form.createdAt) }}
                 </div>
 
                 <div class="input-field col s6">
                     {{ form_widget(form.createdAt.left_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.left_date.vars.value} }) }}
-                    <label for="entry_filter_createdAt_left_date" class="active">{% trans %}from{% endtrans %}</label>
+                    <label for="entry_filter_createdAt_left_date" class="active">{{ 'entry.filters.created_at.from'|trans }}</label>
                 </div>
                 <div class="input-field col s6">
                     {{ form_widget(form.createdAt.right_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.right_date.vars.value} }) }}
-                    <label for="entry_filter_createdAt_right_date" class="active">{% trans %}to{% endtrans %}</label>
+                    <label for="entry_filter_createdAt_right_date" class="active">{{ 'entry.filters.created_at.to'|trans }}</label>
                 </div>
 
                 <div class="col s6">
-                    <a href="#!" class="center waves-effect waves-green btn-flat" id="clear_form_filters">{% trans %}Clear{% endtrans %}</a>
+                    <a href="#!" class="center waves-effect waves-green btn-flat" id="clear_form_filters">{{ 'entry.filters.action.clear'|trans }}</a>
                 </div>
 
                 <div class="col s6">
-                    <button class="btn waves-effect waves-light" type="submit" id="submit-filter" value="filter">{% trans %}Filter{% endtrans %}</button>
+                    <button class="btn waves-effect waves-light" type="submit" id="submit-filter" value="filter">{{ 'entry.filters.action.filter'|trans }}</button>
                 </div>
-
             </div>
 
         </form>
index a39a8dc37a5c684112c7a906e5c61a9f00f81384..98f7194cfc82174e30079468caac8b8e600fab9b 100644 (file)
@@ -18,9 +18,9 @@
                 <description>
                     <![CDATA[
                     {%- if entry.readingTime > 0 -%}
-                        {% trans %}estimated reading time :{% endtrans %} {{ entry.readingTime }} min
+                        {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': entry.readingTime}) }}
                     {%- else -%}
-                        {% trans %}estimated reading time :{% endtrans %} &lt; 1 min
+                        {{ 'entry.list.reading_time_less_one_minute'|trans|raw }}
                     {%- endif %}
 
                     {{ entry.content|raw -}}
index 6f33da23c1cf0ca9778793aff0e5c8c5f7bc5050..4eebf18fb370edd4b2d66ae8ac25412b7226c725 100644 (file)
@@ -2,6 +2,8 @@
 
 {% block title %}{{ entry.title|raw }} ({{ entry.domainName|removeWww }}){% endblock %}
 
+{% block body_class %}entry{% endblock %}
+
 {% block menu %}
     <div class="progress">
         <div class="determinate"></div>
             </ul>
             <ul class="right">
                 <li>
-                    <a class="waves-effect" title="{% trans %}Mark as read{% endtrans %}" href="{{ path('archive_entry', { 'id': entry.id }) }}" id="markAsRead">
+                    <a class="waves-effect" title="{{ 'entry.view.left_menu.set_as_read'|trans }}" href="{{ path('archive_entry', { 'id': entry.id }) }}" id="markAsRead">
                         <i class="{% if entry.isArchived == 0 %}mdi-action-done{% else %}mdi-content-redo{% endif %} small"></i>
                     </a>
                 </li>
                 <li>
-                    <a class="waves-effect" title="{% trans %}Favorite{% endtrans %}" href="{{ path('star_entry', { 'id': entry.id }) }}" id="setFav">
+                    <a class="waves-effect" title="{{ 'entry.view.left_menu.set_as_favorite'|trans }}" href="{{ path('star_entry', { 'id': entry.id }) }}" id="setFav">
                         <i class="{% if entry.isStarred == 0 %}mdi-action-favorite-outline{% else %}mdi-action-favorite{% endif %} small"></i>
                     </a>
                 </li>
@@ -38,7 +40,7 @@
         <li class="bold border-bottom hide-on-med-and-down">
             <a class="waves-effect collapsible-header" href="{{ path('homepage') }}">
                 <i class="mdi-action-exit-to-app small"></i>
-                <span>{% trans %}back{% endtrans %}</span>
+                <span>{{ 'entry.view.left_menu.back_to_homepage'|trans }}</span>
             </a>
             <div class="collapsible-body"></div>
         </li>
         <li class="bold border-bottom hide-on-med-and-down">
             <a class="waves-effect collapsible-header" href="{{ entry.url|e }}">
                 <i class="mdi-content-link small"></i>
-                <span>{% trans %}original article{% endtrans %}</span>
+                <span>{{ 'entry.view.left_menu.view_original_article'|trans }}</span>
             </a>
             <div class="collapsible-body"></div>
         </li>
 
         <li class="bold hide-on-med-and-down">
-            <a class="waves-effect collapsible-header" title="{% trans %}Re-fetch content{% endtrans %}" href="{{ path('reload_entry', { 'id': entry.id }) }}" id="reload">
+            <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.re_fetch_content'|trans }}" href="{{ path('reload_entry', { 'id': entry.id }) }}" id="reload">
                 <i class="mdi-action-autorenew small"></i>
-                <span>{% trans %}Re-fetch content{% endtrans %}</span>
+                <span>{{ 'entry.view.left_menu.re_fetch_content'|trans }}</span>
             </a>
             <div class="collapsible-body"></div>
         </li>
 
         <li class="bold hide-on-med-and-down">
-            <a class="waves-effect collapsible-header" title="{% trans %}Mark as read{% endtrans %}" href="{{ path('archive_entry', { 'id': entry.id }) }}" id="markAsRead">
+            <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.set_as_read'|trans }}" href="{{ path('archive_entry', { 'id': entry.id }) }}" id="markAsRead">
                 <i class="{% if entry.isArchived == 0 %}mdi-action-done{% else %}mdi-content-redo{% endif %} small"></i>
-                <span>{% if entry.isArchived == 0 %}{% trans %}Mark as read{% endtrans %}{% else %}{% trans %}Mark as unread{% endtrans %}{% endif %}</span>
+                <span>{% if entry.isArchived == 0 %}{{ 'entry.view.left_menu.set_as_read'|trans }}{% else %}{{ 'entry.view.left_menu.set_as_unread'|trans }}{% endif %}</span>
             </a>
             <div class="collapsible-body"></div>
         </li>
 
         <li class="bold hide-on-med-and-down">
-            <a class="waves-effect collapsible-header" title="{% trans %}Favorite{% endtrans %}" href="{{ path('star_entry', { 'id': entry.id }) }}" id="setFav">
+            <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.set_as_favorite'|trans }}" href="{{ path('star_entry', { 'id': entry.id }) }}" id="setFav">
                 <i class="{% if entry.isStarred == 0 %}mdi-action-favorite-outline{% else %}mdi-action-favorite{% endif %} small"></i>
-                <span>{% trans %}Favorite{% endtrans %}</span>
+                <span>{{ 'entry.view.left_menu.set_as_favorite'|trans }}</span>
             </a>
             <div class="collapsible-body"></div>
         </li>
         <li class="bold border-bottom hide-on-med-and-down">
-            <a class="waves-effect collapsible-header" title="{% trans %}Delete{% endtrans %}" href="{{ path('delete_entry', { 'id': entry.id }) }}">
+            <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.delete'|trans }}" href="{{ path('delete_entry', { 'id': entry.id }) }}">
                 <i class="mdi-action-delete small"></i>
-                <span>{% trans %}Delete{% endtrans %}</span>
+                <span>{{ 'entry.view.left_menu.delete'|trans }}</span>
             </a>
             <div class="collapsible-body"></div>
         </li>
@@ -85,7 +87,7 @@
         <li class="bold border-bottom hide-on-med-and-down">
             <a class="waves-effect collapsible-header" id="nav-btn-add-tag">
                 <i class="mdi-action-label-outline small"></i>
-                <span>{% trans %}Add a tag{% endtrans %}</span>
+                <span>{{ 'entry.view.left_menu.add_a_tag'|trans }}</span>
             </a>
             <div class="collapsible-body"></div>
         </li>
@@ -93,7 +95,7 @@
         <li class="bold">
             <a class="waves-effect collapsible-header">
                 <i class="mdi-social-share small"></i>
-                <span>{% trans %}Share{% endtrans %}</span>
+                <span>{{ 'entry.view.left_menu.share_content'|trans }}</span>
             </a>
             <div class="collapsible-body">
                 <ul>
                     {% endif %}
                     {% if craue_setting('share_mail') %}
                         <li>
-                            <a href="mailto:?subject={{ entry.title|url_encode }}&amp;body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="{% trans %}Email{% endtrans %}">
-                                <span>{% trans %}Email{% endtrans %}</span>
+                            <a href="mailto:?subject={{ entry.title|url_encode }}&amp;body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="{{ 'entry.view.left_menu.share_email_label'|trans }}">
+                                <span>{{ 'entry.view.left_menu.share_email_label'|trans }}</span>
                             </a>
                         </li>
                     {% endif %}
         <li class="bold">
             <a class="waves-effect collapsible-header">
                 <i class="mdi-file-file-download small"></i>
-                <span>{% trans %}Download{% endtrans %}</span>
+                <span>{{ 'entry.view.left_menu.download'|trans }}</span>
             </a>
             <div class="collapsible-body">
                 <ul>
         </li>
 
         <li class="bold hide-on-large-only">
-            <a class="waves-effect collapsible-header" title="{% trans %}Delete{% endtrans %}" href="{{ path('delete_entry', { 'id': entry.id }) }}">
+            <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.delete'|trans }}" href="{{ path('delete_entry', { 'id': entry.id }) }}">
                 <i class="mdi-action-delete small"></i>
-                <span>{% trans %}Delete{% endtrans %}</span>
+                <span>{{ 'entry.view.left_menu.delete'|trans }}</span>
             </a>
             <div class="collapsible-body"></div>
         </li>
 
         <li class="bold">
-            <a class="waves-effect collapsible-header" href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&amp;body={{ entry.url|url_encode }}" title="{% trans %}Does this article appear wrong?{% endtrans %}">
+            <a class="waves-effect collapsible-header" href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&amp;body={{ entry.url|url_encode }}" title="{{ 'entry.view.left_menu.problem.description'|trans }}">
                 <i class="mdi-alert-error small"></i>
-                <span>{% trans %}Problems?{% endtrans %}</span>
+                <span>{{ 'entry.view.left_menu.problem.label'|trans }}</span>
             </a>
             <div class="collapsible-body"></div>
         </li>
 
     </ul>
 
-<style>
-main {
-    padding: 0;
-}
-</style>
-
 {% endblock %}
 
 {% block content %}
     <div id="article">
         <header class="mbm">
-            <h1>{{ entry.title|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" title="{% trans %}Edit title{% endtrans %}">✎</a></h1>
+            <h1>{{ entry.title|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" title="{{ 'entry.view.edit_title'|trans }}">✎</a></h1>
         </header>
         <aside>
-            <a href="{{ entry.url|e }}" target="_blank" title="{% trans %}original{% endtrans %} : {{ entry.title|e }}" class="tool link mdi-content-link"> <span>{{ entry.domainName|removeWww }}</span></a>
-            {% set nbAnnotations = entry.annotations | length %}
-            <span class="tool link mdi-communication-comment"> {% transchoice nbAnnotations %}{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations{% endtranschoice %}</span>
+            <a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool link mdi-content-link"> <span>{{ entry.domainName|removeWww }}</span></a>
+            <span class="tool link mdi-communication-comment"> {{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span>
             <div id="list">
                 {% for tag in entry.tags %}
                     <div class="chip">
index 95ed0785231afa2a384e0281b3b2ff2253e2ed16..03768a3d80a0e2be4839b8a062e400dc062e66e4 100644 (file)
@@ -1,6 +1,6 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}Save new entry{% endtrans %}{% endblock %}
+{% block title %}{{ 'entry.new.page_title'|trans }}{% endblock %}
 
 {% block content %}
     {{ render(controller( "WallabagCoreBundle:Entry:addEntryForm" )) }}
index f1e5641265cfb4e0ff3e8fa2309156a4b6ab41f1..0cf4fb7462ab6f88112e947c319821f6c160255c 100644 (file)
@@ -7,7 +7,7 @@
         <span class="black-text">{{ form_errors(form.url) }}</span>
     {% endif %}
 
-    {{ form_widget(form.url, { 'attr': {'autocomplete': 'off', 'placeholder': 'http://website'} }) }}
+    {{ form_widget(form.url, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.new.placeholder'} }) }}
 
-    <div class="hidden">{{ form_rest(form) }}</div>
+    {{ form_rest(form) }}
 </form>
index 1368bb092bdc34c02c90e5f41542726ee4bd6e4e..a294b74dba35d5114eea9ce756fd225042de81e4 100644 (file)
@@ -1,6 +1,6 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}About{% endtrans %}{% endblock %}
+{% block title %}{{ 'about.page_title'|trans }}{% endblock %}
 
 {% block content %}
 
                 <div class="row">
                     <div class="div_tabs col s12">
                         <ul class="tabs">
-                        <li class="tab col s3"><a class="active" href="#set1">{% trans %}Who is behind wallabag{% endtrans %}</a></li>
-                        <li class="tab col s3"><a href="#set2">{% trans %}Getting help{% endtrans %}</a></li>
-                        <li class="tab col s3"><a href="#set3">{% trans %}Helping wallabag{% endtrans %}</a></li>
-                        <li class="tab col s3"><a href="#set4">{% trans %}Contributors{% endtrans %}</a></li>
-                        <li class="tab col s3"><a href="#set5">{% trans %}Third-party libraries{% endtrans %}</a></li>
+                        <li class="tab col s3"><a class="active" href="#set1">{{ 'about.top_menu.who_behind_wallabag'|trans }}</a></li>
+                        <li class="tab col s3"><a href="#set2">{{ 'about.top_menu.getting_help'|trans }}</a></li>
+                        <li class="tab col s3"><a href="#set3">{{ 'about.top_menu.helping'|trans }}</a></li>
+                        <li class="tab col s3"><a href="#set4">{{ 'about.top_menu.contributors'|trans }}</a></li>
+                        <li class="tab col s3"><a href="#set5">{{ 'about.top_menu.third_party'|trans }}</a></li>
                         </ul>
                     </div>
 
                     <div id="set1" class="col s12">
-                        <dt>{% trans %}Developed by{% endtrans %}</dt>
-                        <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{% trans %}website{% endtrans %}</a></dd>
-                        <dd>Thomas Citharel — <a href="https://tcit.fr">{% trans %}website{% endtrans %}</a></dd>
-                        <dd>Jérémy Benoist — <a href="http://www.j0k3r.net">{% trans %}website{% endtrans %}</a></dd>
-                        <dt>{% trans %}And many others contributors ♥{% endtrans %} <a href="https://github.com/wallabag/wallabag/graphs/contributors">{% trans %}on GitHub{% endtrans %}</a></dt>
-                        <dt>{% trans %}Project website{% endtrans %}</dt>
+                        <dt>{{ 'about.who_behind_wallabag.developped_by'|trans }}</dt>
+                        <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
+                        <dd>Thomas Citharel — <a href="https://tcit.fr">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
+                        <dd>Jérémy Benoist — <a href="http://www.j0k3r.net">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
+                        <dt>{{ 'about.who_behind_wallabag.many_contributors'|trans|raw }}</dt>
+                        <dt>{{ 'about.who_behind_wallabag.project_website'|trans }}</dt>
                         <dd><a href="https://www.wallabag.org">https://www.wallabag.org</a></dd>
-                        <dt>{% trans %}License{% endtrans %}: <a href="http://en.wikipedia.org/wiki/MIT_License">MIT</a></dt>
-                        <dt>{% trans %}Version{% endtrans %}: {{ version }}</dt>
+                        <dt>{{ 'about.who_behind_wallabag.license'|trans }}: <a href="https://en.wikipedia.org/wiki/MIT_License">MIT</a></dt>
+                        <dt>{{ 'about.who_behind_wallabag.version'|trans }}: {{ version }}</dt>
                     </div>
 
                     <div id="set2" class="col s12">
                         <dl>
-                            <dt>{% trans %}Documentation{% endtrans %}</dt>
+                            <dt>{{ 'about.getting_help.documentation'|trans }}</dt>
                             <dd><a href="https://doc.wallabag.org/en">english</a></dd>
                             <dd><a href="https://doc.wallabag.org/fr">français</a></dd>
                             <dd><a href="https://doc.wallabag.org/de">deutsch</a></dd>
 
-                            <dt>{% trans %}Bug reports{% endtrans %}</dt>
-                            <dd><a href="https://support.wallabag.org">{% trans %}On our support website{% endtrans %}</a> {% trans %}or{% endtrans %} <a href="https://github.com/wallabag/wallabag/issues">{% trans %}on GitHub{% endtrans %}</a></dd>
+                            <dt>{{ 'about.getting_help.bug_reports'|trans }}</dt>
+                            <dd>{{ 'about.getting_help.support'|trans|raw }}</dd>
                         </dl>
                     </div>
 
                     <div id="set3" class="col s12">
                         <dl>
-                            <dt>{% trans %}wallabag is free and opensource. You can help us:{% endtrans %}</dt>
-                            <dd>{% trans %}by contributing to the project:{% endtrans %} <a href="https://github.com/wallabag/wallabag/issues/1254">{% trans %}an issue lists all our needs{% endtrans %}</a></dd>
-                            <dd><a href="{{ paypal_url }}">{% trans %}via Paypal{% endtrans %}</a></dd>
+                            <dt>{{ 'about.helping.description'|trans }}</dt>
+                            <dd>{{ 'about.helping.by_contributing_2'|trans }} <a href="https://github.com/wallabag/wallabag/issues/1254">{{ 'about.helping.by_contributing'|trans }}</a></dd>
+                            <dd><a href="{{ paypal_url }}">{{ 'about.helping.by_paypal'|trans }}</a></dd>
                         </dl>
                     </div>
 
                     <div id="set4" class="col s12">
-                        <p><a href="https://github.com/wallabag/wallabag/graphs/contributors">{% trans %}Thank you to contributors on wallabag web application{% endtrans %}</a></p>
+                        <p><a href="https://github.com/wallabag/wallabag/graphs/contributors">{{ 'about.contributors.description'|trans }}</a></p>
                     </div>
 
                     <div id="set5" class="col s12">
-                        <p>{% trans %}Here are the list of third-party libraries used in wallabag (with their licenses):{% endtrans %}</p>
-                        <table>
+                        <p>{{ 'about.third_party.description'|trans }}</p>
+                        <table class="striped">
                             <tr>
-                                <th>{% trans %}Package{% endtrans %}</th>
-                                <th>{% trans %}License{% endtrans %}</th>
+                                <th>{{ 'about.third_party.package'|trans }}</th>
+                                <th>{{ 'about.third_party.license'|trans }}</th>
                             </tr>
                             <tr><td>behat/transliterator</td><td>Artistic 1.0</td></tr>
                             <tr><td>CraueConfigBundle</td><td>MIT</td></tr>
index e27954094bd59b1fcf4bda16a5c2cae260356638..15b548d8915a28eb48c89594dd0beae3e3f61081 100644 (file)
@@ -1,44 +1,40 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}howto{% endtrans %}{% endblock %}
+{% block title %}{{ 'howto.page_title'|trans }}{% endblock %}
 
 {% block content %}
 
     <div class="row">
         <div class="col s12">
             <div class="card-panel settings">
+                <p>{{ 'howto.page_description'|trans }}</p>
 
                 <div class="row">
-                    <div class="div_tabs col s12">
-                        <ul class="tabs">
-                        <li class="tab col s3"><a class="active" href="#set1">{% trans %}Form{% endtrans %}</a></li>
-                        <li class="tab col s3"><a href="#set2">{% trans %}Browser addons{% endtrans %}</a></li>
-                        <li class="tab col s3"><a href="#set3">{% trans %}Mobile apps{% endtrans %}</a></li>
-                        <li class="tab col s3"><a href="#set4">{% trans %}Bookmarklet{% endtrans %}</a></li>
-                        </ul>
-                    </div>
 
-                    <div id="set1" class="col s12">
-                        <a href="{{ path('new') }}">{% trans %}Thanks to this form{% endtrans %}</a>
+                    <div class="col s12">
+                        <a href="{{ path('new') }}">{{ 'howto.form.description'|trans }}</a>
                     </div>
 
-                    <div id="set2" class="col s12">
+                    <div class="col s12">
+                        <h5>{{ 'howto.top_menu.browser_addons'|trans }}</h5>
                         <ul>
-                            <li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{% trans %}Standard Firefox Add-On{% endtrans %}</a></li>
-                            <li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{% trans %}Chrome Extension{% endtrans %}</a></li>
+                            <li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{{ 'howto.browser_addons.firefox'|trans }}</a></li>
+                            <li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{{ 'howto.browser_addons.chrome'|trans }}</a></li>
                         </ul>
                     </div>
 
-                    <div id="set3" class="col s12">
+                    <div class="col s12">
+                        <h5>{{ 'howto.top_menu.mobile_apps'|trans }}</h5>
                         <ul>
-                            <li>Android: <a href="https://f-droid.org/app/fr.gaulupeau.apps.InThePoche" target="_blank">via F-Droid</a> {% trans %} or {% endtrans %} <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" target="_blank">via Google Play</a></li>
-                            <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" target="_blank">{% trans %}download the application{% endtrans %}</a></li>
-                            <li>Windows Phone: <a href="http://www.windowsphone.com/en-US/store/app/wallabag/d5226cf1-f422-4e00-996c-88e9c5233332" target="_blank">{% trans %}download the application{% endtrans %}</a></li>
+                            <li>Android: <a href="https://f-droid.org/app/fr.gaulupeau.apps.InThePoche" target="_blank">{{ 'howto.mobile_apps.android.via_f_droid'|trans }}</a> / <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" target="_blank">{{ 'howto.mobile_apps.android.via_google_play'|trans }}</a></li>
+                            <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" target="_blank">{{ 'howto.mobile_apps.ios'|trans }}</a></li>
+                            <li>Windows Phone: <a href="http://www.windowsphone.com/en-US/store/app/wallabag/d5226cf1-f422-4e00-996c-88e9c5233332" target="_blank">{{ 'howto.mobile_apps.windows'|trans }}</a></li>
                         </ul>
                     </div>
 
-                    <div id="set4" class="col s12">
-                        {% trans %}Drag &amp; drop this link to your bookmarks bar:{% endtrans %}
+                    <div class="col s12">
+                        <h5>{{ 'howto.top_menu.bookmarklet'|trans }}</h5>
+                        {{ 'howto.bookmarklet.description'|trans }}
                         {% include 'WallabagCoreBundle::_bookmarklet.html.twig' %}
                     </div>
 
index 03754d3897c141421dce11775d217c7b363d945a..706c4a7926422c128e82f48db7143682e4ca8b33 100644 (file)
@@ -1,6 +1,6 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}Quickstart{% endtrans %}{% endblock %}
+{% block title %}{{ 'quickstart.page_title'|trans }}{% endblock %}
 
 {% block content %}
 
@@ -9,56 +9,63 @@
             <div class="card-panel settings">
 
                 <div class="row">
-                    <h3>{% trans %}Welcome to wallabag!{% endtrans %}</h3>
-                    <p>{% trans %}We'll accompany you to visit wallabag and show you some features which can interess you.{% endtrans %}</p>
-                    <p>{% trans %}Follow us!{% endtrans %}</p>
-                    <h4>{% trans %}Configure the application{% endtrans %}</h4>
+                    <h3>{{ 'quickstart.intro.title'|trans }}</h3>
+                    <p>{{ 'quickstart.intro.paragraph_1'|trans }}</p>
+                    <p>{{ 'quickstart.intro.paragraph_2'|trans }}</p>
+
+                    <h4>{{ 'quickstart.configure.title'|trans }}</h4>
                     <ul>
-                        <li><a href="{{ path('config') }}">{% trans %}Change language and design{% endtrans %}</a></li>
-                        <li><a href="{{ path('config') }}#set2">{% trans %}Enable RSS feeds{% endtrans %}</a></li>
-                        <li><a href="{{ path('config') }}#set5">{% trans %}Write rules to automatically tag your articles{% endtrans %}</a></li>
+                        <li><a href="{{ path('config') }}">{{ 'quickstart.configure.language'|trans }}</a></li>
+                        <li><a href="{{ path('config') }}#set2">{{ 'quickstart.configure.rss'|trans }}</a></li>
+                        <li><a href="{{ path('config') }}#set5">{{ 'quickstart.configure.tagging_rules'|trans }}</a></li>
                     </ul>
+
                     {% if is_granted('ROLE_SUPER_ADMIN') %}
-                    <h4>{% trans %}Administration{% endtrans %}</h4>
-                    <p>{% trans %}As a administrator, you have privileges on wallabag. You can:{% endtrans %}</p>
+                    <h4>{{ 'quickstart.admin.title'|trans }}</h4>
+                    <p>{{ 'quickstart.admin.description'|trans }}</p>
                     <ul>
-                        <li><a href="{{ path('config') }}#set6">{% trans %}Create a new user{% endtrans %}</a></li>
-                        <li><a href="{{ path('craue_config_settings_modify') }}#set-analytics">{% trans %}Configure analytics{% endtrans %}</a></li>
-                        <li><a href="{{ path('craue_config_settings_modify') }}#set-entry">{% trans %}Enable some parameters about article sharing{% endtrans %}</a></li>
-                        <li><a href="{{ path('craue_config_settings_modify') }}#set-export">{% trans %}Configure export{% endtrans %}</a></li>
-                        <li><a href="{{ path('craue_config_settings_modify') }}#set-import">{% trans %}Configure import{% endtrans %}</a></li>
+                        <li><a href="{{ path('config') }}#set6">{{ 'quickstart.admin.new_user'|trans }}</a></li>
+                        <li><a href="{{ path('craue_config_settings_modify') }}#set-analytics">{{ 'quickstart.admin.analytics'|trans }}</a></li>
+                        <li><a href="{{ path('craue_config_settings_modify') }}#set-entry">{{ 'quickstart.admin.sharing'|trans }}</a></li>
+                        <li><a href="{{ path('craue_config_settings_modify') }}#set-export">{{ 'quickstart.admin.export'|trans }}</a></li>
+                        <li><a href="{{ path('craue_config_settings_modify') }}#set-import">{{ 'quickstart.admin.import'|trans }}</a></li>
                     </ul>
                     {% endif %}
-                    <h4>{% trans %}First steps{% endtrans %}</h4>
+
+                    <h4>{{ 'quickstart.first_steps.title'|trans }}</h4>
                     <ul>
-                        <li><a href="{{ path('new') }}">{% trans %}Save your first article{% endtrans %}</a></li>
-                        <li><a href="{{ path('unread') }}">{% trans %}And classify it!{% endtrans %}</a></li>
+                        <li><a href="{{ path('new') }}">{{ 'quickstart.first_steps.new_article'|trans }}</a></li>
+                        <li><a href="{{ path('unread') }}">{{ 'quickstart.first_steps.unread_articles'|trans }}</a></li>
                     </ul>
-                    <h4>{% trans %}Migrate from an existing service{% endtrans %}</h4>
-                    <p>{% trans %}You're using an other service? We'll help you to retrieve your data on wallabag.{% endtrans %}</p>
+
+                    <h4>{{ 'quickstart.migrate.title'|trans }}</h4>
+                    <p>{{ 'quickstart.migrate.description'|trans }}</p>
                     <ul>
-                        <li><a href="{{ path('import_pocket') }}">{% trans %}Migrate from Pocket{% endtrans %}</a></li>
-                        <li><a href="{{ path('import_wallabag_v1') }}">{% trans %}Migrate from wallabag v1{% endtrans %}</a></li>
-                        <li><a href="{{ path('import_wallabag_v2') }}">{% trans %}Migrate from wallabag v2{% endtrans %}</a></li>
+                        <li><a href="{{ path('import_pocket') }}">{{ 'quickstart.migrate.pocket'|trans }}</a></li>
+                        <li><a href="{{ path('import_wallabag_v1') }}">{{ 'quickstart.migrate.wallabag_v1'|trans }}</a></li>
+                        <li><a href="{{ path('import_wallabag_v2') }}">{{ 'quickstart.migrate.wallabag_v2'|trans }}</a></li>
                     </ul>
-                    <h4>{% trans %}Developers{% endtrans %}</h4>
+
+                    <h4>{{ 'quickstart.developer.title'|trans }}</h4>
                     <ul>
-                        <li><a href="{{ path('developer') }}">{% trans %}Create your third application{% endtrans %}</a></li>
+                        <li><a href="{{ path('developer') }}">{{ 'quickstart.developer.create_application'|trans }}</a></li>
                     </ul>
-                    <h4>{% trans %}Full documentation{% endtrans %}</h4>
+
+                    <h4>{{ 'quickstart.docs.title'|trans }}</h4>
                     <ul>
-                        <li><a href="http://doc.wallabag.org/en/v2/user/annotations.html">{% trans %}Annotate your article{% endtrans %}</a></li>
-                        <li><a href="http://doc.wallabag.org/en/v2/user/download_articles.html">{% trans %}Convert your articles into ePUB or PDF{% endtrans %}</a></li>
-                        <li><a href="http://doc.wallabag.org/en/v2/user/filters.html">{% trans %}See how you can look for an article by using search engine and filters{% endtrans %}</a></li>
-                        <li><a href="http://doc.wallabag.org/en/v2/user/errors_during_fetching.html">{% trans %}What can I do if an article encounters errors during fetching?{% endtrans %}</a></li>
-                        <li><a href="http://doc.wallabag.org/">{% trans %}And so many other articles!{% endtrans %}</a></li>
+                        <li><a href="http://doc.wallabag.org/en/v2/user/annotations.html">{{ 'quickstart.docs.annotate'|trans }}</a></li>
+                        <li><a href="http://doc.wallabag.org/en/v2/user/download_articles.html">{{ 'quickstart.docs.export'|trans }}</a></li>
+                        <li><a href="http://doc.wallabag.org/en/v2/user/filters.html">{{ 'quickstart.docs.search_filters'|trans }}</a></li>
+                        <li><a href="http://doc.wallabag.org/en/v2/user/errors_during_fetching.html">{{ 'quickstart.docs.fetching_errors'|trans }}</a></li>
+                        <li><a href="http://doc.wallabag.org/">{{ 'quickstart.docs.all_docs'|trans }}</a></li>
                     </ul>
-                    <h4>{% trans %}Support{% endtrans %}</h4>
-                    <p>{% trans %}If you need some help, we are here for you.{% endtrans %}</p>
+
+                    <h4>{{ 'quickstart.support.title'|trans }}</h4>
+                    <p>{{ 'quickstart.support.description'|trans }}</p>
                     <ul>
-                        <li><a href="https://github.com/wallabag/wallabag/issues/">{% trans %}On GitHub{% endtrans %}</a></li>
-                        <li><a href="mailto:hello@wallabag.org">{% trans %}By email{% endtrans %}</a></li>
-                        <li><a href="https://gitter.im/wallabag/wallabag">{% trans %}On Gitter{% endtrans %}</a></li>
+                        <li><a href="https://github.com/wallabag/wallabag/issues/">{{ 'quickstart.support.github'|trans }}</a></li>
+                        <li><a href="mailto:hello@wallabag.org">{{ 'quickstart.support.email'|trans }}</a></li>
+                        <li><a href="https://gitter.im/wallabag/wallabag">{{ 'quickstart.support.gitter'|trans }}</a></li>
                     </ul>
                 </div>
 
index 793103078b485920b037f8a24f8d359915b55b71..6e552560ec14c2a491e08bcd6c3b9b071ddc5cc7 100644 (file)
@@ -9,5 +9,5 @@
 
     {{ form_widget(form.label, { 'attr': {'autocomplete': 'off'} }) }}
 
-    <div class="hidden">{{ form_rest(form) }}</div>
+    {{ form_rest(form) }}
 </form>
index 19754d415d7818a9799ccd750af982e4a99d134a..6b58368924663e51f078be35c375473200649b5c 100644 (file)
@@ -1,10 +1,10 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title "Tags" %}
+{% block title %}{{ 'tag.page_title'|trans }}{% endblock %}
 
 {% block content %}
     <div class="results clearfix">
-        <div class="nb-results left">{% transchoice tags.count %}{0} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.{% endtranschoice %}</div>
+        <div class="nb-results left">{{ 'tag.list.number_on_the_page'|transchoice(tags.count) }}</div>
     </div>
     <br />
     <ul class="row data">
index f5d03084d1c6f4af01070e94e6e14062b7f6954b..48eaca817b4b265b4636ef2661315544211f52a1 100644 (file)
@@ -31,7 +31,7 @@
         <ul id="slide-out" class="side-nav fixed">
             {% block logo %}
                 <li class="logo border-bottom">
-                    <a title="{% trans %}Back to unread articles{% endtrans %}" href="{{ path('unread') }}">
+                    <a title="{{ 'menu.left.back_to_unread'|trans }}" href="{{ path('unread') }}">
                         <img src="{{ asset('bundles/wallabagcore/themes/material/img/logo-square.png') }}" alt="wallabag logo" />
                     </a>
                 </li>
 
             {% set currentRoute = app.request.attributes.get('_route') %}
 
-            <li class="bold {% if currentRoute == 'unread' or currentRoute == 'homepage' %}active{% endif %}"><a class="waves-effect" href="{{ path('unread') }}">{% trans %}unread{% endtrans %}</a></li>
-            <li class="bold {% if currentRoute == 'starred' %}active{% endif %}"><a class="waves-effect" href="{{ path('starred') }}">{% trans %}starred{% endtrans %}</a></li>
-            <li class="bold {% if currentRoute == 'archive' %}active{% endif %}"><a class="waves-effect" href="{{ path('archive') }}">{% trans %}archive{% endtrans %}</a></li>
-            <li class="bold border-bottom {% if currentRoute == 'all' %}active{% endif %}"><a class="waves-effect" href="{{ path('all') }}">{% trans %}all{% endtrans %}</a></li>
-            <li class="bold border-bottom {% if currentRoute == 'tags' %}active{% endif %}"><a class="waves-effect" href="{{ path('tag') }}">{% trans %}tags{% endtrans %}</a></li>
-            <li class="bold {% if currentRoute == 'config' %}active{% endif %}"><a class="waves-effect" href="{{ path('config') }}">{% trans %}config{% endtrans %}</a></li>
+            <li class="bold {% if currentRoute == 'unread' or currentRoute == 'homepage' %}active{% endif %}">
+                <a class="waves-effect" href="{{ path('unread') }}">{{ 'menu.left.unread'|trans }}</a>
+            </li>
+            <li class="bold {% if currentRoute == 'starred' %}active{% endif %}">
+                <a class="waves-effect" href="{{ path('starred') }}">{{ 'menu.left.starred'|trans }}</a>
+            </li>
+            <li class="bold {% if currentRoute == 'archive' %}active{% endif %}">
+                <a class="waves-effect" href="{{ path('archive') }}">{{ 'menu.left.archive'|trans }}</a>
+            </li>
+            <li class="bold border-bottom {% if currentRoute == 'all' %}active{% endif %}">
+                <a class="waves-effect" href="{{ path('all') }}">{{ 'menu.left.all_articles'|trans }}</a>
+            </li>
+            <li class="bold border-bottom {% if currentRoute == 'tags' %}active{% endif %}">
+                <a class="waves-effect" href="{{ path('tag') }}">{{ 'menu.left.tags'|trans }}</a>
+            </li>
+            <li class="bold {% if currentRoute == 'config' %}active{% endif %}">
+                <a class="waves-effect" href="{{ path('config') }}">{{ 'menu.left.config'|trans }}</a>
+            </li>
             {% if is_granted('ROLE_SUPER_ADMIN') %}
-                <li class="bold border-bottom {% if currentRoute == 'craue_config_settings_modify' %}active{% endif %}"><a class="waves-effect" href="{{ path('craue_config_settings_modify') }}">{% trans %}internal settings{% endtrans %}</a></li>
+                <li class="bold border-bottom {% if currentRoute == 'craue_config_settings_modify' %}active{% endif %}">
+                    <a class="waves-effect" href="{{ path('craue_config_settings_modify') }}">{{ 'menu.left.internal_settings'|trans }}</a>
+                </li>
             {% endif %}
-            <li class="bold {% if currentRoute == 'import' %}active{% endif %}"><a class="waves-effect" href="{{ path('import') }}">{% trans %}import{% endtrans %}</a></li>
-            <li class="bold {% if currentRoute == 'howto' %}active{% endif %}"><a class="waves-effect" href="{{ path('howto') }}">{% trans %}howto{% endtrans %}</a></li>
-            <li class="bold {% if currentRoute == 'developer' %}active{% endif %}"><a class="waves-effect" href="{{ path('developer') }}">{% trans %}Developer{% endtrans %}</a></li>
-            <li class="bold"><a class="waves-effect" class="icon icon-power" href="{{ path('fos_user_security_logout') }}" title="{% trans %}logout{% endtrans %}">{% trans %}logout{% endtrans %}</a></li>
+            <li class="bold {% if currentRoute == 'import' %}active{% endif %}">
+                <a class="waves-effect" href="{{ path('import') }}">{{ 'menu.left.import'|trans }}</a>
+            </li>
+            <li class="bold {% if currentRoute == 'developer' %}active{% endif %}">
+                <a class="waves-effect" href="{{ path('developer') }}">{{ 'menu.left.developer'|trans }}</a>
+            </li>
+            <li class="bold {% if currentRoute == 'howto' %}active{% endif %}">
+                <a class="waves-effect" href="{{ path('howto') }}">{{ 'menu.left.howto'|trans }}</a>
+            </li>
+            <li class="bold">
+                <a class="waves-effect" class="icon icon-power" href="{{ path('fos_user_security_logout') }}">{{ 'menu.left.logout'|trans }}</a>
+            </li>
         </ul>
         <div class="nav-wrapper nav-panels">
             <a href="#" data-activates="slide-out" class="nav-panel-menu button-collapse"><i class="mdi-navigation-menu"></i></a>
             </div>
             <div class="input-field nav-panel-buttom">
                 <ul>
-                    <li class="bold"><a title="{% trans %}Add a new entry{% endtrans %}" class="waves-effect" href="{{ path('new') }}" id="nav-btn-add"><i class="mdi-content-add"></i></a></li>
-                    <li><a title="{% trans %}Search{% endtrans %}" class="waves-effect" href="javascript: void(null);" id="nav-btn-search"><i class="mdi-action-search"></i></a>
-                    <li id="button_filters"><a title="{% trans %}Filter entries{% endtrans %}" href="#" data-activates="filters" class="nav-panel-menu button-collapse-right"><i class="mdi-content-filter-list"></i></a></li>
-                    <li id="button_export"><a title="{% trans %}Export{% endtrans %}" class="nav-panel-menu button-collapse-right" href="#" data-activates="export" class="nav-panel-menu button-collapse-right"><i class="mdi-file-file-download"></i></a></li>
+                    <li class="bold">
+                        <a title="{{ 'menu.top.add_new_entry'|trans }}" class="waves-effect" href="{{ path('new') }}" id="nav-btn-add">
+                            <i class="mdi-content-add"></i>
+                        </a>
+                    </li>
+                    <li>
+                        <a title="{{ 'menu.top.search'|trans }}" class="waves-effect" href="javascript: void(null);" id="nav-btn-search">
+                            <i class="mdi-action-search"></i>
+                        </a>
+                    </li>
+                    <li id="button_filters">
+                        <a title="{{ 'menu.top.filter_entries'|trans }}" href="#" data-activates="filters" class="nav-panel-menu button-collapse-right">
+                            <i class="mdi-content-filter-list"></i>
+                        </a>
+                    </li>
+                    <li id="button_export">
+                        <a title="{{ 'menu.top.export'|trans }}" class="nav-panel-menu button-collapse-right" href="#" data-activates="export" class="nav-panel-menu button-collapse-right">
+                            <i class="mdi-file-file-download"></i>
+                        </a>
+                    </li>
                 </ul>
             </div>
             <form method="get" action="index.php">
                 <div class="input-field nav-panel-search" style="display: none">
-                    <input name="search" id="searchfield" type="search" required placeholder="{% trans %}Enter your search here{% endtrans %}">
+                    <input name="search" id="searchfield" type="search" required placeholder="{{ 'menu.search_form.input_label'|trans }}">
                     <label for="search"><i class="mdi-action-search"></i></label>
                     <i class="mdi-navigation-close"></i>
                 </div>
             </form>
             <div class="input-field nav-panel-add" style="display: none">
-                {{ render(controller( "WallabagCoreBundle:Entry:addEntryForm" )) }}
+                {{ render(controller("WallabagCoreBundle:Entry:addEntryForm")) }}
                 <label for="add" class="active"><i class="mdi-content-add"></i></label>
                 <i class="mdi-navigation-close"></i>
             </div>
         <div class="container">
             <div class="row">
                 <div class="col l6 s12">
-                    <h5 class="white-text">{% trans %}Take wallabag with you{% endtrans %}</h5>
+                    <h5 class="white-text">{{ 'footer.wallabag.elsewhere'|trans }}</h5>
                     <p class="grey-text text-lighten-4">
-
-                        <a target="_blank" class="grey-text text-lighten-3" href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" title="android"><span class="icon-android"></span></a>
-
-                        <a target="_blank" class="grey-text text-lighten-3" href="https://itunes.apple.com/app/id828331015" title="iOS"><span class="icon-apple"></a>
-
-                        <a target="_blank" class="grey-text text-lighten-3" href="https://addons.mozilla.org/ru/firefox/addon/wallabag/" title="Firefox"><span class="icon-firefox"></span></a>
-
-                        <a target="_blank" class="grey-text text-lighten-3" href="https://chrome.google.com/webstore/detail/wallabagit/peehlcgckcnclnjlndmoddifcicdnabm" title="Chrome"><span class="icon-chrome"></a>
-
+                        <a target="_blank" class="grey-text text-lighten-3" href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" title="Android">
+                            <span class="icon-android"></span>
+                        </a>
+                        <a target="_blank" class="grey-text text-lighten-3" href="https://itunes.apple.com/app/id828331015" title="iOS">
+                            <span class="icon-apple"></span>
+                        </a>
+                        <a target="_blank" class="grey-text text-lighten-3" href="https://addons.mozilla.org/ru/firefox/addon/wallabag/" title="Firefox">
+                            <span class="icon-firefox"></span>
+                        </a>
+                        <a target="_blank" class="grey-text text-lighten-3" href="https://chrome.google.com/webstore/detail/wallabagit/peehlcgckcnclnjlndmoddifcicdnabm" title="Chrome">
+                            <span class="icon-chrome"></span>
+                        </a>
                     </p>
                 </div>
                 <div class="col l4 offset-l2 s12">
-                    <h5 class="white-text">{% trans %}Social{% endtrans %}</h5>
-
-                    <a target="_blank" class="grey-text text-lighten-3" href="https://twitter.com/wallabagapp" title="Twitter"><span class="icon-twitter"></span></a>
-
-                    <a target="_blank" class="grey-text text-lighten-3" href="https://plus.google.com/+WallabagOrg/posts" title="Google+"><span class="icon-google-plus2"></span></a>
-
-                    <a target="_blank" class="grey-text text-lighten-3" href="https://facebook.com/Wallabag" title="Facebook"><span class="icon-facebook2"></span></a>
-
+                    <h5 class="white-text">{{ 'footer.wallabag.social'|trans }}</h5>
+                    <a target="_blank" class="grey-text text-lighten-3" href="https://twitter.com/wallabagapp" title="Twitter">
+                        <span class="icon-twitter"></span>
+                    </a>
+                    <a target="_blank" class="grey-text text-lighten-3" href="https://plus.google.com/+WallabagOrg/posts" title="Google+">
+                        <span class="icon-google-plus2"></span>
+                    </a>
+                    <a target="_blank" class="grey-text text-lighten-3" href="https://facebook.com/Wallabag" title="Facebook">
+                        <span class="icon-facebook2"></span>
+                    </a>
                 </div>
             </div>
         </div>
         <div class="footer-copyright">
             <div class="container">
-                <p>{% trans %}powered by{% endtrans %} <a target="_blank" href="https://wallabag.org" class="grey-text text-lighten-4">wallabag</a></p>
-                <a class="grey-text text-lighten-4 right" href="{{ path('about') }}">{% trans %}About{% endtrans %}</a>
+                <p>{{ 'footer.wallabag.powered_by'|trans }} <a target="_blank" href="https://wallabag.org" class="grey-text text-lighten-4">wallabag</a></p>
+                <a class="grey-text text-lighten-4 right" href="{{ path('about') }}">{{ 'footer.wallabag.about'|trans }}</a>
             </div>
         </div>
     </footer>
index 51425fe1c51ae3da4e487c9f9f24e38202ef85fe..f2d267503fbfc5c2d55f50f0ec257a49b993c449 100644 (file)
@@ -57,7 +57,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
         $crawler = $client->followRedirect();
 
         $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text')));
-        $this->assertContains('Config saved', $alert[0]);
+        $this->assertContains('flashes.config.notice.config_saved', $alert[0]);
     }
 
     public function dataForUpdateFailed()
@@ -102,7 +102,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
                     'change_passwd[new_password][first]' => '',
                     'change_passwd[new_password][second]' => '',
                 ),
-                'Wrong value for your current password',
+                'validator.password_wrong_value',
             ),
             array(
                 array(
@@ -118,7 +118,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
                     'change_passwd[new_password][first]' => 'hop',
                     'change_passwd[new_password][second]' => '',
                 ),
-                'The password fields must match',
+                'validator.password_must_match',
             ),
             array(
                 array(
@@ -126,7 +126,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
                     'change_passwd[new_password][first]' => 'hop',
                     'change_passwd[new_password][second]' => 'hop',
                 ),
-                'Password should by at least',
+                'validator.password_too_short',
             ),
         );
     }
@@ -177,7 +177,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
         $crawler = $client->followRedirect();
 
         $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text')));
-        $this->assertContains('Password updated', $alert[0]);
+        $this->assertContains('flashes.config.notice.password_updated', $alert[0]);
     }
 
     public function dataForUserFailed()
@@ -188,14 +188,14 @@ class ConfigControllerTest extends WallabagCoreTestCase
                     'update_user[name]' => '',
                     'update_user[email]' => '',
                 ),
-                'Please enter an email',
+                'fos_user.email.blank',
             ),
             array(
                 array(
                     'update_user[name]' => '',
                     'update_user[email]' => 'test',
                 ),
-                'The email is not valid',
+                'fos_user.email.invalid',
             ),
         );
     }
@@ -244,8 +244,8 @@ class ConfigControllerTest extends WallabagCoreTestCase
 
         $crawler = $client->followRedirect();
 
-        $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text')));
-        $this->assertContains('Information updated', $alert[0]);
+        $this->assertGreaterThan(1, $alert = $crawler->filter('body')->extract(array('_text')));
+        $this->assertContains('flashes.config.notice.user_updated', $alert[0]);
     }
 
     public function dataForNewUserFailed()
@@ -258,7 +258,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
                     'new_user[plainPassword][second]' => '',
                     'new_user[email]' => '',
                 ),
-                'Please enter a username',
+                'fos_user.username.blank',
             ),
             array(
                 array(
@@ -267,7 +267,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
                     'new_user[plainPassword][second]' => 'mypassword',
                     'new_user[email]' => '',
                 ),
-                'The username is too short',
+                'fos_user.username.short',
             ),
             array(
                 array(
@@ -276,7 +276,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
                     'new_user[plainPassword][second]' => 'mypassword',
                     'new_user[email]' => 'test',
                 ),
-                'The email is not valid',
+                'fos_user.email.invalid',
             ),
             array(
                 array(
@@ -285,7 +285,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
                     'new_user[plainPassword][second]' => 'wallacewallace',
                     'new_user[email]' => 'wallace@wallace.me',
                 ),
-                'The username is already used',
+                'fos_user.username.already_used',
             ),
             array(
                 array(
@@ -294,7 +294,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
                     'new_user[plainPassword][second]' => 'mypassword2',
                     'new_user[email]' => 'wallace@wallace.me',
                 ),
-                'The password fields must match',
+                'validator.password_must_match',
             ),
         );
     }
@@ -346,7 +346,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
         $crawler = $client->followRedirect();
 
         $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text')));
-        $this->assertContains('User "wallace" added', $alert[0]);
+        $this->assertContains('flashes.config.notice.user_added', $alert[0]);
 
         $em = $client->getContainer()->get('doctrine.orm.entity_manager');
         $user = $em
@@ -382,7 +382,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
         $this->assertEquals(200, $client->getResponse()->getStatusCode());
 
         $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text')));
-        $this->assertContains('You need to generate a token first.', $body[0]);
+        $this->assertContains('config.form_rss.no_token', $body[0]);
 
         $client->request('GET', '/generate-token');
         $this->assertEquals(302, $client->getResponse()->getStatusCode());
@@ -390,7 +390,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
         $crawler = $client->followRedirect();
 
         $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text')));
-        $this->assertNotContains('You need to generate a token first.', $body[0]);
+        $this->assertNotContains('config.form_rss.no_token', $body[0]);
     }
 
     public function testGenerateTokenAjax()
@@ -418,11 +418,6 @@ class ConfigControllerTest extends WallabagCoreTestCase
 
         $crawler = $client->request('GET', '/config');
 
-        if (500 == $client->getResponse()->getStatusCode()) {
-            var_export($client->getResponse()->getContent());
-            die();
-        }
-
         $this->assertEquals(200, $client->getResponse()->getStatusCode());
 
         $form = $crawler->filter('button[id=rss_config_save]')->form();
@@ -438,7 +433,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
         $crawler = $client->followRedirect();
 
         $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text')));
-        $this->assertContains('RSS information updated', $alert[0]);
+        $this->assertContains('flashes.config.notice.rss_updated', $alert[0]);
     }
 
     public function dataForRssFailed()
@@ -454,7 +449,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
                 array(
                     'rss_config[rss_limit]' => 1000000000000,
                 ),
-                'This will certainly kill the app',
+                'validator.rss_limit_too_hight',
             ),
         );
     }
@@ -504,7 +499,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
         $crawler = $client->followRedirect();
 
         $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text')));
-        $this->assertContains('Tagging rules updated', $alert[0]);
+        $this->assertContains('flashes.config.notice.tagging_rules_updated', $alert[0]);
 
         $deleteLink = $crawler->filter('.delete')->last()->link();
 
@@ -513,7 +508,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
 
         $crawler = $client->followRedirect();
         $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text')));
-        $this->assertContains('Tagging rule deleted', $alert[0]);
+        $this->assertContains('flashes.config.notice.tagging_rules_deleted', $alert[0]);
     }
 
     public function dataForTaggingRuleFailed()
@@ -556,12 +551,14 @@ class ConfigControllerTest extends WallabagCoreTestCase
 
         $form = $crawler->filter('button[id=tagging_rule_save]')->form();
 
-        $client->submit($form, $data);
+        $crawler = $client->submit($form, $data);
 
         $this->assertEquals(200, $client->getResponse()->getStatusCode());
 
+        $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text')));
+
         foreach ($messages as $message) {
-            $this->assertContains($message, $client->getResponse()->getContent());
+            $this->assertContains($message, $body[0]);
         }
     }
 
@@ -574,9 +571,11 @@ class ConfigControllerTest extends WallabagCoreTestCase
             ->getRepository('WallabagCoreBundle:TaggingRule')
             ->findAll()[0];
 
-        $client->request('GET', '/tagging-rule/delete/'.$rule->getId());
+        $crawler = $client->request('GET', '/tagging-rule/delete/'.$rule->getId());
+
         $this->assertEquals(403, $client->getResponse()->getStatusCode());
-        $this->assertContains('You can not access this tagging ryle', $client->getResponse()->getContent());
+        $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text')));
+        $this->assertContains('You can not access this tagging rule', $body[0]);
     }
 
     public function testDemoMode()
@@ -603,7 +602,7 @@ class ConfigControllerTest extends WallabagCoreTestCase
         $client->submit($form, $data);
 
         $this->assertEquals(302, $client->getResponse()->getStatusCode());
-        $this->assertContains('In demonstration mode, you can\'t change password for this user.', $client->getContainer()->get('session')->getFlashBag()->get('notice')[0]);
+        $this->assertContains('flashes.config.notice.password_not_updated_demo', $client->getContainer()->get('session')->getFlashBag()->get('notice')[0]);
 
         $config->set('demo_mode_enabled', 0);
         $config->set('demo_mode_username', 'wallabag');
index 5512d6e1bd08f80860578226efa57d6c541bc412..46fbaf918f6e936f9f5fd7a2e48ff8db1b10b262 100644 (file)
@@ -25,17 +25,18 @@ class EntryControllerTest extends WallabagCoreTestCase
         $client = $this->getClient();
 
         $client->request('GET', '/unread/list');
-        $client->followRedirect();
+        $crawler = $client->followRedirect();
 
         $this->assertEquals(200, $client->getResponse()->getStatusCode());
-        $this->assertContains('We\'ll accompany you to visit wallabag', $client->getResponse()->getContent());
+        $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text')));
+        $this->assertContains('quickstart.intro.paragraph_1', $body[0]);
 
         // Test if quickstart is disabled when user has 1 entry
         $crawler = $client->request('GET', '/new');
 
         $this->assertEquals(200, $client->getResponse()->getStatusCode());
 
-        $form = $crawler->filter('button[type=submit]')->form();
+        $form = $crawler->filter('form[name=entry]')->form();
 
         $data = array(
             'entry[url]' => $this->url,
@@ -45,8 +46,9 @@ class EntryControllerTest extends WallabagCoreTestCase
         $this->assertEquals(302, $client->getResponse()->getStatusCode());
         $client->followRedirect();
 
-        $client->request('GET', '/unread/list');
-        $this->assertContains('There is one entry.', $client->getResponse()->getContent());
+        $crawler = $client->request('GET', '/unread/list');
+        $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text')));
+        $this->assertContains('entry.list.number_on_the_page', $body[0]);
     }
 
     public function testGetNew()
@@ -59,7 +61,7 @@ class EntryControllerTest extends WallabagCoreTestCase
         $this->assertEquals(200, $client->getResponse()->getStatusCode());
 
         $this->assertCount(1, $crawler->filter('input[type=url]'));
-        $this->assertCount(1, $crawler->filter('button[type=submit]'));
+        $this->assertCount(1, $crawler->filter('form[name=entry]'));
     }
 
     public function testPostNewViaBookmarklet()
@@ -96,7 +98,7 @@ class EntryControllerTest extends WallabagCoreTestCase
 
         $this->assertEquals(200, $client->getResponse()->getStatusCode());
 
-        $form = $crawler->filter('button[type=submit]')->form();
+        $form = $crawler->filter('form[name=entry]')->form();
 
         $crawler = $client->submit($form);
 
@@ -117,7 +119,7 @@ class EntryControllerTest extends WallabagCoreTestCase
 
         $this->assertEquals(200, $client->getResponse()->getStatusCode());
 
-        $form = $crawler->filter('button[type=submit]')->form();
+        $form = $crawler->filter('form[name=entry]')->form();
 
         $data = array(
             'entry[url]' => $this->url,
@@ -146,7 +148,7 @@ class EntryControllerTest extends WallabagCoreTestCase
 
         $this->assertEquals(200, $client->getResponse()->getStatusCode());
 
-        $form = $crawler->filter('button[type=submit]')->form();
+        $form = $crawler->filter('form[name=entry]')->form();
 
         $data = array(
             'entry[url]' => $this->url,
@@ -170,7 +172,7 @@ class EntryControllerTest extends WallabagCoreTestCase
 
         $this->assertEquals(200, $client->getResponse()->getStatusCode());
 
-        $form = $crawler->filter('button[type=submit]')->form();
+        $form = $crawler->filter('form[name=entry]')->form();
 
         $data = array(
             'entry[url]' => $url = 'https://github.com/wallabag/wallabag',
@@ -240,10 +242,11 @@ class EntryControllerTest extends WallabagCoreTestCase
             ->getRepository('WallabagCoreBundle:Entry')
             ->findByUrlAndUserId($this->url, $this->getLoggedInUserId());
 
-        $client->request('GET', '/view/'.$content->getId());
+        $crawler = $client->request('GET', '/view/'.$content->getId());
 
         $this->assertEquals(200, $client->getResponse()->getStatusCode());
-        $this->assertContains($content->getTitle(), $client->getResponse()->getContent());
+        $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text')));
+        $this->assertContains($content->getTitle(), $body[0]);
     }
 
     /**
index b9f5d835589676beb6890612a2e39d6ee93e1a06..ed2926337d6da9694a5129e45e4d97f13084ba8a 100644 (file)
@@ -12,53 +12,61 @@ class SecurityControllerTest extends WallabagCoreTestCase
         $client = $this->getClient();
         $client->followRedirects();
 
-        $client->request('GET', '/config');
-        $this->assertContains('RSS', $client->getResponse()->getContent());
+        $crawler = $client->request('GET', '/config');
+        $this->assertContains('config.form_rss.description', $crawler->filter('body')->extract(array('_text'))[0]);
     }
 
     public function testLoginWith2Factor()
     {
         $client = $this->getClient();
 
-        if ($client->getContainer()->getParameter('twofactor_auth')) {
-            $client->followRedirects();
-
-            $em = $client->getContainer()->get('doctrine.orm.entity_manager');
-            $user = $em
-                ->getRepository('WallabagUserBundle:User')
-                ->findOneByUsername('admin');
-            $user->setTwoFactorAuthentication(true);
-            $em->persist($user);
-            $em->flush();
-
-            $this->logInAs('admin');
-            $client->request('GET', '/config');
-            $this->assertContains('trusted computer', $client->getResponse()->getContent());
-
-            // restore user
-            $user = $em
-                ->getRepository('WallabagUserBundle:User')
-                ->findOneByUsername('admin');
-            $user->setTwoFactorAuthentication(false);
-            $em->persist($user);
-            $em->flush();
+        if (!$client->getContainer()->getParameter('twofactor_auth')) {
+            $this->markTestSkipped('twofactor_auth is not enabled.');
+
+            return;
         }
+
+        $client->followRedirects();
+
+        $em = $client->getContainer()->get('doctrine.orm.entity_manager');
+        $user = $em
+            ->getRepository('WallabagUserBundle:User')
+            ->findOneByUsername('admin');
+        $user->setTwoFactorAuthentication(true);
+        $em->persist($user);
+        $em->flush();
+
+        $this->logInAs('admin');
+        $crawler = $client->request('GET', '/config');
+        $this->assertContains('scheb_two_factor.trusted', $crawler->filter('body')->extract(array('_text'))[0]);
+
+        // restore user
+        $user = $em
+            ->getRepository('WallabagUserBundle:User')
+            ->findOneByUsername('admin');
+        $user->setTwoFactorAuthentication(false);
+        $em->persist($user);
+        $em->flush();
     }
 
     public function testTrustedComputer()
     {
         $client = $this->getClient();
 
-        if ($client->getContainer()->getParameter('twofactor_auth')) {
-            $em = $client->getContainer()->get('doctrine.orm.entity_manager');
-            $user = $em
-                ->getRepository('WallabagUserBundle:User')
-                ->findOneByUsername('admin');
+        if (!$client->getContainer()->getParameter('twofactor_auth')) {
+            $this->markTestSkipped('twofactor_auth is not enabled.');
 
-            $date = new \DateTime();
-            $user->addTrustedComputer('ABCDEF', $date->add(new \DateInterval('P1M')));
-            $this->assertTrue($user->isTrustedComputer('ABCDEF'));
-            $this->assertFalse($user->isTrustedComputer('FEDCBA'));
+            return;
         }
+
+        $em = $client->getContainer()->get('doctrine.orm.entity_manager');
+        $user = $em
+            ->getRepository('WallabagUserBundle:User')
+            ->findOneByUsername('admin');
+
+        $date = new \DateTime();
+        $user->addTrustedComputer('ABCDEF', $date->add(new \DateInterval('P1M')));
+        $this->assertTrue($user->isTrustedComputer('ABCDEF'));
+        $this->assertFalse($user->isTrustedComputer('FEDCBA'));
     }
 }
index d639128224f60a149cb6989ffafd1f305ea85316..338121e7e1312a13144afbd69961566aaaa13919 100644 (file)
@@ -30,7 +30,7 @@ class TagControllerTest extends WallabagCoreTestCase
 
         $crawler = $client->request('GET', '/view/'.$entry->getId());
 
-        $form = $crawler->filter('button[id=tag_save]')->form();
+        $form = $crawler->filter('form[name=tag]')->form();
 
         $data = array(
             'tag[label]' => $this->tagName,
index c88e115e4a426ae29b5da248092993c4a3db1965..1d80421923cac43ed008f2ff8317e2a583598271 100644 (file)
@@ -17,8 +17,8 @@ class PocketController extends Controller
     {
         $pocket = $this->get('wallabag_import.pocket.import');
         $form = $this->createFormBuilder($pocket)
-            ->add('read', CheckboxType::class, array(
-                'label' => 'Mark all as read',
+            ->add('mark_as_read', CheckboxType::class, array(
+                'label' => 'import.form.mark_as_read_label',
                 'required' => false,
             ))
             ->getForm();
@@ -39,7 +39,7 @@ class PocketController extends Controller
             ->getRequestToken($this->generateUrl('import', array(), UrlGeneratorInterface::ABSOLUTE_URL));
 
         $this->get('session')->set('import.pocket.code', $requestToken);
-        $this->get('session')->set('read', $request->request->get('form')['read']);
+        $this->get('session')->set('mark_as_read', $request->request->get('form')['mark_as_read']);
 
         return $this->redirect(
             'https://getpocket.com/auth/authorize?request_token='.$requestToken.'&redirect_uri='.$this->generateUrl('import_pocket_callback', array(), UrlGeneratorInterface::ABSOLUTE_URL),
@@ -52,10 +52,11 @@ class PocketController extends Controller
      */
     public function callbackAction()
     {
-        $message = 'Import failed, please try again.';
+        $message = 'flashes.import.notice.failed';
         $pocket = $this->get('wallabag_import.pocket.import');
-        $markAsRead = $this->get('session')->get('read');
-        $this->get('session')->remove('read');
+
+        $markAsRead = $this->get('session')->get('mark_as_read');
+        $this->get('session')->remove('mark_as_read');
 
         // something bad happend on pocket side
         if (false === $pocket->authorize($this->get('session')->get('import.pocket.code'))) {
@@ -69,7 +70,10 @@ class PocketController extends Controller
 
         if (true === $pocket->setMarkAsRead($markAsRead)->import()) {
             $summary = $pocket->getSummary();
-            $message = 'Import summary: '.$summary['imported'].' imported, '.$summary['skipped'].' already saved.';
+            $message = $this->get('translator')->trans('flashes.import.notice.summary', array(
+                '%imported%' => $summary['imported'],
+                '%skipped%' => $summary['skipped'],
+            ));
         }
 
         $this->get('session')->getFlashBag()->add(
index 154a0769b0ac4688008e4f012b08499f28d28dda..1bc9696d5b90bbdfb42dfeab056dbc7e9c8b4673 100644 (file)
@@ -31,11 +31,14 @@ class WallabagV1Controller extends Controller
                     ->setMarkAsRead($markAsRead)
                     ->import();
 
-                $message = 'Import failed, please try again.';
+                $message = 'flashes.import.notice.failed';
 
                 if (true === $res) {
                     $summary = $wallabag->getSummary();
-                    $message = 'Import summary: '.$summary['imported'].' imported, '.$summary['skipped'].' already saved.';
+                    $message = $this->get('translator')->trans('flashes.import.notice.summary', array(
+                        '%imported%' => $summary['imported'],
+                        '%skipped%' => $summary['skipped'],
+                    ));
 
                     unlink($this->getParameter('wallabag_import.resource_dir').'/'.$name);
                 }
@@ -49,7 +52,7 @@ class WallabagV1Controller extends Controller
             } else {
                 $this->get('session')->getFlashBag()->add(
                     'notice',
-                    'Error while processing import. Please verify your import file.'
+                    'flashes.import.notice.failed_on_file'
                 );
             }
         }
index 6dcd204a7240a6d15f0fc84f035c4a254e663869..3e6428a049903c72c094be73df5341feb970565a 100644 (file)
@@ -31,11 +31,14 @@ class WallabagV2Controller extends Controller
                     ->setMarkAsRead($markAsRead)
                     ->import();
 
-                $message = 'Import failed, please try again.';
+                $message = 'flashes.import.notice.failed';
 
                 if (true === $res) {
                     $summary = $wallabag->getSummary();
-                    $message = 'Import summary: '.$summary['imported'].' imported, '.$summary['skipped'].' already saved.';
+                    $message = $this->get('translator')->trans('flashes.import.notice.summary', array(
+                        '%imported%' => $summary['imported'],
+                        '%skipped%' => $summary['skipped'],
+                    ));
 
                     unlink($this->getParameter('wallabag_import.resource_dir').'/'.$name);
                 }
@@ -49,7 +52,7 @@ class WallabagV2Controller extends Controller
             } else {
                 $this->get('session')->getFlashBag()->add(
                     'notice',
-                    'Error while processing import. Please verify your import file.'
+                    'flashes.import.notice.failed_on_file'
                 );
             }
         }
index 386703796bbcbc34218c25697e792b0a3daec521..e0a44c366515d8a8302375c5d7c7af44c8d092c7 100644 (file)
@@ -13,12 +13,16 @@ class UploadImportType extends AbstractType
     public function buildForm(FormBuilderInterface $builder, array $options)
     {
         $builder
-            ->add('file', FileType::class)
+            ->add('file', FileType::class, array(
+                'label' => 'import.form.file_label',
+            ))
             ->add('mark_as_read', CheckboxType::class, array(
-                'label' => 'Mark all as read',
+                'label' => 'import.form.mark_as_read_label',
                 'required' => false,
             ))
-            ->add('save', SubmitType::class)
+            ->add('save', SubmitType::class, array(
+                'label' => 'import.form.save_label',
+            ))
         ;
     }
 
index 238ddbd1f71548b304a24489b095a0e98f0b6fd4..4499ce6993563f41d1eccfddbf1b22f1743cb9e7 100644 (file)
@@ -60,7 +60,7 @@ class PocketImport implements ImportInterface
      */
     public function getDescription()
     {
-        return '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.';
+        return 'import.pocket.description';
     }
 
     /**
@@ -139,7 +139,7 @@ class PocketImport implements ImportInterface
     /**
      * Get whether articles must be all marked as read.
      */
-    public function getRead()
+    public function getMarkAsRead()
     {
         return $this->markAsRead;
     }
index 1d773d3bb58e2094ac057c490121c5dc9883479d..173a587f1cd6ea4c472f6ce78ff4112e50da493b 100644 (file)
@@ -67,7 +67,7 @@ class WallabagV1Import implements ImportInterface
      */
     public function getDescription()
     {
-        return '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.';
+        return 'import.wallabag_v1.description';
     }
 
     /**
index c4bac561580b8338220a268156f3da01bb49364f..0a32864eb04ae16a7efaa0c188fe860343f6d3e3 100644 (file)
@@ -27,7 +27,7 @@ class WallabagV2Import extends WallabagV1Import implements ImportInterface
      */
     public function getDescription()
     {
-        return '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.';
+        return 'import.wallabag_v2.description';
     }
 
     /**
index 8c300624d34912d4ddd1c9f486106006e694aabc..aebbfa208391d8787896269177c66cb5f457523f 100644 (file)
@@ -1,17 +1,18 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
-{% block title %}{% trans %}Import{% endtrans %}{% endblock %}
+
+{% block title %}{{ 'import.page_title'|trans }}{% endblock %}
 
 {% block content %}
 <div class="row">
     <div class="col s12">
         <div class="card-panel settings">
-            {% trans %}Welcome to wallabag importer. Please select your previous service that you want to migrate.{% endtrans %}
+            {{ 'import.page_description'|trans }}
             <ul>
                 {% for import in imports %}
                     <li>
                         <h5>{{ import.name }}</h5>
                         <blockquote>{{ import.description|trans }}</blockquote>
-                        <p><a class="waves-effect waves-light btn" href="{{ path(import.url) }}">{% trans %}Import contents{% endtrans %}</a></p>
+                        <p><a class="waves-effect waves-light btn" href="{{ path(import.url) }}">{{ 'import.action.import_contents'|trans }}</a></p>
                     </li>
                 {% endfor %}
             </ul>
index 3365fc6af1abe0a4ee455254ddaaceb433e4b6dd..401dbd33ada03a5f0651c4cb81f32c4565c13f6f 100644 (file)
@@ -1,5 +1,6 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
-{% block title %}{% trans %}Import > Pocket{% endtrans %}{% endblock %}
+
+{% block title %}{{ 'import.pocket.page_title'|trans }}{% endblock %}
 
 {% block content %}
 <div class="row">
@@ -7,27 +8,29 @@
         <div class="card-panel settings">
             {% if not has_consumer_key %}
                 <div class="card-panel red darken-1">
-                    {% trans %}Pocket import isn't configured.{% endtrans %}
+                    {{ 'import.pocket.config_missing.description'|trans }}
+
                     {% if is_granted('ROLE_SUPER_ADMIN') %}
-                        {% trans with {'%keyurls%': '<a href="' ~ path('craue_config_settings_modify') ~ '#set-import">', '%keyurle%':'</a>'} %}You need to define %keyurls% a pocket_consumer_key %keyurle%.{% endtrans %}
+                        {{ 'import.pocket.config_missing.admin_message'|trans({'%keyurls%': '<a href="' ~ path('craue_config_settings_modify') ~ '#set-import">', '%keyurle%':'</a>'})|raw }}
                     {% else %}
-                        {% trans %}Your server admin needs to define an API Key for Pocket.{% endtrans %}
+                        {{ 'import.pocket.config_missing.user_message'|trans }}
                     {% endif %}
                 </div>
             {% endif %}
 
             <blockquote>{{ import.description|trans }}</blockquote>
-            <p>{% trans %}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.{% endtrans %}</p>
+            <p>{{ 'import.pocket.authorize_message'|trans }}</p>
+
             <form method="post" action="{{ path('import_pocket_auth') }}">
-            <div class="row">
-                <div class="input-field col s6 with-checkbox">
-                    <h6>{% trans %}Mark all as read ?{% endtrans %}</h6>
-                        {{ form_widget(form.read) }}
-                    <label for="form_read">{% trans %}Mark all imported entries as read{% endtrans %}</label>
+                <div class="row">
+                    <div class="input-field col s6 with-checkbox">
+                        <h6>{{ 'import.form.mark_as_read_title'|trans }}</h6>
+                        {{ form_widget(form.mark_as_read) }}
+                        {{ form_label(form.mark_as_read) }}
+                    </div>
                 </div>
-            </div>
                 <button class="btn waves-effect waves-light" type="submit" name="action">
-                    {% trans %}Connect to Pocket and import data{% endtrans %}
+                    {{ 'import.pocket.connect_to_pocket'|trans }}
                 </button>
             </form>
         </div>
index a418ed1c5585fbe6478c570926b9ac2bc4386de5..13e24c8cf288691849fae482da374796edbfeff2 100644 (file)
@@ -1,5 +1,6 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
-{% block title %}{% trans %}Import > Wallabag v1{% endtrans %}{% endblock %}
+
+{% block title %}{{ 'import.wallabag_v1.page_title'|trans }}{% endblock %}
 
 {% block content %}
 <div class="row">
@@ -7,7 +8,8 @@
         <div class="card-panel settings">
             <div class="row">
                 <blockquote>{{ import.description|trans }}</blockquote>
-                <p>{% trans %}Please select your wallabag export and click on the below button to upload and import it.{% endtrans %}</p>
+                <p>{{ 'import.wallabag_v1.how_to'|trans }}</p>
+
                 <div class="col s12">
                     {{ form_start(form, {'method': 'POST'}) }}
                         {{ form_errors(form) }}
@@ -15,7 +17,7 @@
                             <div class="file-field input-field col s12">
                                 {{ form_errors(form.file) }}
                                 <div class="btn">
-                                    <span>{% trans %}File{% endtrans %}</span>
+                                    <span>{{ form.file.vars.label|trans }}</span>
                                     {{ form_widget(form.file) }}
                                 </div>
                                 <div class="file-path-wrapper">
                                 </div>
                             </div>
                             <div class="input-field col s6 with-checkbox">
-                                <h6>{% trans %}Mark all as read ?{% endtrans %}</h6>
+                                <h6>{{ 'import.form.mark_as_read_title'|trans }}</h6>
                                 {{ form_widget(form.mark_as_read) }}
-                                <label for="upload_import_file_mark_as_read">{% trans %}Mark all imported entries as read{% endtrans %}</label>
+                                {{ form_label(form.mark_as_read) }}
                             </div>
                         </div>
-                        <div class="hidden">{{ form_rest(form) }}</div>
-                        <button class="btn waves-effect waves-light" type="submit" name="action">
-                            {% trans %}Upload file{% endtrans %}
-                        </button>
+
+                        {{ form_widget(form.save, { 'attr': {'class': 'btn waves-effect waves-light'} }) }}
+
+                        {{ form_rest(form) }}
                     </form>
                 </div>
             </div>
index 78fe67e4621111c22e18d1e97e0be027cff0e0eb..c2905fc6461cf9c36054770d649205bd5995dca3 100644 (file)
@@ -1,2 +1,3 @@
 {% extends "WallabagImportBundle:WallabagV1:index.html.twig" %}
-{% block title %}{% trans %}Import > Wallabag v2{% endtrans %}{% endblock %}
+
+{% block title %}{{ 'import.wallabag_v2.page_title'|trans }}{% endblock %}
index c2acd68c324d7f8406fc46037cdf76a1462404b6..174641fd5be758a74c007661e756225fd8997f8c 100644 (file)
@@ -37,6 +37,6 @@ class PocketControllerTest extends WallabagCoreTestCase
 
         $this->assertEquals(302, $client->getResponse()->getStatusCode());
         $this->assertContains('import/pocket', $client->getResponse()->headers->get('location'));
-        $this->assertEquals('Import failed, please try again.', $client->getContainer()->get('session')->getFlashBag()->peek('notice')[0]);
+        $this->assertEquals('flashes.import.notice.failed', $client->getContainer()->get('session')->getFlashBag()->peek('notice')[0]);
     }
 }
index 7f97b0f5522719505d75e323296cda498e5f6837..8d353a711e88ac0f3d6ef1f22efbb5cbd17ff8fc 100644 (file)
@@ -54,8 +54,8 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase
 
         $this->assertTrue($content->getTags()->contains($tag));
 
-        $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text')));
-        $this->assertContains('Import summary', $alert[0]);
+        $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text')));
+        $this->assertContains('flashes.import.notice.summary', $body[0]);
     }
 
     public function testImportWallabagWithFileAndMarkAllAsRead()
@@ -99,7 +99,8 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase
 
         $this->assertTrue($content2->isArchived());
 
-        $this->assertContains('Import summary', $client->getResponse()->getContent());
+        $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text')));
+        $this->assertContains('flashes.import.notice.summary', $body[0]);
     }
 
     public function testImportWallabagWithEmptyFile()
@@ -122,7 +123,7 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase
 
         $crawler = $client->followRedirect();
 
-        $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text')));
-        $this->assertContains('Import failed, please try again', $alert[0]);
+        $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text')));
+        $this->assertContains('flashes.import.notice.failed', $body[0]);
     }
 }
index 617c0517797702d88728f53e422ebff5eedbc994..bcbd6305774632b9cb0e5e1587a3965ea01f9841 100644 (file)
@@ -39,8 +39,8 @@ class WallabagV2ControllerTest extends WallabagCoreTestCase
 
         $crawler = $client->followRedirect();
 
-        $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text')));
-        $this->assertContains('Import summary', $alert[0]);
+        $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text')));
+        $this->assertContains('flashes.import.notice.summary', $body[0]);
 
         $content = $client->getContainer()
             ->get('doctrine.orm.entity_manager')
@@ -87,7 +87,7 @@ class WallabagV2ControllerTest extends WallabagCoreTestCase
 
         $crawler = $client->followRedirect();
 
-        $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text')));
-        $this->assertContains('Import failed, please try again', $alert[0]);
+        $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text')));
+        $this->assertContains('flashes.import.notice.failed', $body[0]);
     }
 }
index 450cdc9533724f98301348b6c68ccc52cbdbb21d..43b60ec3eac0b5404d24150001a32017caa14166 100644 (file)
@@ -85,7 +85,7 @@ class PocketImportTest extends \PHPUnit_Framework_TestCase
 
         $this->assertEquals('Pocket', $pocketImport->getName());
         $this->assertNotEmpty($pocketImport->getUrl());
-        $this->assertContains('This importer will import all your Pocket data.', $pocketImport->getDescription());
+        $this->assertEquals('import.pocket.description', $pocketImport->getDescription());
     }
 
     public function testOAuthRequest()
index 8ab7e83012b7298d138aa0ef998c88522d2d525b..496cf2d37dc23d44235297686eaf7cce8e70ab5c 100644 (file)
@@ -45,7 +45,7 @@ class WallabagV1ImportTest extends \PHPUnit_Framework_TestCase
 
         $this->assertEquals('wallabag v1', $wallabagV1Import->getName());
         $this->assertNotEmpty($wallabagV1Import->getUrl());
-        $this->assertContains('This importer will import all your wallabag v1 articles.', $wallabagV1Import->getDescription());
+        $this->assertEquals('import.wallabag_v1.description', $wallabagV1Import->getDescription());
     }
 
     public function testImport()
index 2b642d2743af6b3803aef221887610e43a5a99e4..341b107620a619f9878a14f9f93a5b6c2ab69267 100644 (file)
@@ -45,7 +45,7 @@ class WallabagV2ImportTest extends \PHPUnit_Framework_TestCase
 
         $this->assertEquals('wallabag v2', $wallabagV2Import->getName());
         $this->assertNotEmpty($wallabagV2Import->getUrl());
-        $this->assertContains('This importer will import all your wallabag v2 articles.', $wallabagV2Import->getDescription());
+        $this->assertEquals('import.wallabag_v2.description', $wallabagV2Import->getDescription());
     }
 
     public function testImport()
index 4da6075f414c4cb7f62145ade18e386ea970a088..85f2ea9cc5fdf7769dd848a54d2afc02fd850ab2 100644 (file)
@@ -1,7 +1,11 @@
 # Two factor mail
-auth_code.mailer.subject: 'Wallabag authentication Code'
-auth_code.mailer.body.hello: "Hi %user%,"
-auth_code.mailer.body.first_para: "Since you enable two factor authentication on your wallabag account and you just logged in from a new device (computer, phone, etc.), we send you a code to validate your connection."
-auth_code.mailer.body.second_para: "Here is the code:"
-auth_code.mailer.body.support: "Please don't hesitate to contact us if you have any problems:"
-auth_code.mailer.body.signature: "The wallabag team"
+auth_code:
+    on: 'on'
+    mailer:
+        subject: 'Wallabag authentication Code'
+        body:
+            hello: "Hi %user%,"
+            first_para: "Since you enable two factor authentication on your wallabag account and you just logged in from a new device (computer, phone, etc.), we send you a code to validate your connection."
+            second_para: "Here is the code:"
+            support: "Please don't hesitate to contact us if you have any problems:"
+            signature: "The wallabag team"
index b4448d3a4eeba9658f2b9a43c87b5b50110f22bd..30ab5dd9ecf96ade89ca24e3c7d1a173753084ef 100644 (file)
@@ -1,7 +1,11 @@
 # Two factor mail
-auth_code.mailer.subject: "Code d'authentification wallabag"
-auth_code.mailer.body.hello: "Bonjour %user%,"
-auth_code.mailer.body.first_para: "Comme vous avez activé la double authentification sur votre compte wallabag et que vous venez de vous connecter depuis un nouvel appareil (ordinateur, téléphone, etc.), nous vous envoyons un code pour valider votre connexion."
-auth_code.mailer.body.second_para: "Voici le code à renseigner :"
-auth_code.mailer.body.support: "Si vous avez un problème de connexion, n'hésitez pas à contacter le support :"
-auth_code.mailer.body.signature: "L'équipe wallabag"
+auth_code:
+    on: 'sur'
+    mailer:
+        subject: "Code d'authentification wallabag"
+        body:
+            hello: "Bonjour %user%,"
+            first_para: "Comme vous avez activé la double authentification sur votre compte wallabag et que vous venez de vous connecter depuis un nouvel appareil (ordinateur, téléphone, etc.), nous vous envoyons un code pour valider votre connexion."
+            second_para: "Voici le code à renseigner :"
+            support: "Si vous avez un problème de connexion, n'hésitez pas à contacter le support :"
+            signature: "L'équipe wallabag"
index d1fcb0e03865a9a20988c658ef63d689b18e97a7..706463553af68a024290843b4d32f92b3e9890e3 100644 (file)
@@ -1,7 +1,11 @@
 # Two factor mail
-auth_code.mailer.subject: 'Wallabag Doğrulama Kodu'
-auth_code.mailer.body.hello: "Merhaba %user%,"
-auth_code.mailer.body.first_para: "wallabag hesabınızda iki adımlı doğrulamayı etkinleştirdiğinizde ve bu yeni cihaz olduğunda (bilgisayar, telefon, vs.), biz size bu işlemi doğrulamak için bir kod göndeririz."
-auth_code.mailer.body.second_para: "Bu işlem için doğrulama kodunuz:"
-auth_code.mailer.body.support: "Eğer herhangi bir soru/sorununuz varsa, bizimle iletişime geçmekten çekinmeyin:"
-auth_code.mailer.body.signature: "wallabag ekibi"
+auth_code:
+    on: 'on'
+    mailer:
+        subject: 'Wallabag Doğrulama Kodu'
+        body:
+            hello: "Merhaba %user%,"
+            first_para: "wallabag hesabınızda iki adımlı doğrulamayı etkinleştirdiğinizde ve bu yeni cihaz olduğunda (bilgisayar, telefon, vs.), biz size bu işlemi doğrulamak için bir kod göndeririz."
+            second_para: "Bu işlem için doğrulama kodunuz:"
+            support: "Eğer herhangi bir soru/sorununuz varsa, bizimle iletişime geçmekten çekinmeyin:"
+            signature: "wallabag ekibi"
similarity index 96%
rename from src/Wallabag/UserBundle/Resources/views/themes/material/Authentication/form.html.twig
rename to src/Wallabag/UserBundle/Resources/views/Authentication/form.html.twig
index fa0e3dc1bba9eb2961e8750bbce9301e9386ad2a..acf69196bb8d79cc5191846763bf818f862491cc 100644 (file)
@@ -23,7 +23,7 @@
         </div>
     </div>
     <div class="card-action center">
-        <a href="{{ path('fos_user_security_logout') }}" class="waves-effect waves-light grey btn"><i class="material-icons left"></i> {% trans %}Cancel{% endtrans %}</a>
+        <a href="{{ path('fos_user_security_logout') }}" class="waves-effect waves-light grey btn"><i class="material-icons left"></i> {{ 'security.login.cancel'|trans }}</a>
         <button class="btn waves-effect waves-light" type="submit" name="send">
             {{ "scheb_two_factor.login"|trans }}
             <i class="mdi-content-send right"></i>
similarity index 84%
rename from src/Wallabag/UserBundle/Resources/views/themes/material/Registration/confirmed.html.twig
rename to src/Wallabag/UserBundle/Resources/views/Registration/confirmed.html.twig
index c6d4d3d210f99205a918f398c38d9bc2c0a34cec..674eb217efad519d4ab012766f0524654630e955 100644 (file)
@@ -11,7 +11,7 @@
         {% endif %}
     </div>
     <div class="card-action center">
-        <a href="{{ path('homepage') }}" class="waves-effect waves-light btn"><i class="material-icons left"></i> {% trans %}Go to your account{% endtrans %}</a>
+        <a href="{{ path('homepage') }}" class="waves-effect waves-light btn"><i class="material-icons left"></i> {{ 'security.register.go_to_account'|trans }}</a>
     </div>
 </div>
 {% endblock fos_user_content %}
similarity index 97%
rename from src/Wallabag/UserBundle/Resources/views/themes/material/Registration/register_content.html.twig
rename to src/Wallabag/UserBundle/Resources/views/Registration/register_content.html.twig
index e92b515e34d6baa8fc3a18620dda6892393f4fe5..7d2b45d4bb0ed49ef4db86315654e8d840d6b930 100644 (file)
@@ -36,7 +36,7 @@
         </div>
     </div>
     <div class="card-action center">
-        <a href="{{ path('fos_user_security_login') }}" class="waves-effect waves-light grey btn"><i class="material-icons left"></i> {% trans %}Login{% endtrans %}</a>
+        <a href="{{ path('fos_user_security_login') }}" class="waves-effect waves-light grey btn"><i class="material-icons left"></i> {{ 'security.login.submit'|trans }}</a>
         <button class="btn waves-effect waves-light" type="submit" name="send">
             {{ 'registration.submit'|trans({}, 'FOSUserBundle') }}
             <i class="mdi-content-send right"></i>
similarity index 82%
rename from src/Wallabag/UserBundle/Resources/views/themes/material/Resetting/request_content.html.twig
rename to src/Wallabag/UserBundle/Resources/views/Resetting/request_content.html.twig
index e871d7bebd2584a477e0d5403978af4561de0cff..7a5ac83836c421478d6c2f469a16f70f58fb5d11 100644 (file)
@@ -1,8 +1,10 @@
 {% trans_default_domain 'FOSUserBundle' %}
+
 <form action="{{ path('fos_user_resetting_send_email') }}" method="POST" class="fos_user_resetting_request">
     <div class="card-content">
         <div class="row">
-        <p>{% trans %}Enter your email address below and we'll send you password reset instructions.{% endtrans %}</p>
+            <p>{{ 'security.resetting.description'|trans({}, "messages") }}</p>
+
             {% for flashMessage in app.session.flashbag.get('notice') %}
                 <span class="black-text"><p>{{ flashMessage }}</p></span>
             {% endfor %}
@@ -18,7 +20,9 @@
         </div>
     </div>
     <div class="card-action center">
-        <a href="{{ path('fos_user_security_login') }}" class="waves-effect waves-light grey btn"><i class="material-icons left"></i> {% trans %}Login{% endtrans %}</a>
+        <a href="{{ path('fos_user_security_login') }}" class="waves-effect waves-light grey btn">
+            <i class="material-icons left"></i> {{ 'security.login.submit'|trans({}, "messages") }}
+        </a>
         <button class="btn waves-effect waves-light" type="submit" name="send">
             {{ 'resetting.request.submit'|trans }}
         </button>
similarity index 75%
rename from src/Wallabag/UserBundle/Resources/views/themes/material/Security/login.html.twig
rename to src/Wallabag/UserBundle/Resources/views/Security/login.html.twig
index 6bf99bf88ab351e2e1514f6f2f02970d222287a3..982a33b28f953be743ed098b680b141e382d7ccd 100644 (file)
         <div class="row">
 
             <div class="input-field col s12">
-                <label for="username">{% trans %}Username{% endtrans %}</label>
+                <label for="username">{{ 'security.login.username'|trans }}</label>
                 <input type="text" id="username" name="_username" value="{{ last_username }}" />
             </div>
 
             <div class="input-field col s12">
-                <label for="password">{% trans %}Password{% endtrans %}</label>
+                <label for="password">{{ 'security.login.password'|trans }}</label>
                 <input type="password" id="password" name="_password" />
             </div>
 
             <div class="input-field col s12">
                 <input type="checkbox" id="remember_me" name="_remember_me" checked />
-                <label for="remember_me">{% trans %}Keep me logged in{% endtrans %}</label>
+                <label for="remember_me">{{ 'security.login.keep_logged_in'|trans }}</label>
             </div>
 
         </div>
     </div>
     <div class="card-action center">
         <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}" />
-        <a href="{{ path('fos_user_registration_register') }}" class="waves-effect waves-light grey btn"><i class="material-icons left"></i> {% trans %}Register{% endtrans %}</a>
+        <a href="{{ path('fos_user_registration_register') }}" class="waves-effect waves-light grey btn"><i class="material-icons left"></i> {{ 'security.login.register'|trans }}</a>
         <button class="btn waves-effect waves-light" type="submit" name="send">
-            {% trans %}Login{% endtrans %}
+            {{ 'security.login.submit'|trans }}
             <i class="mdi-content-send right"></i>
         </button>
     </div>
     <div class="center">
-        <a href="{{ path('fos_user_resetting_request') }}">{% trans %}Forgot your password?{% endtrans %}</a>
+        <a href="{{ path('fos_user_resetting_request') }}">{{ 'security.login.forgot_password'|trans }}</a>
     </div>
 </form>
 {% endblock fos_user_content %}
index 69d231600e7acb7d26c543ebe171e19f6a898ac4..c44fcfb774f128f5001190f3aa36b9b7b631316f 100644 (file)
@@ -77,7 +77,7 @@
                         <td style="padding: 20px;" width="96px" valign="top"><img class="image_fix" src="{{ wallabag_url }}/themes/material/img/logo-other_themes.png" alt="logo" title="{{ wallabag_url }}" style="width: 96px; height: 96px;" /></td>
                         <td style="padding: 20px; padding-left: 0;" valign="top" id="cell_desc">
                             <h1>wallabag</h1>
-                            <h5>{% trans %}on{% endtrans %} {{ wallabag_url }}</h5>
+                            <h5>{{ "auth_code.on"|trans({}, 'wallabag_user') }} {{ wallabag_url }}</h5>
                         </td>
                     </tr>
                     <tr><td colspan="2" style="padding: 0;"><div style="height: 0; border-top: 1px solid #c5c5c5;">&nbsp;</div></td></tr>
similarity index 88%
rename from src/Wallabag/UserBundle/Resources/views/themes/material/layout.html.twig
rename to src/Wallabag/UserBundle/Resources/views/layout.html.twig
index cbdc1da205e281cf0d891418ee2f3b133882a3f1..1d0189ca78f24ec3597fdc2971f79c78ec5ad5a7 100644 (file)
@@ -1,6 +1,6 @@
 {% extends "WallabagCoreBundle::layout.html.twig" %}
 
-{% block title %}{% trans %}Welcome to wallabag!{% endtrans %}{% endblock %}
+{% block title %}{{ 'security.login.page_title'|trans }}{% endblock %}
 
 {% block body_class %}login{% endblock %}
 
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/baggy/Authentication/form.html.twig b/src/Wallabag/UserBundle/Resources/views/themes/baggy/Authentication/form.html.twig
deleted file mode 100644 (file)
index 5bb9108..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-{% extends "WallabagUserBundle::layout.html.twig" %}
-
-{% block fos_user_content %}
-<form class="form" action="" method="post">
-    <fieldset class="w500p center">
-        {% for flashMessage in app.session.flashbag.get("two_factor") %}
-        <p class="error">{{ flashMessage|trans }}</p>
-        {% endfor %}
-
-        <div class="row">
-            <label for="_auth_code">{{ "scheb_two_factor.auth_code"|trans }}</label>
-            <input id="_auth_code" type="text" autocomplete="off" name="_auth_code" />
-        </div>
-
-        {% if useTrustedOption %}
-        <div class="row">
-            <input id="_trusted" type="checkbox" name="_trusted" />
-            <label for="_trusted">{{ "scheb_two_factor.trusted"|trans }}</label>
-        </div>
-        {% endif %}
-
-        <div class="row mts txtcenter">
-            <a href="{{ path('fos_user_security_logout') }}" class="waves-effect waves-light grey btn"><i class="material-icons left"></i> {% trans %}Cancel{% endtrans %}</a>
-            <button type="submit" name="send">
-                {{ "scheb_two_factor.login"|trans }}
-                <i class="mdi-content-send right"></i>
-            </button>
-        </div>
-    </fieldset>
-
-</form>
-{% endblock %}
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/baggy/Registration/register.html.twig b/src/Wallabag/UserBundle/Resources/views/themes/baggy/Registration/register.html.twig
deleted file mode 100644 (file)
index 2713bf4..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-{% extends "WallabagCoreBundle::layout.html.twig" %}
-
-{% block title %}{% trans %}create an account{% endtrans %}{% endblock %}
-
-{% block body_class %}login{% endblock %}
-
-{% block menu %}{% endblock %}
-{% block messages %}{% endblock %}
-
-{% block content %}
-    {{ form_start(form) }}
-        <fieldset class="w500p center">
-            <h2 class="mbs txtcenter">{% trans %}create an account{% endtrans %}</h2>
-        {% include "FOSUserBundle:Registration:register_content.html.twig" %}
-        </fieldset>
-    </form>
-{% endblock %}
-
-{% block footer %}
-{% endblock %}
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/baggy/Registration/register_content.html.twig b/src/Wallabag/UserBundle/Resources/views/themes/baggy/Registration/register_content.html.twig
deleted file mode 100644 (file)
index 41f9400..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-{% trans_default_domain 'FOSUserBundle' %}
-
-{{ form_widget(form._token) }}
-
-{% for flashMessage in app.session.flashbag.get('notice') %}
-    <span><p>{{ flashMessage }}</p></span>
-{% endfor %}
-
-<div class="row">
-    {{ form_errors(form.email) }}
-    {{ form_label(form.email) }}
-    {{ form_widget(form.email) }}
-</div>
-
-<div class="row">
-    {{ form_errors(form.username) }}
-    {{ form_label(form.username) }}
-    {{ form_widget(form.username) }}
-</div>
-
-<div class="row">
-    {{ form_errors(form.plainPassword.first) }}
-    {{ form_label(form.plainPassword.first) }}
-    {{ form_widget(form.plainPassword.first) }}
-</div>
-
-<div class="row">
-    {{ form_errors(form.plainPassword.second) }}
-    {{ form_label(form.plainPassword.second) }}
-    {{ form_widget(form.plainPassword.second) }}
-</div>
-
-
-<div class="row mts txtcenter">
-    <button type="submit">{{ 'registration.submit'|trans({}, 'FOSUserBundle') }}</button>
-    <a href="{{ path('fos_user_security_login') }}" class="button">{% trans %}Login{% endtrans %}</a>
-</div>
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/checkEmail.html.twig b/src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/checkEmail.html.twig
deleted file mode 100644 (file)
index 056d65b..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-{% extends "WallabagCoreBundle::layout.html.twig" %}
-
-{% block title %}{% trans %}Forgot password{% endtrans %}{% endblock %}
-
-{% block body_class %}login{% endblock %}
-
-{% block menu %}{% endblock %}
-
-{% block content %}
-    <form>
-        <fieldset class="w500p center">
-            <h2 class="mbs txtcenter">{% trans %}Forgot password{% endtrans %}</h2>
-
-            <p>{{ 'An email has been sent to %email%. It contains a link you must click to reset your password.'|trans({'%email%': email}) }}</p>
-        </fieldset>
-    </form>
-{% endblock %}
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/request.html.twig b/src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/request.html.twig
deleted file mode 100644 (file)
index 10094e8..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-{% extends "WallabagCoreBundle::layout.html.twig" %}
-
-{% block title %}{% trans %}Forgot password{% endtrans %}{% endblock %}
-
-{% block body_class %}login{% endblock %}
-
-{% block menu %}{% endblock %}
-{% block messages %}{% endblock %}
-
-{% block content %}
-        <form action="{{ path('fos_user_resetting_send_email') }}" method="post" name="forgotPasswordform">
-            <fieldset class="w500p center">
-                <h2 class="mbs txtcenter">{% trans %}Forgot password{% endtrans %}</h2>
-                {% include "FOSUserBundle:Resetting:request_content.html.twig" %}
-            </fieldset>
-        </form>
-{% endblock %}
-
-{% block footer %}
-{% endblock %}
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/request_content.html.twig b/src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/request_content.html.twig
deleted file mode 100644 (file)
index 1f8da8d..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-{% trans_default_domain 'FOSUserBundle' %}
-
-{% trans %}Enter your email address below and we'll send you password reset instructions.{% endtrans %}
-
-{% if invalid_username is defined %}
-    <p>{{ 'resetting.request.invalid_username'|trans({'%username%': invalid_username}) }}</p>
-{% endif %}
-
-<div class="row">
-    <label for="username">{{ 'resetting.request.username'|trans }}</label>
-    <input type="text" id="username" name="username" required="required" />
-</div>
-
-<div class="row mts txtcenter">
-    <button type="submit">{{ 'resetting.request.submit'|trans }}</button>
-    <a href="{{ path('fos_user_security_login') }}" class="button">{% trans %}Login{% endtrans %}</a>
-</div>
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/baggy/Security/login.html.twig b/src/Wallabag/UserBundle/Resources/views/themes/baggy/Security/login.html.twig
deleted file mode 100644 (file)
index d52c366..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-{% extends "FOSUserBundle::layout.html.twig" %}
-
-{% block fos_user_content %}
-        <form action="{{ path('fos_user_security_check') }}" method="post" name="loginform">
-            <fieldset class="w500p center">
-                <h2 class="mbs txtcenter">{% trans %}Login to wallabag{% endtrans %}</h2>
-                {% if error %}
-                    <div>{{ error.message }}</div>
-                {% endif %}
-
-                {% for flashMessage in app.session.flashbag.get('notice') %}
-                    <p>{{ flashMessage }}</p>
-                {% endfor %}
-
-                <div class="row">
-                    <label class="col w150p" for="username">{% trans %}Username{% endtrans %}</label>
-                    <input type="text" id="username" name="_username" value="{{ last_username }}" />
-                </div>
-
-                <div class="row">
-                    <label class="col w150p" for="password">{% trans %}Password{% endtrans %}</label>
-                    <input type="password" id="password" name="_password" />
-                </div>
-
-                <div class="row mts txtcenter">
-                    <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}" />
-                    <button type="submit">Login</button>
-                    <a href="{{ path('fos_user_registration_register') }}" class="button">{% trans %}Register{% endtrans %}</a>
-                    <a href="{{ path('fos_user_resetting_request') }}" class="small">Forgot your password?</a>
-                </div>
-            </fieldset>
-        </form>
-{% endblock %}
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/baggy/layout.html.twig b/src/Wallabag/UserBundle/Resources/views/themes/baggy/layout.html.twig
deleted file mode 100644 (file)
index 60b321b..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-{% extends "WallabagCoreBundle::layout.html.twig" %}
-
-{% block title %}{% trans %}Welcome to wallabag!{% endtrans %}{% endblock %}
-
-{% block body_class %}login{% endblock %}
-
-{% block menu %}{% endblock %}
-{% block messages %}{% endblock %}
-
-{% block content %}
-    {% block fos_user_content %}
-    {% endblock fos_user_content %}
-{% endblock %}
-
-{% block footer %}
-{% endblock %}