diff options
Diffstat (limited to 'src')
13 files changed, 311 insertions, 291 deletions
diff --git a/src/Wallabag/CoreBundle/Helper/HttpClientFactory.php b/src/Wallabag/CoreBundle/Helper/HttpClientFactory.php index 8891887b..1ac8feb1 100644 --- a/src/Wallabag/CoreBundle/Helper/HttpClientFactory.php +++ b/src/Wallabag/CoreBundle/Helper/HttpClientFactory.php | |||
@@ -6,6 +6,7 @@ use Graby\Ring\Client\SafeCurlHandler; | |||
6 | use GuzzleHttp\Client; | 6 | use GuzzleHttp\Client; |
7 | use GuzzleHttp\Cookie\CookieJar; | 7 | use GuzzleHttp\Cookie\CookieJar; |
8 | use GuzzleHttp\Event\SubscriberInterface; | 8 | use GuzzleHttp\Event\SubscriberInterface; |
9 | use Psr\Log\LoggerInterface; | ||
9 | 10 | ||
10 | /** | 11 | /** |
11 | * Builds and configures the Guzzle HTTP client. | 12 | * Builds and configures the Guzzle HTTP client. |
@@ -19,6 +20,7 @@ class HttpClientFactory | |||
19 | private $cookieJar; | 20 | private $cookieJar; |
20 | 21 | ||
21 | private $restrictedAccess; | 22 | private $restrictedAccess; |
23 | private $logger; | ||
22 | 24 | ||
23 | /** | 25 | /** |
24 | * HttpClientFactory constructor. | 26 | * HttpClientFactory constructor. |
@@ -26,12 +28,14 @@ class HttpClientFactory | |||
26 | * @param \GuzzleHttp\Event\SubscriberInterface $authenticatorSubscriber | 28 | * @param \GuzzleHttp\Event\SubscriberInterface $authenticatorSubscriber |
27 | * @param \GuzzleHttp\Cookie\CookieJar $cookieJar | 29 | * @param \GuzzleHttp\Cookie\CookieJar $cookieJar |
28 | * @param string $restrictedAccess this param is a kind of boolean. Values: 0 or 1 | 30 | * @param string $restrictedAccess this param is a kind of boolean. Values: 0 or 1 |
31 | * @param LoggerInterface $logger | ||
29 | */ | 32 | */ |
30 | public function __construct(SubscriberInterface $authenticatorSubscriber, CookieJar $cookieJar, $restrictedAccess) | 33 | public function __construct(SubscriberInterface $authenticatorSubscriber, CookieJar $cookieJar, $restrictedAccess, LoggerInterface $logger) |
31 | { | 34 | { |
32 | $this->authenticatorSubscriber = $authenticatorSubscriber; | 35 | $this->authenticatorSubscriber = $authenticatorSubscriber; |
33 | $this->cookieJar = $cookieJar; | 36 | $this->cookieJar = $cookieJar; |
34 | $this->restrictedAccess = $restrictedAccess; | 37 | $this->restrictedAccess = $restrictedAccess; |
38 | $this->logger = $logger; | ||
35 | } | 39 | } |
36 | 40 | ||
37 | /** | 41 | /** |
@@ -39,8 +43,10 @@ class HttpClientFactory | |||
39 | */ | 43 | */ |
40 | public function buildHttpClient() | 44 | public function buildHttpClient() |
41 | { | 45 | { |
46 | $this->logger->log('debug', 'Restricted access config enabled?', array('enabled' => (int) $this->restrictedAccess)); | ||
47 | |||
42 | if (0 === (int) $this->restrictedAccess) { | 48 | if (0 === (int) $this->restrictedAccess) { |
43 | return null; | 49 | return; |
44 | } | 50 | } |
45 | 51 | ||
46 | // we clear the cookie to avoid websites who use cookies for analytics | 52 | // we clear the cookie to avoid websites who use cookies for analytics |
diff --git a/src/Wallabag/CoreBundle/Repository/EntryRepository.php b/src/Wallabag/CoreBundle/Repository/EntryRepository.php index b9532fa2..4071301d 100644 --- a/src/Wallabag/CoreBundle/Repository/EntryRepository.php +++ b/src/Wallabag/CoreBundle/Repository/EntryRepository.php | |||
@@ -106,8 +106,9 @@ class EntryRepository extends EntityRepository | |||
106 | $qb->andWhere('e.isArchived = true'); | 106 | $qb->andWhere('e.isArchived = true'); |
107 | } | 107 | } |
108 | 108 | ||
109 | // We lower() all parts here because PostgreSQL 'LIKE' verb is case-sensitive | ||
109 | $qb | 110 | $qb |
110 | ->andWhere('e.content LIKE :term OR e.title LIKE :term')->setParameter('term', '%'.$term.'%') | 111 | ->andWhere('lower(e.content) LIKE lower(:term) OR lower(e.title) LIKE lower(:term) OR lower(e.url) LIKE lower(:term)')->setParameter('term', '%'.$term.'%') |
111 | ->leftJoin('e.tags', 't') | 112 | ->leftJoin('e.tags', 't') |
112 | ->groupBy('e.id'); | 113 | ->groupBy('e.id'); |
113 | 114 | ||
diff --git a/src/Wallabag/CoreBundle/Resources/config/services.yml b/src/Wallabag/CoreBundle/Resources/config/services.yml index 036735ec..51d6ab47 100644 --- a/src/Wallabag/CoreBundle/Resources/config/services.yml +++ b/src/Wallabag/CoreBundle/Resources/config/services.yml | |||
@@ -74,6 +74,7 @@ services: | |||
74 | - "@bd_guzzle_site_authenticator.authenticator_subscriber" | 74 | - "@bd_guzzle_site_authenticator.authenticator_subscriber" |
75 | - "@wallabag_core.guzzle.cookie_jar" | 75 | - "@wallabag_core.guzzle.cookie_jar" |
76 | - '@=service(''craue_config'').get(''restricted_access'')' | 76 | - '@=service(''craue_config'').get(''restricted_access'')' |
77 | - '@logger' | ||
77 | 78 | ||
78 | wallabag_core.guzzle.cookie_jar: | 79 | wallabag_core.guzzle.cookie_jar: |
79 | class: GuzzleHttp\Cookie\FileCookieJar | 80 | class: GuzzleHttp\Cookie\FileCookieJar |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml index 8ae1c400..3d65c311 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml | |||
@@ -1,7 +1,7 @@ | |||
1 | security: | 1 | security: |
2 | login: | 2 | login: |
3 | page_title: '¡Bienvenido a wallabag !' | 3 | page_title: '¡Bienvenido a wallabag!' |
4 | keep_logged_in: 'Manténgame conectado' | 4 | keep_logged_in: 'Permanecer conectado' |
5 | forgot_password: '¿Se ha olvidado de su contraseña?' | 5 | forgot_password: '¿Se ha olvidado de su contraseña?' |
6 | submit: 'Conectarse' | 6 | submit: 'Conectarse' |
7 | register: 'Registrarse' | 7 | register: 'Registrarse' |
@@ -9,7 +9,7 @@ security: | |||
9 | password: 'Contraseña' | 9 | password: 'Contraseña' |
10 | cancel: 'Cancelar' | 10 | cancel: 'Cancelar' |
11 | resetting: | 11 | resetting: |
12 | description: "Introduzca su dirección del correo electrónico y le enviaremos las instrucciones para reiniciar la contraseña" | 12 | description: "Introduzca su dirección de correo electrónico y le enviaremos las instrucciones para reiniciar la contraseña." |
13 | register: | 13 | register: |
14 | page_title: 'Crear una cuenta' | 14 | page_title: 'Crear una cuenta' |
15 | go_to_account: 'Acceder su cuenta' | 15 | go_to_account: 'Acceder su cuenta' |
@@ -19,19 +19,19 @@ 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 artÃculos' | 22 | all_articles: 'Todos los artÃculos' |
23 | config: 'Configuración' | 23 | config: 'Configuración' |
24 | tags: 'Etiquetas' | 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' |
28 | # developer: 'API clients management' | 28 | developer: 'Configuración de clientes API' |
29 | logout: 'Desconectarse' | 29 | logout: 'Desconectarse' |
30 | about: 'Acerca de' | 30 | about: 'Acerca de' |
31 | search: 'Buscar' | 31 | search: 'Buscar' |
32 | save_link: 'Archivar un enlace' | 32 | save_link: 'Guardar un enlace' |
33 | back_to_unread: 'Volver a los artÃculos sin leer' | 33 | back_to_unread: 'Volver a los artÃculos sin leer' |
34 | # users_management: 'Users management' | 34 | users_management: 'Configuración de usuarios' |
35 | top: | 35 | top: |
36 | add_new_entry: 'Añadir un nuevo artÃculo' | 36 | add_new_entry: 'Añadir un nuevo artÃculo' |
37 | search: 'Buscar' | 37 | search: 'Buscar' |
@@ -42,11 +42,11 @@ menu: | |||
42 | 42 | ||
43 | footer: | 43 | footer: |
44 | wallabag: | 44 | wallabag: |
45 | elsewhere: 'Lleve wallabag consigo' | 45 | elsewhere: 'Lleva wallabag contigo' |
46 | social: 'Social' | 46 | social: 'Social' |
47 | powered_by: 'funciona por' | 47 | powered_by: 'funciona con' |
48 | about: 'Acerca de' | 48 | about: 'Acerca de' |
49 | # stats: Since %user_creation% you read %nb_archives% articles. That is about %per_day% a day! | 49 | stats: Desde el %user_creation% has leÃdo %nb_archives% artÃculos. ¡Eso hace unos %per_day% por dÃa! |
50 | 50 | ||
51 | config: | 51 | config: |
52 | page_title: 'Configuración' | 52 | page_title: 'Configuración' |
@@ -64,96 +64,96 @@ config: | |||
64 | items_per_page_label: 'Número de artÃculos por página' | 64 | items_per_page_label: 'Número de artÃculos por página' |
65 | language_label: 'Idioma' | 65 | language_label: 'Idioma' |
66 | reading_speed: | 66 | reading_speed: |
67 | label: 'Velocidad de leer' | 67 | label: 'Velocidad de lectura' |
68 | help_message: 'Se puede usar las técnicas para calcular su velocidad de leer:' | 68 | help_message: 'Puede utilizar herramientas en lÃnea para calcular su velocidad de lectura:' |
69 | 100_word: 'Leo ~100 palabras por minuto' | 69 | 100_word: 'Leo ~100 palabras por minuto' |
70 | 200_word: 'Leo ~200 palabras por minuto' | 70 | 200_word: 'Leo ~200 palabras por minuto' |
71 | 300_word: 'Leo ~300 palabras por minuto' | 71 | 300_word: 'Leo ~300 palabras por minuto' |
72 | 400_word: 'Leo ~400 palabras por minuto' | 72 | 400_word: 'Leo ~400 palabras por minuto' |
73 | action_mark_as_read: | 73 | action_mark_as_read: |
74 | # label: 'Where do you to be redirected after mark an article as read?' | 74 | label: '¿Dónde quieres ser redirigido después de marcar un artÃculo como leÃdo?' |
75 | # redirect_homepage: 'To the homepage' | 75 | redirect_homepage: 'A la página de inicio' |
76 | # redirect_current_page: 'To the current page' | 76 | redirect_current_page: 'A la página actual' |
77 | # pocket_consumer_key_label: Consumer key for Pocket to import contents | 77 | pocket_consumer_key_label: Clave de consumidor para importar contenidos de Pocket |
78 | # android_configuration: Configure your Android application | 78 | android_configuration: Configura tu aplicación Android |
79 | # help_theme: "wallabag is customizable. You can choose your prefered theme here." | 79 | help_theme: "wallabag es personalizable. Puedes elegir tu tema preferido aquÃ." |
80 | # help_items_per_page: "You can change the number of articles displayed on each page." | 80 | help_items_per_page: "Puedes cambiar el número de artÃculos mostrados en cada página." |
81 | # help_reading_speed: "wallabag calculates a reading time for each article. You can define here, thanks to this list, if you are a fast or a slow reader. wallabag will recalculate the reading time for each article." | 81 | help_reading_speed: "wallabag calcula un tiempo de lectura para cada artÃculo. Puedes definir aquÃ, gracias a esta lista, si eres un lector rápido o lento. wallabag recalculará el tiempo de lectura para cada artÃculo." |
82 | # help_language: "You can change the language of wallabag interface." | 82 | help_language: "Puedes cambiar el idioma de la interfaz de wallabag." |
83 | # help_pocket_consumer_key: "Required for Pocket import. You can create it in your Pocket account." | 83 | help_pocket_consumer_key: "Requerido para la importación desde Pocket. Puedes crearla en tu cuenta de Pocket." |
84 | form_rss: | 84 | form_rss: |
85 | description: 'Los feeds RSS de wallabag permiten leer los artÃculos guardados con su lector RSS favorito. Necesita generar un token primero' | 85 | description: 'Los feeds RSS de wallabag permiten leer los artÃculos guardados con su lector RSS favorito. Primero necesitas generar un token.' |
86 | token_label: 'RSS token' | 86 | token_label: 'Token RSS' |
87 | no_token: 'No token' | 87 | no_token: 'Sin token' |
88 | token_create: 'Crear token' | 88 | token_create: 'Crear token' |
89 | token_reset: 'Reiniciar token' | 89 | token_reset: 'Reiniciar token' |
90 | rss_links: 'URL de su feed RSS' | 90 | rss_links: 'URLs de feeds RSS' |
91 | rss_link: | 91 | rss_link: |
92 | unread: 'sin leer' | 92 | unread: 'sin leer' |
93 | starred: 'favoritos' | 93 | starred: 'favoritos' |
94 | archive: 'archivo' | 94 | archive: 'archivados' |
95 | rss_limit: 'LÃmite de artÃculos en feed RSS' | 95 | rss_limit: 'LÃmite de artÃculos en feed RSS' |
96 | form_user: | 96 | form_user: |
97 | two_factor_description: "Con la autentificación de dos factores recibirá código mediante email en cada nueva conexión que no sea de confianza" | 97 | two_factor_description: "Con la autenticación en dos pasos recibirá código por e-mail en cada nueva conexión que no sea de confianza." |
98 | name_label: 'Nombre' | 98 | name_label: 'Nombre' |
99 | email_label: 'Direccion e-mail' | 99 | email_label: 'Dirección de e-mail' |
100 | twoFactorAuthentication_label: 'Autentificación de dos factores' | 100 | twoFactorAuthentication_label: 'Autenticación en dos pasos' |
101 | # help_twoFactorAuthentication: "If you enable 2FA, each time you want to login to wallabag, you'll receive a code by email." | 101 | help_twoFactorAuthentication: "Si activas la autenticación en dos pasos, cada vez que quieras iniciar sesión en wallabag recibirás un código por e-mail." |
102 | delete: | 102 | delete: |
103 | # title: Delete my account (a.k.a danger zone) | 103 | title: Eliminar mi cuenta (Zona peligrosa) |
104 | # description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out. | 104 | description: Si eliminas tu cuenta, TODOS tus artÃculos, TODAS tus etiquetas, TODAS tus anotaciones y tu cuenta serán eliminadas de forma PERMANENTE (no se puede deshacer). Después serás desconectado. |
105 | # confirm: Are you really sure? (THIS CAN'T BE UNDONE) | 105 | confirm: ¿Estás completamente seguro? (NO SE PUEDE DESHACER) |
106 | # button: Delete my account | 106 | button: Eliminar mi cuenta |
107 | reset: | 107 | reset: |
108 | # title: Reset area (a.k.a danger zone) | 108 | title: Reiniciar mi cuenta (Zona peligrosa) |
109 | # description: By hiting buttons below you'll have ability to remove some informations from your account. Be aware that these actions are IRREVERSIBLE. | 109 | description: Pulsando los botones de abajo puedes eliminar información de tu cuenta. Ten en cuenta que estas acciones son IRREVERSIBLES. |
110 | # annotations: Remove ALL annotations | 110 | annotations: Eliminar TODAS las anotaciones |
111 | # tags: Remove ALL tags | 111 | tags: Eliminar TODAS las etiquetas |
112 | # entries: Remove ALL entries | 112 | entries: Eliminar TODOS los artÃculos |
113 | # confirm: Are you really really sure? (THIS CAN'T BE UNDONE) | 113 | confirm: ¿Estás completamente seguro? (NO SE PUEDE DESHACER) |
114 | form_password: | 114 | form_password: |
115 | # description: "You can change your password here. Your new password should by at least 8 characters long." | 115 | description: "Puedes cambiar la contraseña aquÃ. Tu nueva contraseña debe tener al menos 8 caracteres." |
116 | old_password_label: 'Contraseña actual' | 116 | old_password_label: 'Contraseña actual' |
117 | new_password_label: 'Nueva contraseña' | 117 | new_password_label: 'Nueva contraseña' |
118 | repeat_new_password_label: 'Confirmar la nueva contraseña' | 118 | repeat_new_password_label: 'Confirmar nueva contraseña' |
119 | form_rules: | 119 | form_rules: |
120 | if_label: 'si' | 120 | if_label: 'si' |
121 | then_tag_as_label: 'Etiquete como' | 121 | then_tag_as_label: 'etiquetar como' |
122 | delete_rule_label: 'Borre' | 122 | delete_rule_label: 'borrar' |
123 | # edit_rule_label: 'edit' | 123 | edit_rule_label: 'editar' |
124 | rule_label: 'Regla' | 124 | rule_label: 'Regla' |
125 | tags_label: 'Etiquetas' | 125 | tags_label: 'Etiquetas' |
126 | faq: | 126 | faq: |
127 | title: 'FAQ' | 127 | title: 'Preguntas frecuentes' |
128 | tagging_rules_definition_title: '¿Qué significa reglas de etiquetado autómaticas?' | 128 | tagging_rules_definition_title: '¿Qué significa « reglas de etiquetado automático »?' |
129 | 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.' | 129 | tagging_rules_definition_description: 'Son las reglas usadas por wallabag para etiquetar automáticamente los nuevos artÃculos.<br />Cada vez que un artÃculo sea añadido, todas las reglas de etiquetado automático serán usadas para etiquetarlo, ayudándote a clasificar automáticamente tus artÃculos.' |
130 | how_to_use_them_title: '¿Cómo se utilizan?' | 130 | how_to_use_them_title: '¿Cómo se utilizan?' |
131 | how_to_use_them_description: 'Supongamos que quiere etiquetar nuevos artÃculos como « <i>lectura corta</i> » cuando el tiempo de leer sea menos de 3 minutos. <br /> En ese caso, debe poner « tiempo de leer <= 3 » en el <i>Regla</i> campo y « <i>lectura corta</i> » en el <i>Etiquetas</i> campo.<br />Algunas etiquetas se pueden ser añadidas al mismo tiempo por separarlas con una coma: « <i>lectura corta, debe leer</i> »<br />Reglas complejas se pueden ser escritas por usar operadores predefinidos: si « <i>tiempo de leer >= 5 Y nombre del dominio = "github.com"</i> » entonces etiquete como « <i>lectura larga, github </i> »' | 131 | how_to_use_them_description: 'Supongamos que quiere etiquetar los artÃculos nuevos como « <i>lectura corta</i> » cuando el tiempo de lectura sea menos de 3 minutos.<br /> En ese caso, debe poner « readingTime <= 3 » en el campo <i>Regla</i> y « <i>lectura corta</i> » en el campo <i>Etiquetas</i>.<br />Se pueden añadir varias etiquetas al mismo tiempo separadas por comas: « <i>lectura corta, lectura obligada</i> »<br />Se pueden escribir reglas complejas utilizando los operadores predefinidos: si « <i>readingTime >= 5 AND domainName = "github.com"</i> » entonces etiqueta como « <i>lectura larga, github </i> »' |
132 | variables_available_title: '¿Qué variables y operadores se pueden utilizar para escribir las reglas?' | 132 | variables_available_title: '¿Qué variables y operadores se pueden utilizar para escribir las reglas?' |
133 | variables_available_description: 'Las siguientes variables y operadores se pueden utilizar para crear las reglas de etiquetado automáticas:' | 133 | variables_available_description: 'Las siguientes variables y operadores se pueden utilizar para crear reglas de etiquetado automático:' |
134 | meaning: 'Significado' | 134 | meaning: 'Significado' |
135 | variable_description: | 135 | variable_description: |
136 | label: 'Variable' | 136 | label: 'Variable' |
137 | title: 'Titúlo del artÃculo' | 137 | title: 'TÃtulo del artÃculo' |
138 | url: 'URL del artÃculo' | 138 | url: 'URL del artÃculo' |
139 | isArchived: 'El artÃculo está guardado o no' | 139 | isArchived: 'Si artÃculo está archivado o no' |
140 | isStarred: 'Si el artÃculo es un favorito o no' | 140 | isStarred: 'Si el artÃculo está en favoritos o no' |
141 | content: "El contenido del artÃculo" | 141 | content: "El contenido del artÃculo" |
142 | language: "El idioma del artÃculo" | 142 | language: "El idioma del artÃculo" |
143 | mimetype: "Tipo MIME del artÃculo" | 143 | mimetype: "El tipo MIME del artÃculo" |
144 | readingTime: "El tiempo estimado de lectura del artÃculo, en minutos" | 144 | readingTime: "El tiempo estimado de lectura del artÃculo, en minutos" |
145 | domainName: 'El dominio del artÃculo' | 145 | domainName: 'El nombre de dominio del artÃculo' |
146 | operator_description: | 146 | operator_description: |
147 | label: 'Operador' | 147 | label: 'Operador' |
148 | less_than: 'Menos que…' | 148 | less_than: 'Menor que…' |
149 | strictly_less_than: 'Estrictámente menos que…' | 149 | strictly_less_than: 'Estrictamente menor que…' |
150 | greater_than: 'Más que…' | 150 | greater_than: 'Mayor que…' |
151 | strictly_greater_than: 'Estrictámente mas que…' | 151 | strictly_greater_than: 'Estrictamente mayor que…' |
152 | equal_to: 'Egual a…' | 152 | equal_to: 'Igual a…' |
153 | not_equal_to: 'Diferente de…' | 153 | not_equal_to: 'Diferente de…' |
154 | or: 'Una regla U otra' | 154 | or: 'Una regla U otra' |
155 | and: 'Una regla Y la otra' | 155 | and: 'Una regla Y la otra' |
156 | matches: 'Pruebe si un <i>sujeto</i> corresponde a una <i>búsqueda</i> (insensible a mayusculas).<br />Ejemplo : <code>tÃtulo coincide "football"</code>' | 156 | matches: 'Prueba si un <i>sujeto</i> corresponde a una <i>búsqueda</i> (insensible a mayusculas).<br />Ejemplo : <code>title matches "fútbol"</code>' |
157 | 157 | ||
158 | entry: | 158 | entry: |
159 | page_titles: | 159 | page_titles: |
@@ -161,32 +161,32 @@ entry: | |||
161 | starred: 'ArtÃculos favoritos' | 161 | starred: 'ArtÃculos favoritos' |
162 | archived: 'ArtÃculos archivados' | 162 | archived: 'ArtÃculos archivados' |
163 | filtered: 'ArtÃculos filtrados' | 163 | filtered: 'ArtÃculos filtrados' |
164 | # filtered_tags: 'Filtered by tags:' | 164 | filtered_tags: 'Filtrado por etiquetas:' |
165 | # filtered_search: 'Filtered by search:' | 165 | filtered_search: 'Filtrado por búsqueda:' |
166 | # untagged: 'Untagged entries' | 166 | untagged: 'ArtÃculos sin etiquetas' |
167 | list: | 167 | list: |
168 | number_on_the_page: '{0} No hay artÃculos.|{1} Hay un artÃculo.|]1,Inf[ Hay %count% artÃculos.' | 168 | number_on_the_page: '{0} No hay artÃculos.|{1} Hay un artÃculo.|]1,Inf[ Hay %count% artÃculos.' |
169 | reading_time: 'tiempo estimado de lectura' | 169 | reading_time: 'tiempo estimado de lectura' |
170 | reading_time_minutes: 'tiempo estimado de lectura: %readingTime% min' | 170 | reading_time_minutes: 'tiempo estimado de lectura: %readingTime% min' |
171 | reading_time_less_one_minute: 'tiempo estimado de lectura: < 1 min' | 171 | reading_time_less_one_minute: 'tiempo estimado de lectura: < 1 min' |
172 | # number_of_tags: '{1}and one other tag|]1,Inf[and %count% other tags' | 172 | number_of_tags: '{1}y una etiqueta más|]1,Inf[y %count% etiquetas más' |
173 | reading_time_minutes_short: '%readingTime% min' | 173 | reading_time_minutes_short: '%readingTime% min' |
174 | reading_time_less_one_minute_short: '< 1 min' | 174 | reading_time_less_one_minute_short: '< 1 min' |
175 | original_article: 'original' | 175 | original_article: 'original' |
176 | toogle_as_read: 'Marcar como leÃdo/ no leÃdo' | 176 | toogle_as_read: 'Marcar como leÃdo / no leÃdo' |
177 | toogle_as_star: 'Marcar como favorito/ no favorito' | 177 | toogle_as_star: 'Marcar como favorito / no favorito' |
178 | delete: 'Suprimir' | 178 | delete: 'Eliminar' |
179 | export_title: 'Exportar' | 179 | export_title: 'Exportar' |
180 | filters: | 180 | filters: |
181 | title: 'Filtros' | 181 | title: 'Filtros' |
182 | status_label: 'Estatus' | 182 | status_label: 'Estado' |
183 | archived_label: 'Archivado' | 183 | archived_label: 'Archivado' |
184 | starred_label: 'Favorito' | 184 | starred_label: 'Favorito' |
185 | unread_label: 'Sin leer' | 185 | unread_label: 'Sin leer' |
186 | preview_picture_label: 'Hay una foto' | 186 | preview_picture_label: 'Tiene imagen de previsualización' |
187 | preview_picture_help: 'Foto de preview' | 187 | preview_picture_help: 'Imagen de previsualización' |
188 | language_label: 'Idioma' | 188 | language_label: 'Idioma' |
189 | # http_status_label: 'HTTP status' | 189 | http_status_label: 'Código de estado HTTP' |
190 | reading_time: | 190 | reading_time: |
191 | label: 'Duración de lectura en minutos' | 191 | label: 'Duración de lectura en minutos' |
192 | from: 'de' | 192 | from: 'de' |
@@ -208,12 +208,12 @@ entry: | |||
208 | set_as_starred: 'Marcar como favorito' | 208 | set_as_starred: 'Marcar como favorito' |
209 | view_original_article: 'ArtÃculo original' | 209 | view_original_article: 'ArtÃculo original' |
210 | re_fetch_content: 'Redescargar el contenido' | 210 | re_fetch_content: 'Redescargar el contenido' |
211 | delete: 'Suprimir' | 211 | delete: 'Eliminar' |
212 | add_a_tag: 'Añadir una etiqueta' | 212 | add_a_tag: 'Añadir una etiqueta' |
213 | share_content: 'Compartir' | 213 | share_content: 'Compartir' |
214 | share_email_label: 'Dirección e-mail' | 214 | share_email_label: 'e-mail' |
215 | # public_link: 'public link' | 215 | public_link: 'enlace público' |
216 | # delete_public_link: 'delete public link' | 216 | delete_public_link: 'eliminar enlace público' |
217 | download: 'Descargar' | 217 | download: 'Descargar' |
218 | print: 'Imprimir' | 218 | print: 'Imprimir' |
219 | problem: | 219 | problem: |
@@ -225,32 +225,32 @@ entry: | |||
225 | created_at: 'Fecha de creación' | 225 | created_at: 'Fecha de creación' |
226 | new: | 226 | new: |
227 | page_title: 'Guardar un nuevo artÃculo' | 227 | page_title: 'Guardar un nuevo artÃculo' |
228 | placeholder: 'http://website.com' | 228 | placeholder: 'http://sitioweb.com' |
229 | form_new: | 229 | form_new: |
230 | url_label: Url | 230 | url_label: URL |
231 | search: | 231 | search: |
232 | # placeholder: 'What are you looking for?' | 232 | placeholder: '¿Qué estás buscando?' |
233 | edit: | 233 | edit: |
234 | page_title: 'Editar un artÃculo' | 234 | page_title: 'Editar un artÃculo' |
235 | title_label: 'TÃtulo' | 235 | title_label: 'TÃtulo' |
236 | url_label: 'Url' | 236 | url_label: 'URL' |
237 | is_public_label: 'Es Público' | 237 | is_public_label: 'Es público' |
238 | save_label: 'Guardar' | 238 | save_label: 'Guardar' |
239 | public: | 239 | public: |
240 | # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>" | 240 | shared_by_wallabag: "Este artÃculo se ha compartido con <a href='%wallabag_instance%'>wallabag</a>" |
241 | 241 | ||
242 | about: | 242 | about: |
243 | page_title: 'Acerca de' | 243 | page_title: 'Acerca de' |
244 | top_menu: | 244 | top_menu: |
245 | who_behind_wallabag: 'Equipo del desarrollo de wallabag' | 245 | who_behind_wallabag: 'Quién está detrás de wallabag' |
246 | getting_help: 'Pedir ayuda' | 246 | getting_help: 'Pedir ayuda' |
247 | helping: 'Ayudar a wallabag' | 247 | helping: 'Ayudar a wallabag' |
248 | contributors: 'Colaboradores' | 248 | contributors: 'Colaboradores' |
249 | third_party: 'LibrerÃas de terceros' | 249 | third_party: 'Bibliotecas de terceros' |
250 | who_behind_wallabag: | 250 | who_behind_wallabag: |
251 | developped_by: 'Desarrollado por' | 251 | developped_by: 'Desarrollado por' |
252 | website: 'Sitio web' | 252 | website: 'Sitio web' |
253 | many_contributors: 'Y muchos otros colaboradores ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">en Github</a>' | 253 | many_contributors: 'Y otros muchos colaboradores ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">en Github</a>' |
254 | project_website: 'Sitio web del proyecto' | 254 | project_website: 'Sitio web del proyecto' |
255 | license: 'Licencia' | 255 | license: 'Licencia' |
256 | version: 'Versión' | 256 | version: 'Versión' |
@@ -259,306 +259,306 @@ about: | |||
259 | bug_reports: 'Reporte de errores' | 259 | bug_reports: 'Reporte de errores' |
260 | support: '<a href="https://github.com/wallabag/wallabag/issues">en GitHub</a>' | 260 | support: '<a href="https://github.com/wallabag/wallabag/issues">en GitHub</a>' |
261 | helping: | 261 | helping: |
262 | description: 'wallabag es libre y gratuito. Usted puede ayudarnos :' | 262 | description: 'wallabag es software libre y gratuito. Usted puede ayudarnos :' |
263 | by_contributing: 'contribuyendo al proyecto :' | 263 | by_contributing: 'contribuyendo al proyecto :' |
264 | by_contributing_2: 'nuestras necesidades están en un ticket' | 264 | by_contributing_2: 'nuestras necesidades están en un ticket' |
265 | by_paypal: 'via Paypal' | 265 | by_paypal: 'vÃa Paypal' |
266 | contributors: | 266 | contributors: |
267 | description: 'Gracias a los colaboradores de la aplicación web de wallabag' | 267 | description: 'Gracias a los colaboradores de la aplicación web de wallabag' |
268 | third_party: | 268 | third_party: |
269 | description: 'Aquà está la lista de las dependencias utilizadas por wallabag (con sus licencias) :' | 269 | description: 'Aquà está la lista de bibliotecas de terceros utilizadas por wallabag (con sus licencias) :' |
270 | package: 'Paquete' | 270 | package: 'Paquete' |
271 | license: 'Licencia' | 271 | license: 'Licencia' |
272 | 272 | ||
273 | howto: | 273 | howto: |
274 | page_title: 'Ayuda' | 274 | page_title: 'Ayuda' |
275 | page_description: 'Hay muchas maneras para guardar un artÃculo:' | ||
276 | tab_menu: | 275 | tab_menu: |
277 | # add_link: "Add a link" | 276 | add_link: "Añadir un artÃculo" |
278 | # shortcuts: "Use shortcuts" | 277 | shortcuts: "Utilizar atajos de teclado" |
278 | page_description: 'Hay muchas maneras de guardar un artÃculo:' | ||
279 | top_menu: | 279 | top_menu: |
280 | browser_addons: 'Extensiones de navigador' | 280 | browser_addons: 'Extensiones de navegador' |
281 | mobile_apps: 'Aplicaciones para smartphone' | 281 | mobile_apps: 'Aplicaciones para smartphone' |
282 | bookmarklet: 'Bookmarklet' | 282 | bookmarklet: 'Bookmarklet' |
283 | form: | 283 | form: |
284 | description: 'Gracias a este formulario' | 284 | description: 'Gracias a este formulario' |
285 | browser_addons: | 285 | browser_addons: |
286 | firefox: 'Extensión Firefox' | 286 | firefox: 'Extensión para Firefox' |
287 | chrome: 'Extensión Chrome' | 287 | chrome: 'Extensión para Chrome' |
288 | opera: 'Extensión Opera' | 288 | opera: 'Extensión para Opera' |
289 | mobile_apps: | 289 | mobile_apps: |
290 | android: | 290 | android: |
291 | via_f_droid: 'via F-Droid' | 291 | via_f_droid: 'en F-Droid' |
292 | via_google_play: 'via Google Play' | 292 | via_google_play: 'en Google Play' |
293 | ios: 'por la tienda de iTunes' | 293 | ios: 'en la tienda de iTunes' |
294 | windows: 'por la tienda de Microsoft' | 294 | windows: 'en la tienda de Microsoft' |
295 | bookmarklet: | 295 | bookmarklet: |
296 | description: 'Desplazar y soltar este link en la barra de marcadores :' | 296 | description: 'Arrastra y suelta este enlace en la barra de marcadores:' |
297 | shortcuts: | 297 | shortcuts: |
298 | # page_description: Here are the shortcuts available in wallabag. | 298 | page_description: Estos son los atajos de teclado disponibles en wallabag. |
299 | # shortcut: Shortcut | 299 | shortcut: Atajo de teclado |
300 | # action: Action | 300 | action: Acción |
301 | # all_pages_title: Shortcuts available in all pages | 301 | all_pages_title: Atajos de teclado disponibles en todas las páginas |
302 | # go_unread: Go to unread | 302 | go_unread: Ir a sin leer |
303 | # go_starred: Go to starred | 303 | go_starred: Ir a favoritos |
304 | # go_archive: Go to archive | 304 | go_archive: Ir a archivados |
305 | # go_all: Go to all entries | 305 | go_all: Ir a todos los artÃculos |
306 | # go_tags: Go to tags | 306 | go_tags: Ir a etiquetas |
307 | # go_config: Go to config | 307 | go_config: Ir a configuración |
308 | # go_import: Go to import | 308 | go_import: Ir a importar |
309 | # go_developers: Go to developers | 309 | go_developers: Ir a desarrolladores |
310 | # go_howto: Go to howto (this page!) | 310 | go_howto: Ir a ayuda (esta página) |
311 | # go_logout: Logout | 311 | go_logout: Desconectar |
312 | # list_title: Shortcuts available in listing pages | 312 | list_title: Atajos de teclado disponibles en las páginas de listados |
313 | # search: Display the search form | 313 | search: Mostrar el formulario de búsqueda |
314 | # article_title: Shortcuts available in entry view | 314 | article_title: Atajos de teclado disponibles en el artÃculo |
315 | # open_original: Open original URL of the entry | 315 | open_original: Abrir la URL original de un artÃculo |
316 | # toggle_favorite: Toggle star status for the entry | 316 | toggle_favorite: Marcar como favorito / no favorito el artÃculo |
317 | # toggle_archive: Toggle read status for the entry | 317 | toggle_archive: marcar como leÃdo / no leÃdo el artÃculo |
318 | # delete: Delete the entry | 318 | delete: Borrar el artÃculo |
319 | # material_title: Shortcuts available with Material theme only | 319 | material_title: Atajos de teclado disponibles solo en el tema Material |
320 | # add_link: Add a new link | 320 | add_link: Añadir un nuevo artÃculo |
321 | # hide_form: Hide the current form (search or new link) | 321 | hide_form: Ocultar el formulario actual (búsqueda o nuevo artÃculo) |
322 | # arrows_navigation: Navigate through articles | 322 | arrows_navigation: Navegar por los artÃculos |
323 | # open_article: Display the selected entry | 323 | open_article: Mostrar el artÃculo seleccionado |
324 | 324 | ||
325 | quickstart: | 325 | quickstart: |
326 | page_title: 'Comienzo rápido' | 326 | page_title: 'Inicio rápido' |
327 | # more: 'More…' | 327 | more: 'Más…' |
328 | intro: | 328 | intro: |
329 | title: 'Bienvenido a wallabag !' | 329 | title: '¡Bienvenido a wallabag!' |
330 | paragraph_1: "Le acompañaremos a su visita de wallabag y le mostraremos algunas caracterÃsticas que le pueden interesar." | 330 | paragraph_1: "Le acompañaremos en su visita a wallabag y le mostraremos algunas caracterÃsticas que le pueden interesar." |
331 | paragraph_2: '¡SÃganos!' | 331 | paragraph_2: '¡SÃguenos!' |
332 | configure: | 332 | configure: |
333 | title: 'Configure la aplicación' | 333 | title: 'Configure la aplicación' |
334 | # description: 'In order to have an application which suits you, have a look into the configuration of wallabag.' | 334 | description: 'Para que la aplicación se ajuste a tus necesidades, echa un vistazo a la configuración de wallabag.' |
335 | language: 'Cambie el idioma y el diseño de la aplicación' | 335 | language: 'Cambie el idioma y el diseño' |
336 | rss: 'Activar los feeds RSS' | 336 | rss: 'Activar los feeds RSS' |
337 | tagging_rules: 'Escribir reglas para etiquetear automaticamente sus artÃculos' | 337 | tagging_rules: 'Escribe reglas para etiquetar automáticamente tus artÃculos' |
338 | admin: | 338 | admin: |
339 | title: 'Administración' | 339 | title: 'Administración' |
340 | description: 'Como administrador, tiene privilegios por wallabag. Se puede:' | 340 | description: 'Como administrador, tiene algunos privilegios en wallabag. Puedes:' |
341 | new_user: 'Crear un nuevo usuario' | 341 | new_user: 'Crear un nuevo usuario' |
342 | analytics: 'Configure analÃticas' | 342 | analytics: 'Configurar analÃticas' |
343 | sharing: 'Active unos parámetros de compartir artÃculos' | 343 | sharing: 'Activar algunos parámetros de compartir artÃculos' |
344 | export: 'Configure exportación' | 344 | export: 'Configurar exportación' |
345 | import: 'Configure importación' | 345 | import: 'Configurar importación' |
346 | first_steps: | 346 | first_steps: |
347 | title: 'Primeros pasos' | 347 | title: 'Primeros pasos' |
348 | # description: "Now wallabag is well configured, it's time to archive the web. You can click on the top right sign + to add a link." | 348 | description: "Ahora que wallabag está bien configurado, es el momento de archivar la web. Puedes hacer clic en el signo + de la parte superior derecha para añadir un artÃculo." |
349 | new_article: 'Guarde su primer artÃculo' | 349 | new_article: 'Guarda tu primer artÃculo' |
350 | unread_articles: '¡Y clasifÃquelo!' | 350 | unread_articles: '¡Y clasifÃcalo!' |
351 | migrate: | 351 | migrate: |
352 | title: 'Migrar de un servicio existente' | 352 | title: 'Migrar de un servicio existente' |
353 | description: "¿Está usando otro servicio? Le ayudaremos a migrar sus datos a wallabag." | 353 | description: "¿Estás usando otro servicio? Le ayudaremos a migrar sus datos a wallabag." |
354 | pocket: 'Migrar desde Pocket' | 354 | pocket: 'Migrar desde Pocket' |
355 | wallabag_v1: 'Migrar desde wallabag v1' | 355 | wallabag_v1: 'Migrar desde wallabag v1' |
356 | wallabag_v2: 'Migrar desde wallabag v2' | 356 | wallabag_v2: 'Migrar desde wallabag v2' |
357 | readability: 'Migrar desde Readability' | 357 | readability: 'Migrar desde Readability' |
358 | instapaper: 'Migrar desde Instapaper' | 358 | instapaper: 'Migrar desde Instapaper' |
359 | developer: | 359 | developer: |
360 | title: 'Promotores' | 360 | title: 'Desarrolladores' |
361 | # description: 'We also thought to the developers: Docker, API, translations, etc.' | 361 | description: 'Nosotros también pensamos en los desarrolladores: Docker, API, traducciones, etc.' |
362 | create_application: 'Cree su tercera aplicación' | 362 | create_application: 'Cree su aplicación de terceros' |
363 | # use_docker: 'Use Docker to install wallabag' | 363 | use_docker: 'Utilice Docker para instalar wallabag' |
364 | docs: | 364 | docs: |
365 | title: 'Documentación completa' | 365 | title: 'Documentación completa' |
366 | # description: "There are so much features in wallabag. Don't hesitate to read the manual to know them and to learn how to use them." | 366 | description: "Hay muchas funcionalidades en wallabag. No dudes en leer el manual para conocerlas y aprender a utilizarlas." |
367 | annotate: 'Anote su artÃculo' | 367 | annotate: 'Anotar en un artÃculo' |
368 | export: 'Convierta sus artÃculos a ePub o a PDF' | 368 | export: 'Convertir tus artÃculos a ePUB o PDF' |
369 | search_filters: 'Aprenda a utilizar el buscador y los filtros para encontrar el artÃculo que le interese' | 369 | search_filters: 'Aprender a utilizar el buscador y los filtros para encontrar artÃculos' |
370 | fetching_errors: '¿Qué puedo hacer si un artÃculo encuentra errores por la búsqueda?' | 370 | fetching_errors: '¿Qué puedo hacer si se encuentran errores mientras se descarga un artÃculo?' |
371 | all_docs: '¡Y muchos más artÃculos!' | 371 | all_docs: '¡Y muchos más artÃculos!' |
372 | support: | 372 | support: |
373 | title: 'Apoyo' | 373 | title: 'Apoyo' |
374 | description: 'Si necesita ayuda, estamos disponibles para usted.' | 374 | description: 'Si necesitas ayuda, estamos a tu disposición.' |
375 | github: 'En GitHub' | 375 | github: 'En GitHub' |
376 | email: 'Por email' | 376 | email: 'Por e-mail' |
377 | gitter: 'En Gitter' | 377 | gitter: 'En Gitter' |
378 | 378 | ||
379 | tag: | 379 | tag: |
380 | page_title: 'Etiquetas' | 380 | page_title: 'Etiquetas' |
381 | list: | 381 | list: |
382 | number_on_the_page: '{0} No hay ninguna etiqueta.|{1} Hay una etiqueta.|]1,Inf[ Hay %count% etiquetas.' | 382 | number_on_the_page: '{0} No hay ninguna etiqueta.|{1} Hay una etiqueta.|]1,Inf[ Hay %count% etiquetas.' |
383 | # see_untagged_entries: 'See untagged entries' | 383 | see_untagged_entries: 'Ver artÃculos sin etiquetas' |
384 | new: | 384 | new: |
385 | # add: 'Add' | 385 | add: 'Añadir' |
386 | # placeholder: 'You can add several tags, separated by a comma.' | 386 | placeholder: 'Puedes añadir varias etiquetas, separadas por una coma.' |
387 | 387 | ||
388 | import: | 388 | import: |
389 | page_title: 'Importar' | 389 | page_title: 'Importar' |
390 | page_description: 'Bienvenido al útil de migración de wallabag. Seleccione el servicio previo del que usted quiera migrar.' | 390 | page_description: 'Bienvenido a la herramienta de importación de wallabag. Seleccione el servicio desde el que desea migrar.' |
391 | action: | 391 | action: |
392 | import_contents: 'Importar los contenidos' | 392 | import_contents: 'Importar los contenidos' |
393 | form: | 393 | form: |
394 | mark_as_read_title: '¿Marcar todos como leÃdos?' | 394 | mark_as_read_title: '¿Marcar todos como leÃdos?' |
395 | mark_as_read_label: 'Marcar todos artÃculos importados como leÃdos' | 395 | mark_as_read_label: 'Marcar todos artÃculos importados como leÃdos' |
396 | file_label: 'Fichero' | 396 | file_label: 'Archivo' |
397 | save_label: 'Importar el fichero' | 397 | save_label: 'Subir el archivo' |
398 | pocket: | 398 | pocket: |
399 | page_title: 'Importar > Pocket' | 399 | page_title: 'Importar > Pocket' |
400 | description: "Va a importar sus datos de Pocket. Pocket no nos permite descargar el contenido de su servicio, asà que el contenido de cada artÃculo será redescargado por wallabag." | 400 | description: "Importa todos tus datos de Pocket. Pocket no nos permite descargar el contenido desde su servicio, de manera que el contenido de cada artÃculo será redescargado por wallabag." |
401 | config_missing: | 401 | config_missing: |
402 | description: "La importación de Pocket no está configurada." | 402 | description: "La importación de Pocket no está configurada." |
403 | admin_message: 'Debe definir %keyurls%una clava del API Pocket%keyurle%.' | 403 | admin_message: 'Debe definir %keyurls%una clave del API Pocket%keyurle%.' |
404 | user_message: 'El administrador de su servidor debe definir una clave API Pocket.' | 404 | user_message: 'El administrador de su servidor debe definir una clave del API Pocket.' |
405 | authorize_message: 'Puede importar sus datos desde su cuenta de Pocket. Sólo tiene que oprimir el botón para autorizar que wallabag se conecte a getpocket.com.' | 405 | authorize_message: 'Puede importar sus datos desde su cuenta de Pocket. Sólo tiene que hacer clic el botón para autorizar que wallabag se conecte a getpocket.com.' |
406 | connect_to_pocket: 'Conéctese a Pocket para importar los datos' | 406 | connect_to_pocket: 'Conectar a Pocket e importar los datos' |
407 | wallabag_v1: | 407 | wallabag_v1: |
408 | page_title: 'Importar > Wallabag v1' | 408 | page_title: 'Importar > Wallabag v1' |
409 | description: 'Va a importar sus artÃculos de wallabag v1. En su configuración de wallabag v1, oprima "Exportar JSON" dentro de la sección "Exportar sus datos de wallabag". Usted tendrá un fichero "wallabag-export-1-xxxx-xx-xx.json".' | 409 | description: 'Importa todos tus artÃculos de wallabag v1. En la configuración de wallabag v1, haga clic en "Exportar JSON" dentro de la sección "Exportar datos de wallabag". Obtendrás un archivo llamado "wallabag-export-1-xxxx-xx-xx.json".' |
410 | how_to: 'Seleccione el fichero de su exportación de wallabag v1 y oprima el botón para subirlo y importarlo.' | 410 | how_to: 'Seleccione el archivo exportado de wallabag v1 y haga clic en el botón para subirlo e importarlo.' |
411 | wallabag_v2: | 411 | wallabag_v2: |
412 | page_title: 'Importar > Wallabag v2' | 412 | page_title: 'Importar > Wallabag v2' |
413 | description: 'Va a importar sus artÃculos de otra instancia de wallabag v2. Vaya a Todos los artÃculos, entonces, en la barra lateral, oprima en "JSON". Usted tendrá un fichero "All articles.json"' | 413 | description: 'Importa todos tus artÃculos de wallabag v2. En la sección Todos los artÃculos, en la barra lateral, haga clic en "JSON". Obtendrás un archivo llamado "All articles.json".' |
414 | readability: | 414 | readability: |
415 | page_title: 'Importar > Readability' | 415 | page_title: 'Importar > Readability' |
416 | # description: 'This importer will import all your Readability articles. On the tools (https://www.readability.com/tools/) page, click on "Export your data" in the "Data Export" section. You will received an email to download a json (which does not end with .json in fact).' | 416 | description: 'Importa todos tus artÃculos de Readability. En la página de herramientas (https://www.readability.com/tools/), haga clic en "Exportar tus datos" en la sección "Exportar datos". Recibirás un e-mail para descargar un JSON (que no tiene extensión .json).' |
417 | # how_to: 'Please select your Readability export and click on the below button to upload and import it.' | 417 | how_to: 'Seleccione el archivo exportado de Readability y haga clic en el botón para subirlo e importarlo.' |
418 | worker: | 418 | worker: |
419 | # enabled: "Import is made asynchronously. Once the import task is started, an external worker will handle jobs one at a time. The current service is:" | 419 | enabled: "La importación se realiza de forma asÃncrona. Una vez que la tarea de importación ha comenzado, un trabajador externo se encargará de los artÃculos uno a uno. El servicio actual es:" |
420 | # download_images_warning: "You enabled downloading images for your articles. Combined with classic import it can take ages to proceed (or maybe failed). We <strong>strongly recommend</strong> to enable asynchronous import to avoid errors." | 420 | download_images_warning: "Tienes activado descargar imágenes de los artÃculos. Esto justo con la importación clásica de artÃculos puede tardar mucho tiempo en ser procesado (o incluso fallar). <strong>Recomendamos encarecidamente</strong> habilitar la importación asÃncrona para evitar errores." |
421 | firefox: | 421 | firefox: |
422 | page_title: 'Importar > Firefox' | 422 | page_title: 'Importar > Firefox' |
423 | # description: "This importer will import all your Firefox bookmarks. Just go to your bookmarks (Ctrl+Maj+O), then into \"Import and backup\", choose \"Backup...\". You will obtain a .json file." | 423 | description: "Importa todos tus marcadores de Firefox. En la ventana de marcadores (Ctrl+Mayus+O), en \"Importar y respaldar\", elige \"Copiar...\". Obtendrás un archivo .json." |
424 | # how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched." | 424 | how_to: "Seleccione el archivo exportado de Firefox y haga clic en el botón para subirlo e importarlo. Tenga en cuenta que este proceso puede tardar ya que se tienen que descargar todos los artÃculos." |
425 | chrome: | 425 | chrome: |
426 | page_title: 'Importar > Chrome' | 426 | page_title: 'Importar > Chrome' |
427 | # description: "This importer will import all your Chrome bookmarks. The location of the file depends on your operating system : <ul><li>On Linux, go into the <code>~/.config/chromium/Default/</code> directory</li><li>On Windows, it should be at <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code></li><li>On OS X, it should be at <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code></li></ul>Once you got there, copy the Bookmarks file someplace you'll find.<em><br>Note that if you have Chromium instead of Chrome, you'll have to correct paths accordingly.</em></p>" | 427 | description: "Importa todos tus marcadores de Chrome. La ubicación del archivo depende de tu sistema operativo : <ul><li>En Linux, <code>~/.config/chromium/Default/</code></li><li>En Windows, <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code></li><li>En OS X, <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code></li></ul>Una vez estés en ese directorio, copia el archivo de favoritos (bookmarks) en algún sitio fácil de encontrar.<em><br>Ten en cuenta que si utilizas Chromium en vez de Chrome, la ubicación del archivo cambia.</em></p>" |
428 | # how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched." | 428 | how_to: "Seleccione el archivo exportado de Chrome y haga clic en el botón para subirlo e importarlo. Tenga en cuenta que este proceso puede tardar ya que se tienen que descargar todos los artÃculos." |
429 | instapaper: | 429 | instapaper: |
430 | page_title: 'Importar > Instapaper' | 430 | page_title: 'Importar > Instapaper' |
431 | # description: 'This importer will import all your Instapaper articles. On the settings (https://www.instapaper.com/user) page, click on "Download .CSV file" in the "Export" section. A CSV file will be downloaded (like "instapaper-export.csv").' | 431 | description: 'Importa todos tus artÃculos de Instapaper. En la página de preferencias (https://www.instapaper.com/user), haz clic en "Descargar archivo .CSV" en la sección "Exportar". Obtendrás un archivo CSV llamado "instapaper-export.csv".' |
432 | # how_to: 'Please select your Instapaper export and click on the below button to upload and import it.' | 432 | how_to: 'Seleccione el archivo exportado de Instapaper y haga clic en el botón para subirlo e importarlo.' |
433 | pinboard: | 433 | pinboard: |
434 | page_title: "Importar > Pinboard" | 434 | page_title: "Importar > Pinboard" |
435 | # description: 'This importer will import all your Instapaper articles. On the backup (https://pinboard.in/settings/backup) page, click on "JSON" in the "Bookmarks" section. A JSON file will be downloaded (like "pinboard_export").' | 435 | description: 'Importa todos tus artÃculos de Pinboard. En la página de backup (https://pinboard.in/settings/backup), haz clic en "JSON" en la sección "Marcadores". Obtendrás un archivo JSON llamado "pinboard_export".' |
436 | # how_to: 'Please select your Pinboard export and click on the below button to upload and import it.' | 436 | how_to: 'Seleccione el archivo exportado de Pinboard y haga clic en el botón para subirlo e importarlo.' |
437 | 437 | ||
438 | developer: | 438 | developer: |
439 | # page_title: 'API clients management' | 439 | page_title: 'Gestión de clientes API' |
440 | welcome_message: 'Bienvenido a wallabag API' | 440 | welcome_message: 'Bienvenido al API de wallabag' |
441 | documentation: 'Documentación' | 441 | documentation: 'Documentación' |
442 | how_to_first_app: 'Cómo crear mi primera aplicación' | 442 | how_to_first_app: 'Cómo crear mi primera aplicación' |
443 | full_documentation: 'Ver documentación de API entera' | 443 | full_documentation: 'Ver documentación completa del API' |
444 | list_methods: 'Hacer una lista de métodos API' | 444 | list_methods: 'Lista con los métodos del API' |
445 | clients: | 445 | clients: |
446 | title: 'Clientes' | 446 | title: 'Clientes' |
447 | create_new: 'Crear un nuevo cliente' | 447 | create_new: 'Crear un nuevo cliente' |
448 | existing_clients: | 448 | existing_clients: |
449 | title: 'Clientes actuales' | 449 | title: 'Clientes existentes' |
450 | field_id: 'identificación del cliente' | 450 | field_id: 'Identificador del cliente' |
451 | field_secret: 'Cliente secreto' | 451 | field_secret: 'Secreto del cliente' |
452 | field_uris: 'Redirigir los URI' | 452 | field_uris: 'URIs de redirección' |
453 | field_grant_types: 'Conceder manera permitida' | 453 | field_grant_types: 'Permisos concedidos' |
454 | no_client: 'No cliente todavÃa.' | 454 | no_client: 'TodavÃa no hay clientes.' |
455 | remove: | 455 | remove: |
456 | warn_message_1: 'Se puede quitar este cliente. ¡Está acción no se puede ser irreversible !' | 456 | warn_message_1: 'Tienes permiso para eliminar el cliente %name%. ¡Está acción es IRREVERSIBLE!' |
457 | warn_message_2: "Si lo elimine, cada aplicación configurada con ese cliente no se puede ser autorizada por su wallbag." | 457 | warn_message_2: "Si lo eliminas, cada aplicación configurada con ese cliente no podrá autenticarse en wallabag." |
458 | action: 'Quite este cliente' | 458 | action: 'Eliminar el cliente %name%' |
459 | client: | 459 | client: |
460 | # page_title: 'API clients management > Nuevo cliente' | 460 | page_title: 'Gestión de clientes API > Nuevo cliente' |
461 | page_description: 'Va a crear un nuevo cliente. Por favor, llene el campo abajo para URI redirigido de su aplicación.' | 461 | page_description: 'Está a punto de crear un nuevo cliente. Por favor, rellene el campo de abajo con la URI de redirección de su aplicación.' |
462 | form: | 462 | form: |
463 | # name_label: 'Name of the client' | 463 | name_label: 'Nombre del cliente' |
464 | redirect_uris_label: 'los URI redirigidos' | 464 | redirect_uris_label: 'URIs de redirección' |
465 | save_label: 'Crear un nuevo cliente' | 465 | save_label: 'Crear un nuevo cliente' |
466 | action_back: 'Atrás' | 466 | action_back: 'Volver' |
467 | client_parameter: | 467 | client_parameter: |
468 | # page_title: 'API clients management > Parámetros del cliente' | 468 | page_title: 'Gestión de clientes API > Parámetros del cliente' |
469 | page_description: 'Aquà hay sus parámetros del cliente.' | 469 | page_description: 'Aquà están los parámetros del cliente.' |
470 | # field_name: 'Client name' | 470 | field_name: 'Nombre del cliente' |
471 | field_id: 'Identificación del cliente' | 471 | field_id: 'Identificador del cliente' |
472 | field_secret: 'Cliente secreto' | 472 | field_secret: 'Secreto del cliente' |
473 | back: 'Atrás' | 473 | back: 'Volver' |
474 | read_howto: 'Leer el howto "Crear mi primera aplicación"' | 474 | read_howto: 'Lea la guÃa "Crear mi primera aplicación"' |
475 | howto: | 475 | howto: |
476 | # page_title: 'API clients management > Cómo crear mi primera aplicación' | 476 | page_title: 'Gestión de clientes API > Cómo crear mi primera aplicación' |
477 | description: | 477 | description: |
478 | paragraph_1: 'Los siguientes comandos se usan el <a href="https://github.com/jkbrzt/httpie">HTTPie library</a>. Esté seguro de que se instalen en sus sistema antes de usarlos.' | 478 | paragraph_1: 'Los siguientes comandos hacen uso de la <a href="https://github.com/jkbrzt/httpie">biblioteca HTTPie</a>. Compruebe que está instalada en su sistema antes de usarla.' |
479 | paragraph_2: 'Necesita un token para comunicar entre su tercera aplicación y wallabag API.' | 479 | paragraph_2: 'Necesitas un token para establecer la comunicación entre una aplicación de terceros y la API de wallabag.' |
480 | paragraph_3: 'Para crear este token, necesita <a href="%link%">to create a new client</a>.' | 480 | paragraph_3: 'Para crear este token, necesitas <a href="%link%">crear un nuevo cliente</a>.' |
481 | paragraph_4: 'Ahora, cree su token (reemplace cliente_id, cliente_secreto, usuario y contraseñ con las buenas entradas):' | 481 | paragraph_4: 'Ahora crea tu token (reemplace client_id, client_secret, username y password con los valores generados):' |
482 | paragraph_5: 'Este API devolverá una respuestas asÃ:' | 482 | paragraph_5: 'Este API devolverá una respuesta como esta:' |
483 | paragraph_6: 'El acceso_token es útil para hacer una llamada al final API. Por ejempolo:' | 483 | paragraph_6: 'El access_token es útil para llamar a los métodos del API. Por ejemplo:' |
484 | paragraph_7: 'Esta llamada devolverá todos los artÃculos para su usuario.' | 484 | paragraph_7: 'Esta llamada devolverá todos los artÃculos de tu usuario.' |
485 | paragraph_8: 'Si quiere ver todos los fines de API, se puede ver <a href="%link%">a nuestra documentación API</a>.' | 485 | paragraph_8: 'Si quiere ver todos los métodos del API, puede verlos en <a href="%link%">nuestra documentación del API</a>.' |
486 | back: 'Atrás' | 486 | back: 'Volver' |
487 | 487 | ||
488 | user: | 488 | user: |
489 | # page_title: Users management | 489 | page_title: Gestión de usuarios |
490 | # new_user: Create a new user | 490 | new_user: Crear un usuario |
491 | # edit_user: Edit an existing user | 491 | edit_user: Editar un usuario existente |
492 | # description: "Here you can manage all users (create, edit and delete)" | 492 | description: "Aquà puedes gestionar todos los usuarios (crear, editar y eliminar)" |
493 | # list: | 493 | list: |
494 | # actions: Actions | 494 | actions: Acciones |
495 | # edit_action: Edit | 495 | edit_action: Editar |
496 | # yes: Yes | 496 | yes: SÃ |
497 | # no: No | 497 | no: No |
498 | # create_new_one: Create a new user | 498 | create_new_one: Crear un usuario |
499 | form: | 499 | form: |
500 | username_label: 'Nombre de usuario' | 500 | username_label: 'Nombre de usuario' |
501 | # name_label: 'Name' | 501 | name_label: 'Nombre' |
502 | password_label: 'Contraseña' | 502 | password_label: 'Contraseña' |
503 | repeat_new_password_label: 'Confirmar la nueva contraseña' | 503 | repeat_new_password_label: 'Confirmar la contraseña' |
504 | plain_password_label: '????' | 504 | plain_password_label: '????' |
505 | email_label: 'Email' | 505 | email_label: 'E-mail' |
506 | # enabled_label: 'Enabled' | 506 | enabled_label: 'Activado' |
507 | # last_login_label: 'Last login' | 507 | last_login_label: 'Último inicio de sesión' |
508 | # twofactor_label: Two factor authentication | 508 | twofactor_label: Autenticación en dos pasos |
509 | # save: Save | 509 | save: Guardar |
510 | # delete: Delete | 510 | delete: Eliminar |
511 | # delete_confirm: Are you sure? | 511 | delete_confirm: ¿Estás seguro? |
512 | # back_to_list: Back to list | 512 | back_to_list: Volver a la lista |
513 | 513 | ||
514 | error: | 514 | error: |
515 | # page_title: An error occurred | 515 | page_title: Ha ocurrido un error |
516 | 516 | ||
517 | flashes: | 517 | flashes: |
518 | config: | 518 | config: |
519 | notice: | 519 | notice: |
520 | config_saved: 'Configuración guardada.' | 520 | config_saved: 'Configuración guardada.' |
521 | password_updated: 'Contraseña actualizada' | 521 | password_updated: 'Contraseña actualizada' |
522 | password_not_updated_demo: "En modo demo, no puede cambiar la contraseña del usuario." | 522 | password_not_updated_demo: "En el modo demo, no puede cambiar la contraseña del usuario." |
523 | user_updated: 'Su información personal ha sido actualizada' | 523 | user_updated: 'Información actualizada' |
524 | rss_updated: 'La configuración de los feeds RSS ha sido actualizada' | 524 | rss_updated: 'Configuración RSS actualizada' |
525 | tagging_rules_updated: 'Regla de etiquetado borrada' | 525 | tagging_rules_updated: 'Regla de etiquetado actualizada' |
526 | tagging_rules_deleted: 'Regla de etiquetado actualizada' | 526 | tagging_rules_deleted: 'Regla de etiquetado eliminada' |
527 | rss_token_updated: 'RSS token actualizado' | 527 | rss_token_updated: 'Token RSS actualizado' |
528 | # annotations_reset: Annotations reset | 528 | annotations_reset: Anotaciones reiniciadas |
529 | # tags_reset: Tags reset | 529 | tags_reset: Etiquetas reiniciadas |
530 | # entries_reset: Entries reset | 530 | entries_reset: ArtÃculos reiniciados |
531 | entry: | 531 | entry: |
532 | notice: | 532 | notice: |
533 | entry_already_saved: 'Entrada ya guardada por %fecha%' | 533 | entry_already_saved: 'ArtÃculo ya guardado el %fecha%' |
534 | entry_saved: 'Entrada guardada' | 534 | entry_saved: 'ArtÃculo guardado' |
535 | # entry_saved_failed: 'Entry saved but fetching content failed' | 535 | entry_saved_failed: 'ArtÃculo guardado pero falló la descarga del contenido' |
536 | entry_updated: 'Entrada actualizada' | 536 | entry_updated: 'ArtÃculo actualizado' |
537 | entry_reloaded: 'Entrada recargada' | 537 | entry_reloaded: 'ArtÃculo redescargado' |
538 | # entry_reloaded_failed: 'Entry reloaded but fetching content failed' | 538 | entry_reloaded_failed: 'ArtÃculo redescargado pero falló la descarga del contenido' |
539 | entry_archived: 'ArtÃculo archivado' | 539 | entry_archived: 'ArtÃculo archivado' |
540 | entry_unarchived: 'ArtÃculo desarchivado' | 540 | entry_unarchived: 'ArtÃculo desarchivado' |
541 | entry_starred: 'ArtÃculo guardado en los favoritos' | 541 | entry_starred: 'ArtÃculo marcado como favorito' |
542 | entry_unstarred: 'ArtÃculo retirado de los favoritos' | 542 | entry_unstarred: 'ArtÃculo desmarcado como favorito' |
543 | entry_deleted: 'ArtÃculo suprimido' | 543 | entry_deleted: 'ArtÃculo eliminado' |
544 | tag: | 544 | tag: |
545 | notice: | 545 | notice: |
546 | tag_added: 'Etiqueta añadida' | 546 | tag_added: 'Etiqueta añadida' |
547 | import: | 547 | import: |
548 | notice: | 548 | notice: |
549 | failed: 'Importación reprobada, por favor inténtelo de nuevo.' | 549 | failed: 'Importación fallida, por favor, inténtelo de nuevo.' |
550 | failed_on_file: 'Se ocurre un error por procesar importación. Por favor verifique su archivo importado.' | 550 | failed_on_file: 'Ocurrió un error al procesar la importación. Por favor, verifique el archivo importado.' |
551 | summary: 'Resúmen importado: %importado% importado, %saltados% ya guardado.' | 551 | summary: 'Resúmen de la importación: %imported% importados, %skipped% ya guardados.' |
552 | # summary_with_queue: 'Import summary: %queued% queued.' | 552 | summary_with_queue: 'Resúmen de la importación: %queued% encolados.' |
553 | error: | 553 | error: |
554 | # redis_enabled_not_installed: Redis is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check Redis configuration. | 554 | redis_enabled_not_installed: Redis está activado para gestionar la importación asÃncrona pero parece que <u>no se puede conectar</u>. Por favor, comprueba la configuración de Redis. |
555 | # rabbit_enabled_not_installed: RabbitMQ is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check RabbitMQ configuration. | 555 | rabbit_enabled_not_installed: RabbitMQ está activado para gestionar la importación asÃncrona pero parece que <u>no se puede conectar</u>. Por favor, comprueba la configuración de RabbitMQ. |
556 | developer: | 556 | developer: |
557 | notice: | 557 | notice: |
558 | client_created: 'Nuevo cliente creado.' | 558 | client_created: 'Creado el cliente %name%.' |
559 | client_deleted: 'Cliente suprimido' | 559 | client_deleted: 'Eliminado el cliente %name%' |
560 | user: | 560 | user: |
561 | notice: | 561 | notice: |
562 | # added: 'User "%username%" added' | 562 | added: 'Añadido el usuario "%username%"' |
563 | # updated: 'User "%username%" updated' | 563 | updated: 'Actualizado el usuario "%username%"' |
564 | # deleted: 'User "%username%" deleted' | 564 | deleted: 'Eliminado el usuario "%username%"' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml index bb0ed48d..992ff71c 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml | |||
@@ -344,7 +344,7 @@ quickstart: | |||
344 | export: "Configura l'esportazione" | 344 | export: "Configura l'esportazione" |
345 | import: "Configura l'importazione" | 345 | import: "Configura l'importazione" |
346 | first_steps: | 346 | first_steps: |
347 | title: 'Pimi passi' | 347 | title: 'Primi passi' |
348 | # description: "Now wallabag is well configured, it's time to archive the web. You can click on the top right sign + to add a link." | 348 | # description: "Now wallabag is well configured, it's time to archive the web. You can click on the top right sign + to add a link." |
349 | new_article: 'Salva il tuo primo contenuto' | 349 | new_article: 'Salva il tuo primo contenuto' |
350 | unread_articles: 'E classificalo!' | 350 | unread_articles: 'E classificalo!' |
diff --git a/src/Wallabag/CoreBundle/Resources/views/base.html.twig b/src/Wallabag/CoreBundle/Resources/views/base.html.twig index 289458d4..020d8efc 100644 --- a/src/Wallabag/CoreBundle/Resources/views/base.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/base.html.twig | |||
@@ -3,7 +3,7 @@ | |||
3 | <!--[if lte IE 7]><html class="no-js ie7 ie67 ie678" lang="en"><![endif]--> | 3 | <!--[if lte IE 7]><html class="no-js ie7 ie67 ie678" lang="en"><![endif]--> |
4 | <!--[if IE 8]><html class="no-js ie8 ie678" lang="en"><![endif]--> | 4 | <!--[if IE 8]><html class="no-js ie8 ie678" lang="en"><![endif]--> |
5 | <!--[if gt IE 8]><html class="no-js" lang="en"><![endif]--> | 5 | <!--[if gt IE 8]><html class="no-js" lang="en"><![endif]--> |
6 | <html lang="fr"> | 6 | <html> |
7 | <head> | 7 | <head> |
8 | {% block head %} | 8 | {% block head %} |
9 | <meta name="viewport" content="initial-scale=1.0"> | 9 | <meta name="viewport" content="initial-scale=1.0"> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_full_image.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_full_image.html.twig index 91a1bac0..58757158 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_full_image.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_full_image.html.twig | |||
@@ -11,8 +11,8 @@ | |||
11 | 11 | ||
12 | <div class="card-content"> | 12 | <div class="card-content"> |
13 | <span class="card-title dot-ellipsis dot-resize-update"> | 13 | <span class="card-title dot-ellipsis dot-resize-update"> |
14 | <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title| e | raw | striptags }}"> | 14 | <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title| striptags | e('html_attr') }}"> |
15 | {{ entry.title | e | raw | striptags | truncate(80, true, '…') }} | 15 | {{ entry.title | striptags | truncate(80, true, '…') | raw }} |
16 | </a> | 16 | </a> |
17 | </span> | 17 | </span> |
18 | 18 | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_list.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_list.html.twig index bb9b64ce..3ba6253a 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_list.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_list.html.twig | |||
@@ -2,7 +2,7 @@ | |||
2 | <div class="card-stacked"> | 2 | <div class="card-stacked"> |
3 | <div class="card-content"> | 3 | <div class="card-content"> |
4 | <span class="card-title dot-ellipsis dot-resize-update"> | 4 | <span class="card-title dot-ellipsis dot-resize-update"> |
5 | <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | raw | striptags }}"> | 5 | <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | striptags | e('html_attr') }}"> |
6 | {{ entry.title| striptags | truncate(120, true, '…') | raw }} | 6 | {{ entry.title| striptags | truncate(120, true, '…') | raw }} |
7 | </a> | 7 | </a> |
8 | </span> | 8 | </span> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_no_preview.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_no_preview.html.twig index ed916e79..eb158659 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_no_preview.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_no_preview.html.twig | |||
@@ -2,8 +2,8 @@ | |||
2 | <div class="card-body"> | 2 | <div class="card-body"> |
3 | <div class="card-content"> | 3 | <div class="card-content"> |
4 | <span class="card-title dot-ellipsis dot-resize-update"> | 4 | <span class="card-title dot-ellipsis dot-resize-update"> |
5 | <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | e | raw | striptags }}"> | 5 | <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | striptags | e('html_attr') }}"> |
6 | {{ entry.title | e | raw | striptags | truncate(80, true, '…') }} | 6 | {{ entry.title | striptags | truncate(80, true, '…') | raw }} |
7 | </a> | 7 | </a> |
8 | </span> | 8 | </span> |
9 | 9 | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_preview.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_preview.html.twig index d23be4d0..fb5301c8 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_preview.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_preview.html.twig | |||
@@ -13,8 +13,8 @@ | |||
13 | <i class="grey-text text-darken-4 activator material-icons right">more_vert</i> | 13 | <i class="grey-text text-darken-4 activator material-icons right">more_vert</i> |
14 | 14 | ||
15 | <span class="card-title dot-ellipsis dot-resize-update"> | 15 | <span class="card-title dot-ellipsis dot-resize-update"> |
16 | <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | e | raw | striptags }}"> | 16 | <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | striptags | e('html_attr') }}"> |
17 | {{ entry.title | e | striptags | truncate(80, true, '…') | raw }} | 17 | {{ entry.title | striptags | truncate(80, true, '…') | raw }} |
18 | </a> | 18 | </a> |
19 | </span> | 19 | </span> |
20 | 20 | ||
@@ -29,8 +29,8 @@ | |||
29 | <div class="card-reveal"> | 29 | <div class="card-reveal"> |
30 | <i class="card-title activator grey-text text-darken-4 material-icons right">clear</i> | 30 | <i class="card-title activator grey-text text-darken-4 material-icons right">clear</i> |
31 | <span class="card-title"> | 31 | <span class="card-title"> |
32 | <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | e | raw | striptags }}"> | 32 | <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | striptags | e('html_attr') }}"> |
33 | {{ entry.title | e | raw | striptags | truncate(80, true, '…') }} | 33 | {{ entry.title | striptags | truncate(80, true, '…') | raw }} |
34 | </a> | 34 | </a> |
35 | </span> | 35 | </span> |
36 | 36 | ||
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 15428b92..c3508083 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 | |||
@@ -1,6 +1,6 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | 2 | ||
3 | {% block title %}{{ entry.title|e|raw }} ({{ entry.domainName|removeWww }}){% endblock %} | 3 | {% block title %}{{ entry.title|striptags|raw }} ({{ entry.domainName|removeWww }}){% endblock %} |
4 | 4 | ||
5 | {% block body_class %}entry{% endblock %} | 5 | {% block body_class %}entry{% endblock %} |
6 | 6 | ||
@@ -118,14 +118,14 @@ | |||
118 | {% endif %} | 118 | {% endif %} |
119 | {% if craue_setting('share_twitter') %} | 119 | {% if craue_setting('share_twitter') %} |
120 | <li> | 120 | <li> |
121 | <a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool icon-twitter" title="twitter"> | 121 | <a href="https://twitter.com/home?status={{entry.title|striptags|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool icon-twitter" title="twitter"> |
122 | <span>twitter</span> | 122 | <span>twitter</span> |
123 | </a> | 123 | </a> |
124 | </li> | 124 | </li> |
125 | {% endif %} | 125 | {% endif %} |
126 | {% if craue_setting('share_shaarli') %} | 126 | {% if craue_setting('share_shaarli') %} |
127 | <li> | 127 | <li> |
128 | <a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}&tags={{ entry.tags|join(',')|url_encode }}" target="_blank"> | 128 | <a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&title={{ entry.title|striptags|url_encode }}&tags={{ entry.tags|join(',')|striptags|url_encode }}" target="_blank"> |
129 | <i class="tool icon-image icon-image--shaarli" title="shaarli"></i> | 129 | <i class="tool icon-image icon-image--shaarli" title="shaarli"></i> |
130 | <span>shaarli</span> | 130 | <span>shaarli</span> |
131 | </a> | 131 | </a> |
@@ -133,7 +133,7 @@ | |||
133 | {% endif %} | 133 | {% endif %} |
134 | {% if craue_setting('share_diaspora') %} | 134 | {% if craue_setting('share_diaspora') %} |
135 | <li> | 135 | <li> |
136 | <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"> | 136 | <a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|striptags|url_encode }}&notes=&v=1&noui=1&jump=doclose" target="_blank"> |
137 | <i class="tool icon-image icon-image--diaspora" title="diaspora"></i> | 137 | <i class="tool icon-image icon-image--diaspora" title="diaspora"></i> |
138 | <span>diaspora*</span> | 138 | <span>diaspora*</span> |
139 | </a> | 139 | </a> |
@@ -141,7 +141,7 @@ | |||
141 | {% endif %} | 141 | {% endif %} |
142 | {% if craue_setting('share_unmark') %} | 142 | {% if craue_setting('share_unmark') %} |
143 | <li> | 143 | <li> |
144 | <a href="{{ craue_setting('unmark_url') }}/mark/add?url={{ entry.url|url_encode }}&title={{entry.title|url_encode}}&v=6" target="_blank"> | 144 | <a href="{{ craue_setting('unmark_url') }}/mark/add?url={{ entry.url|url_encode }}&title={{entry.title|striptags|url_encode}}&v=6" target="_blank"> |
145 | <i class="tool icon-image icon-image--unmark" title="unmark"></i> | 145 | <i class="tool icon-image icon-image--unmark" title="unmark"></i> |
146 | <span>unmark.it</span> | 146 | <span>unmark.it</span> |
147 | </a> | 147 | </a> |
@@ -149,7 +149,7 @@ | |||
149 | {% endif %} | 149 | {% endif %} |
150 | {% if craue_setting('carrot') %} | 150 | {% if craue_setting('carrot') %} |
151 | <li> | 151 | <li> |
152 | <a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" target="_blank" title="carrot"> | 152 | <a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|striptags|url_encode }}" target="_blank" title="carrot"> |
153 | <i class="tool icon-image icon-image--carrot"></i> | 153 | <i class="tool icon-image icon-image--carrot"></i> |
154 | <span>Carrot</span> | 154 | <span>Carrot</span> |
155 | </a> | 155 | </a> |
@@ -157,7 +157,7 @@ | |||
157 | {% endif %} | 157 | {% endif %} |
158 | {% if craue_setting('share_mail') %} | 158 | {% if craue_setting('share_mail') %} |
159 | <li> | 159 | <li> |
160 | <a href="mailto:?subject={{ entry.title|url_encode }}&body={{ entry.url|url_encode }}%20via%20@wallabagapp" title="{{ 'entry.view.left_menu.share_email_label'|trans }}" class="tool email icon icon-mail"> | 160 | <a href="mailto:?subject={{ entry.title|striptags|url_encode }}&body={{ entry.url|url_encode }}%20via%20@wallabagapp" title="{{ 'entry.view.left_menu.share_email_label'|trans }}" class="tool email icon icon-mail"> |
161 | <span>{{ 'entry.view.left_menu.share_email_label'|trans }}</span> | 161 | <span>{{ 'entry.view.left_menu.share_email_label'|trans }}</span> |
162 | </a> | 162 | </a> |
163 | </li> | 163 | </li> |
@@ -209,7 +209,7 @@ | |||
209 | {% block content %} | 209 | {% block content %} |
210 | <div id="article"> | 210 | <div id="article"> |
211 | <header class="mbm"> | 211 | <header class="mbm"> |
212 | <h1>{{ entry.title|e|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" title="{{ 'entry.view.edit_title'|trans }}">✎</a></h1> | 212 | <h1>{{ entry.title|striptags|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" title="{{ 'entry.view.edit_title'|trans }}">✎</a></h1> |
213 | </header> | 213 | </header> |
214 | <aside> | 214 | <aside> |
215 | <ul class="tools"> | 215 | <ul class="tools"> |
@@ -222,7 +222,7 @@ | |||
222 | </li> | 222 | </li> |
223 | <li> | 223 | <li> |
224 | <i class="material-icons link">link</i> | 224 | <i class="material-icons link">link</i> |
225 | <a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool"> | 225 | <a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|striptags }}" class="tool"> |
226 | {{ entry.domainName|removeWww }} | 226 | {{ entry.domainName|removeWww }} |
227 | </a> | 227 | </a> |
228 | </li> | 228 | </li> |
@@ -244,7 +244,7 @@ | |||
244 | </div> | 244 | </div> |
245 | 245 | ||
246 | {% if entry.previewPicture is not null %} | 246 | {% if entry.previewPicture is not null %} |
247 | <div><img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" /></div> | 247 | <div><img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|striptags|e('html_attr') }}" /></div> |
248 | {% endif %} | 248 | {% endif %} |
249 | 249 | ||
250 | </aside> | 250 | </aside> |
diff --git a/src/Wallabag/ImportBundle/Consumer/AbstractConsumer.php b/src/Wallabag/ImportBundle/Consumer/AbstractConsumer.php index fc175f67..992ce1ad 100644 --- a/src/Wallabag/ImportBundle/Consumer/AbstractConsumer.php +++ b/src/Wallabag/ImportBundle/Consumer/AbstractConsumer.php | |||
@@ -46,7 +46,8 @@ abstract class AbstractConsumer | |||
46 | if (null === $user) { | 46 | if (null === $user) { |
47 | $this->logger->warning('Unable to retrieve user', ['entry' => $storedEntry]); | 47 | $this->logger->warning('Unable to retrieve user', ['entry' => $storedEntry]); |
48 | 48 | ||
49 | return false; | 49 | // return true to skip message |
50 | return true; | ||
50 | } | 51 | } |
51 | 52 | ||
52 | $this->import->setUser($user); | 53 | $this->import->setUser($user); |
diff --git a/src/Wallabag/UserBundle/Resources/translations/wallabag_user.es.yml b/src/Wallabag/UserBundle/Resources/translations/wallabag_user.es.yml new file mode 100644 index 00000000..eb867a76 --- /dev/null +++ b/src/Wallabag/UserBundle/Resources/translations/wallabag_user.es.yml | |||
@@ -0,0 +1,11 @@ | |||
1 | # Two factor mail | ||
2 | auth_code: | ||
3 | on: 'on' | ||
4 | mailer: | ||
5 | subject: 'código de autenticación de wallabag' | ||
6 | body: | ||
7 | hello: "Hola %user%," | ||
8 | first_para: "Debido a que tienes activada la autenticación en dos pasos y acabas de iniciar sesión en un nuevo dispositivo (ordenador, teléfono, etc.), hemos enviado un código para validar tu conexión." | ||
9 | second_para: "Este es el código:" | ||
10 | support: "Por favor, no dudes en contactarnos si tienes algún problema:" | ||
11 | signature: "El equipo de wallabag" | ||