diff options
Diffstat (limited to 'src')
5 files changed, 193 insertions, 173 deletions
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 <= 3 » in the <i>Rule</i> field and « <i>short reading</i> » in the <i>Tags</i> field.<br />Several tags can added simultaneously by separating them by a comma: « <i>short reading, must read</i> »<br />Complex rules can be written by using predefined operators: if « <i>readingTime >= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, github </i> »' | 103 | how_to_use_them_description: '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 <= 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> »' |
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 | ||
303 | tag: | 303 | tag: |
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 | ||
308 | import: | 308 | import: |
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 @@ | |||
1 | security: | 1 | security: |
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 | ||
17 | menu: | 17 | menu: |
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 | ||
42 | footer: | 42 | footer: |
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 | ||
49 | config: | 49 | config: |
@@ -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 <= 3 » in the <i>Rule</i> field and « <i>short reading</i> » in the <i>Tags</i> field.<br />Several tags can added simultaneously by separating them by a comma: « <i>short reading, must read</i> »<br />Complex rules can be written by using predefined operators: if « <i>readingTime >= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, github </i> »' | 103 | # how_to_use_them_description: '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> »' |
@@ -135,12 +135,12 @@ config: | |||
135 | 135 | ||
136 | entry: | 136 | entry: |
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"><</small> 1 min' | 146 | reading_time_less_one_minute: 'زمان تخمینی برای خواندن: <small class="inferieur"><</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 | ||
205 | about: | 205 | about: |
@@ -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 | ||
236 | howto: | 236 | howto: |
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 | ||
257 | quickstart: | 257 | quickstart: |
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 | ||
303 | tag: | 303 | tag: |
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 | ||
308 | import: | 308 | import: |
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 | ||
335 | developer: | 335 | developer: |
336 | # page_title: 'Developer' | 336 | # page_title: 'Developer' |
@@ -383,42 +383,42 @@ developer: | |||
383 | validator: | 383 | validator: |
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 | ||
390 | flashes: | 390 | flashes: |
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.' |