Просмотр исходного кода

Updated Spanish translations (#3916)

* Updated Spanish translations

Co-authored-by: Natalie Stroud <stroudn1@nku.edu>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Natalie Stroud 4 лет назад
Родитель
Сommit
c484746a88
9 измененных файлов с 191 добавлено и 184 удалено
  1. 23 23
      app/i18n/es/admin.php
  2. 52 52
      app/i18n/es/conf.php
  3. 19 19
      app/i18n/es/feedback.php
  4. 12 12
      app/i18n/es/gen.php
  5. 4 4
      app/i18n/es/index.php
  6. 6 6
      app/i18n/es/install.php
  7. 48 48
      app/i18n/es/sub.php
  8. 20 20
      app/i18n/es/user.php
  9. 7 0
      cli/i18n/ignore/es.php

+ 23 - 23
app/i18n/es/admin.php

@@ -66,8 +66,8 @@ return array(
 			'ok' => 'Dispones de la extensión JSON.',
 			'ok' => 'Dispones de la extensión JSON.',
 		),
 		),
 		'mbstring' => array(
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended mbstring library for Unicode.',	// TODO - Translation
-			'ok' => 'You have the recommended mbstring library for Unicode.',	// TODO - Translation
+			'nok' => 'No se puede encontrar la biblioteca mbstring recomendada para Unicode.',
+			'ok' => 'Tiene la biblioteca mbstring recomendada para Unicode.',
 		),
 		),
 		'pcre' => array(
 		'pcre' => array(
 			'nok' => 'No se ha podido localizar la librería para las expresiones regulares (php-pcre).',
 			'nok' => 'No se ha podido localizar la librería para las expresiones regulares (php-pcre).',
@@ -101,23 +101,23 @@ return array(
 		),
 		),
 	),
 	),
 	'extensions' => array(
 	'extensions' => array(
-		'author' => 'Author',	// TODO - Translation
-		'community' => 'Available community extensions',	// TODO - Translation
-		'description' => 'Description',	// TODO - Translation
+		'author' => 'Autor/Autora',
+		'community' => 'Extensiones de comunidad disponibles',
+		'description' => 'Descripción',
 		'disabled' => 'Desactivado',
 		'disabled' => 'Desactivado',
 		'empty_list' => 'No hay extensiones instaladas',
 		'empty_list' => 'No hay extensiones instaladas',
 		'enabled' => 'Activado',
 		'enabled' => 'Activado',
-		'latest' => 'Installed',	// TODO - Translation
-		'name' => 'Name',	// TODO - Translation
+		'latest' => 'Instalado',
+		'name' => 'Nombre',
 		'no_configure_view' => 'Esta extensión no puede ser configurada.',
 		'no_configure_view' => 'Esta extensión no puede ser configurada.',
 		'system' => array(
 		'system' => array(
 			'_' => 'Sistema de extensiones',
 			'_' => 'Sistema de extensiones',
 			'no_rights' => 'Sistema de extensiones (careces de los permisos necesarios)',
 			'no_rights' => 'Sistema de extensiones (careces de los permisos necesarios)',
 		),
 		),
 		'title' => 'Extensiones',
 		'title' => 'Extensiones',
-		'update' => 'Update available',	// TODO - Translation
+		'update' => 'Actualización disponible',
 		'user' => 'Extensiones de usuario',
 		'user' => 'Extensiones de usuario',
-		'version' => 'Version',	// TODO - Translation
+		'version' => 'Versión',
 	),
 	),
 	'stats' => array(
 	'stats' => array(
 		'_' => 'Estadísticas',
 		'_' => 'Estadísticas',
@@ -141,7 +141,7 @@ return array(
 		'repartition' => 'Reprto de artículos',
 		'repartition' => 'Reprto de artículos',
 		'status_favorites' => 'Favoritos',
 		'status_favorites' => 'Favoritos',
 		'status_read' => 'Leídos',
 		'status_read' => 'Leídos',
-		'status_total' => 'Total',	// TODO - Translation
+		'status_total' => 'Total',
 		'status_unread' => 'Pendientes',
 		'status_unread' => 'Pendientes',
 		'title' => 'Estadísticas',
 		'title' => 'Estadísticas',
 		'top_feed' => 'Las 10 fuentes más activas',
 		'top_feed' => 'Las 10 fuentes más activas',
@@ -150,10 +150,10 @@ return array(
 		'_' => 'Configuración del sistema',
 		'_' => 'Configuración del sistema',
 		'auto-update-url' => 'URL de auto-actualización',
 		'auto-update-url' => 'URL de auto-actualización',
 		'cookie-duration' => array(
 		'cookie-duration' => array(
-			'help' => 'in seconds',	// TODO - Translation
-			'number' => 'Duration to keep logged in',	// TODO - Translation
+			'help' => 'en segundos',
+			'number' => 'Duración para mantenerse conectado',
 		),
 		),
-		'force_email_validation' => 'Force email address validation',	// TODO - Translation
+		'force_email_validation' => 'Forzar la validación de direcciones de correo electrónico',
 		'instance-name' => 'Nombre de la fuente',
 		'instance-name' => 'Nombre de la fuente',
 		'max-categories' => 'Límite de categorías por usuario',
 		'max-categories' => 'Límite de categorías por usuario',
 		'max-feeds' => 'Límite de fuentes por usuario',
 		'max-feeds' => 'Límite de fuentes por usuario',
@@ -172,18 +172,18 @@ return array(
 		'title' => 'Actualizar sistema',
 		'title' => 'Actualizar sistema',
 	),
 	),
 	'user' => array(
 	'user' => array(
-		'admin' => 'Administrator',	// TODO - Translation
-		'article_count' => 'Articles',	// TODO - Translation
-		'back_to_manage' => '← Return to user list',	// TODO - Translation
+		'admin' => 'Administrador/Administradora',
+		'article_count' => 'Artículos',
+		'back_to_manage' => '← Volver a la lista de usuarios',
 		'create' => 'Crear nuevo usuario',
 		'create' => 'Crear nuevo usuario',
-		'database_size' => 'Database size',	// TODO - Translation
-		'email' => 'Email address',	// TODO - Translation
-		'enabled' => 'Enabled',	// TODO - Translation
-		'feed_count' => 'Feeds',	// TODO - Translation
-		'is_admin' => 'Is admin',	// TODO - Translation
+		'database_size' => 'Tamaño de la base de datos',
+		'email' => 'Dirección de correo electrónico',
+		'enabled' => 'Permitido',
+		'feed_count' => 'Feeds',
+		'is_admin' => 'Es admin',
 		'language' => 'Idioma',
 		'language' => 'Idioma',
-		'last_user_activity' => 'Last user activity',	// TODO - Translation
-		'list' => 'User list',	// TODO - Translation
+		'last_user_activity' => 'Última actividad del usuario',
+		'list' => 'Lista de usuarios',
 		'number' => 'Hay %d cuenta creada',
 		'number' => 'Hay %d cuenta creada',
 		'numbers' => 'Hay %d cuentas creadas',
 		'numbers' => 'Hay %d cuentas creadas',
 		'password_form' => 'Contraseña<br /><small>(para el método de identificación por formulario web)</small>',
 		'password_form' => 'Contraseña<br /><small>(para el método de identificación por formulario web)</small>',

+ 52 - 52
app/i18n/es/conf.php

@@ -3,19 +3,19 @@
 return array(
 return array(
 	'archiving' => array(
 	'archiving' => array(
 		'_' => 'Archivo',
 		'_' => 'Archivo',
-		'exception' => 'Purge exception',	// TODO - Translation
+		'exception' => 'Excepción de purga',
 		'help' => 'Hay más opciones disponibles en los ajustes de la fuente',
 		'help' => 'Hay más opciones disponibles en los ajustes de la fuente',
-		'keep_favourites' => 'Never delete favourites',	// TODO - Translation
-		'keep_labels' => 'Never delete labels',	// TODO - Translation
-		'keep_max' => 'Maximum number of articles to keep',	// TODO - Translation
+		'keep_favourites' => 'Nunca elimines favoritos',
+		'keep_labels' => 'Nunca elimine etiquetas',
+		'keep_max' => 'Número máximo de artículos a conservar',
 		'keep_min_by_feed' => 'Número mínimo de artículos a conservar por fuente',
 		'keep_min_by_feed' => 'Número mínimo de artículos a conservar por fuente',
-		'keep_period' => 'Maximum age of articles to keep',	// TODO - Translation
-		'keep_unreads' => 'Never delete unread articles',	// TODO - Translation
-		'maintenance' => 'Maintenance',	// TODO - Translation
+		'keep_period' => 'Edad máxima de los artículos a conservar',
+		'keep_unreads' => 'Nunca elimine artículos no leídos',
+		'maintenance' => 'Mantenimiento',
 		'optimize' => 'Optimizar la base de datos',
 		'optimize' => 'Optimizar la base de datos',
 		'optimize_help' => 'Ejecuta la optimización de vez en cuando para reducir el tamaño de la base de datos',
 		'optimize_help' => 'Ejecuta la optimización de vez en cuando para reducir el tamaño de la base de datos',
-		'policy' => 'Purge policy',	// TODO - Translation
-		'policy_warning' => 'If no purge policy is selected, every article will be kept.',	// TODO - Translation
+		'policy' => 'Política de purga',
+		'policy_warning' => 'Si no se selecciona ninguna política de purga, se conservarán todos los artículos.',
 		'purge_now' => 'Limpiar ahora',
 		'purge_now' => 'Limpiar ahora',
 		'title' => 'Archivo',
 		'title' => 'Archivo',
 		'ttl' => 'No actualizar automáticamente más de',
 		'ttl' => 'No actualizar automáticamente más de',
@@ -24,12 +24,12 @@ return array(
 		'_' => 'Visualización',
 		'_' => 'Visualización',
 		'icon' => array(
 		'icon' => array(
 			'bottom_line' => 'Línea inferior',
 			'bottom_line' => 'Línea inferior',
-			'display_authors' => 'Authors',	// TODO - Translation
+			'display_authors' => 'Autores/Autoras',
 			'entry' => 'Iconos de artículos',
 			'entry' => 'Iconos de artículos',
 			'publication_date' => 'Fecha de publicación',
 			'publication_date' => 'Fecha de publicación',
 			'related_tags' => 'Etiquetas relacionadas',
 			'related_tags' => 'Etiquetas relacionadas',
 			'sharing' => 'Compartir',
 			'sharing' => 'Compartir',
-			'summary' => 'Summary',	// TODO - Translation
+			'summary' => 'Resumen',
 			'top_line' => 'Línea superior',
 			'top_line' => 'Línea superior',
 		),
 		),
 		'language' => 'Idioma',
 		'language' => 'Idioma',
@@ -37,15 +37,15 @@ return array(
 			'seconds' => 'segundos (0 significa sin límite de espera)',
 			'seconds' => 'segundos (0 significa sin límite de espera)',
 			'timeout' => 'Notificación de fin de espera HTML5',
 			'timeout' => 'Notificación de fin de espera HTML5',
 		),
 		),
-		'show_nav_buttons' => 'Show the navigation buttons',	// TODO - Translation
+		'show_nav_buttons' => 'Mostrar los botones de navegación',
 		'theme' => 'Tema',
 		'theme' => 'Tema',
-		'theme_not_available' => 'The “%s” theme is not available anymore. Please choose another theme.',	// TODO - Translation
+		'theme_not_available' => 'El tema “%s” ya no está disponible. Por favor, elija otro tema.',
 		'thumbnail' => array(
 		'thumbnail' => array(
-			'label' => 'Thumbnail',	// TODO - Translation
-			'landscape' => 'Landscape',	// TODO - Translation
-			'none' => 'None',	// TODO - Translation
-			'portrait' => 'Portrait',	// TODO - Translation
-			'square' => 'Square',	// TODO - Translation
+			'label' => 'Miniatura',
+			'landscape' => 'Horizontal',
+			'none' => 'Ninguno',
+			'portrait' => 'Retrato',
+			'square' => 'Cuadrado',
 		),
 		),
 		'title' => 'Visualización',
 		'title' => 'Visualización',
 		'width' => array(
 		'width' => array(
@@ -58,7 +58,7 @@ return array(
 	),
 	),
 	'profile' => array(
 	'profile' => array(
 		'_' => 'Administración de perfiles',
 		'_' => 'Administración de perfiles',
-		'api' => 'API management',	// TODO - Translation
+		'api' => 'Administración de API',
 		'delete' => array(
 		'delete' => array(
 			'_' => 'Borrar cuenta',
 			'_' => 'Borrar cuenta',
 			'warn' => 'Tu cuenta y todos los datos asociados serán eliminados.',
 			'warn' => 'Tu cuenta y todos los datos asociados serán eliminados.',
@@ -74,19 +74,19 @@ return array(
 		'deprecated' => 'Esta consulta ya no es válida. La categoría referenciada o fuente ha sido eliminada.',
 		'deprecated' => 'Esta consulta ya no es válida. La categoría referenciada o fuente ha sido eliminada.',
 		'filter' => array(
 		'filter' => array(
 			'_' => 'Filtro aplicado:',
 			'_' => 'Filtro aplicado:',
-			'categories' => 'Display by category',	// TODO - Translation
-			'feeds' => 'Display by feed',	// TODO - Translation
-			'order' => 'Sort by date',	// TODO - Translation
-			'search' => 'Expression',	// TODO - Translation
-			'state' => 'State',	// TODO - Translation
-			'tags' => 'Display by tag',	// TODO - Translation
-			'type' => 'Type',	// TODO - Translation
+			'categories' => 'Mostrar por categoría',
+			'feeds' => 'Mostrar por feed',
+			'order' => 'Ordenar por fecha',
+			'search' => 'Expresión',
+			'state' => 'Estado',
+			'tags' => 'Mostrar por etiqueta',
+			'type' => 'Tipo',
 		),
 		),
 		'get_all' => 'Mostrar todos los artículos',
 		'get_all' => 'Mostrar todos los artículos',
 		'get_category' => 'Mostrar la categoría "%s"',
 		'get_category' => 'Mostrar la categoría "%s"',
 		'get_favorite' => 'Mostrar artículos favoritos',
 		'get_favorite' => 'Mostrar artículos favoritos',
 		'get_feed' => 'Mostrar fuente "%s"',
 		'get_feed' => 'Mostrar fuente "%s"',
-		'name' => 'Name',	// TODO - Translation
+		'name' => 'Nombre',
 		'no_filter' => 'Sin filtro',
 		'no_filter' => 'Sin filtro',
 		'number' => 'Consulta n° %d',
 		'number' => 'Consulta n° %d',
 		'order_asc' => 'Mostrar primero los artículos más antiguos',
 		'order_asc' => 'Mostrar primero los artículos más antiguos',
@@ -113,13 +113,13 @@ return array(
 	'reading' => array(
 	'reading' => array(
 		'_' => 'Lectura',
 		'_' => 'Lectura',
 		'after_onread' => 'Tras “marcar todo como leído”,',
 		'after_onread' => 'Tras “marcar todo como leído”,',
-		'always_show_favorites' => 'Show all articles in favourites by default',	// TODO - Translation
+		'always_show_favorites' => 'Mostrar todos los artículos en favoritos de forma predeterminada',
 		'articles_per_page' => 'Número de artículos por página',
 		'articles_per_page' => 'Número de artículos por página',
 		'auto_load_more' => 'Cargar más artículos al final de la página',
 		'auto_load_more' => 'Cargar más artículos al final de la página',
 		'auto_remove_article' => 'Ocultar artículos tras la lectura',
 		'auto_remove_article' => 'Ocultar artículos tras la lectura',
 		'confirm_enabled' => 'Mostrar ventana de confirmación al usar la función “marcar todos como leídos”',
 		'confirm_enabled' => 'Mostrar ventana de confirmación al usar la función “marcar todos como leídos”',
 		'display_articles_unfolded' => 'Mostrar los artículos expandidos por defecto',
 		'display_articles_unfolded' => 'Mostrar los artículos expandidos por defecto',
-		'display_categories_unfolded' => 'Categories to unfold',	// TODO - Translation
+		'display_categories_unfolded' => 'Categorías a desarrollar',
 		'hide_read_feeds' => 'Ocultar categorías & fuentes sin artículos no leídos (no funciona con la configuración "Mostrar todos los artículos")',
 		'hide_read_feeds' => 'Ocultar categorías & fuentes sin artículos no leídos (no funciona con la configuración "Mostrar todos los artículos")',
 		'img_with_lazyload' => 'Usar el modo de "carga perezosa" para las imágenes',
 		'img_with_lazyload' => 'Usar el modo de "carga perezosa" para las imágenes',
 		'jump_next' => 'saltar al siguiente archivo sin leer emparentado (fuente o categoría)',
 		'jump_next' => 'saltar al siguiente archivo sin leer emparentado (fuente o categoría)',
@@ -128,23 +128,23 @@ return array(
 		'read' => array(
 		'read' => array(
 			'article_open_on_website' => 'cuando el artículo se abra en su web original',
 			'article_open_on_website' => 'cuando el artículo se abra en su web original',
 			'article_viewed' => 'cuando se muestre el artículo',
 			'article_viewed' => 'cuando se muestre el artículo',
-			'keep_max_n_unread' => 'Max number of articles to keep unread',	// TODO - Translation
+			'keep_max_n_unread' => 'Número máximo de artículos para mantener sin leer',
 			'scroll' => 'durante el desplazamiento',
 			'scroll' => 'durante el desplazamiento',
 			'upon_reception' => 'al recibir el artículo',
 			'upon_reception' => 'al recibir el artículo',
 			'when' => 'Marcar el artículo como leído…',
 			'when' => 'Marcar el artículo como leído…',
-			'when_same_title' => 'if an identical title already exists in the top <i>n</i> newest articles',	// TODO - Translation
+			'when_same_title' => 'Si ya existe un título idéntico en la parte superior <i>n</i> artículos más recientes',
 		),
 		),
 		'show' => array(
 		'show' => array(
 			'_' => 'Artículos a mostrar',
 			'_' => 'Artículos a mostrar',
-			'active_category' => 'Active category',	// TODO - Translation
+			'active_category' => 'Categoría activa',
 			'adaptive' => 'Ajustar la visualización',
 			'adaptive' => 'Ajustar la visualización',
 			'all_articles' => 'Mostrar todos los artículos',
 			'all_articles' => 'Mostrar todos los artículos',
-			'all_categories' => 'All categories',	// TODO - Translation
-			'no_category' => 'No category',	// TODO - Translation
-			'remember_categories' => 'Remember open categories',	// TODO - Translation
+			'all_categories' => 'Todas las categorías',
+			'no_category' => 'Sin categoría',
+			'remember_categories' => 'Recordar categorías abiertas',
 			'unread' => 'Mostrar solo pendientes',
 			'unread' => 'Mostrar solo pendientes',
 		),
 		),
-		'show_fav_unread_help' => 'Applies also on labels',	// TODO - Translation
+		'show_fav_unread_help' => 'Se aplica también en las etiquetas',
 		'sides_close_article' => 'Pinchar fuera del área de texto del artículo lo cerrará',
 		'sides_close_article' => 'Pinchar fuera del área de texto del artículo lo cerrará',
 		'sort' => array(
 		'sort' => array(
 			'_' => 'Orden',
 			'_' => 'Orden',
@@ -162,15 +162,15 @@ return array(
 	),
 	),
 	'sharing' => array(
 	'sharing' => array(
 		'_' => 'Compartir',
 		'_' => 'Compartir',
-		'add' => 'Add a sharing method',	// TODO - Translation
+		'add' => 'Agregar un método de uso compartido',
 		'blogotext' => 'Blogotext',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'diaspora' => 'Diaspora*',
-		'email' => 'Email',	// TODO - Translation
+		'email' => 'Email',
 		'facebook' => 'Facebook',
 		'facebook' => 'Facebook',
 		'more_information' => 'Más información',
 		'more_information' => 'Más información',
-		'print' => 'Print',	// TODO - Translation
+		'print' => 'Imprimir',
 		'raindrop' => 'Raindrop.io',
 		'raindrop' => 'Raindrop.io',
-		'remove' => 'Remove sharing method',	// TODO - Translation
+		'remove' => 'Quitar método de uso compartido',
 		'shaarli' => 'Shaarli',
 		'shaarli' => 'Shaarli',
 		'share_name' => 'Compartir nombre a mostrar',
 		'share_name' => 'Compartir nombre a mostrar',
 		'share_url' => 'Compatir URL a usar',
 		'share_url' => 'Compatir URL a usar',
@@ -187,7 +187,7 @@ return array(
 		'collapse_article' => 'Contraer',
 		'collapse_article' => 'Contraer',
 		'first_article' => 'Saltar al primer artículo',
 		'first_article' => 'Saltar al primer artículo',
 		'focus_search' => 'Acceso a la casilla de búsqueda',
 		'focus_search' => 'Acceso a la casilla de búsqueda',
-		'global_view' => 'Switch to global view',	// TODO - Translation
+		'global_view' => 'Cambiar a la vista global',
 		'help' => 'Mostrar documentación',
 		'help' => 'Mostrar documentación',
 		'javascript' => 'JavaScript debe estar activado para poder usar atajos de teclado',
 		'javascript' => 'JavaScript debe estar activado para poder usar atajos de teclado',
 		'last_article' => 'Saltar al último artículo',
 		'last_article' => 'Saltar al último artículo',
@@ -196,24 +196,24 @@ return array(
 		'mark_read' => 'Marcar como leído',
 		'mark_read' => 'Marcar como leído',
 		'navigation' => 'Navegación',
 		'navigation' => 'Navegación',
 		'navigation_help' => 'Con el modificador <kbd>⇧ Mayúsculas</kbd> es posible usar los atajos de teclado en las fuentes.<br/>Con el modificador <kbd>Alt ⎇</kbd> es posible aplicar los atajos de teclado en las categorías.',
 		'navigation_help' => 'Con el modificador <kbd>⇧ Mayúsculas</kbd> es posible usar los atajos de teclado en las fuentes.<br/>Con el modificador <kbd>Alt ⎇</kbd> es posible aplicar los atajos de teclado en las categorías.',
-		'navigation_no_mod_help' => 'The following navigation shortcuts do not support modifiers.',	// TODO - Translation
+		'navigation_no_mod_help' => 'Los siguientes accesos directos de navegación no admiten modificadores.',
 		'next_article' => 'Saltar al siguiente artículo',
 		'next_article' => 'Saltar al siguiente artículo',
-		'next_unread_article' => 'Open the next unread article',	// TODO - Translation
-		'non_standard' => 'Some keys (<kbd>%s</kbd>) may not work as shortcuts.',	// TODO - Translation
-		'normal_view' => 'Switch to normal view',	// TODO - Translation
+		'next_unread_article' => 'Abrir el siguiente artículo no leído',
+		'non_standard' => 'Es posible que algunas teclas (<kbd>%s</kbd>) no funcionen como métodos abreviados.',
+		'normal_view' => 'Cambiar a la vista normal',
 		'other_action' => 'Otras acciones',
 		'other_action' => 'Otras acciones',
 		'previous_article' => 'Saltar al artículo anterior',
 		'previous_article' => 'Saltar al artículo anterior',
-		'reading_view' => 'Switch to reading view',	// TODO - Translation
-		'rss_view' => 'Open as RSS feed',	// TODO - Translation
+		'reading_view' => 'Cambiar a la vista de lectura',
+		'rss_view' => 'Abrir como fuente RSS',
 		'see_on_website' => 'Ver en la web original',
 		'see_on_website' => 'Ver en la web original',
-		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Shift</kbd> to mark all articles as read',	// TODO - Translation
-		'skip_next_article' => 'Focus next without opening',	// TODO - Translation
-		'skip_previous_article' => 'Focus previous without opening',	// TODO - Translation
+		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> para marcar los artículos anteriores como leídos<br />+ <kbd>⇧ Shift</kbd> marcar todos los artículos como leídos',
+		'skip_next_article' => 'Enfoque siguiente sin abrir',
+		'skip_previous_article' => 'Enfoque anterior sin abrir',
 		'title' => 'Atajos de teclado',
 		'title' => 'Atajos de teclado',
-		'toggle_media' => 'Play/pause media',	// TODO - Translation
+		'toggle_media' => 'Jugar/pausar medios',
 		'user_filter' => 'Acceso a filtros de usuario',
 		'user_filter' => 'Acceso a filtros de usuario',
 		'user_filter_help' => 'Si solo hay un filtro de usuario, ese será el que se use. En caso contrario, los filtros están accesibles por su númeración.',
 		'user_filter_help' => 'Si solo hay un filtro de usuario, ese será el que se use. En caso contrario, los filtros están accesibles por su númeración.',
-		'views' => 'Views',	// TODO - Translation
+		'views' => 'Vistas',
 	),
 	),
 	'user' => array(
 	'user' => array(
 		'articles_and_size' => '%s artículos (%s)',
 		'articles_and_size' => '%s artículos (%s)',

+ 19 - 19
app/i18n/es/feedback.php

@@ -10,8 +10,8 @@ return array(
 	),
 	),
 	'api' => array(
 	'api' => array(
 		'password' => array(
 		'password' => array(
-			'failed' => 'Your password cannot be modified',	// TODO - Translation
-			'updated' => 'Your password has been modified',	// TODO - Translation
+			'failed' => 'Su contraseña no se puede modificar',
+			'updated' => 'Su contraseña ha sido modificada',
 		),
 		),
 	),
 	),
 	'auth' => array(
 	'auth' => array(
@@ -31,7 +31,7 @@ return array(
 	),
 	),
 	'extensions' => array(
 	'extensions' => array(
 		'already_enabled' => '%s ya está activado',
 		'already_enabled' => '%s ya está activado',
-		'cannot_remove' => '%s cannot be removed',	// TODO - Translation
+		'cannot_remove' => '%s no se puede quitar',
 		'disable' => array(
 		'disable' => array(
 			'ko' => '%s no se puede desactivar. <a href="%s">Revisa el registro de FreshRSS</a> para más información.',
 			'ko' => '%s no se puede desactivar. <a href="%s">Revisa el registro de FreshRSS</a> para más información.',
 			'ok' => '%s ha quedado desactivado',
 			'ok' => '%s ha quedado desactivado',
@@ -43,7 +43,7 @@ return array(
 		'no_access' => 'No tienes acceso a %s',
 		'no_access' => 'No tienes acceso a %s',
 		'not_enabled' => '%s no está activado',
 		'not_enabled' => '%s no está activado',
 		'not_found' => '%s no existe',
 		'not_found' => '%s no existe',
-		'removed' => '%s removed',	// TODO - Translation
+		'removed' => '%s eliminado',
 	),
 	),
 	'import_export' => array(
 	'import_export' => array(
 		'export_no_zip_extension' => 'La extensión ZIP no está disponible en tu servidor. Por favor, exporta estos archivos uno a uno.',
 		'export_no_zip_extension' => 'La extensión ZIP no está disponible en tu servidor. Por favor, exporta estos archivos uno a uno.',
@@ -60,8 +60,8 @@ return array(
 	'sub' => array(
 	'sub' => array(
 		'actualize' => 'Actualización',
 		'actualize' => 'Actualización',
 		'articles' => array(
 		'articles' => array(
-			'marked_read' => 'The selected articles have been marked as read.',	// TODO - Translation
-			'marked_unread' => 'The articles have been marked as unread.',	// TODO - Translation
+			'marked_read' => 'Los artículos seleccionados han sido marcados como leídos.',
+			'marked_unread' => 'Los artículos han sido marcados como no leídos.',
 		),
 		),
 		'category' => array(
 		'category' => array(
 			'created' => 'Se ha creado la categoría %s.',
 			'created' => 'Se ha creado la categoría %s.',
@@ -81,7 +81,7 @@ return array(
 			'actualizeds' => 'Las fuentes RSS se han actualizado',
 			'actualizeds' => 'Las fuentes RSS se han actualizado',
 			'added' => 'Fuente RSS agregada <em>%s</em>',
 			'added' => 'Fuente RSS agregada <em>%s</em>',
 			'already_subscribed' => 'Ya estás suscrito a <em>%s</em>',
 			'already_subscribed' => 'Ya estás suscrito a <em>%s</em>',
-			'cache_cleared' => '<em>%s</em> cache has been cleared',	// TODO - Translation
+			'cache_cleared' => '<em>%s</em> se ha borrado la caché',
 			'deleted' => 'Fuente eliminada',
 			'deleted' => 'Fuente eliminada',
 			'error' => 'No es posible actualizar la fuente',
 			'error' => 'No es posible actualizar la fuente',
 			'internal_problem' => 'No ha sido posible agregar la fuente RSS. <a href="%s">Revisa el registro de FreshRSS </a> para más información.',
 			'internal_problem' => 'No ha sido posible agregar la fuente RSS. <a href="%s">Revisa el registro de FreshRSS </a> para más información.',
@@ -90,24 +90,24 @@ return array(
 			'n_entries_deleted' => 'Se han eliminado %d artículos',
 			'n_entries_deleted' => 'Se han eliminado %d artículos',
 			'no_refresh' => 'No hay fuente a actualizar…',
 			'no_refresh' => 'No hay fuente a actualizar…',
 			'not_added' => '<em>%s</em> no ha podido se añadida',
 			'not_added' => '<em>%s</em> no ha podido se añadida',
-			'not_found' => 'Feed cannot be found',	// TODO - Translation
+			'not_found' => 'No se puede encontrar el feed',
 			'over_max' => 'Has alcanzado tu límite de fuentes (%d)',
 			'over_max' => 'Has alcanzado tu límite de fuentes (%d)',
-			'reloaded' => '<em>%s</em> has been reloaded',	// TODO - Translation
+			'reloaded' => '<em>%s</em> se ha vuelto a cargar',
 			'selector_preview' => array(
 			'selector_preview' => array(
-				'http_error' => 'Failed to load website content.',	// TODO - Translation
-				'no_entries' => 'There are no articles in this feed. You need at least one article to create a preview.',	// TODO - Translation
-				'no_feed' => 'Internal error (feed cannot be found).',	// TODO - Translation
-				'no_result' => 'The selector didn\'t match anything. As a fallback the original feed text will be displayed instead.',	// TODO - Translation
-				'selector_empty' => 'The selector is empty. You need to define one to create a preview.',	// TODO - Translation
+				'http_error' => 'Error al cargar el contenido del sitio web.',
+				'no_entries' => 'No hay artículos en este feed. Necesitas al menos un artículo para crear una vista previa.',
+				'no_feed' => 'Error interno (no se puede encontrar el feed).',
+				'no_result' => 'El selector no coincidyó con nada. Como reserva, se mostrará el texto original del feed en su lugar.',
+				'selector_empty' => 'El selector está vacío. Debe definir uno para crear una vista previa.',
 			),
 			),
 			'updated' => 'Fuente actualizada',
 			'updated' => 'Fuente actualizada',
 		),
 		),
 		'purge_completed' => 'Limpieza completada (se han eliminado %d artículos)',
 		'purge_completed' => 'Limpieza completada (se han eliminado %d artículos)',
 	),
 	),
 	'tag' => array(
 	'tag' => array(
-		'created' => 'Tag "%s" has been created.',	// TODO - Translation
-		'name_exists' => 'Tag name already exists.',	// TODO - Translation
-		'renamed' => 'Tag "%s" has been renamed to "%s".',	// TODO - Translation
+		'created' => 'Se ha creado la etiqueta "%s".',
+		'name_exists' => 'El nombre de la etiqueta ya existe.',
+		'renamed' => 'La etiqueta "%s" ha sido renombrada a "%s".',
 	),
 	),
 	'update' => array(
 	'update' => array(
 		'can_apply' => 'FreshRSS se va a actualizar a la <strong>versión %s</strong>.',
 		'can_apply' => 'FreshRSS se va a actualizar a la <strong>versión %s</strong>.',
@@ -127,8 +127,8 @@ return array(
 			'error' => 'El usuario %s no ha podido ser eliminado',
 			'error' => 'El usuario %s no ha podido ser eliminado',
 		),
 		),
 		'updated' => array(
 		'updated' => array(
-			'_' => 'User %s has been updated',	// TODO - Translation
-			'error' => 'User %s has not been updated',	// TODO - Translation
+			'_' => 'Se ha actualizado el usuario %s',
+			'error' => 'El usuario %s no se ha actualizado',
 		),
 		),
 	),
 	),
 );
 );

+ 12 - 12
app/i18n/es/gen.php

@@ -3,7 +3,7 @@
 return array(
 return array(
 	'action' => array(
 	'action' => array(
 		'actualize' => 'Actualizar',
 		'actualize' => 'Actualizar',
-		'add' => 'Add',	// TODO - Translation
+		'add' => 'Añadir',
 		'back' => '← Volver',
 		'back' => '← Volver',
 		'back_to_rss_feeds' => '← regresar a tus fuentes RSS',
 		'back_to_rss_feeds' => '← regresar a tus fuentes RSS',
 		'cancel' => 'Cancelar',
 		'cancel' => 'Cancelar',
@@ -15,14 +15,14 @@ return array(
 		'export' => 'Exportar',
 		'export' => 'Exportar',
 		'filter' => 'Filtrar',
 		'filter' => 'Filtrar',
 		'import' => 'Importar',
 		'import' => 'Importar',
-		'load_default_shortcuts' => 'Load default shortcuts',	// TODO - Translation
+		'load_default_shortcuts' => 'Cargar accesos directos predeterminados',
 		'manage' => 'Administrar',
 		'manage' => 'Administrar',
 		'mark_favorite' => 'Marcar como favorita',
 		'mark_favorite' => 'Marcar como favorita',
 		'mark_read' => 'Marcar como leído',
 		'mark_read' => 'Marcar como leído',
 		'promote' => 'Promover',
 		'promote' => 'Promover',
 		'purge' => 'Eliminar',
 		'purge' => 'Eliminar',
 		'remove' => 'Borrar',
 		'remove' => 'Borrar',
-		'rename' => 'Rename',	// TODO - Translation
+		'rename' => 'Cambiar el nombre a',
 		'see_website' => 'Ver web',
 		'see_website' => 'Ver web',
 		'submit' => 'Enviar',
 		'submit' => 'Enviar',
 		'truncate' => 'Borrar todos los artículos',
 		'truncate' => 'Borrar todos los artículos',
@@ -79,10 +79,10 @@ return array(
 		'july' => 'julio',
 		'july' => 'julio',
 		'jun' => 'jun',
 		'jun' => 'jun',
 		'june' => 'junio',
 		'june' => 'junio',
-		'last_2_year' => 'Last two years',	// TODO - Translation
+		'last_2_year' => 'Últimos dos años',
 		'last_3_month' => 'Últimos tres meses',
 		'last_3_month' => 'Últimos tres meses',
-		'last_3_year' => 'Last three years',	// TODO - Translation
-		'last_5_year' => 'Last five years',	// TODO - Translation
+		'last_3_year' => 'Últimos tres años',
+		'last_5_year' => 'Últimos cinco años',
 		'last_6_month' => 'Últimos seis meses',
 		'last_6_month' => 'Últimos seis meses',
 		'last_month' => 'Mes pasado',
 		'last_month' => 'Mes pasado',
 		'last_week' => 'Semana pasada',
 		'last_week' => 'Semana pasada',
@@ -109,7 +109,7 @@ return array(
 	),
 	),
 	'dir' => 'ltr',
 	'dir' => 'ltr',
 	'freshrss' => array(
 	'freshrss' => array(
-		'_' => 'FreshRSS',	// TODO - Translation
+		'_' => 'FreshRSS',
 		'about' => 'Acerca de FreshRSS',
 		'about' => 'Acerca de FreshRSS',
 	),
 	),
 	'js' => array(
 	'js' => array(
@@ -146,7 +146,7 @@ return array(
 	),
 	),
 	'menu' => array(
 	'menu' => array(
 		'about' => 'Acerca de',
 		'about' => 'Acerca de',
-		'account' => 'Account',	// TODO - Translation
+		'account' => 'Cuenta',
 		'admin' => 'Administración',
 		'admin' => 'Administración',
 		'archiving' => 'Archivo',
 		'archiving' => 'Archivo',
 		'authentication' => 'Identificación',
 		'authentication' => 'Identificación',
@@ -183,11 +183,11 @@ return array(
 		'years' => 'años',
 		'years' => 'años',
 	),
 	),
 	'share' => array(
 	'share' => array(
-		'Known' => 'Known based sites',	// TODO - Translation
+		'Known' => 'Sitios basados en conocidos',
 		'blogotext' => 'Blogotext',
 		'blogotext' => 'Blogotext',
-		'clipboard' => 'Clipboard',	// TODO - Translation
+		'clipboard' => 'Portapapeles',
 		'diaspora' => 'Diaspora*',
 		'diaspora' => 'Diaspora*',
-		'email' => 'Email',	// TODO - Translation
+		'email' => 'Email',
 		'facebook' => 'Facebook',
 		'facebook' => 'Facebook',
 		'gnusocial' => 'GNU social',
 		'gnusocial' => 'GNU social',
 		'jdh' => 'Journal du hacker',
 		'jdh' => 'Journal du hacker',
@@ -197,7 +197,7 @@ return array(
 		'movim' => 'Movim',
 		'movim' => 'Movim',
 		'pinboard' => 'Pinboard',
 		'pinboard' => 'Pinboard',
 		'pocket' => 'Pocket',
 		'pocket' => 'Pocket',
-		'print' => 'Print',	// TODO - Translation
+		'print' => 'Imprimir',
 		'raindrop' => 'Raindrop.io',
 		'raindrop' => 'Raindrop.io',
 		'shaarli' => 'Shaarli',
 		'shaarli' => 'Shaarli',
 		'twitter' => 'Twitter',
 		'twitter' => 'Twitter',

+ 4 - 4
app/i18n/es/index.php

@@ -32,14 +32,14 @@ return array(
 		'about' => 'Acerca de FreshRSS',
 		'about' => 'Acerca de FreshRSS',
 		'before_one_day' => 'Con más de 1 día',
 		'before_one_day' => 'Con más de 1 día',
 		'before_one_week' => 'Con más de una semana',
 		'before_one_week' => 'Con más de una semana',
-		'bookmark_query' => 'Bookmark current query',	// TODO - Translation
+		'bookmark_query' => 'Marcar consulta actual',
 		'favorites' => 'Favoritos (%s)',
 		'favorites' => 'Favoritos (%s)',
 		'global_view' => 'Vista Global',
 		'global_view' => 'Vista Global',
 		'main_stream' => 'Salida Principal',
 		'main_stream' => 'Salida Principal',
 		'mark_all_read' => 'Marcar todo como leído',
 		'mark_all_read' => 'Marcar todo como leído',
 		'mark_cat_read' => 'Marcar categoría como leída',
 		'mark_cat_read' => 'Marcar categoría como leída',
 		'mark_feed_read' => 'Marcar fuente como leída',
 		'mark_feed_read' => 'Marcar fuente como leída',
-		'mark_selection_unread' => 'Mark selection as unread',	// TODO - Translation
+		'mark_selection_unread' => 'Marcar la selección como no leída',
 		'newer_first' => 'Nuevos primero',
 		'newer_first' => 'Nuevos primero',
 		'non-starred' => 'Mostrar todos menos los favoritos',
 		'non-starred' => 'Mostrar todos menos los favoritos',
 		'normal_view' => 'Vista normal',
 		'normal_view' => 'Vista normal',
@@ -52,7 +52,7 @@ return array(
 		'starred' => 'Mostrar solo los favoritos',
 		'starred' => 'Mostrar solo los favoritos',
 		'stats' => 'Estadísticas',
 		'stats' => 'Estadísticas',
 		'subscription' => 'Administración de suscripciones',
 		'subscription' => 'Administración de suscripciones',
-		'tags' => 'My labels',	// TODO - Translation
+		'tags' => 'Mis etiquetas',
 		'unread' => 'Mostar solo no leídos',
 		'unread' => 'Mostar solo no leídos',
 	),
 	),
 	'share' => 'Compartir',
 	'share' => 'Compartir',
@@ -60,6 +60,6 @@ return array(
 		'related' => 'Etiquetas relacionadas',
 		'related' => 'Etiquetas relacionadas',
 	),
 	),
 	'tos' => array(
 	'tos' => array(
-		'title' => 'Terms of Service',	// TODO - Translation
+		'title' => 'Términos de servicio',
 	),
 	),
 );
 );

+ 6 - 6
app/i18n/es/install.php

@@ -65,8 +65,8 @@ return array(
 			'ok' => 'Dispones de la librería recomendada para procesar JSON.',
 			'ok' => 'Dispones de la librería recomendada para procesar JSON.',
 		),
 		),
 		'mbstring' => array(
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	// TODO - Translation
-			'ok' => 'You have the recommended library mbstring for Unicode.',	// TODO - Translation
+			'nok' => 'No se puede encontrar la mbstring de biblioteca recomendada para Unicode.',
+			'ok' => 'Tiene la biblioteca mbstring recomendada para Unicode.',
 		),
 		),
 		'pcre' => array(
 		'pcre' => array(
 			'nok' => 'No se ha podido encontrar la librería necesaria para las expresiones regulares (php-pcre).',
 			'nok' => 'No se ha podido encontrar la librería necesaria para las expresiones regulares (php-pcre).',
@@ -83,9 +83,9 @@ return array(
 		'reload' => 'Revisar otra vez',
 		'reload' => 'Revisar otra vez',
 		'tmp' => array(
 		'tmp' => array(
 			'nok' => 'Revisa los permisos en el directorio <em>%s</em>. El servidor HTTP debe contar con permisos de escritura.',
 			'nok' => 'Revisa los permisos en el directorio <em>%s</em>. El servidor HTTP debe contar con permisos de escritura.',
-			'ok' => 'Permissions on the temp directory are good.',	// TODO - Translation
+			'ok' => 'Los permisos en el directorio temp son buenos.',
 		),
 		),
-		'unknown_process_username' => 'unknown',	// TODO - Translation
+		'unknown_process_username' => 'desconocido',
 		'users' => array(
 		'users' => array(
 			'nok' => 'Revisa los permisos en el directorio <em>%s</em>. El servidor HTTP debe contar con permisos de escritura.',
 			'nok' => 'Revisa los permisos en el directorio <em>%s</em>. El servidor HTTP debe contar con permisos de escritura.',
 			'ok' => 'Los permisos en el directorio users son correctos.',
 			'ok' => 'Los permisos en el directorio users son correctos.',
@@ -111,10 +111,10 @@ return array(
 		'choose' => 'Selecciona el idioma para FreshRSS',
 		'choose' => 'Selecciona el idioma para FreshRSS',
 		'defined' => 'Idioma seleccionado.',
 		'defined' => 'Idioma seleccionado.',
 	),
 	),
-	'missing_applied_migrations' => 'Something went wrong; you should create an empty file <em>%s</em> manually.',	// TODO - Translation
+	'missing_applied_migrations' => 'Algo salió mal; Debe crear un archivo vacío <em>%s</em> manualmente.',
 	'ok' => 'La instalación se ha completado correctamente.',
 	'ok' => 'La instalación se ha completado correctamente.',
 	'session' => array(
 	'session' => array(
-		'nok' => 'The web server seems to be incorrectly configured for cookies required for PHP sessions!',	// TODO - Translation
+		'nok' => '¡El servidor web parece estar configurado incorrectamente para las cookies requeridas para las sesiones de PHP!',
 	),
 	),
 	'step' => 'paso %d',
 	'step' => 'paso %d',
 	'steps' => 'Pasos',
 	'steps' => 'Pasos',

+ 48 - 48
app/i18n/es/sub.php

@@ -2,13 +2,13 @@
 
 
 return array(
 return array(
 	'api' => array(
 	'api' => array(
-		'documentation' => 'Copy the following URL to use it within an external tool.',	// TODO - Translation
-		'title' => 'API',	// TODO - Translation
+		'documentation' => 'Copie la siguiente URL para usarla dentro de una herramienta externa.',
+		'title' => 'API',
 	),
 	),
 	'bookmarklet' => array(
 	'bookmarklet' => array(
-		'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click the "Subscribe" button in any page you want to subscribe to.',	// TODO - Translation
-		'label' => 'Subscribe',	// TODO - Translation
-		'title' => 'Bookmarklet',	// TODO - Translation
+		'documentation' => 'Arrastre este botón a la barra de herramientas de marcadores o haga clic derecho en él y elija "Marcar este enlace". Luego haga clic en el botón "Suscribirse" en cualquier página a la que desee suscribirse.',
+		'label' => 'Subscribirse',
+		'title' => 'Bookmarklet',
 	),
 	),
 	'category' => array(
 	'category' => array(
 		'_' => 'Categoría',
 		'_' => 'Categoría',
@@ -16,8 +16,8 @@ return array(
 		'archiving' => 'Archivo',
 		'archiving' => 'Archivo',
 		'empty' => 'Vaciar categoría',
 		'empty' => 'Vaciar categoría',
 		'information' => 'Información',
 		'information' => 'Información',
-		'position' => 'Display position',	// TODO - Translation
-		'position_help' => 'To control category sort order',	// TODO - Translation
+		'position' => 'Posición de visualización',
+		'position_help' => 'Para controlar el orden de clasificación de categorías',
 		'title' => 'Título',
 		'title' => 'Título',
 	),
 	),
 	'feed' => array(
 	'feed' => array(
@@ -31,60 +31,60 @@ return array(
 			'password' => 'Contraseña HTTP',
 			'password' => 'Contraseña HTTP',
 			'username' => 'Nombre de usuario HTTP',
 			'username' => 'Nombre de usuario HTTP',
 		),
 		),
-		'clear_cache' => 'Always clear cache',	// TODO - Translation
+		'clear_cache' => 'Borrar siempre la memoria caché',
 		'content_action' => array(
 		'content_action' => array(
-			'_' => 'Content action when fetching the article content',	// TODO - Translation
-			'append' => 'Add after existing content',	// TODO - Translation
-			'prepend' => 'Add before existing content',	// TODO - Translation
-			'replace' => 'Replace existing content',	// TODO - Translation
+			'_' => 'Acción de contenido al obtener el contenido del artículo',
+			'append' => 'Agregar después del contenido existente',
+			'prepend' => 'Agregar antes del contenido existente',
+			'replace' => 'Reemplazar contenido existente',
 		),
 		),
-		'css_cookie' => 'Use Cookies when fetching the article content',	// TODO - Translation
-		'css_cookie_help' => 'Example: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>',	// TODO - Translation
+		'css_cookie' => 'Usar cookies al obtener el contenido del artículo',
+		'css_cookie_help' => 'Ejemplo: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>',
 		'css_help' => 'Recibir fuentes RSS truncadas (aviso, ¡necesita más tiempo!)',
 		'css_help' => 'Recibir fuentes RSS truncadas (aviso, ¡necesita más tiempo!)',
 		'css_path' => 'Ruta a la CSS de los artículos en la web original',
 		'css_path' => 'Ruta a la CSS de los artículos en la web original',
 		'description' => 'Descripción',
 		'description' => 'Descripción',
 		'empty' => 'La fuente está vacía. Por favor, verifica que siga activa.',
 		'empty' => 'La fuente está vacía. Por favor, verifica que siga activa.',
 		'error' => 'Hay un problema con esta fuente. Por favor, veritica que esté disponible y prueba de nuevo.',
 		'error' => 'Hay un problema con esta fuente. Por favor, veritica que esté disponible y prueba de nuevo.',
 		'filteractions' => array(
 		'filteractions' => array(
-			'_' => 'Filter actions',	// TODO - Translation
-			'help' => 'Write one search filter per line.',	// TODO - Translation
+			'_' => 'Filtrar acciones',
+			'help' => 'Escribir un filtro de búsqueda por línea.',
 		),
 		),
 		'information' => 'Información',
 		'information' => 'Información',
 		'keep_min' => 'Número mínimo de artículos a conservar',
 		'keep_min' => 'Número mínimo de artículos a conservar',
 		'maintenance' => array(
 		'maintenance' => array(
-			'clear_cache' => 'Clear cache',	// TODO - Translation
-			'clear_cache_help' => 'Clear the cache for this feed.',	// TODO - Translation
-			'reload_articles' => 'Reload articles',	// TODO - Translation
-			'reload_articles_help' => 'Reload articles and fetch complete content if a selector is defined.',	// TODO - Translation
-			'title' => 'Maintenance',	// TODO - Translation
+			'clear_cache' => 'Borrar caché',
+			'clear_cache_help' => 'Borrar la memoria caché de esta fuente.',
+			'reload_articles' => 'Recargar artículos',
+			'reload_articles_help' => 'Vuelva a cargar artículos y obtenga contenido completo si se define un selector.',
+			'title' => 'Mantenimiento',
 		),
 		),
 		'moved_category_deleted' => 'Al borrar una categoría todas sus fuentes pasan automáticamente a la categoría <em>%s</em>.',
 		'moved_category_deleted' => 'Al borrar una categoría todas sus fuentes pasan automáticamente a la categoría <em>%s</em>.',
-		'mute' => 'mute',	// TODO - Translation
+		'mute' => 'silenciar',
 		'no_selected' => 'No hay funentes seleccionadas.',
 		'no_selected' => 'No hay funentes seleccionadas.',
 		'number_entries' => '%d artículos',
 		'number_entries' => '%d artículos',
 		'priority' => array(
 		'priority' => array(
-			'_' => 'Visibility',	// TODO - Translation
-			'archived' => 'Do not show (archived)',	// TODO - Translation
+			'_' => 'Visibilidad',
+			'archived' => 'No mostrar (archivado)',
 			'main_stream' => 'Mostrar en salida principal',
 			'main_stream' => 'Mostrar en salida principal',
-			'normal' => 'Show in its category',	// TODO - Translation
+			'normal' => 'Mostrar en su categoría',
 		),
 		),
-		'proxy' => 'Set a proxy for fetching this feed',	// TODO - Translation
-		'proxy_help' => 'Select a protocol (e.g: SOCKS5) and enter the proxy address (e.g: <kbd>127.0.0.1:1080</kbd>)',	// TODO - Translation
+		'proxy' => 'Establecer un proxy para obtener esta fuente',
+		'proxy_help' => 'Seleccione un protocolo (e.g: SOCKS5) e introduzca la dirección del proxy (e.g: <kbd>127.0.0.1:1080</kbd>)',
 		'selector_preview' => array(
 		'selector_preview' => array(
-			'show_raw' => 'Show source code',	// TODO - Translation
-			'show_rendered' => 'Show content',	// TODO - Translation
+			'show_raw' => 'Mostrar código fuente',
+			'show_rendered' => 'Mostrar contenido',
 		),
 		),
 		'show' => array(
 		'show' => array(
-			'all' => 'Show all feeds',	// TODO - Translation
-			'error' => 'Show only feeds with errors',	// TODO - Translation
+			'all' => 'Mostrar todos los feeds',
+			'error' => 'Mostrar solo feeds con errores',
 		),
 		),
 		'showing' => array(
 		'showing' => array(
-			'error' => 'Showing only feeds with errors',	// TODO - Translation
+			'error' => 'Mostrar solo feeds con errores',
 		),
 		),
-		'ssl_verify' => 'Verify SSL security',	// TODO - Translation
+		'ssl_verify' => 'Verificar la seguridad SSL',
 		'stats' => 'Estadísticas',
 		'stats' => 'Estadísticas',
 		'think_to_add' => 'Puedes añadir fuentes.',
 		'think_to_add' => 'Puedes añadir fuentes.',
-		'timeout' => 'Timeout in seconds',	// TODO - Translation
+		'timeout' => 'Tiempo de espera en segundos',
 		'title' => 'Título',
 		'title' => 'Título',
 		'title_add' => 'Añadir fuente RSS',
 		'title_add' => 'Añadir fuente RSS',
 		'ttl' => 'No actualizar de forma automática con una frecuencia mayor a',
 		'ttl' => 'No actualizar de forma automática con una frecuencia mayor a',
@@ -97,7 +97,7 @@ return array(
 	),
 	),
 	'import_export' => array(
 	'import_export' => array(
 		'export' => 'Exportar',
 		'export' => 'Exportar',
-		'export_labelled' => 'Export your labelled articles',	// TODO - Translation
+		'export_labelled' => 'Exporta tus artículos etiquetados',
 		'export_opml' => 'Exportar la lista de fuentes (OPML)',
 		'export_opml' => 'Exportar la lista de fuentes (OPML)',
 		'export_starred' => 'Exportar tus favoritos',
 		'export_starred' => 'Exportar tus favoritos',
 		'feed_list' => 'Lista de %s artículos',
 		'feed_list' => 'Lista de %s artículos',
@@ -108,31 +108,31 @@ return array(
 		'title' => 'Importar / exportar',
 		'title' => 'Importar / exportar',
 	),
 	),
 	'menu' => array(
 	'menu' => array(
-		'add' => 'Add a feed or category',	// TODO - Translation
+		'add' => 'Agregar un feed o una categoría',
 		'import_export' => 'Importar / exportar',
 		'import_export' => 'Importar / exportar',
-		'label_management' => 'Label management',	// TODO - Translation
+		'label_management' => 'Gestión de etiquetas',
 		'stats' => array(
 		'stats' => array(
 			'idle' => 'Fuentes inactivas',
 			'idle' => 'Fuentes inactivas',
 			'main' => 'Estadísticas principañes',
 			'main' => 'Estadísticas principañes',
 			'repartition' => 'Reparto de artículos',
 			'repartition' => 'Reparto de artículos',
 		),
 		),
 		'subscription_management' => 'Administración de suscripciones',
 		'subscription_management' => 'Administración de suscripciones',
-		'subscription_tools' => 'Subscription tools',	// TODO - Translation
+		'subscription_tools' => 'Herramientas de suscripción',
 	),
 	),
 	'tag' => array(
 	'tag' => array(
-		'name' => 'Name',	// TODO - Translation
-		'new_name' => 'New name',	// TODO - Translation
-		'old_name' => 'Old name',	// TODO - Translation
+		'name' => 'Nombre',
+		'new_name' => 'Nuevo nombre',
+		'old_name' => 'Nombre antiguo',
 	),
 	),
 	'title' => array(
 	'title' => array(
 		'_' => 'Administración de suscripciones',
 		'_' => 'Administración de suscripciones',
-		'add' => 'Add a feed or category',	// TODO - Translation
-		'add_category' => 'Add a category',	// TODO - Translation
-		'add_feed' => 'Add a feed',	// TODO - Translation
-		'add_label' => 'Add a label',	// TODO - Translation
-		'delete_label' => 'Delete a label',	// TODO - Translation
+		'add' => 'Agregar un feed o una categoría',
+		'add_category' => 'Agregar una categoría',
+		'add_feed' => 'Añadir un feed',
+		'add_label' => 'Añadir una etiqueta',
+		'delete_label' => 'Eliminar una etiqueta',
 		'feed_management' => 'Administración de fuentes RSS',
 		'feed_management' => 'Administración de fuentes RSS',
-		'rename_label' => 'Rename a label',	// TODO - Translation
-		'subscription_tools' => 'Subscription tools',	// TODO - Translation
+		'rename_label' => 'Cambiar el nombre de una etiqueta',
+		'subscription_tools' => 'Herramientas de suscripción',
 	),
 	),
 );
 );

+ 20 - 20
app/i18n/es/user.php

@@ -3,42 +3,42 @@
 return array(
 return array(
 	'email' => array(
 	'email' => array(
 		'feedback' => array(
 		'feedback' => array(
-			'invalid' => 'This email address is invalid.',	// TODO - Translation
-			'required' => 'An email address is required.',	// TODO - Translation
+			'invalid' => 'Esta dirección de correo electrónico no es válida.',
+			'required' => 'Se requiere una dirección de correo electrónico.',
 		),
 		),
 		'validation' => array(
 		'validation' => array(
-			'change_email' => 'You can change your email address <a href="%s">on the profile page</a>.',	// TODO - Translation
-			'email_sent_to' => 'We sent you an email at <strong>%s</strong>. Please follow its instructions to validate your address.',	// TODO - Translation
+			'change_email' => 'Puedes cambiar tu dirección de correo electrónico <a href="%s">en la página de perfil</a>.',
+			'email_sent_to' => 'Te enviamos un correo electrónico a <strong>%s</strong>. Siga sus instrucciones para validar su dirección.',
 			'feedback' => array(
 			'feedback' => array(
-				'email_failed' => 'We couldn’t send you an email because of a server configuration error.',	// TODO - Translation
-				'email_sent' => 'An email has been sent to your address.',	// TODO - Translation
-				'error' => 'Email address validation failed.',	// TODO - Translation
-				'ok' => 'This email address has been validated.',	// TODO - Translation
-				'unnecessary' => 'This email address was already validated.',	// TODO - Translation
-				'wrong_token' => 'This email address failed to be validated due to a wrong token.',	// TODO - Translation
+				'email_failed' => 'No pudimos enviarle un correo electrónico debido a un error de configuración del servidor.',
+				'email_sent' => 'Se ha enviado un correo electrónico a su dirección.',
+				'error' => 'Error en la validación de la dirección de correo electrónico.',
+				'ok' => 'Esta dirección de correo electrónico ha sido validada.',
+				'unnecessary' => 'Esta dirección de correo electrónico ya fue validada.',
+				'wrong_token' => 'Esta dirección de correo electrónico no se pudo validar debido a un token incorrecto.',
 			),
 			),
-			'need_to' => 'You need to validate your email address before being able to use %s.',	// TODO - Translation
-			'resend_email' => 'Resend the email',	// TODO - Translation
-			'title' => 'Email address validation',	// TODO - Translation
+			'need_to' => 'Debe validar su dirección de correo electrónico antes de poder usar %s.',
+			'resend_email' => 'Volver a enviar el correo electrónico',
+			'title' => 'Validación de direcciones de correo electrónico',
 		),
 		),
 	),
 	),
 	'mailer' => array(
 	'mailer' => array(
 		'email_need_validation' => array(
 		'email_need_validation' => array(
-			'body' => 'You’ve just registered on %s, but you still need to validate your email address. For that, just follow the link:',	// TODO - Translation
-			'title' => 'You need to validate your account',	// TODO - Translation
-			'welcome' => 'Welcome %s,',	// TODO - Translation
+			'body' => 'Acabas de registrarte en %s, pero aún necesitas validar tu dirección de correo electrónico. Para eso, solo sigue el enlace:',
+			'title' => 'Necesitas validar tu cuenta',
+			'welcome' => 'Bienvenido %s,',
 		),
 		),
 	),
 	),
 	'password' => array(
 	'password' => array(
-		'invalid' => 'The password is invalid.',	// TODO - Translation
+		'invalid' => 'La contraseña no es válida.',
 	),
 	),
 	'tos' => array(
 	'tos' => array(
 		'feedback' => array(
 		'feedback' => array(
-			'invalid' => 'You must accept the Terms of Service to be able to register.',	// TODO - Translation
+			'invalid' => 'Debe aceptar los Términos de Servicio para poder registrarse.',
 		),
 		),
 	),
 	),
 	'username' => array(
 	'username' => array(
-		'invalid' => 'This username is invalid.',	// TODO - Translation
-		'taken' => 'This username, %s, is taken.',	// TODO - Translation
+		'invalid' => 'Este nombre de usuario no es válido.',
+		'taken' => 'Se toma este nombre de usuario, %s.',
 	),
 	),
 );
 );

+ 7 - 0
cli/i18n/ignore/es.php

@@ -1,8 +1,11 @@
 <?php
 <?php
 
 
 return array(
 return array(
+	'admin.stats.status_total',
+	'admin.user.feed_count',
 	'conf.sharing.blogotext',
 	'conf.sharing.blogotext',
 	'conf.sharing.diaspora',
 	'conf.sharing.diaspora',
+	'conf.sharing.email',
 	'conf.sharing.facebook',
 	'conf.sharing.facebook',
 	'conf.sharing.raindrop',
 	'conf.sharing.raindrop',
 	'conf.sharing.shaarli',
 	'conf.sharing.shaarli',
@@ -11,6 +14,7 @@ return array(
 	'gen.date.format_date',
 	'gen.date.format_date',
 	'gen.date.format_date_hour',
 	'gen.date.format_date_hour',
 	'gen.dir',
 	'gen.dir',
+	'gen.freshrss._',
 	'gen.lang.cz',
 	'gen.lang.cz',
 	'gen.lang.de',
 	'gen.lang.de',
 	'gen.lang.en',
 	'gen.lang.en',
@@ -31,6 +35,7 @@ return array(
 	'gen.lang.zh-cn',
 	'gen.lang.zh-cn',
 	'gen.share.blogotext',
 	'gen.share.blogotext',
 	'gen.share.diaspora',
 	'gen.share.diaspora',
+	'gen.share.email',
 	'gen.share.facebook',
 	'gen.share.facebook',
 	'gen.share.gnusocial',
 	'gen.share.gnusocial',
 	'gen.share.jdh',
 	'gen.share.jdh',
@@ -47,4 +52,6 @@ return array(
 	'gen.share.wallabagv2',
 	'gen.share.wallabagv2',
 	'gen.short.no',
 	'gen.short.no',
 	'index.about.agpl3',
 	'index.about.agpl3',
+	'sub.api.title',
+	'sub.bookmarklet.title',
 );
 );