aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.travis.yml2
-rw-r--r--app/config/config.yml1
-rw-r--r--docs/pt-br/conf.py55
-rw-r--r--docs/pt-br/index.rst36
-rw-r--r--docs/pt-br/requirements.txt2
-rw-r--r--src/Wallabag/ApiBundle/Controller/WallabagRestController.php6
-rw-r--r--src/Wallabag/CoreBundle/Command/InstallCommand.php8
-rw-r--r--src/Wallabag/CoreBundle/Controller/EntryController.php20
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.es.yml34
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml298
10 files changed, 195 insertions, 267 deletions
diff --git a/.travis.yml b/.travis.yml
index fc9a38c2..324b236a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -58,4 +58,4 @@ script:
58 - ant prepare-$DB 58 - ant prepare-$DB
59 - bin/phpunit -v 59 - bin/phpunit -v
60 - if [ "$CS_FIXER" = "run" ]; then php bin/php-cs-fixer fix src/ --verbose --dry-run ; fi; 60 - if [ "$CS_FIXER" = "run" ]; then php bin/php-cs-fixer fix src/ --verbose --dry-run ; fi;
61 - if [ "$VALIDATE_TRANSLATION_FILE" = "run" ]; then php bin/console lint:yaml src/Wallabag/CoreBundle/Resources/translations ; fi; 61 - if [ "$VALIDATE_TRANSLATION_FILE" = "run" ]; then php bin/console lint:yaml src/Wallabag/CoreBundle/Resources/translations -v ; fi;
diff --git a/app/config/config.yml b/app/config/config.yml
index a8766694..86188455 100644
--- a/app/config/config.yml
+++ b/app/config/config.yml
@@ -82,6 +82,7 @@ doctrine:
82 password: "%database_password%" 82 password: "%database_password%"
83 charset: UTF8 83 charset: UTF8
84 path: "%database_path%" 84 path: "%database_path%"
85 server_version: 5.6
85 86
86 orm: 87 orm:
87 auto_generate_proxy_classes: "%kernel.debug%" 88 auto_generate_proxy_classes: "%kernel.debug%"
diff --git a/docs/pt-br/conf.py b/docs/pt-br/conf.py
deleted file mode 100644
index 582ad114..00000000
--- a/docs/pt-br/conf.py
+++ /dev/null
@@ -1,55 +0,0 @@
1# -*- coding: utf-8 -*-
2#
3# wallabag documentation build configuration file, created by
4# sphinx-quickstart on Fri Oct 16 06:47:23 2015.
5
6import sys
7import os
8
9extensions = []
10templates_path = ['_templates']
11source_suffix = '.rst'
12master_doc = 'index'
13project = u'wallabag-pt'
14copyright = u'2013-2016, Nicolas Lœuillet - MIT Licence'
15version = '2.0.0'
16release = version
17exclude_patterns = ['_build']
18pygments_style = 'sphinx'
19html_theme = 'default'
20html_static_path = ['_static']
21htmlhelp_basename = 'wallabagfrdoc'
22
23latex_elements = {
24}
25
26latex_documents = [
27 ('index', 'wallabag-pt.tex', u'wallabag Documentation',
28 u'Nicolas Lœuillet', 'manual'),
29]
30
31man_pages = [
32 ('index', 'wallabagpt', u'wallabag Documentation',
33 [u'Nicolas Lœuillet'], 1)
34]
35
36texinfo_documents = [
37 ('index', 'wallabag', u'wallabag Documentation',
38 u'Nicolas Lœuillet', 'wallabag', 'wallabag is an opensource read-it-later.',
39 'Miscellaneous'),
40]
41
42##### Guzzle sphinx theme
43
44import guzzle_sphinx_theme
45html_translator_class = 'guzzle_sphinx_theme.HTMLTranslator'
46html_theme_path = guzzle_sphinx_theme.html_theme_path()
47html_theme = 'guzzle_sphinx_theme'
48
49# Custom sidebar templates, maps document names to template names.
50html_sidebars = {
51 '**': ['logo-text.html', 'globaltoc.html', 'searchbox.html']
52}
53
54# Register the theme as an extension to generate a sitemap.xml
55extensions.append("guzzle_sphinx_theme")
diff --git a/docs/pt-br/index.rst b/docs/pt-br/index.rst
deleted file mode 100644
index c0076d25..00000000
--- a/docs/pt-br/index.rst
+++ /dev/null
@@ -1,36 +0,0 @@
1wallabag documentation
2======================
3
4.. image:: ../img/wallabag.png
5 :alt: wallabag logo
6 :align: center
7
8**wallabag** É uma aplicação "leia mais tarde": Ele salva páginas da web mantendo apenas o conteúdo. Elementos como ícones de navegação ou propaganda são deletedos.
9
10A documentação principal desta aplicação é organizada em duas seções:
11
12* :ref:`doc-usuario`
13* :ref:`doc-desenvolvedor`
14
15.. _user-docs:
16
17.. toctree::
18 :maxdepth: 2
19 :caption: Documentação do usuário
20
21 user/criar_conta
22 user/login
23 user/configuração
24 user/primeiro_artigo
25 user/importar
26 user/baixar_artigos
27 user/filtros
28 user/tags
29
30.. _dev-docs:
31
32.. toctree::
33 :maxdepth: 2
34 :caption: Documentação do desenvolvedor
35
36 developer/docker
diff --git a/docs/pt-br/requirements.txt b/docs/pt-br/requirements.txt
deleted file mode 100644
index 06fc8973..00000000
--- a/docs/pt-br/requirements.txt
+++ /dev/null
@@ -1,2 +0,0 @@
1Sphinx>=1.3.0,<1.4.0
2guzzle_sphinx_theme>=0.7.0,<0.8.0
diff --git a/src/Wallabag/ApiBundle/Controller/WallabagRestController.php b/src/Wallabag/ApiBundle/Controller/WallabagRestController.php
index 744e1a60..da671a61 100644
--- a/src/Wallabag/ApiBundle/Controller/WallabagRestController.php
+++ b/src/Wallabag/ApiBundle/Controller/WallabagRestController.php
@@ -43,8 +43,8 @@ class WallabagRestController extends FOSRestController
43 { 43 {
44 $this->validateAuthentication(); 44 $this->validateAuthentication();
45 45
46 $isArchived = (int) $request->query->get('archive'); 46 $isArchived = (null === $request->query->get('archive')) ? null : (bool) $request->query->get('archive');
47 $isStarred = (int) $request->query->get('starred'); 47 $isStarred = (null === $request->query->get('starred')) ? null : (bool) $request->query->get('starred');
48 $sort = $request->query->get('sort', 'created'); 48 $sort = $request->query->get('sort', 'created');
49 $order = $request->query->get('order', 'desc'); 49 $order = $request->query->get('order', 'desc');
50 $page = (int) $request->query->get('page', 1); 50 $page = (int) $request->query->get('page', 1);
@@ -52,7 +52,7 @@ class WallabagRestController extends FOSRestController
52 52
53 $pager = $this->getDoctrine() 53 $pager = $this->getDoctrine()
54 ->getRepository('WallabagCoreBundle:Entry') 54 ->getRepository('WallabagCoreBundle:Entry')
55 ->findEntries($this->getUser()->getId(), (bool) $isArchived, (bool) $isStarred, $sort, $order); 55 ->findEntries($this->getUser()->getId(), $isArchived, $isStarred, $sort, $order);
56 56
57 $pager->setCurrentPage($page); 57 $pager->setCurrentPage($page);
58 $pager->setMaxPerPage($perPage); 58 $pager->setMaxPerPage($perPage);
diff --git a/src/Wallabag/CoreBundle/Command/InstallCommand.php b/src/Wallabag/CoreBundle/Command/InstallCommand.php
index c5a5a519..2e4a59df 100644
--- a/src/Wallabag/CoreBundle/Command/InstallCommand.php
+++ b/src/Wallabag/CoreBundle/Command/InstallCommand.php
@@ -455,7 +455,13 @@ class InstallCommand extends ContainerAwareCommand
455 return false; 455 return false;
456 } 456 }
457 457
458 return in_array($databaseName, $schemaManager->listDatabases()); 458 try {
459 return in_array($databaseName, $schemaManager->listDatabases());
460 } catch (\Doctrine\DBAL\Exception\ConnectionException $e) {
461 // it means we weren't able to get database list, assume the database doesn't exist
462
463 return false;
464 }
459 } 465 }
460 466
461 /** 467 /**
diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php
index fa633031..cba58858 100644
--- a/src/Wallabag/CoreBundle/Controller/EntryController.php
+++ b/src/Wallabag/CoreBundle/Controller/EntryController.php
@@ -49,8 +49,7 @@ class EntryController extends Controller
49 $form->handleRequest($request); 49 $form->handleRequest($request);
50 50
51 if ($form->isValid()) { 51 if ($form->isValid()) {
52 // check for existing entry, if it exists, redirect to it with a message 52 $existingEntry = $this->checkIfEntryAlreadyExists($entry);
53 $existingEntry = $this->get('wallabag_core.entry_repository')->findByUrlAndUserId($entry->getUrl(), $this->getUser()->getId());
54 53
55 if (false !== $existingEntry) { 54 if (false !== $existingEntry) {
56 $this->get('session')->getFlashBag()->add( 55 $this->get('session')->getFlashBag()->add(
@@ -86,7 +85,10 @@ class EntryController extends Controller
86 { 85 {
87 $entry = new Entry($this->getUser()); 86 $entry = new Entry($this->getUser());
88 $entry->setUrl($request->get('url')); 87 $entry->setUrl($request->get('url'));
89 $this->updateEntry($entry); 88
89 if (false === $this->checkIfEntryAlreadyExists($entry)) {
90 $this->updateEntry($entry);
91 }
90 92
91 return $this->redirect($this->generateUrl('homepage')); 93 return $this->redirect($this->generateUrl('homepage'));
92 } 94 }
@@ -420,4 +422,16 @@ class EntryController extends Controller
420 throw $this->createAccessDeniedException('You can not access this entry.'); 422 throw $this->createAccessDeniedException('You can not access this entry.');
421 } 423 }
422 } 424 }
425
426 /**
427 * Check for existing entry, if it exists, redirect to it with a message.
428 *
429 * @param $entry
430 *
431 * @return array|bool
432 */
433 private function checkIfEntryAlreadyExists($entry)
434 {
435 return $this->get('wallabag_core.entry_repository')->findByUrlAndUserId($entry->getUrl(), $this->getUser()->getId());
436 }
423} 437}
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
index a8fcbcf6..3e847b35 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
@@ -19,9 +19,9 @@ menu:
19 unread: 'Sin leer' 19 unread: 'Sin leer'
20 starred: 'Favoritos' 20 starred: 'Favoritos'
21 archive: 'Archivo' 21 archive: 'Archivo'
22 all_articles: 'Todos los artículos' 22 all_articles: 'Todos artículos'
23 config: 'Configuración' 23 config: 'Configuración'
24 tags: 'Tags' 24 tags: 'Etiquetas'
25 internal_settings: 'Configuración interna' 25 internal_settings: 'Configuración interna'
26 import: 'Importar' 26 import: 'Importar'
27 howto: 'Ayuda' 27 howto: 'Ayuda'
@@ -62,18 +62,18 @@ config:
62 items_per_page_label: 'Número de artículos por página' 62 items_per_page_label: 'Número de artículos por página'
63 language_label: 'Idioma' 63 language_label: 'Idioma'
64 reading_speed: 64 reading_speed:
65 # label: 'Reading speed' 65 label: 'Velocidad de leer'
66 # help_message: 'You can use online tools to estimate your reading speed:' 66 help_message: 'Se puede usar las técnicas para calcular su velocidad de leer:'
67 # 100_word: 'I read ~100 words per minute' 67 100_word: 'Leo ~100 palabras por minuto'
68 # 200_word: 'I read ~200 words per minute' 68 200_word: 'Leo ~200 palabras por minuto'
69 # 300_word: 'I read ~300 words per minute' 69 300_word: 'Leo ~300 palabras por minuto'
70 # 400_word: 'I read ~400 words per minute' 70 400_word: 'Leo ~400 palabras por minuto'
71 form_rss: 71 form_rss:
72 description: 'Los feeds RSS de wallabag permiten leer los artículos guardados con su lector RSS favorito. Necesita generar un token primero' 72 description: 'Los feeds RSS de wallabag permiten leer los artículos guardados con su lector RSS favorito. Necesita generar un token primero'
73 token_label: 'RSS token' 73 token_label: 'RSS token'
74 # no_token: 'No token' 74 # no_token: 'No token'
75 token_create: 'Crear token' 75 token_create: 'Crear token'
76 token_reset: 'Resetear token' 76 token_reset: 'Reiniciar token'
77 rss_links: 'URL de su feed RSS' 77 rss_links: 'URL de su feed RSS'
78 rss_link: 78 rss_link:
79 unread: 'sin leer' 79 unread: 'sin leer'
@@ -90,17 +90,17 @@ config:
90 new_password_label: 'Nueva contraseña' 90 new_password_label: 'Nueva contraseña'
91 repeat_new_password_label: 'Confirmar la nueva contraseña' 91 repeat_new_password_label: 'Confirmar la nueva contraseña'
92 form_rules: 92 form_rules:
93 # if_label: 'if' 93 if_label: 'si'
94 # then_tag_as_label: 'then tag as' 94 then_tag_as_label: 'Etiquete como'
95 # delete_rule_label: 'delete' 95 delete_rule_label: 'Borre'
96 rule_label: 'Regla' 96 rule_label: 'Regla'
97 tags_label: 'Tags' 97 tags_label: 'Etiquetas'
98 faq: 98 faq:
99 title: 'FAQ' 99 title: 'FAQ'
100 tagging_rules_definition_title: '¿Qué significa reglas de etiquetado autómaticas?' 100 tagging_rules_definition_title: '¿Qué significa reglas de etiquetado autómaticas?'
101 tagging_rules_definition_description: 'Son las reglas usadas por Wallabag para etiquetar automáticamente los nuevos artículos.<br />Cáda vez que un nuevo artículo es añadido, todas las reglas de etiquetado automáticas serán usadas para etiquetarlo, ayudandote a clasificar automáticamente los artículos.' 101 tagging_rules_definition_description: 'Son las reglas usadas por Wallabag para etiquetar automáticamente los nuevos artículos.<br />Cada vez que un nuevo artículo sea añadido, todas las reglas de etiquetado automáticas serán usadas para etiquetarlo, ayudándole a clasificar automáticamente los artículos.'
102 how_to_use_them_title: '¿Cómo se utilizan?' 102 how_to_use_them_title: '¿Cómo se utilizan?'
103 # how_to_use_them_description: 'Let assume you want to tag new entries as « <i>short reading</i> » when the reading time is inferior to 3 minutes.<br />In that case, you should put « readingTime &lt;= 3 » in the <i>Rule</i> field and « <i>short reading</i> » in the <i>Tags</i> field.<br />Several tags can added simultaneously by separating them by a comma: « <i>short reading, must read</i> »<br />Complex rules can be written by using predefined operators: if « <i>readingTime &gt;= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, github </i> »' 103 how_to_use_them_description: 'Supongamos que quiere etiquetar nuevos artículos como « <i>lectura corta</i> » cuando el tiempo de leer sea menos de 3 minutos. <br /> En este caso, debe poner Let assume you want to tag new entries as « <i>short reading</i> » when the reading time is inferior to 3 minutes.<br />In that case, you should put « readingTime &lt;= 3 » in the <i>Rule</i> field and « <i>short reading</i> » in the <i>Tags</i> field.<br />Several tags can added simultaneously by separating them by a comma: « <i>short reading, must read</i> »<br />Complex rules can be written by using predefined operators: if « <i>readingTime &gt;= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, github </i> »'
104 variables_available_title: '¿Qué variables y operadores se pueden utilizar para escribir las reglas?' 104 variables_available_title: '¿Qué variables y operadores se pueden utilizar para escribir las reglas?'
105 variables_available_description: 'Las siguientes variables y operadores se pueden utilizar para crear las reglas de etiquetado automáticas:' 105 variables_available_description: 'Las siguientes variables y operadores se pueden utilizar para crear las reglas de etiquetado automáticas:'
106 meaning: 'Significado' 106 meaning: 'Significado'
@@ -301,9 +301,9 @@ quickstart:
301 gitter: 'En Gitter' 301 gitter: 'En Gitter'
302 302
303tag: 303tag:
304 page_title: 'Tags' 304 page_title: 'Etiquetas'
305 list: 305 list:
306 number_on_the_page: '{0} No hay ningun tag.|{1} Hay un tag.|]1,Inf[ Hay %count% tags.' 306 number_on_the_page: '{0} No hay ningun etiqueta.|{1} Hay un etiqueta.|]1,Inf[ Hay %count% etiquetas.'
307 307
308import: 308import:
309 page_title: 'Importar' 309 page_title: 'Importar'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
index 6be7d22e..5788e1fd 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
@@ -1,18 +1,18 @@
1security: 1security:
2 login: 2 login:
3 # page_title: 'Welcome to wallabag!' 3 page_title: 'به wallabag خوش آمدید!'
4 keep_logged_in: 'مرا به خاطر بسپار' 4 keep_logged_in: 'مرا به خاطر بسپار'
5 forgot_password: ' رمزتان را گم کرده‌اید؟' 5 forgot_password: ' رمزتان را گم کرده‌اید؟'
6 submit: 'ورود' 6 submit: 'ورود'
7 # register: 'Register' 7 register: 'نام‌نویسی'
8 username: 'نام کاربری' 8 username: 'نام کاربری'
9 password: 'رمز' 9 password: 'رمز'
10 # cancel: 'Cancel' 10 cancel: 'لغو'
11 resetting: 11 resetting:
12 description: "نشانی ایمیل خود را بنویسید تا راهنمای تغییر رمز را برایتان بفرستیم." 12 description: "نشانی ایمیل خود را بنویسید تا راهنمای تغییر رمز را برایتان بفرستیم."
13 register: 13 register:
14 # page_title: 'Create an account' 14 page_title: 'حساب بسازید'
15 # go_to_account: 'Go to your account' 15 go_to_account: 'حساب خود را ببینید'
16 16
17menu: 17menu:
18 left: 18 left:
@@ -22,28 +22,28 @@ menu:
22 all_articles: 'همه' 22 all_articles: 'همه'
23 config: 'پیکربندی' 23 config: 'پیکربندی'
24 tags: 'برچسب‌ها' 24 tags: 'برچسب‌ها'
25 # internal_settings: 'Internal Settings' 25 internal_settings: 'تنظیمات درونی'
26 # import: 'Import' 26 import: 'درون‌ریزی'
27 howto: 'خودآموز' 27 howto: 'خودآموز'
28 # developer: 'Developer' 28 developer: 'سازندگان'
29 logout: 'خروج' 29 logout: 'خروج'
30 about: 'درباره' 30 about: 'درباره'
31 search: 'جستجو' 31 search: 'جستجو'
32 # save_link: 'Save a link' 32 save_link: 'ذخیرهٔ یک پیوند'
33 back_to_unread: 'بازگشت به خوانده‌نشده‌ها' 33 back_to_unread: 'بازگشت به خوانده‌نشده‌ها'
34 top: 34 top:
35 add_new_entry: 'افزودن مقالهٔ تازه' 35 add_new_entry: 'افزودن مقالهٔ تازه'
36 search: 'جستجو' 36 search: 'جستجو'
37 filter_entries: 'فیلترکردن مقاله‌ها' 37 filter_entries: 'فیلترکردن مقاله‌ها'
38 # export: 'Export' 38 export: 'برون‌بری'
39 search_form: 39 search_form:
40 input_label: 'جستجوی خود را این‌جا بنویسید:' 40 input_label: 'جستجوی خود را این‌جا بنویسید:'
41 41
42footer: 42footer:
43 wallabag: 43 wallabag:
44 # elsewhere: 'Take wallabag with you' 44 elsewhere: 'wallabag همراه شما'
45 # social: 'Social' 45 social: 'شبکه‌های اجتماعی'
46 # powered_by: 'powered by' 46 powered_by: 'توانمند با'
47 about: 'درباره' 47 about: 'درباره'
48 48
49config: 49config:
@@ -53,7 +53,7 @@ config:
53 rss: 'آر-اس-اس' 53 rss: 'آر-اس-اس'
54 user_info: 'اطلاعات کاربر' 54 user_info: 'اطلاعات کاربر'
55 password: 'رمز' 55 password: 'رمز'
56 # rules: 'Tagging rules' 56 rules: 'برچسب‌گذاری خودکار'
57 new_user: 'افزودن کاربر' 57 new_user: 'افزودن کاربر'
58 form: 58 form:
59 save: 'ذخیره' 59 save: 'ذخیره'
@@ -62,12 +62,12 @@ config:
62 items_per_page_label: 'تعداد مقاله در هر صفحه' 62 items_per_page_label: 'تعداد مقاله در هر صفحه'
63 language_label: 'زبان' 63 language_label: 'زبان'
64 reading_speed: 64 reading_speed:
65 # label: 'Reading speed' 65 label: 'سرعت خواندن'
66 # help_message: 'You can use online tools to estimate your reading speed:' 66 help_message: 'سرعت خواندن‌تان را با ابزارهای آنلاین تخمین بزنید:'
67 # 100_word: 'I read ~100 words per minute' 67 100_word: 'من تقریباً ۱۰۰ واژه را در دقیقه می‌خوانم'
68 # 200_word: 'I read ~200 words per minute' 68 200_word: 'من تقریباً ۲۰۰ واژه را در دقیقه می‌خوانم'
69 # 300_word: 'I read ~300 words per minute' 69 300_word: 'من تقریباً ۳۰۰ واژه را در دقیقه می‌خوانم'
70 # 400_word: 'I read ~400 words per minute' 70 400_word: 'من تقریباً ۴۰۰ واژه را در دقیقه می‌خوانم'
71 form_rss: 71 form_rss:
72 description: 'با خوراک آر-اس-اس که wallabag در اختیارتان می‌گذارد، می‌توانید مقاله‌های ذخیره‌شده را در نرم‌افزار آر-اس-اس دلخواه خود بخوانید. برای این کار نخست باید یک کد بسازید.' 72 description: 'با خوراک آر-اس-اس که wallabag در اختیارتان می‌گذارد، می‌توانید مقاله‌های ذخیره‌شده را در نرم‌افزار آر-اس-اس دلخواه خود بخوانید. برای این کار نخست باید یک کد بسازید.'
73 token_label: 'کد آر-اس-اس' 73 token_label: 'کد آر-اس-اس'
@@ -81,23 +81,23 @@ config:
81 archive: 'بایگانی' 81 archive: 'بایگانی'
82 rss_limit: 'محدودیت آر-اس-اس' 82 rss_limit: 'محدودیت آر-اس-اس'
83 form_user: 83 form_user:
84 # two_factor_description: "Enabling two factor authentication means you'll receive an email with a code on every new untrusted connexion" 84 two_factor_description: "با فعال‌کردن تأیید ۲مرحله‌ای هر بار که اتصال تأییدنشده‌ای برقرار شد، به شما یک کد از راه ایمیل فرستاده می‌شود"
85 name_label: 'نام' 85 name_label: 'نام'
86 email_label: 'نشانی ایمیل' 86 email_label: 'نشانی ایمیل'
87 # twoFactorAuthentication_label: 'Two factor authentication' 87 twoFactorAuthentication_label: 'تأیید ۲مرحله‌ای'
88 form_password: 88 form_password:
89 old_password_label: 'رمز قدیمی' 89 old_password_label: 'رمز قدیمی'
90 new_password_label: 'رمز تازه' 90 new_password_label: 'رمز تازه'
91 repeat_new_password_label: 'رمز تازه را دوباره بنویسید' 91 repeat_new_password_label: 'رمز تازه را دوباره بنویسید'
92 form_rules: 92 form_rules:
93 # if_label: 'if' 93 if_label: 'اگر'
94 # then_tag_as_label: 'then tag as' 94 then_tag_as_label: 'این برچسب را بزن'
95 # delete_rule_label: 'delete' 95 delete_rule_label: 'پاک کن'
96 # rule_label: 'Rule' 96 rule_label: 'قانون'
97 # tags_label: 'Tags' 97 tags_label: 'برچسب‌ها'
98 # faq: 98 faq:
99 # title: 'FAQ' 99 title: 'پرسش‌های متداول'
100 # tagging_rules_definition_title: 'What does « tagging rules » mean?' 100 tagging_rules_definition_title: 'برچسب‌گذاری خودکار یعنی چه؟'
101 # tagging_rules_definition_description: 'They are rules used by Wallabag to automatically tag new entries.<br />Each time a new entry is added, all the tagging rules will be used to add the tags you configured, thus saving you the trouble to manually classify your entries.' 101 # tagging_rules_definition_description: '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.'
102 # how_to_use_them_title: 'How do I use them?' 102 # how_to_use_them_title: 'How do I use them?'
103 # how_to_use_them_description: 'Let assume you want to tag new entries as « <i>short reading</i> » when the reading time is inferior to 3 minutes.<br />In that case, you should put « readingTime &lt;= 3 » in the <i>Rule</i> field and « <i>short reading</i> » in the <i>Tags</i> field.<br />Several tags can added simultaneously by separating them by a comma: « <i>short reading, must read</i> »<br />Complex rules can be written by using predefined operators: if « <i>readingTime &gt;= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, github </i> »' 103 # how_to_use_them_description: 'Let assume you want to tag new entries as « <i>short reading</i> » when the reading time is inferior to 3 minutes.<br />In that case, you should put « readingTime &lt;= 3 » in the <i>Rule</i> field and « <i>short reading</i> » in the <i>Tags</i> field.<br />Several tags can added simultaneously by separating them by a comma: « <i>short reading, must read</i> »<br />Complex rules can be written by using predefined operators: if « <i>readingTime &gt;= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, github </i> »'
@@ -135,12 +135,12 @@ config:
135 135
136entry: 136entry:
137 page_titles: 137 page_titles:
138 # unread: 'Unread entries' 138 unread: 'مقاله‌های خوانده‌نشده'
139 # starred: 'Starred entries' 139 starred: 'مقاله‌های برگزیده'
140 # archived: 'Archived entries' 140 archived: 'مقاله‌های بایگانی‌شده'
141 # filtered: 'Filtered entries' 141 filtered: 'مقاله‌های فیلترشده'
142 list: 142 list:
143 # number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.' 143 number_on_the_page: '{0} هیج مقاله‌ای نیست.|{1} یک مقاله هست.|]1,Inf[ %count% مقاله هست.'
144 reading_time: 'زمان تخمینی برای خواندن' 144 reading_time: 'زمان تخمینی برای خواندن'
145 reading_time_minutes: 'زمان تخمینی برای خواندن: %readingTime% min' 145 reading_time_minutes: 'زمان تخمینی برای خواندن: %readingTime% min'
146 reading_time_less_one_minute: 'زمان تخمینی برای خواندن: <small class="inferieur">&lt;</small> 1 min' 146 reading_time_less_one_minute: 'زمان تخمینی برای خواندن: <small class="inferieur">&lt;</small> 1 min'
@@ -148,7 +148,7 @@ entry:
148 toogle_as_read: 'خوانده‌شده/خوانده‌نشده' 148 toogle_as_read: 'خوانده‌شده/خوانده‌نشده'
149 toogle_as_star: 'برگزیده/نابرگزیده' 149 toogle_as_star: 'برگزیده/نابرگزیده'
150 delete: 'پاک کردن' 150 delete: 'پاک کردن'
151 # export_title: 'Export' 151 export_title: 'برون‌بری'
152 filters: 152 filters:
153 title: 'فیلتر' 153 title: 'فیلتر'
154 status_label: 'وضعیت' 154 status_label: 'وضعیت'
@@ -171,35 +171,35 @@ entry:
171 filter: 'فیلتر' 171 filter: 'فیلتر'
172 view: 172 view:
173 left_menu: 173 left_menu:
174 # back_to_top: 'Back to top' 174 back_to_top: 'بازگشت به بالای صفحه'
175 back_to_homepage: 'بازگشت' 175 back_to_homepage: 'بازگشت'
176 set_as_read: 'خوانده‌شده' 176 set_as_read: 'خوانده‌شده'
177 # set_as_unread: 'Mark as unread' 177 set_as_unread: 'به عنوان خوانده‌نشده علامت بزن'
178 set_as_favorite: 'برگزیده' 178 set_as_favorite: 'برگزیده'
179 view_original_article: 'مقالهٔ اصلی' 179 view_original_article: 'مقالهٔ اصلی'
180 # re_fetch_content: 'Re-fetch content' 180 re_fetch_content: 'مقاله‌ها را دوباره دریافت کن'
181 delete: 'پاک کردن' 181 delete: 'پاک کردن'
182 add_a_tag: 'افزودن برچسب' 182 add_a_tag: 'افزودن برچسب'
183 share_content: 'هم‌رسانی' 183 share_content: 'هم‌رسانی'
184 share_email_label: 'نشانی ایمیل' 184 share_email_label: 'نشانی ایمیل'
185 download: 'بارگیری' 185 download: 'بارگیری'
186 # print: 'Print' 186 print: 'چاپ'
187 problem: 187 problem:
188 label: 'مشکلات؟' 188 label: 'مشکلات؟'
189 description: 'آیا مقاله نادرست نشان داده شده؟' 189 description: 'آیا مقاله نادرست نشان داده شده؟'
190 edit_title: 'ویرایش عنوان' 190 edit_title: 'ویرایش عنوان'
191 original_article: 'original' 191 original_article: 'اصلی'
192 # annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations' 192 annotations_on_the_entry: '{0} بدون حاشیه|{1} یک حاشیه|]1,Inf[ %nbحاشیه% annotations'
193 new: 193 new:
194 page_title: 'ذخیرهٔ مقالهٔ تازه' 194 page_title: 'ذخیرهٔ مقالهٔ تازه'
195 placeholder: 'http://website.com' 195 placeholder: 'http://website.com'
196 form_new: 196 form_new:
197 # url_label: Url 197 url_label: نشانی
198 edit: 198 edit:
199 # page_title: 'Edit an entry' 199 page_title: 'ویرایش مقاله'
200 # title_label: 'Title' 200 title_label: 'عنوان'
201 # url_label: 'Url' 201 url_label: 'نشانی'
202 # is_public_label: 'Public' 202 is_public_label: 'عمومی'
203 save_label: 'ذخیره' 203 save_label: 'ذخیره'
204 204
205about: 205about:
@@ -208,8 +208,8 @@ about:
208 who_behind_wallabag: 'سازندگان wallabag' 208 who_behind_wallabag: 'سازندگان wallabag'
209 getting_help: 'گرفتن کمک' 209 getting_help: 'گرفتن کمک'
210 helping: 'کمک‌کردن به wallabag' 210 helping: 'کمک‌کردن به wallabag'
211 # contributors: 'Contributors' 211 contributors: 'مشارکت‌کنندگان'
212 # third_party: 'Third-party libraries' 212 third_party: 'کتابخانه‌های نرم‌افزاری'
213 who_behind_wallabag: 213 who_behind_wallabag:
214 developped_by: 'ساختهٔ' 214 developped_by: 'ساختهٔ'
215 website: 'وب‌گاه' 215 website: 'وب‌گاه'
@@ -227,15 +227,15 @@ about:
227 by_contributing_2: 'فهرست نیازمندی‌های ما در این صفحه است:' 227 by_contributing_2: 'فهرست نیازمندی‌های ما در این صفحه است:'
228 by_paypal: 'از راه Paypal' 228 by_paypal: 'از راه Paypal'
229 contributors: 229 contributors:
230 # description: 'Thank you to contributors on wallabag web application' 230 description: 'از مشارکت شما در برنامهٔ وب wallabag ممنونیم.'
231 third_party: 231 third_party:
232 # description: 'Here are the list of third-party libraries used in wallabag (with their licenses):' 232 description: 'فهرست کتابخانه‌های نرم‌افزاری که در wallabag به کار رفته‌اند (به همراه پروانهٔ آن‌ها) :'
233 # package: 'Package' 233 package: 'بسته'
234 license: 'پروانه' 234 license: 'پروانه'
235 235
236howto: 236howto:
237 page_title: 'خودآموز' 237 page_title: 'خودآموز'
238 # page_description: 'There are several ways to save an article:' 238 page_description: 'راه‌های زیادی برای ذخیرهٔ مقاله‌ها هست:'
239 top_menu: 239 top_menu:
240 browser_addons: 'افزونه برای مرورگرها' 240 browser_addons: 'افزونه برای مرورگرها'
241 mobile_apps: 'برنامه‌های موبایل' 241 mobile_apps: 'برنامه‌های موبایل'
@@ -255,82 +255,82 @@ howto:
255 description: 'این پیوند را به نوار بوک‌مارک مرورگرتان بکشید:' 255 description: 'این پیوند را به نوار بوک‌مارک مرورگرتان بکشید:'
256 256
257quickstart: 257quickstart:
258 # page_title: 'Quickstart' 258 page_title: 'Quickstart'
259 # intro: 259 intro:
260 # title: 'Welcome to wallabag!' 260 title: 'به wallabag خوش آمدید!!'
261 # paragraph_1: "We'll accompany you to visit wallabag and show you some features which can interest you." 261 paragraph_1: "به شما کمک خواهیم کرد تا wallabag را بشناسید و با برخی از ویژگی‌های جالبش آشنا شوید"
262 # paragraph_2: 'Follow us!' 262 paragraph_2: 'ادامه دهید!'
263 # configure: 263 configure:
264 # title: 'Configure the application' 264 title: 'برنامه را تنظیم کنید'
265 # language: 'Change language and design' 265 language: 'زبان و نمای برنامه را تغییر دهید'
266 # rss: 'Enable RSS feeds' 266 rss: 'خوراک آر-اس-اس را فعال کنید'
267 # tagging_rules: 'Write rules to automatically tag your articles' 267 tagging_rules: 'قانون‌های برچسب‌گذاری خودکار مقاله‌هایتان را تعریف کنید'
268 # admin: 268 admin:
269 # title: 'Administration' 269 title: 'مدیریت'
270 # description: 'As an administrator, you have privileges on wallabag. You can:' 270 description: 'به عنوان مدیر، شما دسترسی‌های بیشتری به wallabag دارید. شما می‌توانید:'
271 # new_user: 'Create a new user' 271 new_user: 'کاربر تازه‌ای بسازید'
272 # analytics: 'Configure analytics' 272 analytics: 'تحلیل‌های آماری را تنظیم کنید'
273 # sharing: 'Enable some parameters about article sharing' 273 sharing: 'گزینه‌های مربوط به هم‌رسانی مقاله‌ها را فعال کنید'
274 # export: 'Configure export' 274 export: 'برون‌سپاری را تنظیم کنید'
275 # import: 'Configure import' 275 import: 'درون‌ریزی را تنظیم کنید'
276 # first_steps: 276 first_steps:
277 # title: 'First steps' 277 title: 'گام نخست'
278 # new_article: 'Save your first article' 278 new_article: 'نخستین مقالهٔ خود را ذخیره کنید'
279 # unread_articles: 'And classify it!' 279 unread_articles: 'و آن را طبقه‌بندی کنید!'
280 # migrate: 280 migrate:
281 # title: 'Migrate from an existing service' 281 title: 'از سرویس قبلی خود به این‌جا مهاجرت کنید'
282 # description: "Are you using another service? We'll help you to retrieve your data on wallabag." 282 description: "آیا سرویس دیگری را به‌کار می‌برید؟ داده‌هایتان را به wallabag بیاورید.."
283 # pocket: 'Migrate from Pocket' 283 pocket: 'مهاجرت از Pocket'
284 # wallabag_v1: 'Migrate from wallabag v1' 284 wallabag_v1: 'مهاجرت از نسخهٔ یکم wallabag'
285 # wallabag_v2: 'Migrate from wallabag v2' 285 wallabag_v2: 'مهاجرت از نسخهٔ دوم wallabag'
286 # developer: 286 developer:
287 # title: 'Developers' 287 title: 'برنامه‌نویسان'
288 # create_application: 'Create your third application' 288 create_application: 'برنامهٔ wallabag خود را بسازید'
289 # docs: 289 docs:
290 # title: 'Full documentation' 290 title: 'راهنمای کامل'
291 # annotate: 'Annotate your article' 291 annotate: 'روی مقاله‌هایتان یادداشت بگذارید'
292 # export: 'Convert your articles into ePUB or PDF' 292 export: 'مقاله‌هایتان را به قالب ePUB یا PDF دربیاورید'
293 # search_filters: 'See how you can look for an article by using search engine and filters' 293 search_filters: 'به کمک موتور جستجو و فیلترها به دنبال مقاله‌هایتان بگردید'
294 # fetching_errors: 'What can I do if an article encounters errors during fetching?' 294 fetching_errors: 'اگر مقاله‌ای هنگام ذخیره‌ شدن به مشکل برخورد چه کار کنید؟'
295 # all_docs: 'And so many other articles!' 295 all_docs: 'و بسیاری از موضوعات دیگر'
296 # support: 296 support:
297 # title: 'Support' 297 title: 'پشتیبانی'
298 # description: 'If you need some help, we are here for you.' 298 description: 'به کمک نیاز دارید؟ ما پشتیبان شما هستیم!'
299 # github: 'On GitHub' 299 github: 'روی گیت‌هاب'
300 # email: 'By email' 300 email: 'با ایمیل'
301 # gitter: 'On Gitter' 301 gitter: 'روی گیتر'
302 302
303tag: 303tag:
304 page_title: 'برچسب‌ها' 304 page_title: 'برچسب‌ها'
305 list: 305 list:
306 # number_on_the_page: '{0} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.' 306 number_on_the_page: '{0} هیچ برچسبی نیست.|{1} یک برچسب هست.|]1,Inf[ %count% برچسب هست.'
307 307
308import: 308import:
309 # page_title: 'Import' 309 page_title: 'درون‌ریزی'
310 # page_description: 'Welcome to wallabag importer. Please select your previous service that you want to migrate.' 310 page_description: 'به درون‌ریز wallabag خوش آمدید. لطفاً سرویس قبلی خود را که می‌خواهید از آن مهاجرت کنید انتخاب کنید.'
311 # action: 311 action:
312 # import_contents: 'Import contents' 312 import_contents: 'درون‌ریزی مقاله‌ها'
313 # form: 313 form:
314 # mark_as_read_title: 'Mark all as read?' 314 mark_as_read_title: 'علامت‌زدن همه به عنوان خوانده‌شده؟'
315 # mark_as_read_label: 'Mark all imported entries as read' 315 mark_as_read_label: 'همهٔ مقاله‌های درون‌ریزی شده را به عنوان خوانده‌شده علامت بزن'
316 # file_label: 'File' 316 file_label: 'پرونده'
317 # save_label: 'Upload file' 317 save_label: 'بارگذاری پرونده'
318 # pocket: 318 pocket:
319 # page_title: 'Import > Pocket' 319 page_title: 'درون‌ریزی > Pocket'
320 # description: "This importer will import all your Pocket data. Pocket doesn't allow us to retrieve content from their service, so the readable content of each article will be re-fetched by wallabag." 320 description: "این برنامه همهٔ داده‌های Pocket شما را درون‌ریزی می‌کند. سرویس Pocket اجازه نمی‌دهد که متن مقاله‌ها را درون‌ریزی کنیم، بنابراین wallabag متن مقاله‌ها را دوباره از اینترنت دریافت می‌کند."
321 # config_missing: 321 config_missing:
322 # description: "Pocket import isn't configured." 322 description: "درون‌ریزی از Pocket تنظیم نشده است."
323 # admin_message: 'You need to define %keyurls%a pocket_consumer_key%keyurle%.' 323 admin_message: 'شما باید %keyurls%یک pocket_consumer_key%keyurle% تعریف کنید.'
324 # user_message: 'Your server admin needs to define an API Key for Pocket.' 324 user_message: 'مدیر سرور شما باید یک API Key برای Pocket تعریف کند.'
325 # authorize_message: 'You can import your data from your Pocket account. You just have to click on the below button and authorize the application to connect to getpocket.com.' 325 authorize_message: 'شما می‌توانید داده‌هایتان را از حساب Pocket خود درون‌ریزی کنید. روی دکمهٔ زیر کلیک کنید و به برنامه اجازه دهید تا به getpocket.com وصل شود.'
326 # connect_to_pocket: 'Connect to Pocket and import data' 326 connect_to_pocket: 'به Pocket وصل شو و داده‌ها را دریافت کن'
327 # wallabag_v1: 327 wallabag_v1:
328 # page_title: 'Import > Wallabag v1' 328 page_title: 'درون‌ریزی > Wallabag v1'
329 # description: 'This importer will import all your wallabag v1 articles. On your config page, click on "JSON export" in the "Export your wallabag data" section. You will have a "wallabag-export-1-xxxx-xx-xx.json" file.' 329 description: 'این برنامه همهٔ داده‌های شما را در نسخهٔ ۱ wallabag درون‌ریزی می‌کند. در صفحهٔ تنظیمات، روی "JSON export" در بخش "Export your wallabag data" کلیک کنید. با این کار شما پرونده‌ای به شکل "wallabag-export-1-xxxx-xx-xx.json" دریافت خواهید کرد.'
330 # how_to: 'Please select your wallabag export and click on the below button to upload and import it.' 330 how_to: 'لطفاً پرونده را انتخاب کنید و روی دکمهٔ زیر کلیک کنید تا بارگذاری و درون‌ریزی شود.'
331 # wallabag_v2: 331 wallabag_v2:
332 # page_title: 'Import > Wallabag v2' 332 page_title: 'درون‌ریزی > Wallabag v2'
333 # description: 'This importer will import all your wallabag v2 articles. Go to All articles, then, on the export sidebar, click on "JSON". You will have a "All articles.json" file.' 333 description: 'این برنامه همهٔ داده‌های شما را در نسخهٔ ۲ wallabag درون‌ریزی می‌کند. به بخش «همهٔ مقاله‌ها» بروید و در بخش «برون‌ریزی» روی "JSON" کلیک کنید. با این کار شما پرونده‌ای به شکل "All articles.json" دریافت خواهید کرد.'
334 334
335developer: 335developer:
336 # page_title: 'Developer' 336 # page_title: 'Developer'
@@ -383,42 +383,42 @@ developer:
383validator: 383validator:
384 password_must_match: 'رمزها باید یکی باشند' 384 password_must_match: 'رمزها باید یکی باشند'
385 password_too_short: 'رمز شما باید ۸ حرف یا بیشتر باشد' 385 password_too_short: 'رمز شما باید ۸ حرف یا بیشتر باشد'
386 # password_wrong_value: 'Wrong value for your current password' 386 password_wrong_value: 'رمز فعلی را اشتباه وارد کرده‌اید'
387 # item_per_page_too_high: 'This will certainly kill the app' 387 item_per_page_too_high: 'با این تعداد برنامه به فنا می‌رود'
388 # rss_limit_too_hight: 'This will certainly kill the app' 388 rss_limit_too_hight: 'با این تعداد برنامه به فنا می‌رود'
389 389
390flashes: 390flashes:
391 config: 391 config:
392 notice: 392 notice:
393 config_saved: 'پیکربندی ذخیره شد. برخی از تنظیمات پس از این که قطع شدید اعمال می‌شود.' 393 config_saved: 'پیکربندی ذخیره شد. برخی از تنظیمات پس از این که قطع شدید اعمال می‌شود.'
394 password_updated: 'رمز به‌روز شد' 394 password_updated: 'رمز به‌روز شد'
395 # password_not_updated_demo: "In demonstration mode, you can't change password for this user." 395 password_not_updated_demo: "در حالت نمایشی نمی‌توانید رمز کاربر را عوض کنید."
396 user_updated: 'اطلاعات به‌روز شد' 396 user_updated: 'اطلاعات به‌روز شد'
397 rss_updated: 'اطلاعات آر-اس-اس به‌روز شد' 397 rss_updated: 'اطلاعات آر-اس-اس به‌روز شد'
398 # tagging_rules_updated: 'Tagging rules updated' 398 tagging_rules_updated: 'برچسب‌گذاری خودکار به‌روز شد'
399 # tagging_rules_deleted: 'Tagging rule deleted' 399 tagging_rules_deleted: 'قانون برچسب‌گذاری پاک شد'
400 # user_added: 'User "%username%" added' 400 user_added: 'کابر "%username%" افزوده شد'
401 # rss_token_updated: 'RSS token updated' 401 rss_token_updated: 'کد آر-اس-اس به‌روز شد'
402 entry: 402 entry:
403 notice: 403 notice:
404 # entry_already_saved: 'Entry already saved on %date%' 404 entry_already_saved: 'این مقاله در تاریخ %date% ذخیره شده بود'
405 # entry_saved: 'Entry saved' 405 entry_saved: 'مقاله ذخیره شد'
406 # entry_updated: 'Entry updated' 406 entry_updated: 'مقاله به‌روز شد'
407 # entry_reloaded: 'Entry reloaded' 407 entry_reloaded: 'مقاله به‌روز شد'
408 # entry_reload_failed: 'Failed to reload entry' 408 entry_reload_failed: 'به‌روزرسانی مقاله شکست خورد'
409 entry_archived: 'مقاله بایگانی شد' 409 entry_archived: 'مقاله بایگانی شد'
410 entry_unarchived: 'مقاله از بایگانی درآمد' 410 entry_unarchived: 'مقاله از بایگانی درآمد'
411 entry_starred: 'مقاله برگزیده شد' 411 entry_starred: 'مقاله برگزیده شد'
412 entry_unstarred: 'مقاله نابرگزیده شد' 412 entry_unstarred: 'مقاله نابرگزیده شد'
413 entry_deleted: 'مقاله پاک شد' 413 entry_deleted: 'مقاله پاک شد'
414 tag: 414 tag:
415 notice: 415 notice:
416 # tag_added: 'Tag added' 416 tag_added: 'برچسب افزوده شد'
417 import: 417 import:
418 notice: 418 notice:
419 # failed: 'Import failed, please try again.' 419 failed: 'درون‌ریزی شکست خورد. لطفاً دوباره تلاش کنید.'
420 # failed_on_file: 'Error while processing import. Please verify your import file.' 420 failed_on_file: 'خطا هنگام پردازش پروندهٔ ورودی. آیا پروندهٔ درون‌ریزی شده سالم است؟'
421 # summary: 'Import summary: %imported% imported, %skipped% already saved.' 421 summary: 'گزارش درون‌ریزی: %imported% وارد شد, %skipped% از قبل ذخیره شده بود.'
422 developer: 422 developer:
423 notice: 423 notice:
424 # client_created: 'New client created.' 424 # client_created: 'New client created.'