diff options
Diffstat (limited to 'src/Wallabag')
80 files changed, 1141 insertions, 864 deletions
diff --git a/src/Wallabag/CoreBundle/Entity/Config.php b/src/Wallabag/CoreBundle/Entity/Config.php index e18b543b..a25656d3 100644 --- a/src/Wallabag/CoreBundle/Entity/Config.php +++ b/src/Wallabag/CoreBundle/Entity/Config.php | |||
@@ -40,7 +40,7 @@ class Config | |||
40 | * @Assert\Range( | 40 | * @Assert\Range( |
41 | * min = 1, | 41 | * min = 1, |
42 | * max = 100000, | 42 | * max = 100000, |
43 | * maxMessage = "This will certainly kill the app" | 43 | * maxMessage = "validator.item_per_page_too_high" |
44 | * ) | 44 | * ) |
45 | * @ORM\Column(name="items_per_page", type="integer", nullable=false) | 45 | * @ORM\Column(name="items_per_page", type="integer", nullable=false) |
46 | */ | 46 | */ |
@@ -68,7 +68,7 @@ class Config | |||
68 | * @Assert\Range( | 68 | * @Assert\Range( |
69 | * min = 1, | 69 | * min = 1, |
70 | * max = 100000, | 70 | * max = 100000, |
71 | * maxMessage = "This will certainly kill the app" | 71 | * maxMessage = "validator.rss_limit_too_hight" |
72 | * ) | 72 | * ) |
73 | */ | 73 | */ |
74 | private $rssLimit; | 74 | private $rssLimit; |
diff --git a/src/Wallabag/CoreBundle/Form/Type/ChangePasswordType.php b/src/Wallabag/CoreBundle/Form/Type/ChangePasswordType.php index 7d05a5d8..841af51e 100644 --- a/src/Wallabag/CoreBundle/Form/Type/ChangePasswordType.php +++ b/src/Wallabag/CoreBundle/Form/Type/ChangePasswordType.php | |||
@@ -16,23 +16,27 @@ class ChangePasswordType extends AbstractType | |||
16 | { | 16 | { |
17 | $builder | 17 | $builder |
18 | ->add('old_password', PasswordType::class, array( | 18 | ->add('old_password', PasswordType::class, array( |
19 | 'constraints' => new UserPassword(array('message' => 'Wrong value for your current password')), | 19 | 'constraints' => new UserPassword(array('message' => 'validator.password_wrong_value')), |
20 | 'label' => 'config.form_password.old_password_label', | ||
20 | )) | 21 | )) |
21 | ->add('new_password', RepeatedType::class, array( | 22 | ->add('new_password', RepeatedType::class, array( |
22 | 'type' => PasswordType::class, | 23 | 'type' => PasswordType::class, |
23 | 'invalid_message' => 'The password fields must match.', | 24 | 'invalid_message' => 'validator.password_must_match', |
24 | 'required' => true, | 25 | 'required' => true, |
25 | 'first_options' => array('label' => 'New password'), | 26 | 'first_options' => array('label' => 'config.form_password.new_password_label'), |
26 | 'second_options' => array('label' => 'Repeat new password'), | 27 | 'second_options' => array('label' => 'config.form_password.repeat_new_password_label'), |
27 | 'constraints' => array( | 28 | 'constraints' => array( |
28 | new Constraints\Length(array( | 29 | new Constraints\Length(array( |
29 | 'min' => 8, | 30 | 'min' => 8, |
30 | 'minMessage' => 'Password should by at least 8 chars long', | 31 | 'minMessage' => 'validator.password_too_short', |
31 | )), | 32 | )), |
32 | new Constraints\NotBlank(), | 33 | new Constraints\NotBlank(), |
33 | ), | 34 | ), |
35 | 'label' => 'config.form_password.new_password_label', | ||
36 | )) | ||
37 | ->add('save', SubmitType::class, array( | ||
38 | 'label' => 'config.form.save', | ||
34 | )) | 39 | )) |
35 | ->add('save', SubmitType::class) | ||
36 | ; | 40 | ; |
37 | } | 41 | } |
38 | 42 | ||
diff --git a/src/Wallabag/CoreBundle/Form/Type/ConfigType.php b/src/Wallabag/CoreBundle/Form/Type/ConfigType.php index 0a5ea6cc..25ea9efa 100644 --- a/src/Wallabag/CoreBundle/Form/Type/ConfigType.php +++ b/src/Wallabag/CoreBundle/Form/Type/ConfigType.php | |||
@@ -33,9 +33,13 @@ class ConfigType extends AbstractType | |||
33 | ->add('theme', ChoiceType::class, array( | 33 | ->add('theme', ChoiceType::class, array( |
34 | 'choices' => array_flip($this->themes), | 34 | 'choices' => array_flip($this->themes), |
35 | 'choices_as_values' => true, | 35 | 'choices_as_values' => true, |
36 | 'label' => 'config.form_settings.theme_label', | ||
37 | )) | ||
38 | ->add('items_per_page', null, array( | ||
39 | 'label' => 'config.form_settings.items_per_page_label', | ||
36 | )) | 40 | )) |
37 | ->add('items_per_page') | ||
38 | ->add('reading_speed', ChoiceType::class, array( | 41 | ->add('reading_speed', ChoiceType::class, array( |
42 | 'label' => 'config.form_settings.reading_speed', | ||
39 | 'choices' => array( | 43 | 'choices' => array( |
40 | 'I read ~100 words per minute' => '0.5', | 44 | 'I read ~100 words per minute' => '0.5', |
41 | 'I read ~200 words per minute' => '1', | 45 | 'I read ~200 words per minute' => '1', |
@@ -46,8 +50,11 @@ class ConfigType extends AbstractType | |||
46 | ->add('language', ChoiceType::class, array( | 50 | ->add('language', ChoiceType::class, array( |
47 | 'choices' => array_flip($this->languages), | 51 | 'choices' => array_flip($this->languages), |
48 | 'choices_as_values' => true, | 52 | 'choices_as_values' => true, |
53 | 'label' => 'config.form_settings.language_label', | ||
54 | )) | ||
55 | ->add('save', SubmitType::class, array( | ||
56 | 'label' => 'config.form.save', | ||
49 | )) | 57 | )) |
50 | ->add('save', SubmitType::class) | ||
51 | ; | 58 | ; |
52 | } | 59 | } |
53 | 60 | ||
diff --git a/src/Wallabag/CoreBundle/Form/Type/EditEntryType.php b/src/Wallabag/CoreBundle/Form/Type/EditEntryType.php index 2b1e1ef4..23d7b239 100644 --- a/src/Wallabag/CoreBundle/Form/Type/EditEntryType.php +++ b/src/Wallabag/CoreBundle/Form/Type/EditEntryType.php | |||
@@ -14,9 +14,22 @@ class EditEntryType extends AbstractType | |||
14 | public function buildForm(FormBuilderInterface $builder, array $options) | 14 | public function buildForm(FormBuilderInterface $builder, array $options) |
15 | { | 15 | { |
16 | $builder | 16 | $builder |
17 | ->add('title', TextType::class, array('required' => true)) | 17 | ->add('title', TextType::class, array( |
18 | ->add('is_public', CheckboxType::class, array('required' => false)) | 18 | 'required' => true, |
19 | ->add('save', SubmitType::class) | 19 | 'label' => 'entry.edit.title_label', |
20 | )) | ||
21 | ->add('is_public', CheckboxType::class, array( | ||
22 | 'required' => false, | ||
23 | 'label' => 'entry.edit.is_public_label', | ||
24 | )) | ||
25 | ->add('url', TextType::class, array( | ||
26 | 'disabled' => true, | ||
27 | 'required' => false, | ||
28 | 'label' => 'entry.edit.url_label', | ||
29 | )) | ||
30 | ->add('save', SubmitType::class, array( | ||
31 | 'label' => 'entry.edit.save_label', | ||
32 | )) | ||
20 | ; | 33 | ; |
21 | } | 34 | } |
22 | 35 | ||
diff --git a/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php b/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php index ee10bc8b..ec36503b 100644 --- a/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php +++ b/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php | |||
@@ -34,7 +34,9 @@ class EntryFilterType extends AbstractType | |||
34 | public function buildForm(FormBuilderInterface $builder, array $options) | 34 | public function buildForm(FormBuilderInterface $builder, array $options) |
35 | { | 35 | { |
36 | $builder | 36 | $builder |
37 | ->add('readingTime', NumberRangeFilterType::class) | 37 | ->add('readingTime', NumberRangeFilterType::class, array( |
38 | 'label' => 'entry.filters.reading_time.label', | ||
39 | )) | ||
38 | ->add('createdAt', DateRangeFilterType::class, array( | 40 | ->add('createdAt', DateRangeFilterType::class, array( |
39 | 'left_date_options' => array( | 41 | 'left_date_options' => array( |
40 | 'attr' => array( | 42 | 'attr' => array( |
@@ -50,6 +52,7 @@ class EntryFilterType extends AbstractType | |||
50 | 'format' => 'dd/MM/yyyy', | 52 | 'format' => 'dd/MM/yyyy', |
51 | 'widget' => 'single_text', | 53 | 'widget' => 'single_text', |
52 | ), | 54 | ), |
55 | 'label' => 'entry.filters.created_at.label', | ||
53 | ) | 56 | ) |
54 | ) | 57 | ) |
55 | ->add('domainName', TextFilterType::class, array( | 58 | ->add('domainName', TextFilterType::class, array( |
@@ -62,9 +65,14 @@ class EntryFilterType extends AbstractType | |||
62 | 65 | ||
63 | return $filterQuery->createCondition($expression); | 66 | return $filterQuery->createCondition($expression); |
64 | }, | 67 | }, |
68 | 'label' => 'entry.filters.domain_label', | ||
69 | )) | ||
70 | ->add('isArchived', CheckboxFilterType::class, array( | ||
71 | 'label' => 'entry.filters.archived_label', | ||
72 | )) | ||
73 | ->add('isStarred', CheckboxFilterType::class, array( | ||
74 | 'label' => 'entry.filters.starred_label', | ||
65 | )) | 75 | )) |
66 | ->add('isArchived', CheckboxFilterType::class) | ||
67 | ->add('isStarred', CheckboxFilterType::class) | ||
68 | ->add('previewPicture', CheckboxFilterType::class, array( | 76 | ->add('previewPicture', CheckboxFilterType::class, array( |
69 | 'apply_filter' => function (QueryInterface $filterQuery, $field, $values) { | 77 | 'apply_filter' => function (QueryInterface $filterQuery, $field, $values) { |
70 | if (false === $values['value']) { | 78 | if (false === $values['value']) { |
@@ -75,10 +83,12 @@ class EntryFilterType extends AbstractType | |||
75 | 83 | ||
76 | return $filterQuery->createCondition($expression); | 84 | return $filterQuery->createCondition($expression); |
77 | }, | 85 | }, |
86 | 'label' => 'entry.filters.preview_picture_label', | ||
78 | )) | 87 | )) |
79 | ->add('language', ChoiceFilterType::class, array( | 88 | ->add('language', ChoiceFilterType::class, array( |
80 | 'choices' => array_flip($this->repository->findDistinctLanguageByUser($this->user->getId())), | 89 | 'choices' => array_flip($this->repository->findDistinctLanguageByUser($this->user->getId())), |
81 | 'choices_as_values' => true, | 90 | 'choices_as_values' => true, |
91 | 'label' => 'entry.filters.language_label', | ||
82 | )) | 92 | )) |
83 | ; | 93 | ; |
84 | } | 94 | } |
diff --git a/src/Wallabag/CoreBundle/Form/Type/NewEntryType.php b/src/Wallabag/CoreBundle/Form/Type/NewEntryType.php index fbce13f1..69fab6fb 100644 --- a/src/Wallabag/CoreBundle/Form/Type/NewEntryType.php +++ b/src/Wallabag/CoreBundle/Form/Type/NewEntryType.php | |||
@@ -3,7 +3,6 @@ | |||
3 | namespace Wallabag\CoreBundle\Form\Type; | 3 | namespace Wallabag\CoreBundle\Form\Type; |
4 | 4 | ||
5 | use Symfony\Component\Form\AbstractType; | 5 | use Symfony\Component\Form\AbstractType; |
6 | use Symfony\Component\Form\Extension\Core\Type\SubmitType; | ||
7 | use Symfony\Component\Form\Extension\Core\Type\UrlType; | 6 | use Symfony\Component\Form\Extension\Core\Type\UrlType; |
8 | use Symfony\Component\Form\FormBuilderInterface; | 7 | use Symfony\Component\Form\FormBuilderInterface; |
9 | use Symfony\Component\OptionsResolver\OptionsResolver; | 8 | use Symfony\Component\OptionsResolver\OptionsResolver; |
@@ -13,8 +12,10 @@ class NewEntryType extends AbstractType | |||
13 | public function buildForm(FormBuilderInterface $builder, array $options) | 12 | public function buildForm(FormBuilderInterface $builder, array $options) |
14 | { | 13 | { |
15 | $builder | 14 | $builder |
16 | ->add('url', UrlType::class, array('required' => true)) | 15 | ->add('url', UrlType::class, array( |
17 | ->add('save', SubmitType::class) | 16 | 'required' => true, |
17 | 'label' => 'entry.new.form_new.url_label', | ||
18 | )) | ||
18 | ; | 19 | ; |
19 | } | 20 | } |
20 | 21 | ||
diff --git a/src/Wallabag/CoreBundle/Form/Type/NewTagType.php b/src/Wallabag/CoreBundle/Form/Type/NewTagType.php index 0f559031..c7568de7 100644 --- a/src/Wallabag/CoreBundle/Form/Type/NewTagType.php +++ b/src/Wallabag/CoreBundle/Form/Type/NewTagType.php | |||
@@ -3,7 +3,6 @@ | |||
3 | namespace Wallabag\CoreBundle\Form\Type; | 3 | namespace Wallabag\CoreBundle\Form\Type; |
4 | 4 | ||
5 | use Symfony\Component\Form\AbstractType; | 5 | use Symfony\Component\Form\AbstractType; |
6 | use Symfony\Component\Form\Extension\Core\Type\SubmitType; | ||
7 | use Symfony\Component\Form\Extension\Core\Type\TextType; | 6 | use Symfony\Component\Form\Extension\Core\Type\TextType; |
8 | use Symfony\Component\Form\FormBuilderInterface; | 7 | use Symfony\Component\Form\FormBuilderInterface; |
9 | use Symfony\Component\OptionsResolver\OptionsResolver; | 8 | use Symfony\Component\OptionsResolver\OptionsResolver; |
@@ -14,7 +13,6 @@ class NewTagType extends AbstractType | |||
14 | { | 13 | { |
15 | $builder | 14 | $builder |
16 | ->add('label', TextType::class, array('required' => true)) | 15 | ->add('label', TextType::class, array('required' => true)) |
17 | ->add('save', SubmitType::class) | ||
18 | ; | 16 | ; |
19 | } | 17 | } |
20 | 18 | ||
diff --git a/src/Wallabag/CoreBundle/Form/Type/NewUserType.php b/src/Wallabag/CoreBundle/Form/Type/NewUserType.php index 6eb0e63f..60fcc20c 100644 --- a/src/Wallabag/CoreBundle/Form/Type/NewUserType.php +++ b/src/Wallabag/CoreBundle/Form/Type/NewUserType.php | |||
@@ -17,22 +17,30 @@ class NewUserType extends AbstractType | |||
17 | public function buildForm(FormBuilderInterface $builder, array $options) | 17 | public function buildForm(FormBuilderInterface $builder, array $options) |
18 | { | 18 | { |
19 | $builder | 19 | $builder |
20 | ->add('username', TextType::class, array('required' => true)) | 20 | ->add('username', TextType::class, array( |
21 | 'required' => true, | ||
22 | 'label' => 'config.form_new_user.username_label', | ||
23 | )) | ||
21 | ->add('plainPassword', RepeatedType::class, array( | 24 | ->add('plainPassword', RepeatedType::class, array( |
22 | 'type' => PasswordType::class, | 25 | 'type' => PasswordType::class, |
23 | 'invalid_message' => 'The password fields must match', | 26 | 'invalid_message' => 'validator.password_must_match', |
24 | 'first_options' => array('label' => 'Password'), | 27 | 'first_options' => array('label' => 'config.form_new_user.password_label'), |
25 | 'second_options' => array('label' => 'Repeat new password'), | 28 | 'second_options' => array('label' => 'config.form_new_user.repeat_new_password_label'), |
26 | 'constraints' => array( | 29 | 'constraints' => array( |
27 | new Constraints\Length(array( | 30 | new Constraints\Length(array( |
28 | 'min' => 8, | 31 | 'min' => 8, |
29 | 'minMessage' => 'Password should by at least 8 chars long', | 32 | 'minMessage' => 'validator.password_too_short', |
30 | )), | 33 | )), |
31 | new Constraints\NotBlank(), | 34 | new Constraints\NotBlank(), |
32 | ), | 35 | ), |
36 | 'label' => 'config.form_new_user.plain_password_label', | ||
37 | )) | ||
38 | ->add('email', EmailType::class, array( | ||
39 | 'label' => 'config.form_new_user.email_label', | ||
40 | )) | ||
41 | ->add('save', SubmitType::class, array( | ||
42 | 'label' => 'config.form.save', | ||
33 | )) | 43 | )) |
34 | ->add('email', EmailType::class) | ||
35 | ->add('save', SubmitType::class) | ||
36 | ; | 44 | ; |
37 | } | 45 | } |
38 | 46 | ||
diff --git a/src/Wallabag/CoreBundle/Form/Type/RssType.php b/src/Wallabag/CoreBundle/Form/Type/RssType.php index def8782c..a9f68e54 100644 --- a/src/Wallabag/CoreBundle/Form/Type/RssType.php +++ b/src/Wallabag/CoreBundle/Form/Type/RssType.php | |||
@@ -12,8 +12,12 @@ class RssType extends AbstractType | |||
12 | public function buildForm(FormBuilderInterface $builder, array $options) | 12 | public function buildForm(FormBuilderInterface $builder, array $options) |
13 | { | 13 | { |
14 | $builder | 14 | $builder |
15 | ->add('rss_limit') | 15 | ->add('rss_limit', null, array( |
16 | ->add('save', SubmitType::class) | 16 | 'label' => 'config.form_rss.rss_limit', |
17 | )) | ||
18 | ->add('save', SubmitType::class, array( | ||
19 | 'label' => 'config.form.save', | ||
20 | )) | ||
17 | ; | 21 | ; |
18 | } | 22 | } |
19 | 23 | ||
diff --git a/src/Wallabag/CoreBundle/Form/Type/TaggingRuleType.php b/src/Wallabag/CoreBundle/Form/Type/TaggingRuleType.php index 5815b8c6..cfee21f1 100644 --- a/src/Wallabag/CoreBundle/Form/Type/TaggingRuleType.php +++ b/src/Wallabag/CoreBundle/Form/Type/TaggingRuleType.php | |||
@@ -14,12 +14,19 @@ class TaggingRuleType extends AbstractType | |||
14 | public function buildForm(FormBuilderInterface $builder, array $options) | 14 | public function buildForm(FormBuilderInterface $builder, array $options) |
15 | { | 15 | { |
16 | $builder | 16 | $builder |
17 | ->add('rule', TextType::class, array('required' => true)) | 17 | ->add('rule', TextType::class, array( |
18 | ->add('save', SubmitType::class) | 18 | 'required' => true, |
19 | 'label' => 'config.form_rules.rule_label', | ||
20 | )) | ||
21 | ->add('save', SubmitType::class, array( | ||
22 | 'label' => 'config.form.save', | ||
23 | )) | ||
19 | ; | 24 | ; |
20 | 25 | ||
21 | $tagsField = $builder | 26 | $tagsField = $builder |
22 | ->create('tags', TextType::class) | 27 | ->create('tags', TextType::class, array( |
28 | 'label' => 'config.form_rules.tags_label', | ||
29 | )) | ||
23 | ->addModelTransformer(new StringToListTransformer(',')); | 30 | ->addModelTransformer(new StringToListTransformer(',')); |
24 | 31 | ||
25 | $builder->add($tagsField); | 32 | $builder->add($tagsField); |
diff --git a/src/Wallabag/CoreBundle/Form/Type/UserInformationType.php b/src/Wallabag/CoreBundle/Form/Type/UserInformationType.php index f491b0ae..799ea39e 100644 --- a/src/Wallabag/CoreBundle/Form/Type/UserInformationType.php +++ b/src/Wallabag/CoreBundle/Form/Type/UserInformationType.php | |||
@@ -15,10 +15,19 @@ class UserInformationType extends AbstractType | |||
15 | public function buildForm(FormBuilderInterface $builder, array $options) | 15 | public function buildForm(FormBuilderInterface $builder, array $options) |
16 | { | 16 | { |
17 | $builder | 17 | $builder |
18 | ->add('name', TextType::class) | 18 | ->add('name', TextType::class, array( |
19 | ->add('email', EmailType::class) | 19 | 'label' => 'config.form_user.name_label', |
20 | ->add('twoFactorAuthentication', CheckboxType::class, array('required' => false)) | 20 | )) |
21 | ->add('save', SubmitType::class) | 21 | ->add('email', EmailType::class, array( |
22 | 'label' => 'config.form_user.email_label', | ||
23 | )) | ||
24 | ->add('twoFactorAuthentication', CheckboxType::class, array( | ||
25 | 'required' => false, | ||
26 | 'label' => 'config.form_user.twoFactorAuthentication_label', | ||
27 | )) | ||
28 | ->add('save', SubmitType::class, array( | ||
29 | 'label' => 'config.form.save', | ||
30 | )) | ||
22 | ->remove('username') | 31 | ->remove('username') |
23 | ->remove('plainPassword') | 32 | ->remove('plainPassword') |
24 | ; | 33 | ; |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml new file mode 100644 index 00000000..22039de3 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml | |||
@@ -0,0 +1,334 @@ | |||
1 | security: | ||
2 | login: | ||
3 | page_title: 'Welcome to wallabag!' | ||
4 | keep_logged_in: 'Keep me logged in' | ||
5 | forgot_password: 'Forgot your password?' | ||
6 | submit: 'Login' | ||
7 | register: 'Register' | ||
8 | username: 'Username' | ||
9 | password: 'Password' | ||
10 | cancel: 'Cancel' | ||
11 | resetting: | ||
12 | description: "Enter your email address below and we'll send you password reset instructions." | ||
13 | register: | ||
14 | page_title: 'Create an account' | ||
15 | go_to_account: 'Go to your account' | ||
16 | |||
17 | menu: | ||
18 | left: | ||
19 | unread: 'Unread' | ||
20 | starred: 'Starred' | ||
21 | archive: 'Archive' | ||
22 | all_articles: 'All entries' | ||
23 | config: 'Config' | ||
24 | tags: 'Tags' | ||
25 | internal_settings: 'Internal Settings' | ||
26 | import: 'Import' | ||
27 | howto: 'How to' | ||
28 | developer: 'Developer' | ||
29 | logout: 'Logout' | ||
30 | about: 'About' | ||
31 | search: 'Search' | ||
32 | save_link: 'Save a link' | ||
33 | back_to_unread: 'Back to unread articles' | ||
34 | top: | ||
35 | add_new_entry: 'Add a new entry' | ||
36 | search: 'Search' | ||
37 | filter_entries: 'Filter entries' | ||
38 | export: 'Export' | ||
39 | search_form: | ||
40 | input_label: 'Enter your search here' | ||
41 | |||
42 | footer: | ||
43 | wallabag: | ||
44 | elsewhere: 'Take wallabag with you' | ||
45 | social: 'Social' | ||
46 | powered_by: 'powered by' | ||
47 | about: 'About' | ||
48 | |||
49 | config: | ||
50 | page_title: Config | ||
51 | tab_menu: | ||
52 | settings: 'Settings' | ||
53 | rss: 'RSS' | ||
54 | user_info: 'User information' | ||
55 | password: 'Password' | ||
56 | rules: 'Tagging rules' | ||
57 | new_user: 'Add a user' | ||
58 | form: | ||
59 | save: 'Save' | ||
60 | form_settings: | ||
61 | theme_label: 'Theme' | ||
62 | items_per_page_label: 'Items per page' | ||
63 | language_label: 'Language' | ||
64 | form_rss: | ||
65 | 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.' | ||
66 | token_label: 'RSS token' | ||
67 | no_token: 'No token' | ||
68 | token_create: 'Create your token' | ||
69 | token_reset: 'Regenerate your token' | ||
70 | rss_links: 'RSS links' | ||
71 | rss_link: | ||
72 | unread: 'unread' | ||
73 | starred: 'starred' | ||
74 | archive: 'archived' | ||
75 | rss_limit: 'Number of items in the feed' | ||
76 | form_user: | ||
77 | two_factor_description: "Enabling two factor authentication means you'll receive an email with a code on every new untrusted connexion" | ||
78 | name_label: 'Name' | ||
79 | email_label: 'Email' | ||
80 | twoFactorAuthentication_label: 'Two factor authentication' | ||
81 | form_password: | ||
82 | old_password_label: 'Current password' | ||
83 | new_password_label: 'New password' | ||
84 | repeat_new_password_label: 'Repeat new password' | ||
85 | form_rules: | ||
86 | if_label: 'if' | ||
87 | then_tag_as_label: 'then tag as' | ||
88 | delete_rule_label: 'delete' | ||
89 | rule_label: 'Rule' | ||
90 | tags_label: 'Tags' | ||
91 | faq: | ||
92 | title: 'FAQ' | ||
93 | tagging_rules_definition_title: 'What does « tagging rules » mean?' | ||
94 | 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.' | ||
95 | how_to_use_them_title: 'How do I use them?' | ||
96 | how_to_use_them_description: 'Let assume you want to tag new entries as « <i>short reading</i> » when the reading time is inferior to 3 minutes.<br />In that case, you should put « readingTime <= 3 » in the <i>Rule</i> field and « <i>short reading</i> » in the <i>Tags</i> field.<br />Several tags can added simultaneously by separating them by a comma: « <i>short reading, must read</i> »<br />Complex rules can be written by using predefined operators: if « <i>readingTime >= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, github </i> »' | ||
97 | variables_available_title: 'Which variables and operators can I use to write rules?' | ||
98 | variables_available_description: 'The following variables and operators can be used to create tagging rules:' | ||
99 | meaning: 'Meaning' | ||
100 | variable_description: | ||
101 | label: 'Variable' | ||
102 | title: 'Title of the entry' | ||
103 | url: 'URL of the entry' | ||
104 | isArchived: 'Whether the entry is archived or not' | ||
105 | isStarred: 'Whether the entry is starred or not' | ||
106 | content: "The entry's content" | ||
107 | language: "The entry's language" | ||
108 | mimetype: "The entry's mime-type" | ||
109 | readingTime: "The estimated entry's reading time, in minutes" | ||
110 | domainName: 'The domain name of the entry' | ||
111 | operator_description: | ||
112 | label: 'Operator' | ||
113 | less_than: 'Less than...' | ||
114 | strictly_less_than: 'Strictly less than...' | ||
115 | greater_than: 'Greater than...' | ||
116 | strictly_greater_than: 'Strictly greater than...' | ||
117 | equal_to: 'Equal to...' | ||
118 | not_equal_to: 'Not equal to...' | ||
119 | or: 'One rule OR another' | ||
120 | and: 'One rule AND another' | ||
121 | matches: 'Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code>' | ||
122 | form_new_user: | ||
123 | username_label: 'Username' | ||
124 | password_label: 'Password' | ||
125 | repeat_new_password_label: 'Repeat new password' | ||
126 | plain_password_label: '????' | ||
127 | email_label: 'Email' | ||
128 | |||
129 | entry: | ||
130 | page_titles: | ||
131 | unread: 'Unread entries' | ||
132 | starred: 'Starred entries' | ||
133 | archive: 'Archived entries' | ||
134 | filtered: 'Filtered entries' | ||
135 | list: | ||
136 | number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.' | ||
137 | reading_time: 'estimated reading time' | ||
138 | reading_time_minutes: 'estimated reading time: %readingTime% min' | ||
139 | reading_time_less_one_minute: 'estimated reading time: <small class="inferieur"><</small> 1 min' | ||
140 | original_article: 'original' | ||
141 | toogle_as_read: 'Toggle mark as read' | ||
142 | toogle_as_star: 'Toggle favorite' | ||
143 | delete: 'Delete' | ||
144 | export_title: 'Export' | ||
145 | filters: | ||
146 | title: 'Filters' | ||
147 | status_label: 'Status' | ||
148 | archived_label: 'Archived' | ||
149 | starred_label: 'Starred' | ||
150 | preview_picture_label: 'Has a preview picture' | ||
151 | preview_picture_help: 'Preview picture' | ||
152 | language_label: 'Language' | ||
153 | reading_time: | ||
154 | label: 'Reading time in minutes' | ||
155 | from: 'from' | ||
156 | to: 'to' | ||
157 | domain_label: 'Domain name' | ||
158 | created_at: | ||
159 | label: 'Creation date' | ||
160 | from: 'from' | ||
161 | to: 'to' | ||
162 | action: | ||
163 | clear: 'Clear' | ||
164 | filter: 'Filter' | ||
165 | view: | ||
166 | left_menu: | ||
167 | back_to_top: 'Back to top' | ||
168 | back_to_homepage: 'Back' | ||
169 | set_as_read: 'Mark as read' | ||
170 | set_as_unread: 'Mark as unread' | ||
171 | set_as_favorite: 'Favorite' | ||
172 | view_original_article: 'Orignal article' | ||
173 | re_fetch_content: 'Re-fetch content' | ||
174 | delete: 'Delete' | ||
175 | add_a_tag: 'Add a tag' | ||
176 | share_content: 'Share' | ||
177 | share_email_label: 'Email' | ||
178 | download: 'Download' | ||
179 | print: 'Print' | ||
180 | problem: | ||
181 | label: 'Problems?' | ||
182 | description: 'Does this article appear wrong?' | ||
183 | edit_title: 'Edit title' | ||
184 | original_article: 'original' | ||
185 | annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations' | ||
186 | new: | ||
187 | page_title: 'Save new entry' | ||
188 | placeholder: 'http://website.com' | ||
189 | form_new: | ||
190 | url_label: Url | ||
191 | edit: | ||
192 | page_title: 'Edit an entry' | ||
193 | title_label: 'Title' | ||
194 | url_label: 'Url' | ||
195 | is_public_label: 'Public' | ||
196 | save_label: 'Save' | ||
197 | |||
198 | about: | ||
199 | page_title: 'About' | ||
200 | top_menu: | ||
201 | who_behind_wallabag: 'Who is behind wallabag' | ||
202 | getting_help: 'Getting help' | ||
203 | helping: 'Helping wallabag' | ||
204 | contributors: 'Contributors' | ||
205 | third_party: 'Third-party libraries' | ||
206 | who_behind_wallabag: | ||
207 | developped_by: 'Developed by' | ||
208 | website: 'website' | ||
209 | many_contributors: 'And many others contributors ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">on Github</a>' | ||
210 | on_github: 'on GitHub' | ||
211 | project_website: 'Project website' | ||
212 | license: 'License' | ||
213 | version: 'Version' | ||
214 | getting_help: | ||
215 | documentation: 'Documentation' | ||
216 | bug_reports: 'Bug reports' | ||
217 | support: '<a href="https://support.wallabag.org">On our support website</a> or <a href="https://github.com/wallabag/wallabag/issues">on GitHub</a>' | ||
218 | helping: | ||
219 | description: 'wallabag is free and opensource. You can help us:' | ||
220 | by_contributing: 'by contributing to the project:' | ||
221 | by_contributing_2: 'an issue lists all our needs' | ||
222 | by_paypal: 'via Paypal' | ||
223 | contributors: | ||
224 | description: 'Thank you to contributors on wallabag web application' | ||
225 | third_party: | ||
226 | description: 'Here are the list of third-party libraries used in wallabag (with their licenses):' | ||
227 | package: 'Package' | ||
228 | license: 'License' | ||
229 | |||
230 | howto: | ||
231 | page_title: 'How to' | ||
232 | page_description: 'There are several ways to save an article:' | ||
233 | top_menu: | ||
234 | browser_addons: 'Browser addons' | ||
235 | mobile_apps: 'Mobile apps' | ||
236 | bookmarklet: 'Bookmarklet' | ||
237 | form: | ||
238 | description: 'Thanks to this form' | ||
239 | browser_addons: | ||
240 | firefox: 'Standard Firefox Add-On' | ||
241 | chrome: 'Chrome Extension' | ||
242 | mobile_apps: | ||
243 | android: | ||
244 | via_f_droid: 'via F-Droid' | ||
245 | via_google_play: 'via Google Play' | ||
246 | ios: 'on the iTunes Store' | ||
247 | windows: 'on the Microsoft Store' | ||
248 | bookmarklet: | ||
249 | description: 'Drag & drop this link to your bookmarks bar:' | ||
250 | |||
251 | quickstart: | ||
252 | page_title: 'Quickstart' | ||
253 | intro: | ||
254 | title: 'Welcome to wallabag!' | ||
255 | paragraph_1: "We'll accompany you to visit wallabag and show you some features which can interess you." | ||
256 | paragraph_2: 'Follow us!' | ||
257 | configure: | ||
258 | title: 'Configure the application' | ||
259 | language: 'Change language and design' | ||
260 | rss: 'Enable RSS feeds' | ||
261 | tagging_rules: 'Write rules to automatically tag your articles' | ||
262 | admin: | ||
263 | title: 'Administration' | ||
264 | description: 'As a administrator, you have privileges on wallabag. You can:' | ||
265 | new_user: 'Create a new user' | ||
266 | analytics: 'Configure analytics' | ||
267 | sharing: 'Enable some parameters about article sharing' | ||
268 | export: 'Configure export' | ||
269 | import: 'Configure import' | ||
270 | first_steps: | ||
271 | title: 'First steps' | ||
272 | new_article: 'Save your first article' | ||
273 | unread_articles: 'And classify it!' | ||
274 | migrate: | ||
275 | title: 'Migrate from an existing service' | ||
276 | description: "You're using an other service? We'll help you to retrieve your data on wallabag." | ||
277 | pocket: 'Migrate from Pocket' | ||
278 | wallabag_v1: 'Migrate from wallabag v1' | ||
279 | wallabag_v2: 'Migrate from wallabag v2' | ||
280 | developer: | ||
281 | title: 'Developers' | ||
282 | create_application: 'Create your third application' | ||
283 | docs: | ||
284 | title: 'Full documentation' | ||
285 | annotate: 'Annotate your article' | ||
286 | export: 'Convert your articles into ePUB or PDF' | ||
287 | search_filters: 'See how you can look for an article by using search engine and filters' | ||
288 | fetching_errors: 'What can I do if an article encounters errors during fetching?' | ||
289 | all_docs: 'And so many other articles!' | ||
290 | support: | ||
291 | title: 'Support' | ||
292 | description: 'If you need some help, we are here for you.' | ||
293 | github: 'On GitHub' | ||
294 | email: 'By email' | ||
295 | gitter: 'On Gitter' | ||
296 | |||
297 | tag: | ||
298 | page_title: 'Tags' | ||
299 | list: | ||
300 | number_on_the_page: '{0} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.' | ||
301 | |||
302 | import: | ||
303 | page_title: 'Import' | ||
304 | page_description: 'Welcome to wallabag importer. Please select your previous service that you want to migrate.' | ||
305 | action: | ||
306 | import_contents: 'Import contents' | ||
307 | form: | ||
308 | mark_as_read_title: 'Mark all as read?' | ||
309 | mark_as_read_label: 'Mark all imported entries as read' | ||
310 | file_label: 'File' | ||
311 | save_label: 'Upload file' | ||
312 | pocket: | ||
313 | page_title: 'Import > Pocket' | ||
314 | 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." | ||
315 | config_missing: | ||
316 | description: "Pocket import isn't configured." | ||
317 | admin_message: 'You need to define %keyurls%a pocket_consumer_key%keyurle%.' | ||
318 | user_message: 'Your server admin needs to define an API Key for Pocket.' | ||
319 | 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.' | ||
320 | connect_to_pocket: 'Connect to Pocket and import data' | ||
321 | wallabag_v1: | ||
322 | page_title: 'Import > Wallabag v1' | ||
323 | 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.' | ||
324 | how_to: 'Please select your wallabag export and click on the below button to upload and import it.' | ||
325 | wallabag_v2: | ||
326 | page_title: 'Import > Wallabag v2' | ||
327 | 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.' | ||
328 | |||
329 | validator: | ||
330 | password_must_match: 'The password fields must match.' | ||
331 | password_too_short: 'Password should by at least 8 chars long' | ||
332 | password_wrong_value: 'Wrong value for your current password' | ||
333 | item_per_page_too_high: 'This will certainly kill the app' | ||
334 | rss_limit_too_hight: 'This will certainly kill the app' | ||
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml index 7c6ad07e..ddc453d0 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml | |||
@@ -1,11 +1,14 @@ | |||
1 | #Login | 1 | #Login |
2 | Keep me logged in: 'Rester connecté' | 2 | security: |
3 | Forgot your password?: 'Mot de passe oublié ?' | 3 | login: |
4 | Login: 'Se connecter' | 4 | keep_logged_in: 'Rester connecté' |
5 | Back to login: 'Revenir au formulaire de connexion' | 5 | forgot_password: 'Mot de passe oublié ?' |
6 | Send: 'Envoyer' | 6 | submit: 'Se connecter' |
7 | "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." | 7 | register: 'Créer un compte' |
8 | Register: 'Créer un compte' | 8 | username: "Nom d'utilisateur" |
9 | password: 'Mot de passe' | ||
10 | resetting: | ||
11 | description: 'Saisissez votre adresse e-mail ci-dessous, nous vous enverrons les instructions pour réinitialiser votre mot de passe.' | ||
9 | 12 | ||
10 | # Menu | 13 | # Menu |
11 | unread: 'Non lus' | 14 | unread: 'Non lus' |
@@ -33,7 +36,6 @@ Export: Exporter | |||
33 | # Config screen | 36 | # Config screen |
34 | Settings: 'Paramètres' | 37 | Settings: 'Paramètres' |
35 | User information: 'Mon compte' | 38 | User information: 'Mon compte' |
36 | Password: 'Mot de passe' | ||
37 | RSS: 'RSS' | 39 | RSS: 'RSS' |
38 | Add a user: 'Créer un compte' | 40 | Add a user: 'Créer un compte' |
39 | Theme: 'Thème' | 41 | Theme: 'Thème' |
@@ -54,7 +56,6 @@ RSS links: 'URL de vos flux RSS' | |||
54 | Old password: 'Mot de passe actuel' | 56 | Old password: 'Mot de passe actuel' |
55 | New password: 'Nouveau mot de passe' | 57 | New password: 'Nouveau mot de passe' |
56 | Repeat new password: 'Confirmez votre nouveau mot de passe' | 58 | Repeat new password: 'Confirmez votre nouveau mot de passe' |
57 | Username: "Nom d'utilisateur" | ||
58 | Two factor authentication: "Double authentification" | 59 | Two factor authentication: "Double authentification" |
59 | "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." | 60 | "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." |
60 | "I read ~100 words per minute": "Je lis environ 100 mots par minute" | 61 | "I read ~100 words per minute": "Je lis environ 100 mots par minute" |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig index 54faa788..721948ef 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig | |||
@@ -1,9 +1,9 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | 2 | ||
3 | {% block title %}{% trans %}Config{% endtrans %}{% endblock %} | 3 | {% block title %}{{ 'config.page_title'|trans }}{% endblock %} |
4 | 4 | ||
5 | {% block content %} | 5 | {% block content %} |
6 | <h2>{% trans %}Wallabag configuration{% endtrans %}</h2> | 6 | <h2>{{ 'config.tab_menu.settings'|trans }}</h2> |
7 | 7 | ||
8 | {{ form_start(form.config) }} | 8 | {{ form_start(form.config) }} |
9 | {{ form_errors(form.config) }} | 9 | {{ form_errors(form.config) }} |
@@ -44,13 +44,13 @@ | |||
44 | {{ form_rest(form.config) }} | 44 | {{ form_rest(form.config) }} |
45 | </form> | 45 | </form> |
46 | 46 | ||
47 | <h2>{% trans %}RSS configuration{% endtrans %}</h2> | 47 | <h2>{{ 'config.tab_menu.rss'|trans }}</h2> |
48 | 48 | ||
49 | {{ form_start(form.rss) }} | 49 | {{ form_start(form.rss) }} |
50 | {{ form_errors(form.rss) }} | 50 | {{ form_errors(form.rss) }} |
51 | 51 | ||
52 | <div class="row"> | 52 | <div class="row"> |
53 | {% trans %}RSS feeds provided by wallabag allow you to read your saved articles with your favourite RSS reader.{% endtrans %} | 53 | {{ 'config.form_rss.description'|trans }} |
54 | </div> | 54 | </div> |
55 | 55 | ||
56 | <fieldset class="w500p inline"> | 56 | <fieldset class="w500p inline"> |
@@ -59,27 +59,31 @@ | |||
59 | {% if rss.token %} | 59 | {% if rss.token %} |
60 | {{ rss.token }} | 60 | {{ rss.token }} |
61 | {% else %} | 61 | {% else %} |
62 | <em>No token</em> | 62 | <em>{{ 'config.form_rss.no_token'|trans }}</em> |
63 | {% endif %} | 63 | {% endif %} |
64 | – | 64 | – |
65 | <a href="{{ path('generate_token') }}">Regenerate ?</a> | 65 | <a href="{{ path('generate_token') }}"> |
66 | {% if rss.token %} | ||
67 | {{ 'config.form_rss.token_reset'|trans }} | ||
68 | {% else %} | ||
69 | {{ 'config.form_rss.token_create'|trans }} | ||
70 | {% endif %} | ||
71 | </a> | ||
66 | </div> | 72 | </div> |
67 | </fieldset> | 73 | </fieldset> |
68 | 74 | ||
75 | {% if rss.token %} | ||
69 | <fieldset class="w500p inline"> | 76 | <fieldset class="w500p inline"> |
70 | <div class="row"> | 77 | <div class="row"> |
71 | <label>Rss links:</label> | 78 | <label>{{ 'config.form_rss.rss_links'|trans }}</label> |
72 | {% if rss.token %} | 79 | <ul> |
73 | <ul> | 80 | <li><a href="{{ path('unread_rss', {'username': rss.username, 'token': rss.token}) }}">unread</a></li> |
74 | <li><a href="{{ path('unread_rss', {'username': rss.username, 'token': rss.token}) }}">unread</a></li> | 81 | <li><a href="{{ path('starred_rss', {'username': rss.username, 'token': rss.token}) }}">fav</a></li> |
75 | <li><a href="{{ path('starred_rss', {'username': rss.username, 'token': rss.token}) }}">fav</a></li> | 82 | <li><a href="{{ path('archive_rss', {'username': rss.username, 'token': rss.token}) }}">archives</a></li> |
76 | <li><a href="{{ path('archive_rss', {'username': rss.username, 'token': rss.token}) }}">archives</a></li> | 83 | </ul> |
77 | </ul> | ||
78 | {% else %} | ||
79 | <strong>You need to generate a token first.</strong> | ||
80 | {% endif %} | ||
81 | </div> | 84 | </div> |
82 | </fieldset> | 85 | </fieldset> |
86 | {% endif %} | ||
83 | 87 | ||
84 | <fieldset class="w500p inline"> | 88 | <fieldset class="w500p inline"> |
85 | <div class="row"> | 89 | <div class="row"> |
@@ -92,7 +96,7 @@ | |||
92 | {{ form_rest(form.rss) }} | 96 | {{ form_rest(form.rss) }} |
93 | </form> | 97 | </form> |
94 | 98 | ||
95 | <h2>{% trans %}User information{% endtrans %}</h2> | 99 | <h2>{{ 'config.tab_menu.user_info'|trans }}</h2> |
96 | 100 | ||
97 | {{ form_start(form.user) }} | 101 | {{ form_start(form.user) }} |
98 | {{ form_errors(form.user) }} | 102 | {{ form_errors(form.user) }} |
@@ -115,7 +119,7 @@ | |||
115 | 119 | ||
116 | {% if twofactor_auth %} | 120 | {% if twofactor_auth %} |
117 | <div class="row"> | 121 | <div class="row"> |
118 | {% trans %}Enabling two factor authentication means you'll receive an email with a code on every new untrusted connexion{% endtrans %} | 122 | {{ 'config.form_user.two_factor_description'|trans }} |
119 | </div> | 123 | </div> |
120 | 124 | ||
121 | <fieldset class="w500p inline"> | 125 | <fieldset class="w500p inline"> |
@@ -130,7 +134,7 @@ | |||
130 | {{ form_rest(form.user) }} | 134 | {{ form_rest(form.user) }} |
131 | </form> | 135 | </form> |
132 | 136 | ||
133 | <h2>{% trans %}Change your password{% endtrans %}</h2> | 137 | <h2>{{ 'config.tab_menu.password'|trans }}</h2> |
134 | 138 | ||
135 | {{ form_start(form.pwd) }} | 139 | {{ form_start(form.pwd) }} |
136 | {{ form_errors(form.pwd) }} | 140 | {{ form_errors(form.pwd) }} |
@@ -162,13 +166,16 @@ | |||
162 | {{ form_rest(form.pwd) }} | 166 | {{ form_rest(form.pwd) }} |
163 | </form> | 167 | </form> |
164 | 168 | ||
165 | <h2>{% trans %}Tagging rules{% endtrans %}</h2> | 169 | <h2>{{ 'config.tab_menu.rules'|trans }}}</h2> |
166 | 170 | ||
167 | <ul> | 171 | <ul> |
168 | {% for tagging_rule in app.user.config.taggingRules %} | 172 | {% for tagging_rule in app.user.config.taggingRules %} |
169 | <li> | 173 | <li> |
170 | if « {{ tagging_rule.rule }} » then tag as « {{ tagging_rule.tags|join(', ') }} » | 174 | {{ 'config.form_rules.if_label'|trans }} |
171 | <a href="{{ path('delete_tagging_rule', {id: tagging_rule.id}) }}" title="{% trans %}Delete{% endtrans %}" class="tool delete icon-trash icon"></a> | 175 | « {{ tagging_rule.rule }} » |
176 | {{ 'config.form_rules.then_tag_as_label'|trans }} | ||
177 | « {{ tagging_rule.tags|join(', ') }} » | ||
178 | <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> | ||
172 | </li> | 179 | </li> |
173 | {% endfor %} | 180 | {% endfor %} |
174 | </ul> | 181 | </ul> |
@@ -196,7 +203,7 @@ | |||
196 | </form> | 203 | </form> |
197 | 204 | ||
198 | {% if is_granted('ROLE_SUPER_ADMIN') %} | 205 | {% if is_granted('ROLE_SUPER_ADMIN') %} |
199 | <h2>{% trans %}Add a user{% endtrans %}</h2> | 206 | <h2>{{ 'config.tab_menu.new_user'|trans }}</h2> |
200 | 207 | ||
201 | {{ form_start(form.new_user) }} | 208 | {{ form_start(form.new_user) }} |
202 | {{ form_errors(form.new_user) }} | 209 | {{ form_errors(form.new_user) }} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/edit.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/edit.html.twig index 0d4d5ad2..e974fc69 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/edit.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/edit.html.twig | |||
@@ -1,6 +1,6 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | 2 | ||
3 | {% block title %}{% trans %}Edit an entry{% endtrans %}{% endblock %} | 3 | {% block title %}{{ 'entry.edit.page_title'|trans }}{% endblock %} |
4 | 4 | ||
5 | {% block content %} | 5 | {% block content %} |
6 | {{ form(form) }} | 6 | {{ form(form) }} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig index 7271bdaa..f718043b 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig | |||
@@ -1,13 +1,13 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | 2 | ||
3 | {% block title "Unread" %} | 3 | {% block title %}{{ 'entry.page_titles.unread'|trans }}{% endblock %} |
4 | 4 | ||
5 | {% block content %} | 5 | {% block content %} |
6 | {% block pager %} | 6 | {% block pager %} |
7 | <div class="results"> | 7 | <div class="results"> |
8 | <div class="nb-results">{{ entries.count }} {% trans %}entries{% endtrans %}</div> | 8 | <div class="nb-results">{{ 'entry.list.number_on_the_page'|transchoice(entries.count) }}</div> |
9 | <div class="pagination"> | 9 | <div class="pagination"> |
10 | <a href="#" id="filter">{% trans %}Filter{% endtrans %}</a> | 10 | <a href="#" id="filter">{{ 'entry.filters.title'|trans }}</a> |
11 | {% if entries is not empty %} | 11 | {% if entries is not empty %} |
12 | – | 12 | – |
13 | {% for p in range(1, entries.nbPages) if entries.nbPages > 1 %} | 13 | {% for p in range(1, entries.nbPages) if entries.nbPages > 1 %} |
@@ -20,68 +20,64 @@ | |||
20 | </div> | 20 | </div> |
21 | {% endblock %} | 21 | {% endblock %} |
22 | 22 | ||
23 | {% if entries is empty %} | 23 | {% for entry in entries %} |
24 | <div class="messages warning"><p>{% trans %}No articles found.{% endtrans %}</p></div> | 24 | <div id="entry-{{ entry.id|e }}" class="entry"> |
25 | {% else %} | 25 | <h2><a href="{{ path('view', { 'id': entry.id }) }}">{{ entry.title|raw }}</a></h2> |
26 | {% for entry in entries %} | 26 | {% if entry.readingTime > 0 %} |
27 | <div id="entry-{{ entry.id|e }}" class="entry"> | 27 | <div class="estimatedTime"> |
28 | <h2><a href="{{ path('view', { 'id': entry.id }) }}">{{ entry.title|raw }}</a></h2> | 28 | <span class="tool reading-time"> |
29 | {% if entry.readingTime > 0 %} | 29 | {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': entry.readingTime}) }} |
30 | <div class="estimatedTime"> | 30 | </span> |
31 | <span class="tool reading-time"> | 31 | </div> |
32 | {% trans with {'%readingTime%': entry.readingTime } %}estimated reading time: %readingTime% min{% endtrans %} | 32 | {% else %} |
33 | </span> | 33 | <div class="estimatedTime"> |
34 | </div> | 34 | <span class="tool reading-time"> |
35 | {% else %} | 35 | {{ 'entry.list.reading_time_less_one_minute'|trans|raw }} |
36 | <div class="estimatedTime"> | 36 | </span> |
37 | <span class="tool reading-time"> | 37 | </div> |
38 | {% trans with {'%inferior%': '<small class="inferieur"><</small>'} %}estimated reading time: %inferior% 1 min{% endtrans %} | 38 | {% endif %} |
39 | </span> | 39 | |
40 | </div> | 40 | <ul class="tools links"> |
41 | {% endif %} | 41 | <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> |
42 | 42 | <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> | |
43 | <ul class="tools links"> | 43 | <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> |
44 | <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> | 44 | <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> |
45 | <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> | 45 | </ul> |
46 | <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> | 46 | {% if entry.previewPicture is null %} |
47 | <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> | 47 | <p>{{ entry.content|striptags|slice(0, 300) }}…</p> |
48 | </ul> | 48 | {% else %} |
49 | {% if entry.previewPicture is null %} | 49 | <img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" /> |
50 | <p>{{ entry.content|striptags|slice(0, 300) }}…</p> | 50 | {% endif %} |
51 | {% else %} | 51 | </div> |
52 | <img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" /> | 52 | {% endfor %} |
53 | {% endif %} | ||
54 | </div> | ||
55 | {% endfor %} | ||
56 | {% endif %} | ||
57 | 53 | ||
58 | <aside id="filter-form" class=""> | 54 | <aside id="filter-form" class=""> |
59 | <form method="get" action="{{ path('all') }}"> | 55 | <form method="get" action="{{ path('all') }}"> |
60 | <h2>{% trans %}Filters{% endtrans %}</h2> | 56 | <h2>{{ 'entry.filters.title'|trans }}</h2> |
61 | <a href="javascript: void(null);" id="filter-form-close" class="close-button--popup close-button">×</a> | 57 | <a href="javascript: void(null);" id="filter-form-close" class="close-button--popup close-button">×</a> |
62 | 58 | ||
63 | <div id="filter-status" class="filter-group"> | 59 | <div id="filter-status" class="filter-group"> |
64 | <div class=""> | 60 | <div class=""> |
65 | <label>{% trans %}Status{% endtrans %}</label> | 61 | <label>{{ 'entry.filters.status_label'|trans }}</label> |
66 | </div> | 62 | </div> |
67 | <div class="input-field"> | 63 | <div class="input-field"> |
68 | {{ form_widget(form.isArchived) }} | 64 | {{ form_widget(form.isArchived) }} |
69 | <label for="entry_filter_isArchived">{% trans %}Archived{% endtrans %}</label> | 65 | {{ form_label(form.isArchived) }} |
70 | </div> | 66 | </div> |
71 | 67 | ||
72 | <div class="input-field"> | 68 | <div class="input-field"> |
73 | {{ form_widget(form.isStarred) }} | 69 | {{ form_widget(form.isStarred) }} |
74 | <label for="entry_filter_isStarred">{% trans %}Starred{% endtrans %}</label> | 70 | {{ form_label(form.isStarred) }} |
75 | </div> | 71 | </div> |
76 | 72 | ||
77 | <div class="input-field"> | 73 | <div class="input-field"> |
78 | {{ form_widget(form.previewPicture) }} | 74 | {{ form_widget(form.previewPicture) }} |
79 | <label for="entry_filter_previewPicture">{% trans %}Has a preview picture{% endtrans %}</label> | 75 | {{ form_label(form.previewPicture) }} |
80 | </div> | 76 | </div> |
81 | </div> | 77 | </div> |
82 | 78 | ||
83 | <div id="filter-language" class="filter-group"> | 79 | <div id="filter-language" class="filter-group"> |
84 | <label for="entry_filter_language">{% trans %}Language{% endtrans %}</label> | 80 | {{ form_label(form.language) }} |
85 | <div class="input-field "> | 81 | <div class="input-field "> |
86 | {{ form_widget(form.language) }} | 82 | {{ form_widget(form.language) }} |
87 | </div> | 83 | </div> |
@@ -89,20 +85,20 @@ | |||
89 | 85 | ||
90 | <div id="filter-reading-time" class="filter-group"> | 86 | <div id="filter-reading-time" class="filter-group"> |
91 | <div class=""> | 87 | <div class=""> |
92 | <label>{% trans %}Reading time in minutes{% endtrans %}</label> | 88 | {{ form_label(form.readingTime) }} |
93 | </div> | 89 | </div> |
94 | <div class="input-field "> | 90 | <div class="input-field "> |
95 | <label for="entry_filter_readingTime_left_number">{% trans %}from{% endtrans %}</label> | 91 | <label for="entry_filter_readingTime_left_number">{{ 'entry.filters.reading_time.from'|trans }}</label> |
96 | {{ form_widget(form.readingTime.left_number, {'type': 'number'}) }} | 92 | {{ form_widget(form.readingTime.left_number, {'type': 'number'}) }} |
97 | </div> | 93 | </div> |
98 | <div class="input-field "> | 94 | <div class="input-field "> |
99 | <label for="entry_filter_readingTime_right_number">{% trans %}to{% endtrans %}</label> | 95 | <label for="entry_filter_readingTime_right_number">{{ 'entry.filters.reading_time.to'|trans }}</label> |
100 | {{ form_widget(form.readingTime.right_number, {'type': 'number'}) }} | 96 | {{ form_widget(form.readingTime.right_number, {'type': 'number'}) }} |
101 | </div> | 97 | </div> |
102 | </div> | 98 | </div> |
103 | 99 | ||
104 | <div id="filter-domain-name" class="filter-group"> | 100 | <div id="filter-domain-name" class="filter-group"> |
105 | <label for="entry_filter_domainName">{% trans %}Domain name{% endtrans %}</label> | 101 | {{ form_label(form.domainName) }} |
106 | <div class="input-field "> | 102 | <div class="input-field "> |
107 | {{ form_widget(form.domainName, {'type': 'text', 'attr' : {'placeholder': 'website.com'} }) }} | 103 | {{ form_widget(form.domainName, {'type': 'text', 'attr' : {'placeholder': 'website.com'} }) }} |
108 | </div> | 104 | </div> |
@@ -110,26 +106,25 @@ | |||
110 | 106 | ||
111 | <div id="filter-creation-date" class="filter-group"> | 107 | <div id="filter-creation-date" class="filter-group"> |
112 | <div class=""> | 108 | <div class=""> |
113 | <label>{% trans %}Creation date{% endtrans %}</label> | 109 | {{ form_label(form.createdAt) }} |
114 | </div> | 110 | </div> |
115 | <div class="input-field "> | 111 | <div class="input-field "> |
116 | <label for="entry_filter_createdAt_left_date" class="active">{% trans %}from{% endtrans %}</label> | 112 | <label for="entry_filter_createdAt_left_date" class="active">{{ 'entry.filters.created_at.from'|trans }}</label> |
117 | {{ form_widget(form.createdAt.left_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.left_date.vars.value} }) }} | 113 | {{ form_widget(form.createdAt.left_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.left_date.vars.value} }) }} |
118 | </div> | 114 | </div> |
119 | <div class="input-field "> | 115 | <div class="input-field "> |
120 | <label for="entry_filter_createdAt_right_date" class="active">{% trans %}to{% endtrans %}</label> | 116 | <label for="entry_filter_createdAt_right_date" class="active">{{ 'entry.filters.created_at.to'|trans }}</label> |
121 | {{ form_widget(form.createdAt.right_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.right_date.vars.value} }) }} | 117 | {{ form_widget(form.createdAt.right_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.right_date.vars.value} }) }} |
122 | </div> | 118 | </div> |
123 | </div> | 119 | </div> |
124 | <div id="filter-buttons" class="filter-group"> | ||
125 | 120 | ||
121 | <div id="filter-buttons" class="filter-group"> | ||
126 | <div class=""> | 122 | <div class=""> |
127 | <a href="#!" class="center waves-effect waves-green btn-flat" id="clear_form_filters">{% trans %}Clear{% endtrans %}</a> | 123 | <a href="#!" class="center waves-effect waves-green btn-flat" id="clear_form_filters">{{ 'entry.filters.action.clear'|trans }}</a> |
128 | </div> | 124 | </div> |
129 | 125 | ||
130 | <button class="btn waves-effect waves-light" type="submit" id="submit-filter" value="filter">{% trans %}Filters{% endtrans %}</button> | 126 | <button class="btn waves-effect waves-light" type="submit" id="submit-filter" value="filter">{{ 'entry.filters.action.filter'|trans }}</button> |
131 | 127 | </div> | |
132 | </div> | ||
133 | </form> | 128 | </form> |
134 | </aside> | 129 | </aside> |
135 | 130 | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.xml.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.xml.twig index a39a8dc3..98f7194c 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.xml.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.xml.twig | |||
@@ -18,9 +18,9 @@ | |||
18 | <description> | 18 | <description> |
19 | <![CDATA[ | 19 | <![CDATA[ |
20 | {%- if entry.readingTime > 0 -%} | 20 | {%- if entry.readingTime > 0 -%} |
21 | {% trans %}estimated reading time :{% endtrans %} {{ entry.readingTime }} min | 21 | {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': entry.readingTime}) }} |
22 | {%- else -%} | 22 | {%- else -%} |
23 | {% trans %}estimated reading time :{% endtrans %} < 1 min | 23 | {{ 'entry.list.reading_time_less_one_minute'|trans|raw }} |
24 | {%- endif %} | 24 | {%- endif %} |
25 | 25 | ||
26 | {{ entry.content|raw -}} | 26 | {{ entry.content|raw -}} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entry.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entry.html.twig index 9323e787..3cda3949 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entry.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entry.html.twig | |||
@@ -5,32 +5,32 @@ | |||
5 | {% block content %} | 5 | {% block content %} |
6 | <div id="article"> | 6 | <div id="article"> |
7 | <header class="mbm"> | 7 | <header class="mbm"> |
8 | <h1>{{ entry.title|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" title="{% trans %}Edit title{% endtrans %}">✎</a></h1> | 8 | <h1>{{ entry.title|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" title="{{ 'entry.view.edit_title'|trans }}">✎</a></h1> |
9 | </header> | 9 | </header> |
10 | 10 | ||
11 | <div id="article_toolbar"> | 11 | <div id="article_toolbar"> |
12 | <ul class="links"> | 12 | <ul class="links"> |
13 | <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> | 13 | <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> |
14 | <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> | 14 | <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> |
15 | <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> | 15 | <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> |
16 | <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> | 16 | <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> |
17 | <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> | 17 | <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> |
18 | <li><a id="nav-btn-add-tag" title="{% trans %}Add a tag{% endtrans %}"><span>{% trans %}Tag{% endtrans %}</span></a></li> | 18 | <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> |
19 | <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> | 19 | <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> |
20 | {% 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 %} | 20 | {% 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 %} |
21 | {% if craue_setting('share_mail') %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&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 %} | 21 | {% if craue_setting('share_mail') %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="Email"><span>Email</span></a></li>{% endif %} |
22 | {% if craue_setting('share_shaarli') %}<li><a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="{% trans %}shaarli{% endtrans %}"><span>{% trans %}shaarli{% endtrans %}</span></a></li>{% endif %} | 22 | {% if craue_setting('share_shaarli') %}<li><a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="shaarli"><span>shaarli</span></a></li>{% endif %} |
23 | {% if craue_setting('share_diaspora') %}<li><a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}¬es=&v=1&noui=1&jump=doclose" target="_blank" class="tool diaspora icon-image icon-image--diaspora" title="{% trans %}diaspora{% endtrans %}"><span>{% trans %}diaspora{% endtrans %}</span></a></li>{% endif %} | 23 | {% if craue_setting('share_diaspora') %}<li><a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}¬es=&v=1&noui=1&jump=doclose" target="_blank" class="tool diaspora icon-image icon-image--diaspora" title="diaspora"><span>diaspora</span></a></li>{% endif %} |
24 | {% 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 %} | 24 | {% 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 %} |
25 | {% 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 %} | 25 | {% 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 %} |
26 | {% if craue_setting('export_epub') %}<li><a href="?epub&method=id&value={{ entry.id }}" title="Generate ePub file">EPUB</a></li>{% endif %} | 26 | {% if craue_setting('export_epub') %}<li><a href="?epub&method=id&value={{ entry.id }}" title="Generate ePub file">EPUB</a></li>{% endif %} |
27 | {% if craue_setting('export_mobi') %}<li><a href="?mobi&method=id&value={{ entry.id }}" title="Generate Mobi file">MOBI</a></li>{% endif %} | 27 | {% if craue_setting('export_mobi') %}<li><a href="?mobi&method=id&value={{ entry.id }}" title="Generate Mobi file">MOBI</a></li>{% endif %} |
28 | {% if craue_setting('export_pdf') %}<li><a href="?pdf&method=id&value={{ entry.id }}" title="Generate PDF file">PDF</a></li>{% endif %} | 28 | {% if craue_setting('export_pdf') %}<li><a href="?pdf&method=id&value={{ entry.id }}" title="Generate PDF file">PDF</a></li>{% endif %} |
29 | <li><a href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&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> | 29 | <li><a href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&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> |
30 | </ul> | 30 | </ul> |
31 | </div> | 31 | </div> |
32 | {% set nbAnnotations = entry.annotations | length %} | 32 | {% set nbAnnotations = entry.annotations | length %} |
33 | <span class="tool link mdi-communication-comment"> {% transchoice nbAnnotations %}{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations{% endtranschoice %}</span> | 33 | <span class="tool link mdi-communication-comment"> {{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span> |
34 | <aside class="tags"> | 34 | <aside class="tags"> |
35 | {% for tag in entry.tags %} | 35 | {% for tag in entry.tags %} |
36 | <span class="mdi-action-label-outline">{{ tag.label }}</span> <a href="{{ path('remove_tag', { 'entry': entry.id, 'tag': tag.id }) }}"><i>✘</i></a> | 36 | <span class="mdi-action-label-outline">{{ tag.label }}</span> <a href="{{ path('remove_tag', { 'entry': entry.id, 'tag': tag.id }) }}"><i>✘</i></a> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/new.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/new.html.twig index 95ed0785..03768a3d 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/new.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/new.html.twig | |||
@@ -1,6 +1,6 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | 2 | ||
3 | {% block title %}{% trans %}Save new entry{% endtrans %}{% endblock %} | 3 | {% block title %}{{ 'entry.new.page_title'|trans }}{% endblock %} |
4 | 4 | ||
5 | {% block content %} | 5 | {% block content %} |
6 | {{ render(controller( "WallabagCoreBundle:Entry:addEntryForm" )) }} | 6 | {{ render(controller( "WallabagCoreBundle:Entry:addEntryForm" )) }} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/new_form.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/new_form.html.twig index fa0a9f53..8c129068 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/new_form.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/new_form.html.twig | |||
@@ -8,7 +8,7 @@ | |||
8 | {% endif %} | 8 | {% endif %} |
9 | 9 | ||
10 | {{ form_label(form.url) }} | 10 | {{ form_label(form.url) }} |
11 | {{ form_widget(form.url) }} | 11 | {{ form_widget(form.url, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.new.placeholder'} }) }} |
12 | 12 | ||
13 | <div class="hidden">{{ form_rest(form) }}</div> | 13 | {{ form_rest(form) }} |
14 | </form> | 14 | </form> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/about.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/about.html.twig index fdd12cf7..5c0046d1 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/about.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/about.html.twig | |||
@@ -1,57 +1,57 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | 2 | ||
3 | {% block title %}{% trans %}About{% endtrans %}{% endblock %} | 3 | {% block title %}{{ 'about.page_title'|trans }}{% endblock %} |
4 | 4 | ||
5 | {% block content %} | 5 | {% block content %} |
6 | <h2>{% trans %}Who is behind wallabag{% endtrans %}</h2> | 6 | <h2>{{ 'about.top_menu.who_behind_wallabag'|trans }}</h2> |
7 | 7 | ||
8 | <dl> | 8 | <dl> |
9 | <dt>{% trans %}Developed by{% endtrans %}</dt> | 9 | <dt>{{ 'about.who_behind_wallabag.developped_by'|trans }}</dt> |
10 | <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{% trans %}website{% endtrans %}</a></dd> | 10 | <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd> |
11 | <dd>Thomas Citharel — <a href="https://tcit.fr">{% trans %}website{% endtrans %}</a></dd> | 11 | <dd>Thomas Citharel — <a href="https://tcit.fr">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd> |
12 | <dd>Jérémy Benoist — <a href="http://www.j0k3r.net">{% trans %}website{% endtrans %}</a></dd> | 12 | <dd>Jérémy Benoist — <a href="http://www.j0k3r.net">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd> |
13 | 13 | ||
14 | <dt>{% trans %}And many others contributors ♥{% endtrans %} <a href="https://github.com/wallabag/wallabag/graphs/contributors">{% trans %}on Github{% endtrans %}</a></dt> | 14 | <dt>{{ 'about.who_behind_wallabag.many_contributors'|trans|raw }}</dt> |
15 | 15 | ||
16 | <dt>{% trans %}Project website{% endtrans %}</dt> | 16 | <dt>{{ 'about.who_behind_wallabag.project_website'|trans }}</dt> |
17 | <dd><a href="https://www.wallabag.org">https://www.wallabag.org</a></dd> | 17 | <dd><a href="https://www.wallabag.org">https://www.wallabag.org</a></dd> |
18 | 18 | ||
19 | <dt>{% trans %}License{% endtrans %}: <a href="http://en.wikipedia.org/wiki/MIT_License">MIT</a></dt> | 19 | <dt>{{ 'about.who_behind_wallabag.license'|trans }}: <a href="http://en.wikipedia.org/wiki/MIT_License">MIT</a></dt> |
20 | 20 | ||
21 | <dt>{% trans %}Version{% endtrans %}: {{ version }}</dt> | 21 | <dt>{{ 'about.who_behind_wallabag.version'|trans }}: {{ version }}</dt> |
22 | </dl> | 22 | </dl> |
23 | 23 | ||
24 | <h2>{% trans %}Getting help{% endtrans %}</h2> | 24 | <h2>{{ 'about.top_menu.getting_help'|trans }}</h2> |
25 | 25 | ||
26 | <dl> | 26 | <dl> |
27 | <dt>{% trans %}Documentation{% endtrans %}</dt> | 27 | <dt>{{ 'about.getting_help.documentation'|trans }}</dt> |
28 | <dd><a href="https://doc.wallabag.org/en">english</a></dd> | 28 | <dd><a href="https://doc.wallabag.org/en">english</a></dd> |
29 | <dd><a href="https://doc.wallabag.org/fr">français</a></dd> | 29 | <dd><a href="https://doc.wallabag.org/fr">français</a></dd> |
30 | <dd><a href="https://doc.wallabag.org/de">deutsch</a></dd> | 30 | <dd><a href="https://doc.wallabag.org/de">deutsch</a></dd> |
31 | 31 | ||
32 | <dt>{% trans %}Bug reports{% endtrans %}</dt> | 32 | <dt>{{ 'about.getting_help.bug_reports'|trans }}</dt> |
33 | <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> | 33 | <dd>{{ 'about.getting_help.support'|trans|raw }}</dd> |
34 | </dl> | 34 | </dl> |
35 | 35 | ||
36 | <h2>{% trans %}Helping wallabag{% endtrans %}</h2> | 36 | <h2>{{ 'about.top_menu.helping'|trans }}</h2> |
37 | 37 | ||
38 | <p>{% trans %}wallabag is free and opensource. You can help us:{% endtrans %}</p> | 38 | <p>{{ 'about.helping.description'|trans }}</p> |
39 | 39 | ||
40 | <dl> | 40 | <dl> |
41 | <dt>{% trans %}wallabag is free and opensource. You can help us:{% endtrans %}</dt> | 41 | <dt>{{ 'about.helping.description'|trans }}</dt> |
42 | <dd>by contributing to the project: <a href="https://github.com/wallabag/wallabag/issues/1254">an issue lists all our needs</a></dd> | 42 | <dd>{{ 'about.helping.by_contributing_2'|trans }} <a href="https://github.com/wallabag/wallabag/issues/1254">{{ 'about.helping.by_contributing'|trans }}</a></dd> |
43 | <dd><a href="{{ paypal_url }}">{% trans %}via Paypal{% endtrans %}</a></dd> | 43 | <dd><a href="{{ paypal_url }}">{{ 'about.helping.by_paypal'|trans }}</a></dd> |
44 | </dl> | 44 | </dl> |
45 | 45 | ||
46 | <h2>{% trans %}Contributors{% endtrans %}</h2> | 46 | <h2>{{ 'about.top_menu.contributors'|trans }}</h2> |
47 | <p><a href="https://github.com/wallabag/wallabag/graphs/contributors">{% trans %}Thank you to contributors on wallabag web application{% endtrans %}</a></p> | 47 | <p><a href="https://github.com/wallabag/wallabag/graphs/contributors">{{ 'about.contributors.description'|trans }}</a></p> |
48 | 48 | ||
49 | <h2>{% trans %}Third-party libraries{% endtrans %}</h2> | 49 | <h2>{{ 'about.top_menu.third_party'|trans }}</h2> |
50 | <p>{% trans %}Here are the list of third-party libraries used in wallabag (with their licenses):{% endtrans %}</p> | 50 | <p>{{ 'about.third_party.description'|trans }}</p> |
51 | <table> | 51 | <table class="striped"> |
52 | <tr> | 52 | <tr> |
53 | <th>{% trans %}Package{% endtrans %}</th> | 53 | <th>{{ 'about.third_party.package'|trans }}</th> |
54 | <th>{% trans %}License{% endtrans %}</th> | 54 | <th>{{ 'about.third_party.license'|trans }}</th> |
55 | </tr> | 55 | </tr> |
56 | <tr><td>behat/transliterator</td><td>Artistic 1.0</td></tr> | 56 | <tr><td>behat/transliterator</td><td>Artistic 1.0</td></tr> |
57 | <tr><td>CraueConfigBundle</td><td>MIT</td></tr> | 57 | <tr><td>CraueConfigBundle</td><td>MIT</td></tr> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/howto.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/howto.html.twig index e32264f3..8da1afa0 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/howto.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/howto.html.twig | |||
@@ -1,28 +1,28 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | 2 | ||
3 | {% block title %}{% trans %}Howto{% endtrans %}{% endblock %} | 3 | {% block title %}{{ 'howto.page_title'|trans }}{% endblock %} |
4 | 4 | ||
5 | {% block content %} | 5 | {% block content %} |
6 | <h2>{% trans %}Howto{% endtrans %}</h2> | 6 | <h2>{{ 'howto.page_title'|trans }}</h2> |
7 | 7 | ||
8 | <p>{% trans %}There are several ways to save an article:{% endtrans %}</p> | 8 | <p>{{ 'howto.page_description'|trans }}</p> |
9 | <ul> | 9 | <ul> |
10 | <li><a href="{{ path('new') }}">{% trans %}Thanks to this form{% endtrans %}</a></li> | 10 | <li><a href="{{ path('new') }}">{{ 'howto.form.description'|trans }}</a></li> |
11 | </ul> | 11 | </ul> |
12 | <h3>{% trans %}Browser Addons{% endtrans %}</h3> | 12 | <h3>{{ 'howto.top_menu.browser_addons'|trans }}</h3> |
13 | <ul> | 13 | <ul> |
14 | <li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{% trans %}Standard Firefox Add-On{% endtrans %}</a></li> | 14 | <li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{{ 'howto.browser_addons.firefox'|trans }}</a></li> |
15 | <li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{% trans %}Chrome Extension{% endtrans %}</a></li> | 15 | <li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{{ 'howto.browser_addons.chrome'|trans }}</a></li> |
16 | </ul> | 16 | </ul> |
17 | <h3>{% trans %}Mobile Apps{% endtrans %}</h3> | 17 | <h3>{{ 'howto.top_menu.mobile_apps'|trans }}</h3> |
18 | <ul> | 18 | <ul> |
19 | <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> | 19 | <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> |
20 | <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" target="_blank">{% trans %}download the application{% endtrans %}</a></li> | 20 | <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" target="_blank">{{ 'howto.mobile_apps.ios'|trans }}</a></li> |
21 | <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> | 21 | <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> |
22 | </ul> | 22 | </ul> |
23 | <h3>{% trans %}Bookmarklet{% endtrans %}</h3> | 23 | <h3>{{ 'howto.top_menu.bookmarklet'|trans }}</h3> |
24 | <p> | 24 | <p> |
25 | {% trans %}Drag & drop this link to your bookmarks bar:{% endtrans %} | 25 | {{ 'howto.bookmarklet.description'|trans }} |
26 | {% include 'WallabagCoreBundle::_bookmarklet.html.twig' %} | 26 | {% include 'WallabagCoreBundle::_bookmarklet.html.twig' %} |
27 | 27 | ||
28 | {% endblock %} | 28 | {% endblock %} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/quickstart.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/quickstart.html.twig index 6b008fca..5f65ce15 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/quickstart.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/quickstart.html.twig | |||
@@ -1,55 +1,66 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | 2 | ||
3 | {% block title %}{% trans %}Quickstart{% endtrans %}{% endblock %} | 3 | {% block title %}{{ 'quickstart.page_title'|trans }}{% endblock %} |
4 | 4 | ||
5 | {% block content %} | 5 | {% block content %} |
6 | 6 | ||
7 | <h3>{% trans %}Welcome to wallabag!{% endtrans %}</h3> | 7 | <h3>{{ 'quickstart.intro.title'|trans }}</h3> |
8 | <p>{% trans %}We'll accompany you to visit wallabag and show you some features which can interess you.{% endtrans %}</p> | 8 | <p>{{ 'quickstart.intro.paragraph_1'|trans }}</p> |
9 | <p>{% trans %}Follow us!{% endtrans %}</p> | 9 | <p>{{ 'quickstart.intro.paragraph_2'|trans }}</p> |
10 | <h4>{% trans %}Configure the application{% endtrans %}</h4> | 10 | |
11 | <h4>{{ 'quickstart.configure.title'|trans }}</h4> | ||
11 | <ul> | 12 | <ul> |
12 | <li><a href="{{ path('config') }}">{% trans %}Change language and design{% endtrans %}</a></li> | 13 | <li><a href="{{ path('config') }}">{{ 'quickstart.configure.language'|trans }}</a></li> |
13 | <li><a href="{{ path('config') }}#set2">{% trans %}Enable RSS feeds{% endtrans %}</a></li> | 14 | <li><a href="{{ path('config') }}#set2">{{ 'quickstart.configure.rss'|trans }}</a></li> |
14 | <li><a href="{{ path('config') }}#set5">{% trans %}Write rules to automatically tag your articles{% endtrans %}</a></li> | 15 | <li><a href="{{ path('config') }}#set5">{{ 'quickstart.configure.tagging_rules'|trans }}</a></li> |
15 | </ul> | 16 | </ul> |
17 | |||
16 | {% if is_granted('ROLE_SUPER_ADMIN') %} | 18 | {% if is_granted('ROLE_SUPER_ADMIN') %} |
17 | <h4>{% trans %}Administration{% endtrans %}</h4> | 19 | <h4>{{ 'quickstart.admin.title'|trans }}</h4> |
18 | <p>{% trans %}As a administrator, you have privileges on wallabag. You can:{% endtrans %}</p> | 20 | <p>{{ 'quickstart.admin.description'|trans }}</p> |
19 | <ul> | 21 | <ul> |
20 | <li><a href="{{ path('config') }}#set6">{% trans %}Create a new user{% endtrans %}</a></li> | 22 | <li><a href="{{ path('config') }}#set6">{{ 'quickstart.admin.new_user'|trans }}</a></li> |
21 | <li><a href="{{ path('craue_config_settings_modify') }}#set-analytics">{% trans %}Configure analytics{% endtrans %}</a></li> | 23 | <li><a href="{{ path('craue_config_settings_modify') }}#set-analytics">{{ 'quickstart.admin.analytics'|trans }}</a></li> |
22 | <li><a href="{{ path('craue_config_settings_modify') }}#set-entry">{% trans %}Enable some parameters about article sharing{% endtrans %}</a></li> | 24 | <li><a href="{{ path('craue_config_settings_modify') }}#set-entry">{{ 'quickstart.admin.sharing'|trans }}</a></li> |
23 | <li><a href="{{ path('craue_config_settings_modify') }}#set-export">{% trans %}Configure export{% endtrans %}</a></li> | 25 | <li><a href="{{ path('craue_config_settings_modify') }}#set-export">{{ 'quickstart.admin.export'|trans }}</a></li> |
24 | <li><a href="{{ path('craue_config_settings_modify') }}#set-import">{% trans %}Configure import{% endtrans %}</a></li> | 26 | <li><a href="{{ path('craue_config_settings_modify') }}#set-import">{{ 'quickstart.admin.import'|trans }}</a></li> |
25 | </ul> | 27 | </ul> |
26 | {% endif %} | 28 | {% endif %} |
27 | <h4>{% trans %}First steps{% endtrans %}</h4> | 29 | |
30 | <h4>{{ 'quickstart.first_steps.title'|trans }}</h4> | ||
28 | <ul> | 31 | <ul> |
29 | <li><a href="{{ path('new') }}">{% trans %}Save your first article{% endtrans %}</a></li> | 32 | <li><a href="{{ path('new') }}">{{ 'quickstart.first_steps.new_article'|trans }}</a></li> |
30 | <li><a href="{{ path('unread') }}">{% trans %}And classify it!{% endtrans %}</a></li> | 33 | <li><a href="{{ path('unread') }}">{{ 'quickstart.first_steps.unread_articles'|trans }}</a></li> |
31 | </ul> | 34 | </ul> |
32 | <h4>{% trans %}Migrate from an existing service{% endtrans %}</h4> | 35 | |
33 | <p>{% trans %}You're using an other service? We'll help you to retrieve your data on wallabag.{% endtrans %}</p> | 36 | <h4>{{ 'quickstart.migrate.title'|trans }}</h4> |
37 | <p>{{ 'quickstart.migrate.description'|trans }}</p> | ||
34 | <ul> | 38 | <ul> |
35 | <li><a href="{{ path('import_pocket') }}">{% trans %}Migrate from Pocket{% endtrans %}</a></li> | 39 | <li><a href="{{ path('import_pocket') }}">{{ 'quickstart.migrate.pocket'|trans }}</a></li> |
36 | <li><a href="{{ path('import_wallabag_v1') }}">{% trans %}Migrate from wallabag v1{% endtrans %}</a></li> | 40 | <li><a href="{{ path('import_wallabag_v1') }}">{{ 'quickstart.migrate.wallabag_v1'|trans }}</a></li> |
37 | <li><a href="{{ path('import_wallabag_v2') }}">{% trans %}Migrate from wallabag v2{% endtrans %}</a></li> | 41 | <li><a href="{{ path('import_wallabag_v2') }}">{{ 'quickstart.migrate.wallabag_v2'|trans }}</a></li> |
38 | </ul> | 42 | </ul> |
39 | <h4>{% trans %}Full documentation{% endtrans %}</h4> | 43 | |
44 | <h4>{{ 'quickstart.developer.title'|trans }}</h4> | ||
40 | <ul> | 45 | <ul> |
41 | <li><a href="http://doc.wallabag.org/en/v2/user/annotations.html">{% trans %}Annotate your article{% endtrans %}</a></li> | 46 | <li><a href="{{ path('developer') }}">{{ 'quickstart.developer.create_application'|trans }}</a></li> |
42 | <li><a href="http://doc.wallabag.org/en/v2/user/download_articles.html">{% trans %}Convert your articles into ePUB or PDF{% endtrans %}</a></li> | ||
43 | <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> | ||
44 | <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> | ||
45 | <li><a href="http://doc.wallabag.org/">{% trans %}And so many other articles!{% endtrans %}</a></li> | ||
46 | </ul> | 47 | </ul> |
47 | <h4>{% trans %}Support{% endtrans %}</h4> | 48 | |
48 | <p>{% trans %}If you need some help, we are here for you.{% endtrans %}</p> | 49 | <h4>{{ 'quickstart.docs.title'|trans }}</h4> |
50 | <ul> | ||
51 | <li><a href="http://doc.wallabag.org/en/v2/user/annotations.html">{{ 'quickstart.docs.annotate'|trans }}</a></li> | ||
52 | <li><a href="http://doc.wallabag.org/en/v2/user/download_articles.html">{{ 'quickstart.docs.export'|trans }}</a></li> | ||
53 | <li><a href="http://doc.wallabag.org/en/v2/user/filters.html">{{ 'quickstart.docs.search_filters'|trans }}</a></li> | ||
54 | <li><a href="http://doc.wallabag.org/en/v2/user/errors_during_fetching.html">{{ 'quickstart.docs.fetching_errors'|trans }}</a></li> | ||
55 | <li><a href="http://doc.wallabag.org/">{{ 'quickstart.docs.all_docs'|trans }}</a></li> | ||
56 | </ul> | ||
57 | |||
58 | <h4>{{ 'quickstart.support.title'|trans }}</h4> | ||
59 | <p>{{ 'quickstart.support.description'|trans }}</p> | ||
49 | <ul> | 60 | <ul> |
50 | <li><a href="https://github.com/wallabag/wallabag/issues/">{% trans %}On GitHub{% endtrans %}</a></li> | 61 | <li><a href="https://github.com/wallabag/wallabag/issues/">{{ 'quickstart.support.github'|trans }}</a></li> |
51 | <li><a href="mailto:hello@wallabag.org">{% trans %}By email{% endtrans %}</a></li> | 62 | <li><a href="mailto:hello@wallabag.org">{{ 'quickstart.support.email'|trans }}</a></li> |
52 | <li><a href="https://gitter.im/wallabag/wallabag">{% trans %}On Gitter{% endtrans %}</a></li> | 63 | <li><a href="https://gitter.im/wallabag/wallabag">{{ 'quickstart.support.gitter'|trans }}</a></li> |
53 | </ul> | 64 | </ul> |
54 | 65 | ||
55 | {% endblock %} | 66 | {% endblock %} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/new_form.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/new_form.html.twig index ade7f56d..6e552560 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/new_form.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/new_form.html.twig | |||
@@ -8,7 +8,6 @@ | |||
8 | {% endif %} | 8 | {% endif %} |
9 | 9 | ||
10 | {{ form_widget(form.label, { 'attr': {'autocomplete': 'off'} }) }} | 10 | {{ form_widget(form.label, { 'attr': {'autocomplete': 'off'} }) }} |
11 | {{ form_widget(form.save, { 'attr': {'class': 'btn waves-effect waves-light'}, 'label': 'add tag' }) }} | ||
12 | 11 | ||
13 | <div class="hidden">{{ form_rest(form) }}</div> | 12 | {{ form_rest(form) }} |
14 | </form> | 13 | </form> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/tags.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/tags.html.twig index c2a461b8..dfc61751 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/tags.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/tags.html.twig | |||
@@ -1,13 +1,15 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | 2 | ||
3 | {% block title "Tags" %} | 3 | {% block title %}{{ 'tag.page_title'|trans }}{% endblock %} |
4 | 4 | ||
5 | {% block content %} | 5 | {% block content %} |
6 | {% if tags is empty %} | 6 | <div class="results"> |
7 | <div class="messages warning"><p>{% trans %}No tags found.{% endtrans %}</p></div> | 7 | <div class="nb-results">{{ 'tag.list.number_on_the_page'|transchoice(tags.count) }}</div> |
8 | {% else %} | 8 | </div> |
9 | {% for tag in tags %} | 9 | |
10 | {{tag.label}} | 10 | <ul> |
11 | {% endfor %} | 11 | {% for tag in tags %} |
12 | {% endif %} | 12 | <li id="tag-{{ tag.id|e }}">{{tag.label}} ({{ tag.entries.getValues | length }})</li> |
13 | {% endfor %} | ||
14 | </ul> | ||
13 | {% endblock %} | 15 | {% endblock %} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig index 7f098066..0ce06962 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig | |||
@@ -33,32 +33,32 @@ | |||
33 | {% block menu %} | 33 | {% block menu %} |
34 | <button id="menu" class="icon icon-menu desktopHide"><span>Menu</span></button> | 34 | <button id="menu" class="icon icon-menu desktopHide"><span>Menu</span></button> |
35 | <ul id="links" class="links"> | 35 | <ul id="links" class="links"> |
36 | <li><a href="{{ path('unread') }}">{% trans %}unread{% endtrans %}</a></li> | 36 | <li><a href="{{ path('unread') }}">{{ 'menu.left.unread'|trans }}</a></li> |
37 | <li><a href="{{ path('starred') }}">{% trans %}favorites{% endtrans %}</a></li> | 37 | <li><a href="{{ path('starred') }}">{{ 'menu.left.starred'|trans }}</a></li> |
38 | <li><a href="{{ path('archive') }}">{% trans %}archive{% endtrans %}</a></li> | 38 | <li><a href="{{ path('archive') }}">{{ 'menu.left.archive'|trans }}</a></li> |
39 | <li><a href="{{ path('all') }}">{% trans %}all{% endtrans %}</a></li> | 39 | <li><a href="{{ path('all') }}">{{ 'menu.left.all_articles'|trans }}</a></li> |
40 | <li><a href="{{ path('tag') }}">{% trans %}tags{% endtrans %}</a></li> | 40 | <li><a href="{{ path('tag') }}">{{ 'menu.left.tags'|trans }}</a></li> |
41 | <li><a href="{{ path('new') }}">{% trans %}save a link{% endtrans %}</a></li> | 41 | <li><a href="{{ path('new') }}">{{ 'menu.left.save_link'|trans }}</a></li> |
42 | <li style="position: relative;"><a href="javascript: void(null);" id="search">{% trans %}search{% endtrans %}</a> | 42 | <li style="position: relative;"><a href="javascript: void(null);" id="search">{{ 'menu.left.search'|trans }}</a> |
43 | <div id="search-form" class="messages info popup-form"> | 43 | <div id="search-form" class="messages info popup-form"> |
44 | <form method="get" action="index.php"> | 44 | <form method="get" action="index.php"> |
45 | <h2>{% trans %}Search{% endtrans %}</h2> | 45 | <h2>{{ 'menu.left.search'|trans }}</h2> |
46 | <a href="javascript: void(null);" id="search-form-close" class="close-button--popup close-button">×</a> | 46 | <a href="javascript: void(null);" id="search-form-close" class="close-button--popup close-button">×</a> |
47 | <input type="hidden" name="view" value="search"> | 47 | <input type="hidden" name="view" value="search"> |
48 | <input required placeholder="{% trans %}Enter your search here{% endtrans %}" type="text" name="search" id="searchfield"><br> | 48 | <input required placeholder="{{ 'menu.search_form.input_label'|trans }}" type="text" name="search" id="searchfield"><br> |
49 | <input id="submit-search" type="submit" value="{% trans %}Search{% endtrans %}"> | 49 | <input id="submit-search" type="submit" value="{{ 'menu.left.search'|trans }}"> |
50 | </form> | 50 | </form> |
51 | </div> | 51 | </div> |
52 | </li> | 52 | </li> |
53 | <li><a href="{{ path('config') }}">{% trans %}config{% endtrans %}</a></li> | 53 | <li><a href="{{ path('config') }}">{{ 'menu.left.config'|trans }}</a></li> |
54 | {% if is_granted('ROLE_SUPER_ADMIN') %} | 54 | {% if is_granted('ROLE_SUPER_ADMIN') %} |
55 | <li><a href="{{ path('craue_config_settings_modify') }}">{% trans %}internal settings{% endtrans %}</a></li> | 55 | <li><a href="{{ path('craue_config_settings_modify') }}">{{ 'menu.left.internal_settings'|trans }}</a></li> |
56 | {% endif %} | 56 | {% endif %} |
57 | <li><a href="{{ path('import') }}">{% trans %}import{% endtrans %}</a></li> | 57 | <li><a href="{{ path('import') }}">{{ 'menu.left.import'|trans }}</a></li> |
58 | <li><a href="{{ path('howto') }}">{% trans %}howto{% endtrans %}</a></li> | 58 | <li><a href="{{ path('howto') }}">{{ 'menu.left.howto'|trans }}</a></li> |
59 | <li><a href="{{ path('developer') }}">{% trans %}Developer{% endtrans %}</a></li> | 59 | <li><a href="{{ path('developer') }}">{{ 'menu.left.developer'|trans }}</a></li> |
60 | <li><a href="{{ path('about') }}">{% trans %}about{% endtrans %}</a></li> | 60 | <li><a href="{{ path('about') }}">{{ 'footer.wallabag.about'|trans }}</a></li> |
61 | <li><a class="icon icon-power" href="{{ path('fos_user_security_logout') }}" title="{% trans %}logout{% endtrans %}">{% trans %}logout{% endtrans %}</a></li> | 61 | <li><a class="icon icon-power" href="{{ path('fos_user_security_logout') }}">{{ 'menu.left.logout'|trans }}</a></li> |
62 | </ul> | 62 | </ul> |
63 | {% endblock %} | 63 | {% endblock %} |
64 | 64 | ||
@@ -73,6 +73,6 @@ | |||
73 | 73 | ||
74 | {% block footer %} | 74 | {% block footer %} |
75 | <footer class="w600p center mt3 mb3 smaller txtright"> | 75 | <footer class="w600p center mt3 mb3 smaller txtright"> |
76 | <p>{% trans %}powered by{% endtrans %} <a href="http://wallabag.org">wallabag</a></p> | 76 | <p>{{ 'footer.wallabag.powered_by'|trans }} <a href="http://wallabag.org">wallabag</a></p> |
77 | </footer> | 77 | </footer> |
78 | {% endblock %} | 78 | {% endblock %} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig index 2b0b0828..698219b9 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig | |||
@@ -1,6 +1,6 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | 2 | ||
3 | {% block title %}{% trans %}config{% endtrans %}{% endblock %} | 3 | {% block title %}{{ 'config.page_title'|trans }}{% endblock %} |
4 | 4 | ||
5 | {% block content %} | 5 | {% block content %} |
6 | 6 | ||
@@ -11,13 +11,13 @@ | |||
11 | <div class="row"> | 11 | <div class="row"> |
12 | <div class="div_tabs col s12"> | 12 | <div class="div_tabs col s12"> |
13 | <ul class="tabs"> | 13 | <ul class="tabs"> |
14 | <li class="tab col s3"><a class="active" href="#set1">{% trans %}Settings{% endtrans %}</a></li> | 14 | <li class="tab col s3"><a class="active" href="#set1">{{ 'config.tab_menu.settings'|trans }}</a></li> |
15 | <li class="tab col s3"><a href="#set2">{% trans %}RSS{% endtrans %}</a></li> | 15 | <li class="tab col s3"><a href="#set2">{{ 'config.tab_menu.rss'|trans }}</a></li> |
16 | <li class="tab col s3"><a href="#set3">{% trans %}User information{% endtrans %}</a></li> | 16 | <li class="tab col s3"><a href="#set3">{{ 'config.tab_menu.user_info'|trans }}</a></li> |
17 | <li class="tab col s3"><a href="#set4">{% trans %}Password{% endtrans %}</a></li> | 17 | <li class="tab col s3"><a href="#set4">{{ 'config.tab_menu.password'|trans }}</a></li> |
18 | <li class="tab col s3"><a href="#set5">{% trans %}Tagging rules{% endtrans %}</a></li> | 18 | <li class="tab col s3"><a href="#set5">{{ 'config.tab_menu.rules'|trans }}</a></li> |
19 | {% if is_granted('ROLE_SUPER_ADMIN') %} | 19 | {% if is_granted('ROLE_SUPER_ADMIN') %} |
20 | <li class="tab col s3"><a href="#set6">{% trans %}Add a user{% endtrans %}</a></li> | 20 | <li class="tab col s3"><a href="#set6">{{ 'config.tab_menu.new_user'|trans }}</a></li> |
21 | {% endif %} | 21 | {% endif %} |
22 | </ul> | 22 | </ul> |
23 | </div> | 23 | </div> |
@@ -28,9 +28,9 @@ | |||
28 | 28 | ||
29 | <div class="row"> | 29 | <div class="row"> |
30 | <div class="input-field col s12"> | 30 | <div class="input-field col s12"> |
31 | {{ form_label(form.config.theme) }} | ||
31 | {{ form_errors(form.config.theme) }} | 32 | {{ form_errors(form.config.theme) }} |
32 | {{ form_widget(form.config.theme) }} | 33 | {{ form_widget(form.config.theme) }} |
33 | <label class="required">{% trans %}Theme{% endtrans %}</label> | ||
34 | </div> | 34 | </div> |
35 | </div> | 35 | </div> |
36 | 36 | ||
@@ -59,10 +59,8 @@ | |||
59 | </div> | 59 | </div> |
60 | </div> | 60 | </div> |
61 | 61 | ||
62 | <div class="hidden">{{ form_rest(form.config) }}</div> | 62 | {{ form_widget(form.config.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} |
63 | <button class="btn waves-effect waves-light" type="submit" name="action"> | 63 | {{ form_rest(form.config) }} |
64 | {% trans %}Save{% endtrans %} | ||
65 | </button> | ||
66 | </form> | 64 | </form> |
67 | </div> | 65 | </div> |
68 | 66 | ||
@@ -72,33 +70,37 @@ | |||
72 | 70 | ||
73 | <div class="row"> | 71 | <div class="row"> |
74 | <div class="input-field col s12"> | 72 | <div class="input-field col s12"> |
75 | {% 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 %} | 73 | {{ 'config.form_rss.description'|trans }} |
76 | </div> | 74 | </div> |
77 | </div> | 75 | </div> |
78 | 76 | ||
79 | <div class="row"> | 77 | <div class="row"> |
80 | <div class="input-field col s12"> | 78 | <div class="input-field col s12"> |
81 | <label>{% trans %}RSS token{% endtrans %}</label> | 79 | <label>{{ 'config.form_rss.token_label'|trans }}</label> |
82 | <div> | 80 | <div> |
83 | {% if rss.token %} | 81 | {% if rss.token %} |
84 | {{ rss.token }} | 82 | {{ rss.token }} |
85 | {% else %} | 83 | {% else %} |
86 | <em>{% trans %}No token{% endtrans %}</em> | 84 | <em>{{ 'config.form_rss.no_token'|trans }}</em> |
87 | {% endif %} | 85 | {% endif %} |
88 | – <a href="{{ path('generate_token') }}">{% if rss.token %}{% trans %}Reset your token{% endtrans %}{% else %}{% trans %}Create your token{% endtrans %}{% endif %}</a> | 86 | – <a href="{{ path('generate_token') }}"> |
87 | {% if rss.token %} | ||
88 | {{ 'config.form_rss.token_reset'|trans }} | ||
89 | {% else %} | ||
90 | {{ 'config.form_rss.token_create'|trans }} | ||
91 | {% endif %}</a> | ||
89 | </div> | 92 | </div> |
90 | </div> | 93 | </div> |
91 | </div> | 94 | </div> |
92 | {% if rss.token %} | 95 | {% if rss.token %} |
93 | <div class="row"> | 96 | <div class="row"> |
94 | <div class="input-field col s12"> | 97 | <div class="input-field col s12"> |
95 | <label>{% trans %}RSS links{% endtrans %}</label> | 98 | <label>{{ 'config.form_rss.rss_links'|trans }}</label> |
96 | <ul> | 99 | <ul> |
97 | <li><a href="{{ path('unread_rss', {'username': rss.username, 'token': rss.token}) }}">{% trans %}unread{% endtrans %}</a></li> | 100 | <li><a href="{{ path('unread_rss', {'username': rss.username, 'token': rss.token}) }}">{{ 'config.form_rss.rss_link.unread'|trans }}</a></li> |
98 | <li><a href="{{ path('starred_rss', {'username': rss.username, 'token': rss.token}) }}">{% trans %}starred{% endtrans %}</a></li> | 101 | <li><a href="{{ path('starred_rss', {'username': rss.username, 'token': rss.token}) }}">{{ 'config.form_rss.rss_link.starred'|trans }}</a></li> |
99 | <li><a href="{{ path('archive_rss', {'username': rss.username, 'token': rss.token}) }}">{% trans %}archive{% endtrans %}</a></li> | 102 | <li><a href="{{ path('archive_rss', {'username': rss.username, 'token': rss.token}) }}">{{ 'config.form_rss.rss_link.archive'|trans }}</a></li> |
100 | </ul> | 103 | </ul> |
101 | |||
102 | </div> | 104 | </div> |
103 | </div> | 105 | </div> |
104 | {% endif %} | 106 | {% endif %} |
@@ -111,11 +113,8 @@ | |||
111 | </div> | 113 | </div> |
112 | </div> | 114 | </div> |
113 | 115 | ||
114 | <div class="hidden">{{ form_rest(form.rss) }}</div> | 116 | {{ form_widget(form.rss.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} |
115 | <button class="btn waves-effect waves-light" type="submit" name="action"> | 117 | {{ form_rest(form.rss) }} |
116 | {% trans %}Save{% endtrans %} | ||
117 | </button> | ||
118 | |||
119 | </form> | 118 | </form> |
120 | </div> | 119 | </div> |
121 | 120 | ||
@@ -142,7 +141,7 @@ | |||
142 | {% if twofactor_auth %} | 141 | {% if twofactor_auth %} |
143 | <div class="row"> | 142 | <div class="row"> |
144 | <div class="input-field col s12"> | 143 | <div class="input-field col s12"> |
145 | {% trans %}Enabling two factor authentication means you'll receive an email with a code on every new untrusted connexion{% endtrans %} | 144 | {{ 'config.form_user.two_factor_description'|trans }} |
146 | </div> | 145 | </div> |
147 | </div> | 146 | </div> |
148 | 147 | ||
@@ -155,11 +154,8 @@ | |||
155 | </div> | 154 | </div> |
156 | {% endif %} | 155 | {% endif %} |
157 | 156 | ||
158 | <div class="hidden">{{ form_rest(form.user) }}</div> | 157 | {{ form_widget(form.user.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} |
159 | <button class="btn waves-effect waves-light" type="submit" name="action"> | 158 | {{ form_rest(form.user) }} |
160 | {% trans %}Save{% endtrans %} | ||
161 | </button> | ||
162 | |||
163 | </form> | 159 | </form> |
164 | </div> | 160 | </div> |
165 | 161 | ||
@@ -191,11 +187,8 @@ | |||
191 | </div> | 187 | </div> |
192 | </div> | 188 | </div> |
193 | 189 | ||
194 | <div class="hidden">{{ form_rest(form.pwd) }}</div> | 190 | {{ form_widget(form.pwd.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} |
195 | <button class="btn waves-effect waves-light" type="submit" name="action"> | 191 | {{ form_rest(form.pwd) }} |
196 | {% trans %}Save{% endtrans %} | ||
197 | </button> | ||
198 | |||
199 | </form> | 192 | </form> |
200 | </div> | 193 | </div> |
201 | 194 | ||
@@ -205,8 +198,11 @@ | |||
205 | <ul> | 198 | <ul> |
206 | {% for tagging_rule in app.user.config.taggingRules %} | 199 | {% for tagging_rule in app.user.config.taggingRules %} |
207 | <li> | 200 | <li> |
208 | if « {{ tagging_rule.rule }} » then tag as « {{ tagging_rule.tags|join(', ') }} » | 201 | {{ 'config.form_rules.if_label'|trans }} |
209 | <a href="{{ path('delete_tagging_rule', {id: tagging_rule.id}) }}" title="{% trans %}Delete{% endtrans %}"> | 202 | « {{ tagging_rule.rule }} » |
203 | {{ 'config.form_rules.then_tag_as_label'|trans }} | ||
204 | « {{ tagging_rule.tags|join(', ') }} » | ||
205 | <a href="{{ path('delete_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.delete_rule_label'|trans }}"> | ||
210 | <i class="tool grey-text delete mdi-action-delete"></i> | 206 | <i class="tool grey-text delete mdi-action-delete"></i> |
211 | </a> | 207 | </a> |
212 | </li> | 208 | </li> |
@@ -234,102 +230,88 @@ | |||
234 | </div> | 230 | </div> |
235 | </div> | 231 | </div> |
236 | 232 | ||
237 | <div class="hidden">{{ form_rest(form.new_tagging_rule) }}</div> | 233 | {{ form_widget(form.new_tagging_rule.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} |
238 | <button class="btn waves-effect waves-light" type="submit" name="action"> | 234 | {{ form_rest(form.new_tagging_rule) }} |
239 | {% trans %}Save{% endtrans %} | ||
240 | </button> | ||
241 | </form> | 235 | </form> |
242 | 236 | ||
243 | <div class="row"> | 237 | <div class="row"> |
244 | <div class="input-field col s12"> | 238 | <div class="input-field col s12"> |
245 | <h4>{% trans %}FAQ{% endtrans %}</h4> | 239 | <h4>{{ 'config.form_rules.faq.title'|trans }}</h4> |
246 | 240 | ||
247 | <h5>{% trans %}What does « tagging rules » mean?{% endtrans %}</h5> | 241 | <h5>{{ 'config.form_rules.faq.tagging_rules_definition_title'|trans }}</h5> |
248 | <p class="help"> | 242 | <p class="help">{{ 'config.form_rules.faq.tagging_rules_definition_description'|trans|raw }}</p> |
249 | {% trans %} | ||
250 | 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. | ||
251 | {% endtrans %} | ||
252 | </p> | ||
253 | 243 | ||
254 | <h5>{% trans %}How do I use them?{% endtrans %}</h5> | 244 | <h5>{{ 'config.form_rules.faq.how_to_use_them_title'|trans }}</h5> |
255 | <p class="help"> | 245 | <p class="help">{{ 'config.form_rules.faq.how_to_use_them_description'|trans|raw }}</p> |
256 | {% trans %} | ||
257 | Let assume you want to tag new entries as « <i>short reading</i> » when the reading time is inferior to 3 minutes.<br />In that case, you should put « readingTime <= 3 » in the <i>Rule</i> field and « <i>short reading</i> » in the <i>Tags</i> field.<br />Several tags can added simultaneously by separating them by a comma: « <i>short reading, must read</i> »<br />Complex rules can be written by using predefined operators: if « <i>readingTime >= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, github </i> » | ||
258 | {% endtrans %} | ||
259 | </p> | ||
260 | 246 | ||
261 | <h5>{% trans %}Which variables and operators can I use to write rules?{% endtrans %}</h5> | 247 | <h5>{{ 'config.form_rules.faq.variables_available_title'|trans }}</h5> |
262 | <p class="help"> | 248 | <p class="help"> |
263 | {% trans %}The following variables and operators can be used to create tagging rules:{% endtrans %} | 249 | {{ 'config.form_rules.faq.variables_available_description'|trans }} |
264 | 250 | ||
265 | <table> | 251 | <table class="bordered"> |
266 | <thead> | 252 | <thead> |
267 | <tr> | 253 | <tr> |
268 | <th>{% trans %}Variable{% endtrans %}</th> | 254 | <th>{{ 'config.form_rules.faq.variable_description.label'|trans }}</th> |
269 | <th>{% trans %}Meaning{% endtrans %}</th> | 255 | <th>{{ 'config.form_rules.faq.meaning'|trans }}</th> |
270 | <th>{% trans %}Operator{% endtrans %}</th> | 256 | <th>{{ 'config.form_rules.faq.operator_description.label'|trans }}</th> |
271 | <th>{% trans %}Meaning{% endtrans %}</th> | 257 | <th>{{ 'config.form_rules.faq.meaning'|trans }}</th> |
272 | </tr> | 258 | </tr> |
273 | </thead> | 259 | </thead> |
274 | 260 | ||
275 | <tbody> | 261 | <tbody> |
276 | <tr> | 262 | <tr> |
277 | <td>title</td> | 263 | <td>title</td> |
278 | <td>{% trans %}Title of the entry{% endtrans %}</td> | 264 | <td>{{ 'config.form_rules.faq.variable_description.title'|trans }}</td> |
279 | <td><=</td> | 265 | <td><=</td> |
280 | <td>{% trans %}Less than…{% endtrans %}</td> | 266 | <td>{{ 'config.form_rules.faq.operator_description.less_than'|trans }}</td> |
281 | </tr> | 267 | </tr> |
282 | <tr> | 268 | <tr> |
283 | <td>url</td> | 269 | <td>url</td> |
284 | <td>{% trans %}URL of the entry{% endtrans %}</td> | 270 | <td>{{ 'config.form_rules.faq.variable_description.url'|trans }}</td> |
285 | <td><</td> | 271 | <td><</td> |
286 | <td>{% trans %}Strictly less than…{% endtrans %}</td> | 272 | <td>{{ 'config.form_rules.faq.operator_description.strictly_less_than'|trans }}</td> |
287 | </tr> | 273 | </tr> |
288 | <tr> | 274 | <tr> |
289 | <td>isArchived</td> | 275 | <td>isArchived</td> |
290 | <td>{% trans %}Whether the entry is archived or not{% endtrans %}</td> | 276 | <td>{{ 'config.form_rules.faq.variable_description.isArchived'|trans }}</td> |
291 | <td>=></td> | 277 | <td>=></td> |
292 | <td>{% trans %}Greater than…{% endtrans %}</td> | 278 | <td>{{ 'config.form_rules.faq.operator_description.greater_than'|trans }}</td> |
293 | </tr> | 279 | </tr> |
294 | <tr> | 280 | <tr> |
295 | <td>isStarred</td> | 281 | <td>isStarred</td> |
296 | <td>{% trans %}Whether the entry is starred or not{% endtrans %}</td> | 282 | <td>{{ 'config.form_rules.faq.variable_description.isStarred'|trans }}</td> |
297 | <td>></td> | 283 | <td>></td> |
298 | <td>{% trans %}Strictly greater than…{% endtrans %}</td> | 284 | <td>{{ 'config.form_rules.faq.operator_description.strictly_greater_than'|trans }}</td> |
299 | </tr> | 285 | </tr> |
300 | <tr> | 286 | <tr> |
301 | <td>content</td> | 287 | <td>content</td> |
302 | <td>{% trans %}The entry's content{% endtrans %}</td> | 288 | <td>{{ 'config.form_rules.faq.variable_description.content'|trans }}</td> |
303 | <td>=</td> | 289 | <td>=</td> |
304 | <td>{% trans %}Equal to…{% endtrans %}</td> | 290 | <td>{{ 'config.form_rules.faq.operator_description.equal_to'|trans }}</td> |
305 | </tr> | 291 | </tr> |
306 | <tr> | 292 | <tr> |
307 | <td>language</td> | 293 | <td>language</td> |
308 | <td>{% trans %}The entry's language{% endtrans %}</td> | 294 | <td>{{ 'config.form_rules.faq.variable_description.language'|trans }}</td> |
309 | <td>!=</td> | 295 | <td>!=</td> |
310 | <td>{% trans %}Not equal to…{% endtrans %}</td> | 296 | <td>{{ 'config.form_rules.faq.operator_description.not_equal_to'|trans }}</td> |
311 | </tr> | 297 | </tr> |
312 | <tr> | 298 | <tr> |
313 | <td>mimetype</td> | 299 | <td>mimetype</td> |
314 | <td>{% trans %}The entry's mime-type{% endtrans %}</td> | 300 | <td>{{ 'config.form_rules.faq.variable_description.mimetype'|trans }}</td> |
315 | <td>OR</td> | 301 | <td>OR</td> |
316 | <td>{% trans %}One rule or another{% endtrans %}</td> | 302 | <td>{{ 'config.form_rules.faq.operator_description.or'|trans }}</td> |
317 | </tr> | 303 | </tr> |
318 | <tr> | 304 | <tr> |
319 | <td>readingTime</td> | 305 | <td>readingTime</td> |
320 | <td>{% trans %}The estimated entry's reading time, in minutes{% endtrans %}</td> | 306 | <td>{{ 'config.form_rules.faq.variable_description.readingTime'|trans }}</td> |
321 | <td>AND</td> | 307 | <td>AND</td> |
322 | <td>{% trans %}One rule and another{% endtrans %}</td> | 308 | <td>{{ 'config.form_rules.faq.operator_description.and'|trans }}</td> |
323 | </tr> | 309 | </tr> |
324 | <tr> | 310 | <tr> |
325 | <td>domainName</td> | 311 | <td>domainName</td> |
326 | <td>{% trans %}The domain name of the entry{% endtrans %}</td> | 312 | <td>{{ 'config.form_rules.faq.variable_description.domainName'|trans }}</td> |
327 | <td>matches</td> | 313 | <td>matches</td> |
328 | <td> | 314 | <td>{{ 'config.form_rules.faq.operator_description.matches'|trans|raw }}</td> |
329 | {% trans %} | ||
330 | Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code> | ||
331 | {% endtrans %} | ||
332 | </td> | ||
333 | </tr> | 315 | </tr> |
334 | </tbody> | 316 | </tbody> |
335 | </table> | 317 | </table> |
@@ -375,11 +357,8 @@ | |||
375 | </div> | 357 | </div> |
376 | </div> | 358 | </div> |
377 | 359 | ||
378 | <div class="hidden">{{ form_rest(form.new_user) }}</div> | 360 | {{ form_widget(form.new_user.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} |
379 | <button class="btn waves-effect waves-light" type="submit" name="action"> | 361 | {{ form_rest(form.new_user) }} |
380 | {% trans %}Add a user{% endtrans %} | ||
381 | </button> | ||
382 | |||
383 | </form> | 362 | </form> |
384 | </div> | 363 | </div> |
385 | {% endif %} | 364 | {% endif %} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/edit.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/edit.html.twig index c002c4c3..1c5e2aab 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/edit.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/edit.html.twig | |||
@@ -1,6 +1,6 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | 2 | ||
3 | {% block title %}{% trans %}Edit an entry{% endtrans %}{% endblock %} | 3 | {% block title %}{{ 'entry.edit.page_title'|trans }}{% endblock %} |
4 | 4 | ||
5 | {% block content %} | 5 | {% block content %} |
6 | 6 | ||
@@ -10,7 +10,6 @@ | |||
10 | 10 | ||
11 | <form name="entry" method="post" action=""> | 11 | <form name="entry" method="post" action=""> |
12 | <div class="card-content"> | 12 | <div class="card-content"> |
13 | |||
14 | {% if form_errors(form) %} | 13 | {% if form_errors(form) %} |
15 | <span class="black-text">{{ form_errors(form) }}</span> | 14 | <span class="black-text">{{ form_errors(form) }}</span> |
16 | {% endif %} | 15 | {% endif %} |
@@ -25,16 +24,19 @@ | |||
25 | </div> | 24 | </div> |
26 | 25 | ||
27 | <div class="input-field s12"> | 26 | <div class="input-field s12"> |
27 | {{ form_label(form.url) }} | ||
28 | {{ form_widget(form.url) }} | ||
29 | </div> | ||
30 | |||
31 | <div class="input-field s12"> | ||
28 | {{ form_widget(form.is_public) }} | 32 | {{ form_widget(form.is_public) }} |
29 | {{ form_label(form.is_public) }} | 33 | {{ form_label(form.is_public) }} |
30 | </div> | 34 | </div> |
31 | <br> | 35 | <br> |
32 | <button class="btn waves-effect waves-light" type="submit" name="entry[save]"> | 36 | |
33 | {% trans %}Save{% endtrans %} | 37 | {{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} |
34 | <i class="mdi-content-send right"></i> | ||
35 | </button> | ||
36 | </div> | 38 | </div> |
37 | <div class="hidden">{{ form_rest(form) }}</div> | 39 | {{ form_rest(form) }} |
38 | </form> | 40 | </form> |
39 | 41 | ||
40 | </div> | 42 | </div> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig index 371992df..433b1cae 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig | |||
@@ -4,13 +4,13 @@ | |||
4 | {% set currentRoute = app.request.attributes.get('_route') %} | 4 | {% set currentRoute = app.request.attributes.get('_route') %} |
5 | 5 | ||
6 | {% if currentRoute == 'starred' %} | 6 | {% if currentRoute == 'starred' %} |
7 | {% trans %}starred{% endtrans %} | 7 | {{ 'entry.page_titles.starred'|trans }} |
8 | {% elseif currentRoute == 'archive' %} | 8 | {% elseif currentRoute == 'archive' %} |
9 | {% trans %}archive{% endtrans %} | 9 | {{ 'entry.page_titles.archived'|trans }} |
10 | {% elseif currentRoute == 'all' %} | 10 | {% elseif currentRoute == 'all' %} |
11 | {% trans %}Filtered{% endtrans %} | 11 | {{ 'entry.page_titles.filtered'|trans }} |
12 | {% else %} | 12 | {% else %} |
13 | {% trans %}unread{% endtrans %} | 13 | {{ 'entry.page_titles.unread'|trans }} |
14 | {% endif %} | 14 | {% endif %} |
15 | 15 | ||
16 | {% endblock %} | 16 | {% endblock %} |
@@ -18,7 +18,9 @@ | |||
18 | {% block content %} | 18 | {% block content %} |
19 | {% block pager %} | 19 | {% block pager %} |
20 | <div class="results clearfix"> | 20 | <div class="results clearfix"> |
21 | <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> | 21 | <div class="nb-results left"> |
22 | {{ 'entry.list.number_on_the_page'|transchoice(entries.count) }} | ||
23 | </div> | ||
22 | <ul class="pagination right"> | 24 | <ul class="pagination right"> |
23 | {% for p in range(1, entries.nbPages) if entries.nbPages > 1 %} | 25 | {% for p in range(1, entries.nbPages) if entries.nbPages > 1 %} |
24 | <li class="{{ currentPage == p ? 'active':'waves-effect'}}"> | 26 | <li class="{{ currentPage == p ? 'active':'waves-effect'}}"> |
@@ -52,9 +54,9 @@ | |||
52 | <span class="tool reading-time"> | 54 | <span class="tool reading-time"> |
53 | {% set readingTime = entry.readingTime / app.user.config.readingSpeed %} | 55 | {% set readingTime = entry.readingTime / app.user.config.readingSpeed %} |
54 | {% if readingTime > 0 %} | 56 | {% if readingTime > 0 %} |
55 | {% trans with {'%readingTime%': readingTime } %}estimated reading time: %readingTime% min{% endtrans %} | 57 | {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': readingTime}) }} |
56 | {% else %} | 58 | {% else %} |
57 | {% trans with {'%inferior%': '<small class="inferieur"><</small>'} %}estimated reading time: %inferior% 1 min{% endtrans %} | 59 | {{ 'entry.list.reading_time_less_one_minute'|trans|raw }} |
58 | {% endif %} | 60 | {% endif %} |
59 | </span> | 61 | </span> |
60 | </div> | 62 | </div> |
@@ -72,7 +74,7 @@ | |||
72 | 74 | ||
73 | <div class="estimatedTime grey-text"> | 75 | <div class="estimatedTime grey-text"> |
74 | <span class="tool reading-time"> | 76 | <span class="tool reading-time"> |
75 | {% trans %}estimated reading time{% endtrans %}: | 77 | {{ 'entry.list.reading_time'|trans }} |
76 | {% if entry.readingTime > 0 %}{{ entry.readingTime }}{% else %}<small class="inferieur"><</small> 1{% endif %} min | 78 | {% if entry.readingTime > 0 %}{{ entry.readingTime }}{% else %}<small class="inferieur"><</small> 1{% endif %} min |
77 | </span> | 79 | </span> |
78 | </div> | 80 | </div> |
@@ -82,13 +84,15 @@ | |||
82 | {% endif %} | 84 | {% endif %} |
83 | 85 | ||
84 | <div class="card-action"> | 86 | <div class="card-action"> |
85 | <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> | 87 | <span class="bold"> |
88 | <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> | ||
89 | </bold> | ||
86 | 90 | ||
87 | <ul class="tools links right"> | 91 | <ul class="tools links right"> |
88 | <li> | 92 | <li> |
89 | <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> | 93 | <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> |
90 | <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> | 94 | <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> |
91 | <a title="{% trans %}Delete{% endtrans %}" class="tool grey-text delete mdi-action-delete " href="{{ path('delete_entry', { 'id': entry.id }) }}"></a> | 95 | <a title="{{ 'entry.list.delete'|trans }}" class="tool grey-text delete mdi-action-delete " href="{{ path('delete_entry', { 'id': entry.id }) }}"></a> |
92 | </li> | 96 | </li> |
93 | </ul> | 97 | </ul> |
94 | </div> | 98 | </div> |
@@ -103,7 +107,7 @@ | |||
103 | {% if currentRoute == 'homepage' %} | 107 | {% if currentRoute == 'homepage' %} |
104 | {% set currentRoute = 'unread' %} | 108 | {% set currentRoute = 'unread' %} |
105 | {% endif %} | 109 | {% endif %} |
106 | <h4 class="center">{% trans %}Export{% endtrans %}</h4> | 110 | <h4 class="center">{{ 'entry.list.export_title'|trans }}</h4> |
107 | <ul> | 111 | <ul> |
108 | {% if craue_setting('export_epub') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'epub' }) }}">EPUB</a></li>{% endif %} | 112 | {% if craue_setting('export_epub') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'epub' }) }}">EPUB</a></li>{% endif %} |
109 | {% if craue_setting('export_mobi') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'mobi' }) }}">MOBI</a></li>{% endif %} | 113 | {% if craue_setting('export_mobi') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'mobi' }) }}">MOBI</a></li>{% endif %} |
@@ -119,34 +123,34 @@ | |||
119 | <div id="filters" class="side-nav fixed right-aligned"> | 123 | <div id="filters" class="side-nav fixed right-aligned"> |
120 | <form action="{{ path('all') }}"> | 124 | <form action="{{ path('all') }}"> |
121 | 125 | ||
122 | <h4 class="center">{% trans %}Filters{% endtrans %}</h4> | 126 | <h4 class="center">{{ 'entry.filters.title'|trans }}</h4> |
123 | 127 | ||
124 | <div class="row"> | 128 | <div class="row"> |
125 | <div class="col s12"> | 129 | <div class="col s12"> |
126 | <label>{% trans %}Status{% endtrans %}</label> | 130 | <label>{{ 'entry.filters.status_label'|trans }}</label> |
127 | </div> | 131 | </div> |
128 | 132 | ||
129 | <div class="input-field col s6 with-checkbox"> | 133 | <div class="input-field col s6 with-checkbox"> |
130 | {{ form_widget(form.isArchived) }} | 134 | {{ form_widget(form.isArchived) }} |
131 | <label for="entry_filter_isArchived">{% trans %}Archived{% endtrans %}</label> | 135 | {{ form_label(form.isArchived) }} |
132 | </div> | 136 | </div> |
133 | 137 | ||
134 | <div class="input-field col s6 with-checkbox"> | 138 | <div class="input-field col s6 with-checkbox"> |
135 | {{ form_widget(form.isStarred) }} | 139 | {{ form_widget(form.isStarred) }} |
136 | <label for="entry_filter_isStarred">{% trans %}Starred{% endtrans %}</label> | 140 | {{ form_label(form.isStarred) }} |
137 | </div> | 141 | </div> |
138 | 142 | ||
139 | <div class="col s12"> | 143 | <div class="col s12"> |
140 | <label>{% trans %}Preview picture{% endtrans %}</label> | 144 | <label>{{ 'entry.filters.preview_picture_help'|trans }}</label> |
141 | </div> | 145 | </div> |
142 | 146 | ||
143 | <div class="input-field col s12 with-checkbox"> | 147 | <div class="input-field col s12 with-checkbox"> |
144 | {{ form_widget(form.previewPicture) }} | 148 | {{ form_widget(form.previewPicture) }} |
145 | <label for="entry_filter_previewPicture">{% trans %}Has a preview picture{% endtrans %}</label> | 149 | {{ form_label(form.previewPicture) }} |
146 | </div> | 150 | </div> |
147 | 151 | ||
148 | <div class="col s12"> | 152 | <div class="col s12"> |
149 | <label>{% trans %}Language{% endtrans %}</label> | 153 | {{ form_label(form.language) }} |
150 | </div> | 154 | </div> |
151 | 155 | ||
152 | <div class="input-field col s12"> | 156 | <div class="input-field col s12"> |
@@ -154,43 +158,42 @@ | |||
154 | </div> | 158 | </div> |
155 | 159 | ||
156 | <div class="col s12"> | 160 | <div class="col s12"> |
157 | <label>{% trans %}Reading time in minutes{% endtrans %}</label> | 161 | {{ form_label(form.readingTime) }} |
158 | </div> | 162 | </div> |
159 | <div class="input-field col s6"> | 163 | <div class="input-field col s6"> |
160 | {{ form_widget(form.readingTime.left_number, {'type': 'number'}) }} | 164 | {{ form_widget(form.readingTime.left_number, {'type': 'number'}) }} |
161 | <label for="entry_filter_readingTime_left_number">{% trans %}from{% endtrans %}</label> | 165 | <label for="entry_filter_readingTime_left_number">{{ 'entry.filters.reading_time.from'|trans }}</label> |
162 | </div> | 166 | </div> |
163 | <div class="input-field col s6"> | 167 | <div class="input-field col s6"> |
164 | {{ form_widget(form.readingTime.right_number, {'type': 'number'}) }} | 168 | {{ form_widget(form.readingTime.right_number, {'type': 'number'}) }} |
165 | <label for="entry_filter_readingTime_right_number">{% trans %}to{% endtrans %}</label> | 169 | <label for="entry_filter_readingTime_right_number">{{ 'entry.filters.reading_time.to'|trans }}</label> |
166 | </div> | 170 | </div> |
167 | 171 | ||
168 | <div class="input-field col s12"> | 172 | <div class="input-field col s12"> |
169 | {{ form_widget(form.domainName, {'type': 'text', 'attr' : {'placeholder': 'website.com' | trans} }) }} | 173 | {{ form_widget(form.domainName, {'type': 'text', 'attr' : {'placeholder': 'website.com'} }) }} |
170 | <label for="entry_filter_domainName">{% trans %}Domain name{% endtrans %}</label> | 174 | {{ form_label(form.domainName) }} |
171 | </div> | 175 | </div> |
172 | 176 | ||
173 | <div class="col s12"> | 177 | <div class="col s12"> |
174 | <label>{% trans %}Creation date{% endtrans %}</label> | 178 | {{ form_label(form.createdAt) }} |
175 | </div> | 179 | </div> |
176 | 180 | ||
177 | <div class="input-field col s6"> | 181 | <div class="input-field col s6"> |
178 | {{ form_widget(form.createdAt.left_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.left_date.vars.value} }) }} | 182 | {{ form_widget(form.createdAt.left_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.left_date.vars.value} }) }} |
179 | <label for="entry_filter_createdAt_left_date" class="active">{% trans %}from{% endtrans %}</label> | 183 | <label for="entry_filter_createdAt_left_date" class="active">{{ 'entry.filters.created_at.from'|trans }}</label> |
180 | </div> | 184 | </div> |
181 | <div class="input-field col s6"> | 185 | <div class="input-field col s6"> |
182 | {{ form_widget(form.createdAt.right_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.right_date.vars.value} }) }} | 186 | {{ form_widget(form.createdAt.right_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.right_date.vars.value} }) }} |
183 | <label for="entry_filter_createdAt_right_date" class="active">{% trans %}to{% endtrans %}</label> | 187 | <label for="entry_filter_createdAt_right_date" class="active">{{ 'entry.filters.created_at.to'|trans }}</label> |
184 | </div> | 188 | </div> |
185 | 189 | ||
186 | <div class="col s6"> | 190 | <div class="col s6"> |
187 | <a href="#!" class="center waves-effect waves-green btn-flat" id="clear_form_filters">{% trans %}Clear{% endtrans %}</a> | 191 | <a href="#!" class="center waves-effect waves-green btn-flat" id="clear_form_filters">{{ 'entry.filters.action.clear'|trans }}</a> |
188 | </div> | 192 | </div> |
189 | 193 | ||
190 | <div class="col s6"> | 194 | <div class="col s6"> |
191 | <button class="btn waves-effect waves-light" type="submit" id="submit-filter" value="filter">{% trans %}Filter{% endtrans %}</button> | 195 | <button class="btn waves-effect waves-light" type="submit" id="submit-filter" value="filter">{{ 'entry.filters.action.filter'|trans }}</button> |
192 | </div> | 196 | </div> |
193 | |||
194 | </div> | 197 | </div> |
195 | 198 | ||
196 | </form> | 199 | </form> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.xml.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.xml.twig index a39a8dc3..98f7194c 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.xml.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.xml.twig | |||
@@ -18,9 +18,9 @@ | |||
18 | <description> | 18 | <description> |
19 | <![CDATA[ | 19 | <![CDATA[ |
20 | {%- if entry.readingTime > 0 -%} | 20 | {%- if entry.readingTime > 0 -%} |
21 | {% trans %}estimated reading time :{% endtrans %} {{ entry.readingTime }} min | 21 | {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': entry.readingTime}) }} |
22 | {%- else -%} | 22 | {%- else -%} |
23 | {% trans %}estimated reading time :{% endtrans %} < 1 min | 23 | {{ 'entry.list.reading_time_less_one_minute'|trans|raw }} |
24 | {%- endif %} | 24 | {%- endif %} |
25 | 25 | ||
26 | {{ entry.content|raw -}} | 26 | {{ entry.content|raw -}} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig index 6f33da23..4eebf18f 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig | |||
@@ -2,6 +2,8 @@ | |||
2 | 2 | ||
3 | {% block title %}{{ entry.title|raw }} ({{ entry.domainName|removeWww }}){% endblock %} | 3 | {% block title %}{{ entry.title|raw }} ({{ entry.domainName|removeWww }}){% endblock %} |
4 | 4 | ||
5 | {% block body_class %}entry{% endblock %} | ||
6 | |||
5 | {% block menu %} | 7 | {% block menu %} |
6 | <div class="progress"> | 8 | <div class="progress"> |
7 | <div class="determinate"></div> | 9 | <div class="determinate"></div> |
@@ -17,12 +19,12 @@ | |||
17 | </ul> | 19 | </ul> |
18 | <ul class="right"> | 20 | <ul class="right"> |
19 | <li> | 21 | <li> |
20 | <a class="waves-effect" title="{% trans %}Mark as read{% endtrans %}" href="{{ path('archive_entry', { 'id': entry.id }) }}" id="markAsRead"> | 22 | <a class="waves-effect" title="{{ 'entry.view.left_menu.set_as_read'|trans }}" href="{{ path('archive_entry', { 'id': entry.id }) }}" id="markAsRead"> |
21 | <i class="{% if entry.isArchived == 0 %}mdi-action-done{% else %}mdi-content-redo{% endif %} small"></i> | 23 | <i class="{% if entry.isArchived == 0 %}mdi-action-done{% else %}mdi-content-redo{% endif %} small"></i> |
22 | </a> | 24 | </a> |
23 | </li> | 25 | </li> |
24 | <li> | 26 | <li> |
25 | <a class="waves-effect" title="{% trans %}Favorite{% endtrans %}" href="{{ path('star_entry', { 'id': entry.id }) }}" id="setFav"> | 27 | <a class="waves-effect" title="{{ 'entry.view.left_menu.set_as_favorite'|trans }}" href="{{ path('star_entry', { 'id': entry.id }) }}" id="setFav"> |
26 | <i class="{% if entry.isStarred == 0 %}mdi-action-favorite-outline{% else %}mdi-action-favorite{% endif %} small"></i> | 28 | <i class="{% if entry.isStarred == 0 %}mdi-action-favorite-outline{% else %}mdi-action-favorite{% endif %} small"></i> |
27 | </a> | 29 | </a> |
28 | </li> | 30 | </li> |
@@ -38,7 +40,7 @@ | |||
38 | <li class="bold border-bottom hide-on-med-and-down"> | 40 | <li class="bold border-bottom hide-on-med-and-down"> |
39 | <a class="waves-effect collapsible-header" href="{{ path('homepage') }}"> | 41 | <a class="waves-effect collapsible-header" href="{{ path('homepage') }}"> |
40 | <i class="mdi-action-exit-to-app small"></i> | 42 | <i class="mdi-action-exit-to-app small"></i> |
41 | <span>{% trans %}back{% endtrans %}</span> | 43 | <span>{{ 'entry.view.left_menu.back_to_homepage'|trans }}</span> |
42 | </a> | 44 | </a> |
43 | <div class="collapsible-body"></div> | 45 | <div class="collapsible-body"></div> |
44 | </li> | 46 | </li> |
@@ -46,38 +48,38 @@ | |||
46 | <li class="bold border-bottom hide-on-med-and-down"> | 48 | <li class="bold border-bottom hide-on-med-and-down"> |
47 | <a class="waves-effect collapsible-header" href="{{ entry.url|e }}"> | 49 | <a class="waves-effect collapsible-header" href="{{ entry.url|e }}"> |
48 | <i class="mdi-content-link small"></i> | 50 | <i class="mdi-content-link small"></i> |
49 | <span>{% trans %}original article{% endtrans %}</span> | 51 | <span>{{ 'entry.view.left_menu.view_original_article'|trans }}</span> |
50 | </a> | 52 | </a> |
51 | <div class="collapsible-body"></div> | 53 | <div class="collapsible-body"></div> |
52 | </li> | 54 | </li> |
53 | 55 | ||
54 | <li class="bold hide-on-med-and-down"> | 56 | <li class="bold hide-on-med-and-down"> |
55 | <a class="waves-effect collapsible-header" title="{% trans %}Re-fetch content{% endtrans %}" href="{{ path('reload_entry', { 'id': entry.id }) }}" id="reload"> | 57 | <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.re_fetch_content'|trans }}" href="{{ path('reload_entry', { 'id': entry.id }) }}" id="reload"> |
56 | <i class="mdi-action-autorenew small"></i> | 58 | <i class="mdi-action-autorenew small"></i> |
57 | <span>{% trans %}Re-fetch content{% endtrans %}</span> | 59 | <span>{{ 'entry.view.left_menu.re_fetch_content'|trans }}</span> |
58 | </a> | 60 | </a> |
59 | <div class="collapsible-body"></div> | 61 | <div class="collapsible-body"></div> |
60 | </li> | 62 | </li> |
61 | 63 | ||
62 | <li class="bold hide-on-med-and-down"> | 64 | <li class="bold hide-on-med-and-down"> |
63 | <a class="waves-effect collapsible-header" title="{% trans %}Mark as read{% endtrans %}" href="{{ path('archive_entry', { 'id': entry.id }) }}" id="markAsRead"> | 65 | <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.set_as_read'|trans }}" href="{{ path('archive_entry', { 'id': entry.id }) }}" id="markAsRead"> |
64 | <i class="{% if entry.isArchived == 0 %}mdi-action-done{% else %}mdi-content-redo{% endif %} small"></i> | 66 | <i class="{% if entry.isArchived == 0 %}mdi-action-done{% else %}mdi-content-redo{% endif %} small"></i> |
65 | <span>{% if entry.isArchived == 0 %}{% trans %}Mark as read{% endtrans %}{% else %}{% trans %}Mark as unread{% endtrans %}{% endif %}</span> | 67 | <span>{% if entry.isArchived == 0 %}{{ 'entry.view.left_menu.set_as_read'|trans }}{% else %}{{ 'entry.view.left_menu.set_as_unread'|trans }}{% endif %}</span> |
66 | </a> | 68 | </a> |
67 | <div class="collapsible-body"></div> | 69 | <div class="collapsible-body"></div> |
68 | </li> | 70 | </li> |
69 | 71 | ||
70 | <li class="bold hide-on-med-and-down"> | 72 | <li class="bold hide-on-med-and-down"> |
71 | <a class="waves-effect collapsible-header" title="{% trans %}Favorite{% endtrans %}" href="{{ path('star_entry', { 'id': entry.id }) }}" id="setFav"> | 73 | <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.set_as_favorite'|trans }}" href="{{ path('star_entry', { 'id': entry.id }) }}" id="setFav"> |
72 | <i class="{% if entry.isStarred == 0 %}mdi-action-favorite-outline{% else %}mdi-action-favorite{% endif %} small"></i> | 74 | <i class="{% if entry.isStarred == 0 %}mdi-action-favorite-outline{% else %}mdi-action-favorite{% endif %} small"></i> |
73 | <span>{% trans %}Favorite{% endtrans %}</span> | 75 | <span>{{ 'entry.view.left_menu.set_as_favorite'|trans }}</span> |
74 | </a> | 76 | </a> |
75 | <div class="collapsible-body"></div> | 77 | <div class="collapsible-body"></div> |
76 | </li> | 78 | </li> |
77 | <li class="bold border-bottom hide-on-med-and-down"> | 79 | <li class="bold border-bottom hide-on-med-and-down"> |
78 | <a class="waves-effect collapsible-header" title="{% trans %}Delete{% endtrans %}" href="{{ path('delete_entry', { 'id': entry.id }) }}"> | 80 | <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.delete'|trans }}" href="{{ path('delete_entry', { 'id': entry.id }) }}"> |
79 | <i class="mdi-action-delete small"></i> | 81 | <i class="mdi-action-delete small"></i> |
80 | <span>{% trans %}Delete{% endtrans %}</span> | 82 | <span>{{ 'entry.view.left_menu.delete'|trans }}</span> |
81 | </a> | 83 | </a> |
82 | <div class="collapsible-body"></div> | 84 | <div class="collapsible-body"></div> |
83 | </li> | 85 | </li> |
@@ -85,7 +87,7 @@ | |||
85 | <li class="bold border-bottom hide-on-med-and-down"> | 87 | <li class="bold border-bottom hide-on-med-and-down"> |
86 | <a class="waves-effect collapsible-header" id="nav-btn-add-tag"> | 88 | <a class="waves-effect collapsible-header" id="nav-btn-add-tag"> |
87 | <i class="mdi-action-label-outline small"></i> | 89 | <i class="mdi-action-label-outline small"></i> |
88 | <span>{% trans %}Add a tag{% endtrans %}</span> | 90 | <span>{{ 'entry.view.left_menu.add_a_tag'|trans }}</span> |
89 | </a> | 91 | </a> |
90 | <div class="collapsible-body"></div> | 92 | <div class="collapsible-body"></div> |
91 | </li> | 93 | </li> |
@@ -93,7 +95,7 @@ | |||
93 | <li class="bold"> | 95 | <li class="bold"> |
94 | <a class="waves-effect collapsible-header"> | 96 | <a class="waves-effect collapsible-header"> |
95 | <i class="mdi-social-share small"></i> | 97 | <i class="mdi-social-share small"></i> |
96 | <span>{% trans %}Share{% endtrans %}</span> | 98 | <span>{{ 'entry.view.left_menu.share_content'|trans }}</span> |
97 | </a> | 99 | </a> |
98 | <div class="collapsible-body"> | 100 | <div class="collapsible-body"> |
99 | <ul> | 101 | <ul> |
@@ -127,8 +129,8 @@ | |||
127 | {% endif %} | 129 | {% endif %} |
128 | {% if craue_setting('share_mail') %} | 130 | {% if craue_setting('share_mail') %} |
129 | <li> | 131 | <li> |
130 | <a href="mailto:?subject={{ entry.title|url_encode }}&body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="{% trans %}Email{% endtrans %}"> | 132 | <a href="mailto:?subject={{ entry.title|url_encode }}&body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="{{ 'entry.view.left_menu.share_email_label'|trans }}"> |
131 | <span>{% trans %}Email{% endtrans %}</span> | 133 | <span>{{ 'entry.view.left_menu.share_email_label'|trans }}</span> |
132 | </a> | 134 | </a> |
133 | </li> | 135 | </li> |
134 | {% endif %} | 136 | {% endif %} |
@@ -139,7 +141,7 @@ | |||
139 | <li class="bold"> | 141 | <li class="bold"> |
140 | <a class="waves-effect collapsible-header"> | 142 | <a class="waves-effect collapsible-header"> |
141 | <i class="mdi-file-file-download small"></i> | 143 | <i class="mdi-file-file-download small"></i> |
142 | <span>{% trans %}Download{% endtrans %}</span> | 144 | <span>{{ 'entry.view.left_menu.download'|trans }}</span> |
143 | </a> | 145 | </a> |
144 | <div class="collapsible-body"> | 146 | <div class="collapsible-body"> |
145 | <ul> | 147 | <ul> |
@@ -155,40 +157,33 @@ | |||
155 | </li> | 157 | </li> |
156 | 158 | ||
157 | <li class="bold hide-on-large-only"> | 159 | <li class="bold hide-on-large-only"> |
158 | <a class="waves-effect collapsible-header" title="{% trans %}Delete{% endtrans %}" href="{{ path('delete_entry', { 'id': entry.id }) }}"> | 160 | <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.delete'|trans }}" href="{{ path('delete_entry', { 'id': entry.id }) }}"> |
159 | <i class="mdi-action-delete small"></i> | 161 | <i class="mdi-action-delete small"></i> |
160 | <span>{% trans %}Delete{% endtrans %}</span> | 162 | <span>{{ 'entry.view.left_menu.delete'|trans }}</span> |
161 | </a> | 163 | </a> |
162 | <div class="collapsible-body"></div> | 164 | <div class="collapsible-body"></div> |
163 | </li> | 165 | </li> |
164 | 166 | ||
165 | <li class="bold"> | 167 | <li class="bold"> |
166 | <a class="waves-effect collapsible-header" href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&body={{ entry.url|url_encode }}" title="{% trans %}Does this article appear wrong?{% endtrans %}"> | 168 | <a class="waves-effect collapsible-header" href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&body={{ entry.url|url_encode }}" title="{{ 'entry.view.left_menu.problem.description'|trans }}"> |
167 | <i class="mdi-alert-error small"></i> | 169 | <i class="mdi-alert-error small"></i> |
168 | <span>{% trans %}Problems?{% endtrans %}</span> | 170 | <span>{{ 'entry.view.left_menu.problem.label'|trans }}</span> |
169 | </a> | 171 | </a> |
170 | <div class="collapsible-body"></div> | 172 | <div class="collapsible-body"></div> |
171 | </li> | 173 | </li> |
172 | 174 | ||
173 | </ul> | 175 | </ul> |
174 | 176 | ||
175 | <style> | ||
176 | main { | ||
177 | padding: 0; | ||
178 | } | ||
179 | </style> | ||
180 | |||
181 | {% endblock %} | 177 | {% endblock %} |
182 | 178 | ||
183 | {% block content %} | 179 | {% block content %} |
184 | <div id="article"> | 180 | <div id="article"> |
185 | <header class="mbm"> | 181 | <header class="mbm"> |
186 | <h1>{{ entry.title|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" title="{% trans %}Edit title{% endtrans %}">✎</a></h1> | 182 | <h1>{{ entry.title|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" title="{{ 'entry.view.edit_title'|trans }}">✎</a></h1> |
187 | </header> | 183 | </header> |
188 | <aside> | 184 | <aside> |
189 | <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> | 185 | <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> |
190 | {% set nbAnnotations = entry.annotations | length %} | 186 | <span class="tool link mdi-communication-comment"> {{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span> |
191 | <span class="tool link mdi-communication-comment"> {% transchoice nbAnnotations %}{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations{% endtranschoice %}</span> | ||
192 | <div id="list"> | 187 | <div id="list"> |
193 | {% for tag in entry.tags %} | 188 | {% for tag in entry.tags %} |
194 | <div class="chip"> | 189 | <div class="chip"> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/new.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/new.html.twig index 95ed0785..03768a3d 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/new.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/new.html.twig | |||
@@ -1,6 +1,6 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | 2 | ||
3 | {% block title %}{% trans %}Save new entry{% endtrans %}{% endblock %} | 3 | {% block title %}{{ 'entry.new.page_title'|trans }}{% endblock %} |
4 | 4 | ||
5 | {% block content %} | 5 | {% block content %} |
6 | {{ render(controller( "WallabagCoreBundle:Entry:addEntryForm" )) }} | 6 | {{ render(controller( "WallabagCoreBundle:Entry:addEntryForm" )) }} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/new_form.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/new_form.html.twig index f1e56412..0cf4fb74 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/new_form.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/new_form.html.twig | |||
@@ -7,7 +7,7 @@ | |||
7 | <span class="black-text">{{ form_errors(form.url) }}</span> | 7 | <span class="black-text">{{ form_errors(form.url) }}</span> |
8 | {% endif %} | 8 | {% endif %} |
9 | 9 | ||
10 | {{ form_widget(form.url, { 'attr': {'autocomplete': 'off', 'placeholder': 'http://website'} }) }} | 10 | {{ form_widget(form.url, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.new.placeholder'} }) }} |
11 | 11 | ||
12 | <div class="hidden">{{ form_rest(form) }}</div> | 12 | {{ form_rest(form) }} |
13 | </form> | 13 | </form> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Static/about.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Static/about.html.twig index 1368bb09..a294b74d 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Static/about.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Static/about.html.twig | |||
@@ -1,6 +1,6 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | 2 | ||
3 | {% block title %}{% trans %}About{% endtrans %}{% endblock %} | 3 | {% block title %}{{ 'about.page_title'|trans }}{% endblock %} |
4 | 4 | ||
5 | {% block content %} | 5 | {% block content %} |
6 | 6 | ||
@@ -11,56 +11,56 @@ | |||
11 | <div class="row"> | 11 | <div class="row"> |
12 | <div class="div_tabs col s12"> | 12 | <div class="div_tabs col s12"> |
13 | <ul class="tabs"> | 13 | <ul class="tabs"> |
14 | <li class="tab col s3"><a class="active" href="#set1">{% trans %}Who is behind wallabag{% endtrans %}</a></li> | 14 | <li class="tab col s3"><a class="active" href="#set1">{{ 'about.top_menu.who_behind_wallabag'|trans }}</a></li> |
15 | <li class="tab col s3"><a href="#set2">{% trans %}Getting help{% endtrans %}</a></li> | 15 | <li class="tab col s3"><a href="#set2">{{ 'about.top_menu.getting_help'|trans }}</a></li> |
16 | <li class="tab col s3"><a href="#set3">{% trans %}Helping wallabag{% endtrans %}</a></li> | 16 | <li class="tab col s3"><a href="#set3">{{ 'about.top_menu.helping'|trans }}</a></li> |
17 | <li class="tab col s3"><a href="#set4">{% trans %}Contributors{% endtrans %}</a></li> | 17 | <li class="tab col s3"><a href="#set4">{{ 'about.top_menu.contributors'|trans }}</a></li> |
18 | <li class="tab col s3"><a href="#set5">{% trans %}Third-party libraries{% endtrans %}</a></li> | 18 | <li class="tab col s3"><a href="#set5">{{ 'about.top_menu.third_party'|trans }}</a></li> |
19 | </ul> | 19 | </ul> |
20 | </div> | 20 | </div> |
21 | 21 | ||
22 | <div id="set1" class="col s12"> | 22 | <div id="set1" class="col s12"> |
23 | <dt>{% trans %}Developed by{% endtrans %}</dt> | 23 | <dt>{{ 'about.who_behind_wallabag.developped_by'|trans }}</dt> |
24 | <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{% trans %}website{% endtrans %}</a></dd> | 24 | <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd> |
25 | <dd>Thomas Citharel — <a href="https://tcit.fr">{% trans %}website{% endtrans %}</a></dd> | 25 | <dd>Thomas Citharel — <a href="https://tcit.fr">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd> |
26 | <dd>Jérémy Benoist — <a href="http://www.j0k3r.net">{% trans %}website{% endtrans %}</a></dd> | 26 | <dd>Jérémy Benoist — <a href="http://www.j0k3r.net">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd> |
27 | <dt>{% trans %}And many others contributors ♥{% endtrans %} <a href="https://github.com/wallabag/wallabag/graphs/contributors">{% trans %}on GitHub{% endtrans %}</a></dt> | 27 | <dt>{{ 'about.who_behind_wallabag.many_contributors'|trans|raw }}</dt> |
28 | <dt>{% trans %}Project website{% endtrans %}</dt> | 28 | <dt>{{ 'about.who_behind_wallabag.project_website'|trans }}</dt> |
29 | <dd><a href="https://www.wallabag.org">https://www.wallabag.org</a></dd> | 29 | <dd><a href="https://www.wallabag.org">https://www.wallabag.org</a></dd> |
30 | <dt>{% trans %}License{% endtrans %}: <a href="http://en.wikipedia.org/wiki/MIT_License">MIT</a></dt> | 30 | <dt>{{ 'about.who_behind_wallabag.license'|trans }}: <a href="https://en.wikipedia.org/wiki/MIT_License">MIT</a></dt> |
31 | <dt>{% trans %}Version{% endtrans %}: {{ version }}</dt> | 31 | <dt>{{ 'about.who_behind_wallabag.version'|trans }}: {{ version }}</dt> |
32 | </div> | 32 | </div> |
33 | 33 | ||
34 | <div id="set2" class="col s12"> | 34 | <div id="set2" class="col s12"> |
35 | <dl> | 35 | <dl> |
36 | <dt>{% trans %}Documentation{% endtrans %}</dt> | 36 | <dt>{{ 'about.getting_help.documentation'|trans }}</dt> |
37 | <dd><a href="https://doc.wallabag.org/en">english</a></dd> | 37 | <dd><a href="https://doc.wallabag.org/en">english</a></dd> |
38 | <dd><a href="https://doc.wallabag.org/fr">français</a></dd> | 38 | <dd><a href="https://doc.wallabag.org/fr">français</a></dd> |
39 | <dd><a href="https://doc.wallabag.org/de">deutsch</a></dd> | 39 | <dd><a href="https://doc.wallabag.org/de">deutsch</a></dd> |
40 | 40 | ||
41 | <dt>{% trans %}Bug reports{% endtrans %}</dt> | 41 | <dt>{{ 'about.getting_help.bug_reports'|trans }}</dt> |
42 | <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> | 42 | <dd>{{ 'about.getting_help.support'|trans|raw }}</dd> |
43 | </dl> | 43 | </dl> |
44 | </div> | 44 | </div> |
45 | 45 | ||
46 | <div id="set3" class="col s12"> | 46 | <div id="set3" class="col s12"> |
47 | <dl> | 47 | <dl> |
48 | <dt>{% trans %}wallabag is free and opensource. You can help us:{% endtrans %}</dt> | 48 | <dt>{{ 'about.helping.description'|trans }}</dt> |
49 | <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> | 49 | <dd>{{ 'about.helping.by_contributing_2'|trans }} <a href="https://github.com/wallabag/wallabag/issues/1254">{{ 'about.helping.by_contributing'|trans }}</a></dd> |
50 | <dd><a href="{{ paypal_url }}">{% trans %}via Paypal{% endtrans %}</a></dd> | 50 | <dd><a href="{{ paypal_url }}">{{ 'about.helping.by_paypal'|trans }}</a></dd> |
51 | </dl> | 51 | </dl> |
52 | </div> | 52 | </div> |
53 | 53 | ||
54 | <div id="set4" class="col s12"> | 54 | <div id="set4" class="col s12"> |
55 | <p><a href="https://github.com/wallabag/wallabag/graphs/contributors">{% trans %}Thank you to contributors on wallabag web application{% endtrans %}</a></p> | 55 | <p><a href="https://github.com/wallabag/wallabag/graphs/contributors">{{ 'about.contributors.description'|trans }}</a></p> |
56 | </div> | 56 | </div> |
57 | 57 | ||
58 | <div id="set5" class="col s12"> | 58 | <div id="set5" class="col s12"> |
59 | <p>{% trans %}Here are the list of third-party libraries used in wallabag (with their licenses):{% endtrans %}</p> | 59 | <p>{{ 'about.third_party.description'|trans }}</p> |
60 | <table> | 60 | <table class="striped"> |
61 | <tr> | 61 | <tr> |
62 | <th>{% trans %}Package{% endtrans %}</th> | 62 | <th>{{ 'about.third_party.package'|trans }}</th> |
63 | <th>{% trans %}License{% endtrans %}</th> | 63 | <th>{{ 'about.third_party.license'|trans }}</th> |
64 | </tr> | 64 | </tr> |
65 | <tr><td>behat/transliterator</td><td>Artistic 1.0</td></tr> | 65 | <tr><td>behat/transliterator</td><td>Artistic 1.0</td></tr> |
66 | <tr><td>CraueConfigBundle</td><td>MIT</td></tr> | 66 | <tr><td>CraueConfigBundle</td><td>MIT</td></tr> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Static/howto.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Static/howto.html.twig index e2795409..15b548d8 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Static/howto.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Static/howto.html.twig | |||
@@ -1,44 +1,40 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | 2 | ||
3 | {% block title %}{% trans %}howto{% endtrans %}{% endblock %} | 3 | {% block title %}{{ 'howto.page_title'|trans }}{% endblock %} |
4 | 4 | ||
5 | {% block content %} | 5 | {% block content %} |
6 | 6 | ||
7 | <div class="row"> | 7 | <div class="row"> |
8 | <div class="col s12"> | 8 | <div class="col s12"> |
9 | <div class="card-panel settings"> | 9 | <div class="card-panel settings"> |
10 | <p>{{ 'howto.page_description'|trans }}</p> | ||
10 | 11 | ||
11 | <div class="row"> | 12 | <div class="row"> |
12 | <div class="div_tabs col s12"> | ||
13 | <ul class="tabs"> | ||
14 | <li class="tab col s3"><a class="active" href="#set1">{% trans %}Form{% endtrans %}</a></li> | ||
15 | <li class="tab col s3"><a href="#set2">{% trans %}Browser addons{% endtrans %}</a></li> | ||
16 | <li class="tab col s3"><a href="#set3">{% trans %}Mobile apps{% endtrans %}</a></li> | ||
17 | <li class="tab col s3"><a href="#set4">{% trans %}Bookmarklet{% endtrans %}</a></li> | ||
18 | </ul> | ||
19 | </div> | ||
20 | 13 | ||
21 | <div id="set1" class="col s12"> | 14 | <div class="col s12"> |
22 | <a href="{{ path('new') }}">{% trans %}Thanks to this form{% endtrans %}</a> | 15 | <a href="{{ path('new') }}">{{ 'howto.form.description'|trans }}</a> |
23 | </div> | 16 | </div> |
24 | 17 | ||
25 | <div id="set2" class="col s12"> | 18 | <div class="col s12"> |
19 | <h5>{{ 'howto.top_menu.browser_addons'|trans }}</h5> | ||
26 | <ul> | 20 | <ul> |
27 | <li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{% trans %}Standard Firefox Add-On{% endtrans %}</a></li> | 21 | <li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{{ 'howto.browser_addons.firefox'|trans }}</a></li> |
28 | <li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{% trans %}Chrome Extension{% endtrans %}</a></li> | 22 | <li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{{ 'howto.browser_addons.chrome'|trans }}</a></li> |
29 | </ul> | 23 | </ul> |
30 | </div> | 24 | </div> |
31 | 25 | ||
32 | <div id="set3" class="col s12"> | 26 | <div class="col s12"> |
27 | <h5>{{ 'howto.top_menu.mobile_apps'|trans }}</h5> | ||
33 | <ul> | 28 | <ul> |
34 | <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> | 29 | <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> |
35 | <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" target="_blank">{% trans %}download the application{% endtrans %}</a></li> | 30 | <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" target="_blank">{{ 'howto.mobile_apps.ios'|trans }}</a></li> |
36 | <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> | 31 | <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> |
37 | </ul> | 32 | </ul> |
38 | </div> | 33 | </div> |
39 | 34 | ||
40 | <div id="set4" class="col s12"> | 35 | <div class="col s12"> |
41 | {% trans %}Drag & drop this link to your bookmarks bar:{% endtrans %} | 36 | <h5>{{ 'howto.top_menu.bookmarklet'|trans }}</h5> |
37 | {{ 'howto.bookmarklet.description'|trans }} | ||
42 | {% include 'WallabagCoreBundle::_bookmarklet.html.twig' %} | 38 | {% include 'WallabagCoreBundle::_bookmarklet.html.twig' %} |
43 | </div> | 39 | </div> |
44 | 40 | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Static/quickstart.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Static/quickstart.html.twig index 03754d38..706c4a79 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Static/quickstart.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Static/quickstart.html.twig | |||
@@ -1,6 +1,6 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | 2 | ||
3 | {% block title %}{% trans %}Quickstart{% endtrans %}{% endblock %} | 3 | {% block title %}{{ 'quickstart.page_title'|trans }}{% endblock %} |
4 | 4 | ||
5 | {% block content %} | 5 | {% block content %} |
6 | 6 | ||
@@ -9,56 +9,63 @@ | |||
9 | <div class="card-panel settings"> | 9 | <div class="card-panel settings"> |
10 | 10 | ||
11 | <div class="row"> | 11 | <div class="row"> |
12 | <h3>{% trans %}Welcome to wallabag!{% endtrans %}</h3> | 12 | <h3>{{ 'quickstart.intro.title'|trans }}</h3> |
13 | <p>{% trans %}We'll accompany you to visit wallabag and show you some features which can interess you.{% endtrans %}</p> | 13 | <p>{{ 'quickstart.intro.paragraph_1'|trans }}</p> |
14 | <p>{% trans %}Follow us!{% endtrans %}</p> | 14 | <p>{{ 'quickstart.intro.paragraph_2'|trans }}</p> |
15 | <h4>{% trans %}Configure the application{% endtrans %}</h4> | 15 | |
16 | <h4>{{ 'quickstart.configure.title'|trans }}</h4> | ||
16 | <ul> | 17 | <ul> |
17 | <li><a href="{{ path('config') }}">{% trans %}Change language and design{% endtrans %}</a></li> | 18 | <li><a href="{{ path('config') }}">{{ 'quickstart.configure.language'|trans }}</a></li> |
18 | <li><a href="{{ path('config') }}#set2">{% trans %}Enable RSS feeds{% endtrans %}</a></li> | 19 | <li><a href="{{ path('config') }}#set2">{{ 'quickstart.configure.rss'|trans }}</a></li> |
19 | <li><a href="{{ path('config') }}#set5">{% trans %}Write rules to automatically tag your articles{% endtrans %}</a></li> | 20 | <li><a href="{{ path('config') }}#set5">{{ 'quickstart.configure.tagging_rules'|trans }}</a></li> |
20 | </ul> | 21 | </ul> |
22 | |||
21 | {% if is_granted('ROLE_SUPER_ADMIN') %} | 23 | {% if is_granted('ROLE_SUPER_ADMIN') %} |
22 | <h4>{% trans %}Administration{% endtrans %}</h4> | 24 | <h4>{{ 'quickstart.admin.title'|trans }}</h4> |
23 | <p>{% trans %}As a administrator, you have privileges on wallabag. You can:{% endtrans %}</p> | 25 | <p>{{ 'quickstart.admin.description'|trans }}</p> |
24 | <ul> | 26 | <ul> |
25 | <li><a href="{{ path('config') }}#set6">{% trans %}Create a new user{% endtrans %}</a></li> | 27 | <li><a href="{{ path('config') }}#set6">{{ 'quickstart.admin.new_user'|trans }}</a></li> |
26 | <li><a href="{{ path('craue_config_settings_modify') }}#set-analytics">{% trans %}Configure analytics{% endtrans %}</a></li> | 28 | <li><a href="{{ path('craue_config_settings_modify') }}#set-analytics">{{ 'quickstart.admin.analytics'|trans }}</a></li> |
27 | <li><a href="{{ path('craue_config_settings_modify') }}#set-entry">{% trans %}Enable some parameters about article sharing{% endtrans %}</a></li> | 29 | <li><a href="{{ path('craue_config_settings_modify') }}#set-entry">{{ 'quickstart.admin.sharing'|trans }}</a></li> |
28 | <li><a href="{{ path('craue_config_settings_modify') }}#set-export">{% trans %}Configure export{% endtrans %}</a></li> | 30 | <li><a href="{{ path('craue_config_settings_modify') }}#set-export">{{ 'quickstart.admin.export'|trans }}</a></li> |
29 | <li><a href="{{ path('craue_config_settings_modify') }}#set-import">{% trans %}Configure import{% endtrans %}</a></li> | 31 | <li><a href="{{ path('craue_config_settings_modify') }}#set-import">{{ 'quickstart.admin.import'|trans }}</a></li> |
30 | </ul> | 32 | </ul> |
31 | {% endif %} | 33 | {% endif %} |
32 | <h4>{% trans %}First steps{% endtrans %}</h4> | 34 | |
35 | <h4>{{ 'quickstart.first_steps.title'|trans }}</h4> | ||
33 | <ul> | 36 | <ul> |
34 | <li><a href="{{ path('new') }}">{% trans %}Save your first article{% endtrans %}</a></li> | 37 | <li><a href="{{ path('new') }}">{{ 'quickstart.first_steps.new_article'|trans }}</a></li> |
35 | <li><a href="{{ path('unread') }}">{% trans %}And classify it!{% endtrans %}</a></li> | 38 | <li><a href="{{ path('unread') }}">{{ 'quickstart.first_steps.unread_articles'|trans }}</a></li> |
36 | </ul> | 39 | </ul> |
37 | <h4>{% trans %}Migrate from an existing service{% endtrans %}</h4> | 40 | |
38 | <p>{% trans %}You're using an other service? We'll help you to retrieve your data on wallabag.{% endtrans %}</p> | 41 | <h4>{{ 'quickstart.migrate.title'|trans }}</h4> |
42 | <p>{{ 'quickstart.migrate.description'|trans }}</p> | ||
39 | <ul> | 43 | <ul> |
40 | <li><a href="{{ path('import_pocket') }}">{% trans %}Migrate from Pocket{% endtrans %}</a></li> | 44 | <li><a href="{{ path('import_pocket') }}">{{ 'quickstart.migrate.pocket'|trans }}</a></li> |
41 | <li><a href="{{ path('import_wallabag_v1') }}">{% trans %}Migrate from wallabag v1{% endtrans %}</a></li> | 45 | <li><a href="{{ path('import_wallabag_v1') }}">{{ 'quickstart.migrate.wallabag_v1'|trans }}</a></li> |
42 | <li><a href="{{ path('import_wallabag_v2') }}">{% trans %}Migrate from wallabag v2{% endtrans %}</a></li> | 46 | <li><a href="{{ path('import_wallabag_v2') }}">{{ 'quickstart.migrate.wallabag_v2'|trans }}</a></li> |
43 | </ul> | 47 | </ul> |
44 | <h4>{% trans %}Developers{% endtrans %}</h4> | 48 | |
49 | <h4>{{ 'quickstart.developer.title'|trans }}</h4> | ||
45 | <ul> | 50 | <ul> |
46 | <li><a href="{{ path('developer') }}">{% trans %}Create your third application{% endtrans %}</a></li> | 51 | <li><a href="{{ path('developer') }}">{{ 'quickstart.developer.create_application'|trans }}</a></li> |
47 | </ul> | 52 | </ul> |
48 | <h4>{% trans %}Full documentation{% endtrans %}</h4> | 53 | |
54 | <h4>{{ 'quickstart.docs.title'|trans }}</h4> | ||
49 | <ul> | 55 | <ul> |
50 | <li><a href="http://doc.wallabag.org/en/v2/user/annotations.html">{% trans %}Annotate your article{% endtrans %}</a></li> | 56 | <li><a href="http://doc.wallabag.org/en/v2/user/annotations.html">{{ 'quickstart.docs.annotate'|trans }}</a></li> |
51 | <li><a href="http://doc.wallabag.org/en/v2/user/download_articles.html">{% trans %}Convert your articles into ePUB or PDF{% endtrans %}</a></li> | 57 | <li><a href="http://doc.wallabag.org/en/v2/user/download_articles.html">{{ 'quickstart.docs.export'|trans }}</a></li> |
52 | <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> | 58 | <li><a href="http://doc.wallabag.org/en/v2/user/filters.html">{{ 'quickstart.docs.search_filters'|trans }}</a></li> |
53 | <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> | 59 | <li><a href="http://doc.wallabag.org/en/v2/user/errors_during_fetching.html">{{ 'quickstart.docs.fetching_errors'|trans }}</a></li> |
54 | <li><a href="http://doc.wallabag.org/">{% trans %}And so many other articles!{% endtrans %}</a></li> | 60 | <li><a href="http://doc.wallabag.org/">{{ 'quickstart.docs.all_docs'|trans }}</a></li> |
55 | </ul> | 61 | </ul> |
56 | <h4>{% trans %}Support{% endtrans %}</h4> | 62 | |
57 | <p>{% trans %}If you need some help, we are here for you.{% endtrans %}</p> | 63 | <h4>{{ 'quickstart.support.title'|trans }}</h4> |
64 | <p>{{ 'quickstart.support.description'|trans }}</p> | ||
58 | <ul> | 65 | <ul> |
59 | <li><a href="https://github.com/wallabag/wallabag/issues/">{% trans %}On GitHub{% endtrans %}</a></li> | 66 | <li><a href="https://github.com/wallabag/wallabag/issues/">{{ 'quickstart.support.github'|trans }}</a></li> |
60 | <li><a href="mailto:hello@wallabag.org">{% trans %}By email{% endtrans %}</a></li> | 67 | <li><a href="mailto:hello@wallabag.org">{{ 'quickstart.support.email'|trans }}</a></li> |
61 | <li><a href="https://gitter.im/wallabag/wallabag">{% trans %}On Gitter{% endtrans %}</a></li> | 68 | <li><a href="https://gitter.im/wallabag/wallabag">{{ 'quickstart.support.gitter'|trans }}</a></li> |
62 | </ul> | 69 | </ul> |
63 | </div> | 70 | </div> |
64 | 71 | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Tag/new_form.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Tag/new_form.html.twig index 79310307..6e552560 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Tag/new_form.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Tag/new_form.html.twig | |||
@@ -9,5 +9,5 @@ | |||
9 | 9 | ||
10 | {{ form_widget(form.label, { 'attr': {'autocomplete': 'off'} }) }} | 10 | {{ form_widget(form.label, { 'attr': {'autocomplete': 'off'} }) }} |
11 | 11 | ||
12 | <div class="hidden">{{ form_rest(form) }}</div> | 12 | {{ form_rest(form) }} |
13 | </form> | 13 | </form> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Tag/tags.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Tag/tags.html.twig index 19754d41..6b583689 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Tag/tags.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Tag/tags.html.twig | |||
@@ -1,10 +1,10 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | 2 | ||
3 | {% block title "Tags" %} | 3 | {% block title %}{{ 'tag.page_title'|trans }}{% endblock %} |
4 | 4 | ||
5 | {% block content %} | 5 | {% block content %} |
6 | <div class="results clearfix"> | 6 | <div class="results clearfix"> |
7 | <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> | 7 | <div class="nb-results left">{{ 'tag.list.number_on_the_page'|transchoice(tags.count) }}</div> |
8 | </div> | 8 | </div> |
9 | <br /> | 9 | <br /> |
10 | <ul class="row data"> | 10 | <ul class="row data"> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig index f5d03084..48eaca81 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig | |||
@@ -31,7 +31,7 @@ | |||
31 | <ul id="slide-out" class="side-nav fixed"> | 31 | <ul id="slide-out" class="side-nav fixed"> |
32 | {% block logo %} | 32 | {% block logo %} |
33 | <li class="logo border-bottom"> | 33 | <li class="logo border-bottom"> |
34 | <a title="{% trans %}Back to unread articles{% endtrans %}" href="{{ path('unread') }}"> | 34 | <a title="{{ 'menu.left.back_to_unread'|trans }}" href="{{ path('unread') }}"> |
35 | <img src="{{ asset('bundles/wallabagcore/themes/material/img/logo-square.png') }}" alt="wallabag logo" /> | 35 | <img src="{{ asset('bundles/wallabagcore/themes/material/img/logo-square.png') }}" alt="wallabag logo" /> |
36 | </a> | 36 | </a> |
37 | </li> | 37 | </li> |
@@ -39,19 +39,41 @@ | |||
39 | 39 | ||
40 | {% set currentRoute = app.request.attributes.get('_route') %} | 40 | {% set currentRoute = app.request.attributes.get('_route') %} |
41 | 41 | ||
42 | <li class="bold {% if currentRoute == 'unread' or currentRoute == 'homepage' %}active{% endif %}"><a class="waves-effect" href="{{ path('unread') }}">{% trans %}unread{% endtrans %}</a></li> | 42 | <li class="bold {% if currentRoute == 'unread' or currentRoute == 'homepage' %}active{% endif %}"> |
43 | <li class="bold {% if currentRoute == 'starred' %}active{% endif %}"><a class="waves-effect" href="{{ path('starred') }}">{% trans %}starred{% endtrans %}</a></li> | 43 | <a class="waves-effect" href="{{ path('unread') }}">{{ 'menu.left.unread'|trans }}</a> |
44 | <li class="bold {% if currentRoute == 'archive' %}active{% endif %}"><a class="waves-effect" href="{{ path('archive') }}">{% trans %}archive{% endtrans %}</a></li> | 44 | </li> |
45 | <li class="bold border-bottom {% if currentRoute == 'all' %}active{% endif %}"><a class="waves-effect" href="{{ path('all') }}">{% trans %}all{% endtrans %}</a></li> | 45 | <li class="bold {% if currentRoute == 'starred' %}active{% endif %}"> |
46 | <li class="bold border-bottom {% if currentRoute == 'tags' %}active{% endif %}"><a class="waves-effect" href="{{ path('tag') }}">{% trans %}tags{% endtrans %}</a></li> | 46 | <a class="waves-effect" href="{{ path('starred') }}">{{ 'menu.left.starred'|trans }}</a> |
47 | <li class="bold {% if currentRoute == 'config' %}active{% endif %}"><a class="waves-effect" href="{{ path('config') }}">{% trans %}config{% endtrans %}</a></li> | 47 | </li> |
48 | <li class="bold {% if currentRoute == 'archive' %}active{% endif %}"> | ||
49 | <a class="waves-effect" href="{{ path('archive') }}">{{ 'menu.left.archive'|trans }}</a> | ||
50 | </li> | ||
51 | <li class="bold border-bottom {% if currentRoute == 'all' %}active{% endif %}"> | ||
52 | <a class="waves-effect" href="{{ path('all') }}">{{ 'menu.left.all_articles'|trans }}</a> | ||
53 | </li> | ||
54 | <li class="bold border-bottom {% if currentRoute == 'tags' %}active{% endif %}"> | ||
55 | <a class="waves-effect" href="{{ path('tag') }}">{{ 'menu.left.tags'|trans }}</a> | ||
56 | </li> | ||
57 | <li class="bold {% if currentRoute == 'config' %}active{% endif %}"> | ||
58 | <a class="waves-effect" href="{{ path('config') }}">{{ 'menu.left.config'|trans }}</a> | ||
59 | </li> | ||
48 | {% if is_granted('ROLE_SUPER_ADMIN') %} | 60 | {% if is_granted('ROLE_SUPER_ADMIN') %} |
49 | <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> | 61 | <li class="bold border-bottom {% if currentRoute == 'craue_config_settings_modify' %}active{% endif %}"> |
62 | <a class="waves-effect" href="{{ path('craue_config_settings_modify') }}">{{ 'menu.left.internal_settings'|trans }}</a> | ||
63 | </li> | ||
50 | {% endif %} | 64 | {% endif %} |
51 | <li class="bold {% if currentRoute == 'import' %}active{% endif %}"><a class="waves-effect" href="{{ path('import') }}">{% trans %}import{% endtrans %}</a></li> | 65 | <li class="bold {% if currentRoute == 'import' %}active{% endif %}"> |
52 | <li class="bold {% if currentRoute == 'howto' %}active{% endif %}"><a class="waves-effect" href="{{ path('howto') }}">{% trans %}howto{% endtrans %}</a></li> | 66 | <a class="waves-effect" href="{{ path('import') }}">{{ 'menu.left.import'|trans }}</a> |
53 | <li class="bold {% if currentRoute == 'developer' %}active{% endif %}"><a class="waves-effect" href="{{ path('developer') }}">{% trans %}Developer{% endtrans %}</a></li> | 67 | </li> |
54 | <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> | 68 | <li class="bold {% if currentRoute == 'developer' %}active{% endif %}"> |
69 | <a class="waves-effect" href="{{ path('developer') }}">{{ 'menu.left.developer'|trans }}</a> | ||
70 | </li> | ||
71 | <li class="bold {% if currentRoute == 'howto' %}active{% endif %}"> | ||
72 | <a class="waves-effect" href="{{ path('howto') }}">{{ 'menu.left.howto'|trans }}</a> | ||
73 | </li> | ||
74 | <li class="bold"> | ||
75 | <a class="waves-effect" class="icon icon-power" href="{{ path('fos_user_security_logout') }}">{{ 'menu.left.logout'|trans }}</a> | ||
76 | </li> | ||
55 | </ul> | 77 | </ul> |
56 | <div class="nav-wrapper nav-panels"> | 78 | <div class="nav-wrapper nav-panels"> |
57 | <a href="#" data-activates="slide-out" class="nav-panel-menu button-collapse"><i class="mdi-navigation-menu"></i></a> | 79 | <a href="#" data-activates="slide-out" class="nav-panel-menu button-collapse"><i class="mdi-navigation-menu"></i></a> |
@@ -61,21 +83,37 @@ | |||
61 | </div> | 83 | </div> |
62 | <div class="input-field nav-panel-buttom"> | 84 | <div class="input-field nav-panel-buttom"> |
63 | <ul> | 85 | <ul> |
64 | <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> | 86 | <li class="bold"> |
65 | <li><a title="{% trans %}Search{% endtrans %}" class="waves-effect" href="javascript: void(null);" id="nav-btn-search"><i class="mdi-action-search"></i></a> | 87 | <a title="{{ 'menu.top.add_new_entry'|trans }}" class="waves-effect" href="{{ path('new') }}" id="nav-btn-add"> |
66 | <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> | 88 | <i class="mdi-content-add"></i> |
67 | <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> | 89 | </a> |
90 | </li> | ||
91 | <li> | ||
92 | <a title="{{ 'menu.top.search'|trans }}" class="waves-effect" href="javascript: void(null);" id="nav-btn-search"> | ||
93 | <i class="mdi-action-search"></i> | ||
94 | </a> | ||
95 | </li> | ||
96 | <li id="button_filters"> | ||
97 | <a title="{{ 'menu.top.filter_entries'|trans }}" href="#" data-activates="filters" class="nav-panel-menu button-collapse-right"> | ||
98 | <i class="mdi-content-filter-list"></i> | ||
99 | </a> | ||
100 | </li> | ||
101 | <li id="button_export"> | ||
102 | <a title="{{ 'menu.top.export'|trans }}" class="nav-panel-menu button-collapse-right" href="#" data-activates="export" class="nav-panel-menu button-collapse-right"> | ||
103 | <i class="mdi-file-file-download"></i> | ||
104 | </a> | ||
105 | </li> | ||
68 | </ul> | 106 | </ul> |
69 | </div> | 107 | </div> |
70 | <form method="get" action="index.php"> | 108 | <form method="get" action="index.php"> |
71 | <div class="input-field nav-panel-search" style="display: none"> | 109 | <div class="input-field nav-panel-search" style="display: none"> |
72 | <input name="search" id="searchfield" type="search" required placeholder="{% trans %}Enter your search here{% endtrans %}"> | 110 | <input name="search" id="searchfield" type="search" required placeholder="{{ 'menu.search_form.input_label'|trans }}"> |
73 | <label for="search"><i class="mdi-action-search"></i></label> | 111 | <label for="search"><i class="mdi-action-search"></i></label> |
74 | <i class="mdi-navigation-close"></i> | 112 | <i class="mdi-navigation-close"></i> |
75 | </div> | 113 | </div> |
76 | </form> | 114 | </form> |
77 | <div class="input-field nav-panel-add" style="display: none"> | 115 | <div class="input-field nav-panel-add" style="display: none"> |
78 | {{ render(controller( "WallabagCoreBundle:Entry:addEntryForm" )) }} | 116 | {{ render(controller("WallabagCoreBundle:Entry:addEntryForm")) }} |
79 | <label for="add" class="active"><i class="mdi-content-add"></i></label> | 117 | <label for="add" class="active"><i class="mdi-content-add"></i></label> |
80 | <i class="mdi-navigation-close"></i> | 118 | <i class="mdi-navigation-close"></i> |
81 | </div> | 119 | </div> |
@@ -88,35 +126,40 @@ | |||
88 | <div class="container"> | 126 | <div class="container"> |
89 | <div class="row"> | 127 | <div class="row"> |
90 | <div class="col l6 s12"> | 128 | <div class="col l6 s12"> |
91 | <h5 class="white-text">{% trans %}Take wallabag with you{% endtrans %}</h5> | 129 | <h5 class="white-text">{{ 'footer.wallabag.elsewhere'|trans }}</h5> |
92 | <p class="grey-text text-lighten-4"> | 130 | <p class="grey-text text-lighten-4"> |
93 | 131 | <a target="_blank" class="grey-text text-lighten-3" href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" title="Android"> | |
94 | <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> | 132 | <span class="icon-android"></span> |
95 | 133 | </a> | |
96 | <a target="_blank" class="grey-text text-lighten-3" href="https://itunes.apple.com/app/id828331015" title="iOS"><span class="icon-apple"></a> | 134 | <a target="_blank" class="grey-text text-lighten-3" href="https://itunes.apple.com/app/id828331015" title="iOS"> |
97 | 135 | <span class="icon-apple"></span> | |
98 | <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> | 136 | </a> |
99 | 137 | <a target="_blank" class="grey-text text-lighten-3" href="https://addons.mozilla.org/ru/firefox/addon/wallabag/" title="Firefox"> | |
100 | <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> | 138 | <span class="icon-firefox"></span> |
101 | 139 | </a> | |
140 | <a target="_blank" class="grey-text text-lighten-3" href="https://chrome.google.com/webstore/detail/wallabagit/peehlcgckcnclnjlndmoddifcicdnabm" title="Chrome"> | ||
141 | <span class="icon-chrome"></span> | ||
142 | </a> | ||
102 | </p> | 143 | </p> |
103 | </div> | 144 | </div> |
104 | <div class="col l4 offset-l2 s12"> | 145 | <div class="col l4 offset-l2 s12"> |
105 | <h5 class="white-text">{% trans %}Social{% endtrans %}</h5> | 146 | <h5 class="white-text">{{ 'footer.wallabag.social'|trans }}</h5> |
106 | 147 | <a target="_blank" class="grey-text text-lighten-3" href="https://twitter.com/wallabagapp" title="Twitter"> | |
107 | <a target="_blank" class="grey-text text-lighten-3" href="https://twitter.com/wallabagapp" title="Twitter"><span class="icon-twitter"></span></a> | 148 | <span class="icon-twitter"></span> |
108 | 149 | </a> | |
109 | <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> | 150 | <a target="_blank" class="grey-text text-lighten-3" href="https://plus.google.com/+WallabagOrg/posts" title="Google+"> |
110 | 151 | <span class="icon-google-plus2"></span> | |
111 | <a target="_blank" class="grey-text text-lighten-3" href="https://facebook.com/Wallabag" title="Facebook"><span class="icon-facebook2"></span></a> | 152 | </a> |
112 | 153 | <a target="_blank" class="grey-text text-lighten-3" href="https://facebook.com/Wallabag" title="Facebook"> | |
154 | <span class="icon-facebook2"></span> | ||
155 | </a> | ||
113 | </div> | 156 | </div> |
114 | </div> | 157 | </div> |
115 | </div> | 158 | </div> |
116 | <div class="footer-copyright"> | 159 | <div class="footer-copyright"> |
117 | <div class="container"> | 160 | <div class="container"> |
118 | <p>{% trans %}powered by{% endtrans %} <a target="_blank" href="https://wallabag.org" class="grey-text text-lighten-4">wallabag</a></p> | 161 | <p>{{ 'footer.wallabag.powered_by'|trans }} <a target="_blank" href="https://wallabag.org" class="grey-text text-lighten-4">wallabag</a></p> |
119 | <a class="grey-text text-lighten-4 right" href="{{ path('about') }}">{% trans %}About{% endtrans %}</a> | 162 | <a class="grey-text text-lighten-4 right" href="{{ path('about') }}">{{ 'footer.wallabag.about'|trans }}</a> |
120 | </div> | 163 | </div> |
121 | </div> | 164 | </div> |
122 | </footer> | 165 | </footer> |
diff --git a/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php index 51425fe1..bf455f32 100644 --- a/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php +++ b/src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php | |||
@@ -102,7 +102,7 @@ class ConfigControllerTest extends WallabagCoreTestCase | |||
102 | 'change_passwd[new_password][first]' => '', | 102 | 'change_passwd[new_password][first]' => '', |
103 | 'change_passwd[new_password][second]' => '', | 103 | 'change_passwd[new_password][second]' => '', |
104 | ), | 104 | ), |
105 | 'Wrong value for your current password', | 105 | 'validator.password_wrong_value', |
106 | ), | 106 | ), |
107 | array( | 107 | array( |
108 | array( | 108 | array( |
@@ -118,7 +118,7 @@ class ConfigControllerTest extends WallabagCoreTestCase | |||
118 | 'change_passwd[new_password][first]' => 'hop', | 118 | 'change_passwd[new_password][first]' => 'hop', |
119 | 'change_passwd[new_password][second]' => '', | 119 | 'change_passwd[new_password][second]' => '', |
120 | ), | 120 | ), |
121 | 'The password fields must match', | 121 | 'validator.password_must_match', |
122 | ), | 122 | ), |
123 | array( | 123 | array( |
124 | array( | 124 | array( |
@@ -126,7 +126,7 @@ class ConfigControllerTest extends WallabagCoreTestCase | |||
126 | 'change_passwd[new_password][first]' => 'hop', | 126 | 'change_passwd[new_password][first]' => 'hop', |
127 | 'change_passwd[new_password][second]' => 'hop', | 127 | 'change_passwd[new_password][second]' => 'hop', |
128 | ), | 128 | ), |
129 | 'Password should by at least', | 129 | 'validator.password_too_short', |
130 | ), | 130 | ), |
131 | ); | 131 | ); |
132 | } | 132 | } |
@@ -188,14 +188,14 @@ class ConfigControllerTest extends WallabagCoreTestCase | |||
188 | 'update_user[name]' => '', | 188 | 'update_user[name]' => '', |
189 | 'update_user[email]' => '', | 189 | 'update_user[email]' => '', |
190 | ), | 190 | ), |
191 | 'Please enter an email', | 191 | 'fos_user.email.blank', |
192 | ), | 192 | ), |
193 | array( | 193 | array( |
194 | array( | 194 | array( |
195 | 'update_user[name]' => '', | 195 | 'update_user[name]' => '', |
196 | 'update_user[email]' => 'test', | 196 | 'update_user[email]' => 'test', |
197 | ), | 197 | ), |
198 | 'The email is not valid', | 198 | 'fos_user.email.invalid', |
199 | ), | 199 | ), |
200 | ); | 200 | ); |
201 | } | 201 | } |
@@ -244,7 +244,7 @@ class ConfigControllerTest extends WallabagCoreTestCase | |||
244 | 244 | ||
245 | $crawler = $client->followRedirect(); | 245 | $crawler = $client->followRedirect(); |
246 | 246 | ||
247 | $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text'))); | 247 | $this->assertGreaterThan(1, $alert = $crawler->filter('body')->extract(array('_text'))); |
248 | $this->assertContains('Information updated', $alert[0]); | 248 | $this->assertContains('Information updated', $alert[0]); |
249 | } | 249 | } |
250 | 250 | ||
@@ -258,7 +258,7 @@ class ConfigControllerTest extends WallabagCoreTestCase | |||
258 | 'new_user[plainPassword][second]' => '', | 258 | 'new_user[plainPassword][second]' => '', |
259 | 'new_user[email]' => '', | 259 | 'new_user[email]' => '', |
260 | ), | 260 | ), |
261 | 'Please enter a username', | 261 | 'fos_user.username.blank', |
262 | ), | 262 | ), |
263 | array( | 263 | array( |
264 | array( | 264 | array( |
@@ -267,7 +267,7 @@ class ConfigControllerTest extends WallabagCoreTestCase | |||
267 | 'new_user[plainPassword][second]' => 'mypassword', | 267 | 'new_user[plainPassword][second]' => 'mypassword', |
268 | 'new_user[email]' => '', | 268 | 'new_user[email]' => '', |
269 | ), | 269 | ), |
270 | 'The username is too short', | 270 | 'fos_user.username.short', |
271 | ), | 271 | ), |
272 | array( | 272 | array( |
273 | array( | 273 | array( |
@@ -276,7 +276,7 @@ class ConfigControllerTest extends WallabagCoreTestCase | |||
276 | 'new_user[plainPassword][second]' => 'mypassword', | 276 | 'new_user[plainPassword][second]' => 'mypassword', |
277 | 'new_user[email]' => 'test', | 277 | 'new_user[email]' => 'test', |
278 | ), | 278 | ), |
279 | 'The email is not valid', | 279 | 'fos_user.email.invalid', |
280 | ), | 280 | ), |
281 | array( | 281 | array( |
282 | array( | 282 | array( |
@@ -285,7 +285,7 @@ class ConfigControllerTest extends WallabagCoreTestCase | |||
285 | 'new_user[plainPassword][second]' => 'wallacewallace', | 285 | 'new_user[plainPassword][second]' => 'wallacewallace', |
286 | 'new_user[email]' => 'wallace@wallace.me', | 286 | 'new_user[email]' => 'wallace@wallace.me', |
287 | ), | 287 | ), |
288 | 'The username is already used', | 288 | 'fos_user.username.already_used', |
289 | ), | 289 | ), |
290 | array( | 290 | array( |
291 | array( | 291 | array( |
@@ -294,7 +294,7 @@ class ConfigControllerTest extends WallabagCoreTestCase | |||
294 | 'new_user[plainPassword][second]' => 'mypassword2', | 294 | 'new_user[plainPassword][second]' => 'mypassword2', |
295 | 'new_user[email]' => 'wallace@wallace.me', | 295 | 'new_user[email]' => 'wallace@wallace.me', |
296 | ), | 296 | ), |
297 | 'The password fields must match', | 297 | 'validator.password_must_match', |
298 | ), | 298 | ), |
299 | ); | 299 | ); |
300 | } | 300 | } |
@@ -382,7 +382,7 @@ class ConfigControllerTest extends WallabagCoreTestCase | |||
382 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); | 382 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); |
383 | 383 | ||
384 | $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text'))); | 384 | $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text'))); |
385 | $this->assertContains('You need to generate a token first.', $body[0]); | 385 | $this->assertContains('config.form_rss.no_token', $body[0]); |
386 | 386 | ||
387 | $client->request('GET', '/generate-token'); | 387 | $client->request('GET', '/generate-token'); |
388 | $this->assertEquals(302, $client->getResponse()->getStatusCode()); | 388 | $this->assertEquals(302, $client->getResponse()->getStatusCode()); |
@@ -390,7 +390,7 @@ class ConfigControllerTest extends WallabagCoreTestCase | |||
390 | $crawler = $client->followRedirect(); | 390 | $crawler = $client->followRedirect(); |
391 | 391 | ||
392 | $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text'))); | 392 | $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text'))); |
393 | $this->assertNotContains('You need to generate a token first.', $body[0]); | 393 | $this->assertNotContains('config.form_rss.no_token', $body[0]); |
394 | } | 394 | } |
395 | 395 | ||
396 | public function testGenerateTokenAjax() | 396 | public function testGenerateTokenAjax() |
@@ -454,7 +454,7 @@ class ConfigControllerTest extends WallabagCoreTestCase | |||
454 | array( | 454 | array( |
455 | 'rss_config[rss_limit]' => 1000000000000, | 455 | 'rss_config[rss_limit]' => 1000000000000, |
456 | ), | 456 | ), |
457 | 'This will certainly kill the app', | 457 | 'validator.rss_limit_too_hight', |
458 | ), | 458 | ), |
459 | ); | 459 | ); |
460 | } | 460 | } |
diff --git a/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php index 5512d6e1..0fcf323c 100644 --- a/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php +++ b/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php | |||
@@ -28,14 +28,14 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
28 | $client->followRedirect(); | 28 | $client->followRedirect(); |
29 | 29 | ||
30 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); | 30 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); |
31 | $this->assertContains('We\'ll accompany you to visit wallabag', $client->getResponse()->getContent()); | 31 | $this->assertContains('quickstart.intro.paragraph_1', $client->getResponse()->getContent()); |
32 | 32 | ||
33 | // Test if quickstart is disabled when user has 1 entry | 33 | // Test if quickstart is disabled when user has 1 entry |
34 | $crawler = $client->request('GET', '/new'); | 34 | $crawler = $client->request('GET', '/new'); |
35 | 35 | ||
36 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); | 36 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); |
37 | 37 | ||
38 | $form = $crawler->filter('button[type=submit]')->form(); | 38 | $form = $crawler->filter('form[name=entry]')->form(); |
39 | 39 | ||
40 | $data = array( | 40 | $data = array( |
41 | 'entry[url]' => $this->url, | 41 | 'entry[url]' => $this->url, |
@@ -46,7 +46,7 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
46 | $client->followRedirect(); | 46 | $client->followRedirect(); |
47 | 47 | ||
48 | $client->request('GET', '/unread/list'); | 48 | $client->request('GET', '/unread/list'); |
49 | $this->assertContains('There is one entry.', $client->getResponse()->getContent()); | 49 | $this->assertContains('entry.list.number_on_the_page', $client->getResponse()->getContent()); |
50 | } | 50 | } |
51 | 51 | ||
52 | public function testGetNew() | 52 | public function testGetNew() |
@@ -59,7 +59,7 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
59 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); | 59 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); |
60 | 60 | ||
61 | $this->assertCount(1, $crawler->filter('input[type=url]')); | 61 | $this->assertCount(1, $crawler->filter('input[type=url]')); |
62 | $this->assertCount(1, $crawler->filter('button[type=submit]')); | 62 | $this->assertCount(1, $crawler->filter('form[name=entry]')); |
63 | } | 63 | } |
64 | 64 | ||
65 | public function testPostNewViaBookmarklet() | 65 | public function testPostNewViaBookmarklet() |
@@ -96,7 +96,7 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
96 | 96 | ||
97 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); | 97 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); |
98 | 98 | ||
99 | $form = $crawler->filter('button[type=submit]')->form(); | 99 | $form = $crawler->filter('form[name=entry]')->form(); |
100 | 100 | ||
101 | $crawler = $client->submit($form); | 101 | $crawler = $client->submit($form); |
102 | 102 | ||
@@ -117,7 +117,7 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
117 | 117 | ||
118 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); | 118 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); |
119 | 119 | ||
120 | $form = $crawler->filter('button[type=submit]')->form(); | 120 | $form = $crawler->filter('form[name=entry]')->form(); |
121 | 121 | ||
122 | $data = array( | 122 | $data = array( |
123 | 'entry[url]' => $this->url, | 123 | 'entry[url]' => $this->url, |
@@ -146,7 +146,7 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
146 | 146 | ||
147 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); | 147 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); |
148 | 148 | ||
149 | $form = $crawler->filter('button[type=submit]')->form(); | 149 | $form = $crawler->filter('form[name=entry]')->form(); |
150 | 150 | ||
151 | $data = array( | 151 | $data = array( |
152 | 'entry[url]' => $this->url, | 152 | 'entry[url]' => $this->url, |
@@ -170,7 +170,7 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
170 | 170 | ||
171 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); | 171 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); |
172 | 172 | ||
173 | $form = $crawler->filter('button[type=submit]')->form(); | 173 | $form = $crawler->filter('form[name=entry]')->form(); |
174 | 174 | ||
175 | $data = array( | 175 | $data = array( |
176 | 'entry[url]' => $url = 'https://github.com/wallabag/wallabag', | 176 | 'entry[url]' => $url = 'https://github.com/wallabag/wallabag', |
diff --git a/src/Wallabag/CoreBundle/Tests/Controller/SecurityControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/SecurityControllerTest.php index b9f5d835..5c098cc2 100644 --- a/src/Wallabag/CoreBundle/Tests/Controller/SecurityControllerTest.php +++ b/src/Wallabag/CoreBundle/Tests/Controller/SecurityControllerTest.php | |||
@@ -12,53 +12,59 @@ class SecurityControllerTest extends WallabagCoreTestCase | |||
12 | $client = $this->getClient(); | 12 | $client = $this->getClient(); |
13 | $client->followRedirects(); | 13 | $client->followRedirects(); |
14 | 14 | ||
15 | $client->request('GET', '/config'); | 15 | $crawler = $client->request('GET', '/config'); |
16 | $this->assertContains('RSS', $client->getResponse()->getContent()); | 16 | $this->assertContains('config.form_rss.description', $crawler->filter('body')->extract(array('_text'))[0]); |
17 | } | 17 | } |
18 | 18 | ||
19 | public function testLoginWith2Factor() | 19 | public function testLoginWith2Factor() |
20 | { | 20 | { |
21 | $client = $this->getClient(); | 21 | $client = $this->getClient(); |
22 | 22 | ||
23 | if ($client->getContainer()->getParameter('twofactor_auth')) { | 23 | if (!$client->getContainer()->getParameter('twofactor_auth')) { |
24 | $client->followRedirects(); | 24 | $this->markTestSkipped('twofactor_auth is not enabled.'); |
25 | return; | ||
26 | } | ||
25 | 27 | ||
26 | $em = $client->getContainer()->get('doctrine.orm.entity_manager'); | 28 | $client->followRedirects(); |
27 | $user = $em | ||
28 | ->getRepository('WallabagUserBundle:User') | ||
29 | ->findOneByUsername('admin'); | ||
30 | $user->setTwoFactorAuthentication(true); | ||
31 | $em->persist($user); | ||
32 | $em->flush(); | ||
33 | 29 | ||
34 | $this->logInAs('admin'); | 30 | $em = $client->getContainer()->get('doctrine.orm.entity_manager'); |
35 | $client->request('GET', '/config'); | 31 | $user = $em |
36 | $this->assertContains('trusted computer', $client->getResponse()->getContent()); | 32 | ->getRepository('WallabagUserBundle:User') |
33 | ->findOneByUsername('admin'); | ||
34 | $user->setTwoFactorAuthentication(true); | ||
35 | $em->persist($user); | ||
36 | $em->flush(); | ||
37 | 37 | ||
38 | // restore user | 38 | $this->logInAs('admin'); |
39 | $user = $em | 39 | $crawler = $client->request('GET', '/config'); |
40 | ->getRepository('WallabagUserBundle:User') | 40 | $this->assertContains('scheb_two_factor.trusted', $crawler->filter('body')->extract(array('_text'))[0]); |
41 | ->findOneByUsername('admin'); | 41 | |
42 | $user->setTwoFactorAuthentication(false); | 42 | // restore user |
43 | $em->persist($user); | 43 | $user = $em |
44 | $em->flush(); | 44 | ->getRepository('WallabagUserBundle:User') |
45 | } | 45 | ->findOneByUsername('admin'); |
46 | $user->setTwoFactorAuthentication(false); | ||
47 | $em->persist($user); | ||
48 | $em->flush(); | ||
46 | } | 49 | } |
47 | 50 | ||
48 | public function testTrustedComputer() | 51 | public function testTrustedComputer() |
49 | { | 52 | { |
50 | $client = $this->getClient(); | 53 | $client = $this->getClient(); |
51 | 54 | ||
52 | if ($client->getContainer()->getParameter('twofactor_auth')) { | 55 | if (!$client->getContainer()->getParameter('twofactor_auth')) { |
53 | $em = $client->getContainer()->get('doctrine.orm.entity_manager'); | 56 | $this->markTestSkipped('twofactor_auth is not enabled.'); |
54 | $user = $em | 57 | return; |
55 | ->getRepository('WallabagUserBundle:User') | ||
56 | ->findOneByUsername('admin'); | ||
57 | |||
58 | $date = new \DateTime(); | ||
59 | $user->addTrustedComputer('ABCDEF', $date->add(new \DateInterval('P1M'))); | ||
60 | $this->assertTrue($user->isTrustedComputer('ABCDEF')); | ||
61 | $this->assertFalse($user->isTrustedComputer('FEDCBA')); | ||
62 | } | 58 | } |
59 | |||
60 | $em = $client->getContainer()->get('doctrine.orm.entity_manager'); | ||
61 | $user = $em | ||
62 | ->getRepository('WallabagUserBundle:User') | ||
63 | ->findOneByUsername('admin'); | ||
64 | |||
65 | $date = new \DateTime(); | ||
66 | $user->addTrustedComputer('ABCDEF', $date->add(new \DateInterval('P1M'))); | ||
67 | $this->assertTrue($user->isTrustedComputer('ABCDEF')); | ||
68 | $this->assertFalse($user->isTrustedComputer('FEDCBA')); | ||
63 | } | 69 | } |
64 | } | 70 | } |
diff --git a/src/Wallabag/CoreBundle/Tests/Controller/TagControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/TagControllerTest.php index d6391282..338121e7 100644 --- a/src/Wallabag/CoreBundle/Tests/Controller/TagControllerTest.php +++ b/src/Wallabag/CoreBundle/Tests/Controller/TagControllerTest.php | |||
@@ -30,7 +30,7 @@ class TagControllerTest extends WallabagCoreTestCase | |||
30 | 30 | ||
31 | $crawler = $client->request('GET', '/view/'.$entry->getId()); | 31 | $crawler = $client->request('GET', '/view/'.$entry->getId()); |
32 | 32 | ||
33 | $form = $crawler->filter('button[id=tag_save]')->form(); | 33 | $form = $crawler->filter('form[name=tag]')->form(); |
34 | 34 | ||
35 | $data = array( | 35 | $data = array( |
36 | 'tag[label]' => $this->tagName, | 36 | 'tag[label]' => $this->tagName, |
diff --git a/src/Wallabag/ImportBundle/Controller/PocketController.php b/src/Wallabag/ImportBundle/Controller/PocketController.php index c88e115e..7a35514b 100644 --- a/src/Wallabag/ImportBundle/Controller/PocketController.php +++ b/src/Wallabag/ImportBundle/Controller/PocketController.php | |||
@@ -17,8 +17,8 @@ class PocketController extends Controller | |||
17 | { | 17 | { |
18 | $pocket = $this->get('wallabag_import.pocket.import'); | 18 | $pocket = $this->get('wallabag_import.pocket.import'); |
19 | $form = $this->createFormBuilder($pocket) | 19 | $form = $this->createFormBuilder($pocket) |
20 | ->add('read', CheckboxType::class, array( | 20 | ->add('mark_as_read', CheckboxType::class, array( |
21 | 'label' => 'Mark all as read', | 21 | 'label' => 'import.form.mark_as_read_label', |
22 | 'required' => false, | 22 | 'required' => false, |
23 | )) | 23 | )) |
24 | ->getForm(); | 24 | ->getForm(); |
@@ -39,7 +39,7 @@ class PocketController extends Controller | |||
39 | ->getRequestToken($this->generateUrl('import', array(), UrlGeneratorInterface::ABSOLUTE_URL)); | 39 | ->getRequestToken($this->generateUrl('import', array(), UrlGeneratorInterface::ABSOLUTE_URL)); |
40 | 40 | ||
41 | $this->get('session')->set('import.pocket.code', $requestToken); | 41 | $this->get('session')->set('import.pocket.code', $requestToken); |
42 | $this->get('session')->set('read', $request->request->get('form')['read']); | 42 | $this->get('session')->set('mark_as_read', $request->request->get('form')['mark_as_read']); |
43 | 43 | ||
44 | return $this->redirect( | 44 | return $this->redirect( |
45 | 'https://getpocket.com/auth/authorize?request_token='.$requestToken.'&redirect_uri='.$this->generateUrl('import_pocket_callback', array(), UrlGeneratorInterface::ABSOLUTE_URL), | 45 | 'https://getpocket.com/auth/authorize?request_token='.$requestToken.'&redirect_uri='.$this->generateUrl('import_pocket_callback', array(), UrlGeneratorInterface::ABSOLUTE_URL), |
@@ -54,8 +54,8 @@ class PocketController extends Controller | |||
54 | { | 54 | { |
55 | $message = 'Import failed, please try again.'; | 55 | $message = 'Import failed, please try again.'; |
56 | $pocket = $this->get('wallabag_import.pocket.import'); | 56 | $pocket = $this->get('wallabag_import.pocket.import'); |
57 | $markAsRead = $this->get('session')->get('read'); | 57 | $markAsRead = $this->get('session')->get('mark_as_read'); |
58 | $this->get('session')->remove('read'); | 58 | $this->get('session')->remove('mark_as_read'); |
59 | 59 | ||
60 | // something bad happend on pocket side | 60 | // something bad happend on pocket side |
61 | if (false === $pocket->authorize($this->get('session')->get('import.pocket.code'))) { | 61 | if (false === $pocket->authorize($this->get('session')->get('import.pocket.code'))) { |
diff --git a/src/Wallabag/ImportBundle/Form/Type/UploadImportType.php b/src/Wallabag/ImportBundle/Form/Type/UploadImportType.php index 38670379..e0a44c36 100644 --- a/src/Wallabag/ImportBundle/Form/Type/UploadImportType.php +++ b/src/Wallabag/ImportBundle/Form/Type/UploadImportType.php | |||
@@ -13,12 +13,16 @@ class UploadImportType extends AbstractType | |||
13 | public function buildForm(FormBuilderInterface $builder, array $options) | 13 | public function buildForm(FormBuilderInterface $builder, array $options) |
14 | { | 14 | { |
15 | $builder | 15 | $builder |
16 | ->add('file', FileType::class) | 16 | ->add('file', FileType::class, array( |
17 | 'label' => 'import.form.file_label', | ||
18 | )) | ||
17 | ->add('mark_as_read', CheckboxType::class, array( | 19 | ->add('mark_as_read', CheckboxType::class, array( |
18 | 'label' => 'Mark all as read', | 20 | 'label' => 'import.form.mark_as_read_label', |
19 | 'required' => false, | 21 | 'required' => false, |
20 | )) | 22 | )) |
21 | ->add('save', SubmitType::class) | 23 | ->add('save', SubmitType::class, array( |
24 | 'label' => 'import.form.save_label', | ||
25 | )) | ||
22 | ; | 26 | ; |
23 | } | 27 | } |
24 | 28 | ||
diff --git a/src/Wallabag/ImportBundle/Import/PocketImport.php b/src/Wallabag/ImportBundle/Import/PocketImport.php index 238ddbd1..4499ce69 100644 --- a/src/Wallabag/ImportBundle/Import/PocketImport.php +++ b/src/Wallabag/ImportBundle/Import/PocketImport.php | |||
@@ -60,7 +60,7 @@ class PocketImport implements ImportInterface | |||
60 | */ | 60 | */ |
61 | public function getDescription() | 61 | public function getDescription() |
62 | { | 62 | { |
63 | 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.'; | 63 | return 'import.pocket.description'; |
64 | } | 64 | } |
65 | 65 | ||
66 | /** | 66 | /** |
@@ -139,7 +139,7 @@ class PocketImport implements ImportInterface | |||
139 | /** | 139 | /** |
140 | * Get whether articles must be all marked as read. | 140 | * Get whether articles must be all marked as read. |
141 | */ | 141 | */ |
142 | public function getRead() | 142 | public function getMarkAsRead() |
143 | { | 143 | { |
144 | return $this->markAsRead; | 144 | return $this->markAsRead; |
145 | } | 145 | } |
diff --git a/src/Wallabag/ImportBundle/Import/WallabagV1Import.php b/src/Wallabag/ImportBundle/Import/WallabagV1Import.php index 1d773d3b..173a587f 100644 --- a/src/Wallabag/ImportBundle/Import/WallabagV1Import.php +++ b/src/Wallabag/ImportBundle/Import/WallabagV1Import.php | |||
@@ -67,7 +67,7 @@ class WallabagV1Import implements ImportInterface | |||
67 | */ | 67 | */ |
68 | public function getDescription() | 68 | public function getDescription() |
69 | { | 69 | { |
70 | 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.'; | 70 | return 'import.wallabag_v1.description'; |
71 | } | 71 | } |
72 | 72 | ||
73 | /** | 73 | /** |
diff --git a/src/Wallabag/ImportBundle/Import/WallabagV2Import.php b/src/Wallabag/ImportBundle/Import/WallabagV2Import.php index c4bac561..0a32864e 100644 --- a/src/Wallabag/ImportBundle/Import/WallabagV2Import.php +++ b/src/Wallabag/ImportBundle/Import/WallabagV2Import.php | |||
@@ -27,7 +27,7 @@ class WallabagV2Import extends WallabagV1Import implements ImportInterface | |||
27 | */ | 27 | */ |
28 | public function getDescription() | 28 | public function getDescription() |
29 | { | 29 | { |
30 | 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.'; | 30 | return 'import.wallabag_v2.description'; |
31 | } | 31 | } |
32 | 32 | ||
33 | /** | 33 | /** |
diff --git a/src/Wallabag/ImportBundle/Resources/views/Import/index.html.twig b/src/Wallabag/ImportBundle/Resources/views/Import/index.html.twig index 8c300624..aebbfa20 100644 --- a/src/Wallabag/ImportBundle/Resources/views/Import/index.html.twig +++ b/src/Wallabag/ImportBundle/Resources/views/Import/index.html.twig | |||
@@ -1,17 +1,18 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | {% block title %}{% trans %}Import{% endtrans %}{% endblock %} | 2 | |
3 | {% block title %}{{ 'import.page_title'|trans }}{% endblock %} | ||
3 | 4 | ||
4 | {% block content %} | 5 | {% block content %} |
5 | <div class="row"> | 6 | <div class="row"> |
6 | <div class="col s12"> | 7 | <div class="col s12"> |
7 | <div class="card-panel settings"> | 8 | <div class="card-panel settings"> |
8 | {% trans %}Welcome to wallabag importer. Please select your previous service that you want to migrate.{% endtrans %} | 9 | {{ 'import.page_description'|trans }} |
9 | <ul> | 10 | <ul> |
10 | {% for import in imports %} | 11 | {% for import in imports %} |
11 | <li> | 12 | <li> |
12 | <h5>{{ import.name }}</h5> | 13 | <h5>{{ import.name }}</h5> |
13 | <blockquote>{{ import.description|trans }}</blockquote> | 14 | <blockquote>{{ import.description|trans }}</blockquote> |
14 | <p><a class="waves-effect waves-light btn" href="{{ path(import.url) }}">{% trans %}Import contents{% endtrans %}</a></p> | 15 | <p><a class="waves-effect waves-light btn" href="{{ path(import.url) }}">{{ 'import.action.import_contents'|trans }}</a></p> |
15 | </li> | 16 | </li> |
16 | {% endfor %} | 17 | {% endfor %} |
17 | </ul> | 18 | </ul> |
diff --git a/src/Wallabag/ImportBundle/Resources/views/Pocket/index.html.twig b/src/Wallabag/ImportBundle/Resources/views/Pocket/index.html.twig index 3365fc6a..401dbd33 100644 --- a/src/Wallabag/ImportBundle/Resources/views/Pocket/index.html.twig +++ b/src/Wallabag/ImportBundle/Resources/views/Pocket/index.html.twig | |||
@@ -1,5 +1,6 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | {% block title %}{% trans %}Import > Pocket{% endtrans %}{% endblock %} | 2 | |
3 | {% block title %}{{ 'import.pocket.page_title'|trans }}{% endblock %} | ||
3 | 4 | ||
4 | {% block content %} | 5 | {% block content %} |
5 | <div class="row"> | 6 | <div class="row"> |
@@ -7,27 +8,29 @@ | |||
7 | <div class="card-panel settings"> | 8 | <div class="card-panel settings"> |
8 | {% if not has_consumer_key %} | 9 | {% if not has_consumer_key %} |
9 | <div class="card-panel red darken-1"> | 10 | <div class="card-panel red darken-1"> |
10 | {% trans %}Pocket import isn't configured.{% endtrans %} | 11 | {{ 'import.pocket.config_missing.description'|trans }} |
12 | |||
11 | {% if is_granted('ROLE_SUPER_ADMIN') %} | 13 | {% if is_granted('ROLE_SUPER_ADMIN') %} |
12 | {% 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 %} | 14 | {{ 'import.pocket.config_missing.admin_message'|trans({'%keyurls%': '<a href="' ~ path('craue_config_settings_modify') ~ '#set-import">', '%keyurle%':'</a>'})|raw }} |
13 | {% else %} | 15 | {% else %} |
14 | {% trans %}Your server admin needs to define an API Key for Pocket.{% endtrans %} | 16 | {{ 'import.pocket.config_missing.user_message'|trans }} |
15 | {% endif %} | 17 | {% endif %} |
16 | </div> | 18 | </div> |
17 | {% endif %} | 19 | {% endif %} |
18 | 20 | ||
19 | <blockquote>{{ import.description|trans }}</blockquote> | 21 | <blockquote>{{ import.description|trans }}</blockquote> |
20 | <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> | 22 | <p>{{ 'import.pocket.authorize_message'|trans }}</p> |
23 | |||
21 | <form method="post" action="{{ path('import_pocket_auth') }}"> | 24 | <form method="post" action="{{ path('import_pocket_auth') }}"> |
22 | <div class="row"> | 25 | <div class="row"> |
23 | <div class="input-field col s6 with-checkbox"> | 26 | <div class="input-field col s6 with-checkbox"> |
24 | <h6>{% trans %}Mark all as read ?{% endtrans %}</h6> | 27 | <h6>{{ 'import.form.mark_as_read_title'|trans }}</h6> |
25 | {{ form_widget(form.read) }} | 28 | {{ form_widget(form.mark_as_read) }} |
26 | <label for="form_read">{% trans %}Mark all imported entries as read{% endtrans %}</label> | 29 | {{ form_label(form.mark_as_read) }} |
30 | </div> | ||
27 | </div> | 31 | </div> |
28 | </div> | ||
29 | <button class="btn waves-effect waves-light" type="submit" name="action"> | 32 | <button class="btn waves-effect waves-light" type="submit" name="action"> |
30 | {% trans %}Connect to Pocket and import data{% endtrans %} | 33 | {{ 'import.pocket.connect_to_pocket'|trans }} |
31 | </button> | 34 | </button> |
32 | </form> | 35 | </form> |
33 | </div> | 36 | </div> |
diff --git a/src/Wallabag/ImportBundle/Resources/views/WallabagV1/index.html.twig b/src/Wallabag/ImportBundle/Resources/views/WallabagV1/index.html.twig index a418ed1c..13e24c8c 100644 --- a/src/Wallabag/ImportBundle/Resources/views/WallabagV1/index.html.twig +++ b/src/Wallabag/ImportBundle/Resources/views/WallabagV1/index.html.twig | |||
@@ -1,5 +1,6 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | {% block title %}{% trans %}Import > Wallabag v1{% endtrans %}{% endblock %} | 2 | |
3 | {% block title %}{{ 'import.wallabag_v1.page_title'|trans }}{% endblock %} | ||
3 | 4 | ||
4 | {% block content %} | 5 | {% block content %} |
5 | <div class="row"> | 6 | <div class="row"> |
@@ -7,7 +8,8 @@ | |||
7 | <div class="card-panel settings"> | 8 | <div class="card-panel settings"> |
8 | <div class="row"> | 9 | <div class="row"> |
9 | <blockquote>{{ import.description|trans }}</blockquote> | 10 | <blockquote>{{ import.description|trans }}</blockquote> |
10 | <p>{% trans %}Please select your wallabag export and click on the below button to upload and import it.{% endtrans %}</p> | 11 | <p>{{ 'import.wallabag_v1.how_to'|trans }}</p> |
12 | |||
11 | <div class="col s12"> | 13 | <div class="col s12"> |
12 | {{ form_start(form, {'method': 'POST'}) }} | 14 | {{ form_start(form, {'method': 'POST'}) }} |
13 | {{ form_errors(form) }} | 15 | {{ form_errors(form) }} |
@@ -15,7 +17,7 @@ | |||
15 | <div class="file-field input-field col s12"> | 17 | <div class="file-field input-field col s12"> |
16 | {{ form_errors(form.file) }} | 18 | {{ form_errors(form.file) }} |
17 | <div class="btn"> | 19 | <div class="btn"> |
18 | <span>{% trans %}File{% endtrans %}</span> | 20 | <span>{{ form.file.vars.label|trans }}</span> |
19 | {{ form_widget(form.file) }} | 21 | {{ form_widget(form.file) }} |
20 | </div> | 22 | </div> |
21 | <div class="file-path-wrapper"> | 23 | <div class="file-path-wrapper"> |
@@ -23,15 +25,15 @@ | |||
23 | </div> | 25 | </div> |
24 | </div> | 26 | </div> |
25 | <div class="input-field col s6 with-checkbox"> | 27 | <div class="input-field col s6 with-checkbox"> |
26 | <h6>{% trans %}Mark all as read ?{% endtrans %}</h6> | 28 | <h6>{{ 'import.form.mark_as_read_title'|trans }}</h6> |
27 | {{ form_widget(form.mark_as_read) }} | 29 | {{ form_widget(form.mark_as_read) }} |
28 | <label for="upload_import_file_mark_as_read">{% trans %}Mark all imported entries as read{% endtrans %}</label> | 30 | {{ form_label(form.mark_as_read) }} |
29 | </div> | 31 | </div> |
30 | </div> | 32 | </div> |
31 | <div class="hidden">{{ form_rest(form) }}</div> | 33 | |
32 | <button class="btn waves-effect waves-light" type="submit" name="action"> | 34 | {{ form_widget(form.save, { 'attr': {'class': 'btn waves-effect waves-light'} }) }} |
33 | {% trans %}Upload file{% endtrans %} | 35 | |
34 | </button> | 36 | {{ form_rest(form) }} |
35 | </form> | 37 | </form> |
36 | </div> | 38 | </div> |
37 | </div> | 39 | </div> |
diff --git a/src/Wallabag/ImportBundle/Resources/views/WallabagV2/index.html.twig b/src/Wallabag/ImportBundle/Resources/views/WallabagV2/index.html.twig index 78fe67e4..c2905fc6 100644 --- a/src/Wallabag/ImportBundle/Resources/views/WallabagV2/index.html.twig +++ b/src/Wallabag/ImportBundle/Resources/views/WallabagV2/index.html.twig | |||
@@ -1,2 +1,3 @@ | |||
1 | {% extends "WallabagImportBundle:WallabagV1:index.html.twig" %} | 1 | {% extends "WallabagImportBundle:WallabagV1:index.html.twig" %} |
2 | {% block title %}{% trans %}Import > Wallabag v2{% endtrans %}{% endblock %} | 2 | |
3 | {% block title %}{{ 'import.wallabag_v2.page_title'|trans }}{% endblock %} | ||
diff --git a/src/Wallabag/ImportBundle/Tests/Controller/WallabagV1ControllerTest.php b/src/Wallabag/ImportBundle/Tests/Controller/WallabagV1ControllerTest.php index 7f97b0f5..6c876b3b 100644 --- a/src/Wallabag/ImportBundle/Tests/Controller/WallabagV1ControllerTest.php +++ b/src/Wallabag/ImportBundle/Tests/Controller/WallabagV1ControllerTest.php | |||
@@ -54,8 +54,8 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase | |||
54 | 54 | ||
55 | $this->assertTrue($content->getTags()->contains($tag)); | 55 | $this->assertTrue($content->getTags()->contains($tag)); |
56 | 56 | ||
57 | $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text'))); | 57 | $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text'))); |
58 | $this->assertContains('Import summary', $alert[0]); | 58 | $this->assertContains('Import summary', $body[0]); |
59 | } | 59 | } |
60 | 60 | ||
61 | public function testImportWallabagWithFileAndMarkAllAsRead() | 61 | public function testImportWallabagWithFileAndMarkAllAsRead() |
@@ -99,7 +99,8 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase | |||
99 | 99 | ||
100 | $this->assertTrue($content2->isArchived()); | 100 | $this->assertTrue($content2->isArchived()); |
101 | 101 | ||
102 | $this->assertContains('Import summary', $client->getResponse()->getContent()); | 102 | $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text'))); |
103 | $this->assertContains('Import summary', $body[0]); | ||
103 | } | 104 | } |
104 | 105 | ||
105 | public function testImportWallabagWithEmptyFile() | 106 | public function testImportWallabagWithEmptyFile() |
@@ -122,7 +123,7 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase | |||
122 | 123 | ||
123 | $crawler = $client->followRedirect(); | 124 | $crawler = $client->followRedirect(); |
124 | 125 | ||
125 | $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text'))); | 126 | $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text'))); |
126 | $this->assertContains('Import failed, please try again', $alert[0]); | 127 | $this->assertContains('Import failed, please try again', $body[0]); |
127 | } | 128 | } |
128 | } | 129 | } |
diff --git a/src/Wallabag/ImportBundle/Tests/Controller/WallabagV2ControllerTest.php b/src/Wallabag/ImportBundle/Tests/Controller/WallabagV2ControllerTest.php index 617c0517..58baa836 100644 --- a/src/Wallabag/ImportBundle/Tests/Controller/WallabagV2ControllerTest.php +++ b/src/Wallabag/ImportBundle/Tests/Controller/WallabagV2ControllerTest.php | |||
@@ -39,8 +39,8 @@ class WallabagV2ControllerTest extends WallabagCoreTestCase | |||
39 | 39 | ||
40 | $crawler = $client->followRedirect(); | 40 | $crawler = $client->followRedirect(); |
41 | 41 | ||
42 | $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text'))); | 42 | $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text'))); |
43 | $this->assertContains('Import summary', $alert[0]); | 43 | $this->assertContains('Import summary', $body[0]); |
44 | 44 | ||
45 | $content = $client->getContainer() | 45 | $content = $client->getContainer() |
46 | ->get('doctrine.orm.entity_manager') | 46 | ->get('doctrine.orm.entity_manager') |
@@ -87,7 +87,7 @@ class WallabagV2ControllerTest extends WallabagCoreTestCase | |||
87 | 87 | ||
88 | $crawler = $client->followRedirect(); | 88 | $crawler = $client->followRedirect(); |
89 | 89 | ||
90 | $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text'))); | 90 | $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(array('_text'))); |
91 | $this->assertContains('Import failed, please try again', $alert[0]); | 91 | $this->assertContains('Import failed, please try again', $body[0]); |
92 | } | 92 | } |
93 | } | 93 | } |
diff --git a/src/Wallabag/ImportBundle/Tests/Import/PocketImportTest.php b/src/Wallabag/ImportBundle/Tests/Import/PocketImportTest.php index 450cdc95..43b60ec3 100644 --- a/src/Wallabag/ImportBundle/Tests/Import/PocketImportTest.php +++ b/src/Wallabag/ImportBundle/Tests/Import/PocketImportTest.php | |||
@@ -85,7 +85,7 @@ class PocketImportTest extends \PHPUnit_Framework_TestCase | |||
85 | 85 | ||
86 | $this->assertEquals('Pocket', $pocketImport->getName()); | 86 | $this->assertEquals('Pocket', $pocketImport->getName()); |
87 | $this->assertNotEmpty($pocketImport->getUrl()); | 87 | $this->assertNotEmpty($pocketImport->getUrl()); |
88 | $this->assertContains('This importer will import all your Pocket data.', $pocketImport->getDescription()); | 88 | $this->assertEquals('import.pocket.description', $pocketImport->getDescription()); |
89 | } | 89 | } |
90 | 90 | ||
91 | public function testOAuthRequest() | 91 | public function testOAuthRequest() |
diff --git a/src/Wallabag/ImportBundle/Tests/Import/WallabagV1ImportTest.php b/src/Wallabag/ImportBundle/Tests/Import/WallabagV1ImportTest.php index 8ab7e830..496cf2d3 100644 --- a/src/Wallabag/ImportBundle/Tests/Import/WallabagV1ImportTest.php +++ b/src/Wallabag/ImportBundle/Tests/Import/WallabagV1ImportTest.php | |||
@@ -45,7 +45,7 @@ class WallabagV1ImportTest extends \PHPUnit_Framework_TestCase | |||
45 | 45 | ||
46 | $this->assertEquals('wallabag v1', $wallabagV1Import->getName()); | 46 | $this->assertEquals('wallabag v1', $wallabagV1Import->getName()); |
47 | $this->assertNotEmpty($wallabagV1Import->getUrl()); | 47 | $this->assertNotEmpty($wallabagV1Import->getUrl()); |
48 | $this->assertContains('This importer will import all your wallabag v1 articles.', $wallabagV1Import->getDescription()); | 48 | $this->assertEquals('import.wallabag_v1.description', $wallabagV1Import->getDescription()); |
49 | } | 49 | } |
50 | 50 | ||
51 | public function testImport() | 51 | public function testImport() |
diff --git a/src/Wallabag/ImportBundle/Tests/Import/WallabagV2ImportTest.php b/src/Wallabag/ImportBundle/Tests/Import/WallabagV2ImportTest.php index 2b642d27..341b1076 100644 --- a/src/Wallabag/ImportBundle/Tests/Import/WallabagV2ImportTest.php +++ b/src/Wallabag/ImportBundle/Tests/Import/WallabagV2ImportTest.php | |||
@@ -45,7 +45,7 @@ class WallabagV2ImportTest extends \PHPUnit_Framework_TestCase | |||
45 | 45 | ||
46 | $this->assertEquals('wallabag v2', $wallabagV2Import->getName()); | 46 | $this->assertEquals('wallabag v2', $wallabagV2Import->getName()); |
47 | $this->assertNotEmpty($wallabagV2Import->getUrl()); | 47 | $this->assertNotEmpty($wallabagV2Import->getUrl()); |
48 | $this->assertContains('This importer will import all your wallabag v2 articles.', $wallabagV2Import->getDescription()); | 48 | $this->assertEquals('import.wallabag_v2.description', $wallabagV2Import->getDescription()); |
49 | } | 49 | } |
50 | 50 | ||
51 | public function testImport() | 51 | public function testImport() |
diff --git a/src/Wallabag/UserBundle/Resources/translations/wallabag_user.en.yml b/src/Wallabag/UserBundle/Resources/translations/wallabag_user.en.yml index 4da6075f..85f2ea9c 100644 --- a/src/Wallabag/UserBundle/Resources/translations/wallabag_user.en.yml +++ b/src/Wallabag/UserBundle/Resources/translations/wallabag_user.en.yml | |||
@@ -1,7 +1,11 @@ | |||
1 | # Two factor mail | 1 | # Two factor mail |
2 | auth_code.mailer.subject: 'Wallabag authentication Code' | 2 | auth_code: |
3 | auth_code.mailer.body.hello: "Hi %user%," | 3 | on: 'on' |
4 | 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." | 4 | mailer: |
5 | auth_code.mailer.body.second_para: "Here is the code:" | 5 | subject: 'Wallabag authentication Code' |
6 | auth_code.mailer.body.support: "Please don't hesitate to contact us if you have any problems:" | 6 | body: |
7 | auth_code.mailer.body.signature: "The wallabag team" | 7 | hello: "Hi %user%," |
8 | 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." | ||
9 | second_para: "Here is the code:" | ||
10 | support: "Please don't hesitate to contact us if you have any problems:" | ||
11 | signature: "The wallabag team" | ||
diff --git a/src/Wallabag/UserBundle/Resources/translations/wallabag_user.fr.yml b/src/Wallabag/UserBundle/Resources/translations/wallabag_user.fr.yml index b4448d3a..30ab5dd9 100644 --- a/src/Wallabag/UserBundle/Resources/translations/wallabag_user.fr.yml +++ b/src/Wallabag/UserBundle/Resources/translations/wallabag_user.fr.yml | |||
@@ -1,7 +1,11 @@ | |||
1 | # Two factor mail | 1 | # Two factor mail |
2 | auth_code.mailer.subject: "Code d'authentification wallabag" | 2 | auth_code: |
3 | auth_code.mailer.body.hello: "Bonjour %user%," | 3 | on: 'sur' |
4 | 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." | 4 | mailer: |
5 | auth_code.mailer.body.second_para: "Voici le code à renseigner :" | 5 | subject: "Code d'authentification wallabag" |
6 | auth_code.mailer.body.support: "Si vous avez un problème de connexion, n'hésitez pas à contacter le support :" | 6 | body: |
7 | auth_code.mailer.body.signature: "L'équipe wallabag" | 7 | hello: "Bonjour %user%," |
8 | 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." | ||
9 | second_para: "Voici le code à renseigner :" | ||
10 | support: "Si vous avez un problème de connexion, n'hésitez pas à contacter le support :" | ||
11 | signature: "L'équipe wallabag" | ||
diff --git a/src/Wallabag/UserBundle/Resources/translations/wallabag_user.tr.yml b/src/Wallabag/UserBundle/Resources/translations/wallabag_user.tr.yml index d1fcb0e0..70646355 100644 --- a/src/Wallabag/UserBundle/Resources/translations/wallabag_user.tr.yml +++ b/src/Wallabag/UserBundle/Resources/translations/wallabag_user.tr.yml | |||
@@ -1,7 +1,11 @@ | |||
1 | # Two factor mail | 1 | # Two factor mail |
2 | auth_code.mailer.subject: 'Wallabag DoÄŸrulama Kodu' | 2 | auth_code: |
3 | auth_code.mailer.body.hello: "Merhaba %user%," | 3 | on: 'on' |
4 | 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." | 4 | mailer: |
5 | auth_code.mailer.body.second_para: "Bu işlem için doğrulama kodunuz:" | 5 | subject: 'Wallabag Doğrulama Kodu' |
6 | auth_code.mailer.body.support: "Eğer herhangi bir soru/sorununuz varsa, bizimle iletişime geçmekten çekinmeyin:" | 6 | body: |
7 | auth_code.mailer.body.signature: "wallabag ekibi" | 7 | hello: "Merhaba %user%," |
8 | 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." | ||
9 | second_para: "Bu işlem için doğrulama kodunuz:" | ||
10 | support: "Eğer herhangi bir soru/sorununuz varsa, bizimle iletişime geçmekten çekinmeyin:" | ||
11 | signature: "wallabag ekibi" | ||
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/material/Authentication/form.html.twig b/src/Wallabag/UserBundle/Resources/views/Authentication/form.html.twig index fa0e3dc1..acf69196 100644 --- a/src/Wallabag/UserBundle/Resources/views/themes/material/Authentication/form.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/Authentication/form.html.twig | |||
@@ -23,7 +23,7 @@ | |||
23 | </div> | 23 | </div> |
24 | </div> | 24 | </div> |
25 | <div class="card-action center"> | 25 | <div class="card-action center"> |
26 | <a href="{{ path('fos_user_security_logout') }}" class="waves-effect waves-light grey btn"><i class="material-icons left"></i> {% trans %}Cancel{% endtrans %}</a> | 26 | <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> |
27 | <button class="btn waves-effect waves-light" type="submit" name="send"> | 27 | <button class="btn waves-effect waves-light" type="submit" name="send"> |
28 | {{ "scheb_two_factor.login"|trans }} | 28 | {{ "scheb_two_factor.login"|trans }} |
29 | <i class="mdi-content-send right"></i> | 29 | <i class="mdi-content-send right"></i> |
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/material/ChangePassword/changePassword_content.html.twig b/src/Wallabag/UserBundle/Resources/views/ChangePassword/changePassword_content.html.twig index abb68421..abb68421 100644 --- a/src/Wallabag/UserBundle/Resources/views/themes/material/ChangePassword/changePassword_content.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/ChangePassword/changePassword_content.html.twig | |||
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/material/Registration/checkEmail.html.twig b/src/Wallabag/UserBundle/Resources/views/Registration/checkEmail.html.twig index 50937276..50937276 100644 --- a/src/Wallabag/UserBundle/Resources/views/themes/material/Registration/checkEmail.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/Registration/checkEmail.html.twig | |||
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/material/Registration/confirmed.html.twig b/src/Wallabag/UserBundle/Resources/views/Registration/confirmed.html.twig index c6d4d3d2..674eb217 100644 --- a/src/Wallabag/UserBundle/Resources/views/themes/material/Registration/confirmed.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/Registration/confirmed.html.twig | |||
@@ -11,7 +11,7 @@ | |||
11 | {% endif %} | 11 | {% endif %} |
12 | </div> | 12 | </div> |
13 | <div class="card-action center"> | 13 | <div class="card-action center"> |
14 | <a href="{{ path('homepage') }}" class="waves-effect waves-light btn"><i class="material-icons left"></i> {% trans %}Go to your account{% endtrans %}</a> | 14 | <a href="{{ path('homepage') }}" class="waves-effect waves-light btn"><i class="material-icons left"></i> {{ 'security.register.go_to_account'|trans }}</a> |
15 | </div> | 15 | </div> |
16 | </div> | 16 | </div> |
17 | {% endblock fos_user_content %} | 17 | {% endblock fos_user_content %} |
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/material/Registration/register_content.html.twig b/src/Wallabag/UserBundle/Resources/views/Registration/register_content.html.twig index e92b515e..7d2b45d4 100644 --- a/src/Wallabag/UserBundle/Resources/views/themes/material/Registration/register_content.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/Registration/register_content.html.twig | |||
@@ -36,7 +36,7 @@ | |||
36 | </div> | 36 | </div> |
37 | </div> | 37 | </div> |
38 | <div class="card-action center"> | 38 | <div class="card-action center"> |
39 | <a href="{{ path('fos_user_security_login') }}" class="waves-effect waves-light grey btn"><i class="material-icons left"></i> {% trans %}Login{% endtrans %}</a> | 39 | <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> |
40 | <button class="btn waves-effect waves-light" type="submit" name="send"> | 40 | <button class="btn waves-effect waves-light" type="submit" name="send"> |
41 | {{ 'registration.submit'|trans({}, 'FOSUserBundle') }} | 41 | {{ 'registration.submit'|trans({}, 'FOSUserBundle') }} |
42 | <i class="mdi-content-send right"></i> | 42 | <i class="mdi-content-send right"></i> |
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/material/Resetting/checkEmail.html.twig b/src/Wallabag/UserBundle/Resources/views/Resetting/checkEmail.html.twig index 66cbdc28..66cbdc28 100644 --- a/src/Wallabag/UserBundle/Resources/views/themes/material/Resetting/checkEmail.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/Resetting/checkEmail.html.twig | |||
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/material/Resetting/passwordAlreadyRequested.html.twig b/src/Wallabag/UserBundle/Resources/views/Resetting/passwordAlreadyRequested.html.twig index 1e245372..1e245372 100644 --- a/src/Wallabag/UserBundle/Resources/views/themes/material/Resetting/passwordAlreadyRequested.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/Resetting/passwordAlreadyRequested.html.twig | |||
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/material/Resetting/request_content.html.twig b/src/Wallabag/UserBundle/Resources/views/Resetting/request_content.html.twig index e871d7be..7a5ac838 100644 --- a/src/Wallabag/UserBundle/Resources/views/themes/material/Resetting/request_content.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/Resetting/request_content.html.twig | |||
@@ -1,8 +1,10 @@ | |||
1 | {% trans_default_domain 'FOSUserBundle' %} | 1 | {% trans_default_domain 'FOSUserBundle' %} |
2 | |||
2 | <form action="{{ path('fos_user_resetting_send_email') }}" method="POST" class="fos_user_resetting_request"> | 3 | <form action="{{ path('fos_user_resetting_send_email') }}" method="POST" class="fos_user_resetting_request"> |
3 | <div class="card-content"> | 4 | <div class="card-content"> |
4 | <div class="row"> | 5 | <div class="row"> |
5 | <p>{% trans %}Enter your email address below and we'll send you password reset instructions.{% endtrans %}</p> | 6 | <p>{{ 'security.resetting.description'|trans({}, "messages") }}</p> |
7 | |||
6 | {% for flashMessage in app.session.flashbag.get('notice') %} | 8 | {% for flashMessage in app.session.flashbag.get('notice') %} |
7 | <span class="black-text"><p>{{ flashMessage }}</p></span> | 9 | <span class="black-text"><p>{{ flashMessage }}</p></span> |
8 | {% endfor %} | 10 | {% endfor %} |
@@ -18,7 +20,9 @@ | |||
18 | </div> | 20 | </div> |
19 | </div> | 21 | </div> |
20 | <div class="card-action center"> | 22 | <div class="card-action center"> |
21 | <a href="{{ path('fos_user_security_login') }}" class="waves-effect waves-light grey btn"><i class="material-icons left"></i> {% trans %}Login{% endtrans %}</a> | 23 | <a href="{{ path('fos_user_security_login') }}" class="waves-effect waves-light grey btn"> |
24 | <i class="material-icons left"></i> {{ 'security.login.submit'|trans({}, "messages") }} | ||
25 | </a> | ||
22 | <button class="btn waves-effect waves-light" type="submit" name="send"> | 26 | <button class="btn waves-effect waves-light" type="submit" name="send"> |
23 | {{ 'resetting.request.submit'|trans }} | 27 | {{ 'resetting.request.submit'|trans }} |
24 | </button> | 28 | </button> |
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/material/Resetting/reset_content.html.twig b/src/Wallabag/UserBundle/Resources/views/Resetting/reset_content.html.twig index 9d0a061c..9d0a061c 100644 --- a/src/Wallabag/UserBundle/Resources/views/themes/material/Resetting/reset_content.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/Resetting/reset_content.html.twig | |||
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/material/Security/login.html.twig b/src/Wallabag/UserBundle/Resources/views/Security/login.html.twig index 6bf99bf8..982a33b2 100644 --- a/src/Wallabag/UserBundle/Resources/views/themes/material/Security/login.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/Security/login.html.twig | |||
@@ -15,32 +15,32 @@ | |||
15 | <div class="row"> | 15 | <div class="row"> |
16 | 16 | ||
17 | <div class="input-field col s12"> | 17 | <div class="input-field col s12"> |
18 | <label for="username">{% trans %}Username{% endtrans %}</label> | 18 | <label for="username">{{ 'security.login.username'|trans }}</label> |
19 | <input type="text" id="username" name="_username" value="{{ last_username }}" /> | 19 | <input type="text" id="username" name="_username" value="{{ last_username }}" /> |
20 | </div> | 20 | </div> |
21 | 21 | ||
22 | <div class="input-field col s12"> | 22 | <div class="input-field col s12"> |
23 | <label for="password">{% trans %}Password{% endtrans %}</label> | 23 | <label for="password">{{ 'security.login.password'|trans }}</label> |
24 | <input type="password" id="password" name="_password" /> | 24 | <input type="password" id="password" name="_password" /> |
25 | </div> | 25 | </div> |
26 | 26 | ||
27 | <div class="input-field col s12"> | 27 | <div class="input-field col s12"> |
28 | <input type="checkbox" id="remember_me" name="_remember_me" checked /> | 28 | <input type="checkbox" id="remember_me" name="_remember_me" checked /> |
29 | <label for="remember_me">{% trans %}Keep me logged in{% endtrans %}</label> | 29 | <label for="remember_me">{{ 'security.login.keep_logged_in'|trans }}</label> |
30 | </div> | 30 | </div> |
31 | 31 | ||
32 | </div> | 32 | </div> |
33 | </div> | 33 | </div> |
34 | <div class="card-action center"> | 34 | <div class="card-action center"> |
35 | <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}" /> | 35 | <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}" /> |
36 | <a href="{{ path('fos_user_registration_register') }}" class="waves-effect waves-light grey btn"><i class="material-icons left"></i> {% trans %}Register{% endtrans %}</a> | 36 | <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> |
37 | <button class="btn waves-effect waves-light" type="submit" name="send"> | 37 | <button class="btn waves-effect waves-light" type="submit" name="send"> |
38 | {% trans %}Login{% endtrans %} | 38 | {{ 'security.login.submit'|trans }} |
39 | <i class="mdi-content-send right"></i> | 39 | <i class="mdi-content-send right"></i> |
40 | </button> | 40 | </button> |
41 | </div> | 41 | </div> |
42 | <div class="center"> | 42 | <div class="center"> |
43 | <a href="{{ path('fos_user_resetting_request') }}">{% trans %}Forgot your password?{% endtrans %}</a> | 43 | <a href="{{ path('fos_user_resetting_request') }}">{{ 'security.login.forgot_password'|trans }}</a> |
44 | </div> | 44 | </div> |
45 | </form> | 45 | </form> |
46 | {% endblock fos_user_content %} | 46 | {% endblock fos_user_content %} |
diff --git a/src/Wallabag/UserBundle/Resources/views/TwoFactor/email_auth_code.html.twig b/src/Wallabag/UserBundle/Resources/views/TwoFactor/email_auth_code.html.twig index 69d23160..c44fcfb7 100644 --- a/src/Wallabag/UserBundle/Resources/views/TwoFactor/email_auth_code.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/TwoFactor/email_auth_code.html.twig | |||
@@ -77,7 +77,7 @@ | |||
77 | <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> | 77 | <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> |
78 | <td style="padding: 20px; padding-left: 0;" valign="top" id="cell_desc"> | 78 | <td style="padding: 20px; padding-left: 0;" valign="top" id="cell_desc"> |
79 | <h1>wallabag</h1> | 79 | <h1>wallabag</h1> |
80 | <h5>{% trans %}on{% endtrans %} {{ wallabag_url }}</h5> | 80 | <h5>{{ "auth_code.on"|trans({}, 'wallabag_user') }} {{ wallabag_url }}</h5> |
81 | </td> | 81 | </td> |
82 | </tr> | 82 | </tr> |
83 | <tr><td colspan="2" style="padding: 0;"><div style="height: 0; border-top: 1px solid #c5c5c5;"> </div></td></tr> | 83 | <tr><td colspan="2" style="padding: 0;"><div style="height: 0; border-top: 1px solid #c5c5c5;"> </div></td></tr> |
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/material/layout.html.twig b/src/Wallabag/UserBundle/Resources/views/layout.html.twig index cbdc1da2..1d0189ca 100644 --- a/src/Wallabag/UserBundle/Resources/views/themes/material/layout.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/layout.html.twig | |||
@@ -1,6 +1,6 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | 2 | ||
3 | {% block title %}{% trans %}Welcome to wallabag!{% endtrans %}{% endblock %} | 3 | {% block title %}{{ 'security.login.page_title'|trans }}{% endblock %} |
4 | 4 | ||
5 | {% block body_class %}login{% endblock %} | 5 | {% block body_class %}login{% endblock %} |
6 | 6 | ||
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 index 5bb91081..00000000 --- a/src/Wallabag/UserBundle/Resources/views/themes/baggy/Authentication/form.html.twig +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | {% extends "WallabagUserBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block fos_user_content %} | ||
4 | <form class="form" action="" method="post"> | ||
5 | <fieldset class="w500p center"> | ||
6 | {% for flashMessage in app.session.flashbag.get("two_factor") %} | ||
7 | <p class="error">{{ flashMessage|trans }}</p> | ||
8 | {% endfor %} | ||
9 | |||
10 | <div class="row"> | ||
11 | <label for="_auth_code">{{ "scheb_two_factor.auth_code"|trans }}</label> | ||
12 | <input id="_auth_code" type="text" autocomplete="off" name="_auth_code" /> | ||
13 | </div> | ||
14 | |||
15 | {% if useTrustedOption %} | ||
16 | <div class="row"> | ||
17 | <input id="_trusted" type="checkbox" name="_trusted" /> | ||
18 | <label for="_trusted">{{ "scheb_two_factor.trusted"|trans }}</label> | ||
19 | </div> | ||
20 | {% endif %} | ||
21 | |||
22 | <div class="row mts txtcenter"> | ||
23 | <a href="{{ path('fos_user_security_logout') }}" class="waves-effect waves-light grey btn"><i class="material-icons left"></i> {% trans %}Cancel{% endtrans %}</a> | ||
24 | <button type="submit" name="send"> | ||
25 | {{ "scheb_two_factor.login"|trans }} | ||
26 | <i class="mdi-content-send right"></i> | ||
27 | </button> | ||
28 | </div> | ||
29 | </fieldset> | ||
30 | |||
31 | </form> | ||
32 | {% 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 index 2713bf45..00000000 --- a/src/Wallabag/UserBundle/Resources/views/themes/baggy/Registration/register.html.twig +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{% trans %}create an account{% endtrans %}{% endblock %} | ||
4 | |||
5 | {% block body_class %}login{% endblock %} | ||
6 | |||
7 | {% block menu %}{% endblock %} | ||
8 | {% block messages %}{% endblock %} | ||
9 | |||
10 | {% block content %} | ||
11 | {{ form_start(form) }} | ||
12 | <fieldset class="w500p center"> | ||
13 | <h2 class="mbs txtcenter">{% trans %}create an account{% endtrans %}</h2> | ||
14 | {% include "FOSUserBundle:Registration:register_content.html.twig" %} | ||
15 | </fieldset> | ||
16 | </form> | ||
17 | {% endblock %} | ||
18 | |||
19 | {% block footer %} | ||
20 | {% 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 index 41f94006..00000000 --- a/src/Wallabag/UserBundle/Resources/views/themes/baggy/Registration/register_content.html.twig +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | {% trans_default_domain 'FOSUserBundle' %} | ||
2 | |||
3 | {{ form_widget(form._token) }} | ||
4 | |||
5 | {% for flashMessage in app.session.flashbag.get('notice') %} | ||
6 | <span><p>{{ flashMessage }}</p></span> | ||
7 | {% endfor %} | ||
8 | |||
9 | <div class="row"> | ||
10 | {{ form_errors(form.email) }} | ||
11 | {{ form_label(form.email) }} | ||
12 | {{ form_widget(form.email) }} | ||
13 | </div> | ||
14 | |||
15 | <div class="row"> | ||
16 | {{ form_errors(form.username) }} | ||
17 | {{ form_label(form.username) }} | ||
18 | {{ form_widget(form.username) }} | ||
19 | </div> | ||
20 | |||
21 | <div class="row"> | ||
22 | {{ form_errors(form.plainPassword.first) }} | ||
23 | {{ form_label(form.plainPassword.first) }} | ||
24 | {{ form_widget(form.plainPassword.first) }} | ||
25 | </div> | ||
26 | |||
27 | <div class="row"> | ||
28 | {{ form_errors(form.plainPassword.second) }} | ||
29 | {{ form_label(form.plainPassword.second) }} | ||
30 | {{ form_widget(form.plainPassword.second) }} | ||
31 | </div> | ||
32 | |||
33 | |||
34 | <div class="row mts txtcenter"> | ||
35 | <button type="submit">{{ 'registration.submit'|trans({}, 'FOSUserBundle') }}</button> | ||
36 | <a href="{{ path('fos_user_security_login') }}" class="button">{% trans %}Login{% endtrans %}</a> | ||
37 | </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 index 056d65b5..00000000 --- a/src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/checkEmail.html.twig +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{% trans %}Forgot password{% endtrans %}{% endblock %} | ||
4 | |||
5 | {% block body_class %}login{% endblock %} | ||
6 | |||
7 | {% block menu %}{% endblock %} | ||
8 | |||
9 | {% block content %} | ||
10 | <form> | ||
11 | <fieldset class="w500p center"> | ||
12 | <h2 class="mbs txtcenter">{% trans %}Forgot password{% endtrans %}</h2> | ||
13 | |||
14 | <p>{{ 'An email has been sent to %email%. It contains a link you must click to reset your password.'|trans({'%email%': email}) }}</p> | ||
15 | </fieldset> | ||
16 | </form> | ||
17 | {% 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 index 10094e83..00000000 --- a/src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/request.html.twig +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{% trans %}Forgot password{% endtrans %}{% endblock %} | ||
4 | |||
5 | {% block body_class %}login{% endblock %} | ||
6 | |||
7 | {% block menu %}{% endblock %} | ||
8 | {% block messages %}{% endblock %} | ||
9 | |||
10 | {% block content %} | ||
11 | <form action="{{ path('fos_user_resetting_send_email') }}" method="post" name="forgotPasswordform"> | ||
12 | <fieldset class="w500p center"> | ||
13 | <h2 class="mbs txtcenter">{% trans %}Forgot password{% endtrans %}</h2> | ||
14 | {% include "FOSUserBundle:Resetting:request_content.html.twig" %} | ||
15 | </fieldset> | ||
16 | </form> | ||
17 | {% endblock %} | ||
18 | |||
19 | {% block footer %} | ||
20 | {% 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 index 1f8da8d7..00000000 --- a/src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/request_content.html.twig +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | {% trans_default_domain 'FOSUserBundle' %} | ||
2 | |||
3 | {% trans %}Enter your email address below and we'll send you password reset instructions.{% endtrans %} | ||
4 | |||
5 | {% if invalid_username is defined %} | ||
6 | <p>{{ 'resetting.request.invalid_username'|trans({'%username%': invalid_username}) }}</p> | ||
7 | {% endif %} | ||
8 | |||
9 | <div class="row"> | ||
10 | <label for="username">{{ 'resetting.request.username'|trans }}</label> | ||
11 | <input type="text" id="username" name="username" required="required" /> | ||
12 | </div> | ||
13 | |||
14 | <div class="row mts txtcenter"> | ||
15 | <button type="submit">{{ 'resetting.request.submit'|trans }}</button> | ||
16 | <a href="{{ path('fos_user_security_login') }}" class="button">{% trans %}Login{% endtrans %}</a> | ||
17 | </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 index d52c3662..00000000 --- a/src/Wallabag/UserBundle/Resources/views/themes/baggy/Security/login.html.twig +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | {% extends "FOSUserBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block fos_user_content %} | ||
4 | <form action="{{ path('fos_user_security_check') }}" method="post" name="loginform"> | ||
5 | <fieldset class="w500p center"> | ||
6 | <h2 class="mbs txtcenter">{% trans %}Login to wallabag{% endtrans %}</h2> | ||
7 | {% if error %} | ||
8 | <div>{{ error.message }}</div> | ||
9 | {% endif %} | ||
10 | |||
11 | {% for flashMessage in app.session.flashbag.get('notice') %} | ||
12 | <p>{{ flashMessage }}</p> | ||
13 | {% endfor %} | ||
14 | |||
15 | <div class="row"> | ||
16 | <label class="col w150p" for="username">{% trans %}Username{% endtrans %}</label> | ||
17 | <input type="text" id="username" name="_username" value="{{ last_username }}" /> | ||
18 | </div> | ||
19 | |||
20 | <div class="row"> | ||
21 | <label class="col w150p" for="password">{% trans %}Password{% endtrans %}</label> | ||
22 | <input type="password" id="password" name="_password" /> | ||
23 | </div> | ||
24 | |||
25 | <div class="row mts txtcenter"> | ||
26 | <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}" /> | ||
27 | <button type="submit">Login</button> | ||
28 | <a href="{{ path('fos_user_registration_register') }}" class="button">{% trans %}Register{% endtrans %}</a> | ||
29 | <a href="{{ path('fos_user_resetting_request') }}" class="small">Forgot your password?</a> | ||
30 | </div> | ||
31 | </fieldset> | ||
32 | </form> | ||
33 | {% 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 index 60b321bf..00000000 --- a/src/Wallabag/UserBundle/Resources/views/themes/baggy/layout.html.twig +++ /dev/null | |||
@@ -1,16 +0,0 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{% trans %}Welcome to wallabag!{% endtrans %}{% endblock %} | ||
4 | |||
5 | {% block body_class %}login{% endblock %} | ||
6 | |||
7 | {% block menu %}{% endblock %} | ||
8 | {% block messages %}{% endblock %} | ||
9 | |||
10 | {% block content %} | ||
11 | {% block fos_user_content %} | ||
12 | {% endblock fos_user_content %} | ||
13 | {% endblock %} | ||
14 | |||
15 | {% block footer %} | ||
16 | {% endblock %} | ||