diff --git a/assets/components/articles/js/container/articles.import.window.js b/assets/components/articles/js/container/articles.import.window.js
index c3fb38d..6b391c9 100644
--- a/assets/components/articles/js/container/articles.import.window.js
+++ b/assets/components/articles/js/container/articles.import.window.js
@@ -177,6 +177,20 @@ Articles.panel.ImportOptionsMODX = function(config) {
,forId: this.ident+'-modx-tagsField'
,html: _('articles.import_modx_tagsField_desc')
,cls: 'desc-under'
+ },{
+ xtype: 'checkbox'
+ ,boxLabel: _('articles.import_modx_duplicate')
+ ,description: MODx.expandHelp ? '' : _('articles.import_modx_duplicate_desc')
+ ,name: 'modx-duplicate'
+ ,id: this.ident+'-modx-duplicate'
+ ,inputValue: 1
+ ,checked: false
+ ,anchor: '100%'
+ },{
+ xtype: MODx.expandHelp ? 'label' : 'hidden'
+ ,forId: this.ident+'-modx-duplicate'
+ ,html: _('articles.import_modx_duplicate_desc')
+ ,cls: 'desc-under'
}]
},{
columnWidth: .5
diff --git a/assets/components/articles/js/container/container.common.js b/assets/components/articles/js/container/container.common.js
index f9a0aad..b67910c 100644
--- a/assets/components/articles/js/container/container.common.js
+++ b/assets/components/articles/js/container/container.common.js
@@ -1598,7 +1598,20 @@ Ext.extend(Articles.panel.ContainerTemplateSettings,MODx.Panel,{
,forId: 'articles-setting-tplArticleRow'
,html: _('articles.setting.tplArticleRow_desc')
,cls: 'desc-under'
-
+ },{
+ xtype: 'textfield'
+ ,name: 'setting_tplArticleRowOdd'
+ ,id: 'articles-setting-tplArticleRowOdd'
+ ,fieldLabel: _('articles.setting.tplArticleRowOdd')
+ ,description: MODx.expandHelp ? '' : _('articles.setting.tplArticleRowOdd_desc')
+ ,anchor: '100%'
+ ,value: config.record.setting_tplArticleRowOdd || ''
+ ,listeners: oc
+ },{
+ xtype: MODx.expandHelp ? 'label' : 'hidden'
+ ,forId: 'articles-setting-tplArticleRowOdd'
+ ,html: _('articles.setting.tplArticleRowOdd_desc')
+ ,cls: 'desc-under'
}]
}];
}
diff --git a/core/components/articles/lexicon/en/default.inc.php b/core/components/articles/lexicon/en/default.inc.php
index bbb3a09..03b09ad 100755
--- a/core/components/articles/lexicon/en/default.inc.php
+++ b/core/components/articles/lexicon/en/default.inc.php
@@ -96,6 +96,8 @@
$_lang['articles.import_modx_tagsField_desc'] = 'The field (or TV) that your old blog set tags on. Prefix with "tv." to specify a TV (eg, "tv.tags").';
$_lang['articles.import_modx_unpublished'] = 'Import Unpublished';
$_lang['articles.import_modx_unpublished_desc'] = 'If checked, will also import any unpublished Resources.';
+$_lang['articles.import_modx_duplicate'] = 'Duplicate Article(s)?';
+$_lang['articles.import_modx_duplicate_desc'] = 'If enable, create a copy of the Article(s) without deleting it from the original Articles Container (useful if you want to copy articles in different manager\'s contexts).';
$_lang['articles.import_options'] = 'Import Options';
$_lang['articles.import_service'] = 'Import From';
$_lang['articles.import_service_desc'] = 'Select the Service or Application that you would like to import from.';
@@ -156,6 +158,8 @@
$_lang['articles.setting.articleTemplate_desc'] = 'The default Template to use for Articles.';
$_lang['articles.setting.tplArticleRow'] = 'Article Row Chunk';
$_lang['articles.setting.tplArticleRow_desc'] = 'The Chunk to use when displaying Articles on the front page or archive pages.';
+$_lang['articles.setting.tplArticleRowOdd'] = 'Article Row Odd Chunk';
+$_lang['articles.setting.tplArticleRowOdd_desc'] = 'Same as "Article Row Chunk" but this chuck is applied only to odd article.';
$_lang['articles.setting.archiveByMonth'] = 'Archive By Month';
$_lang['articles.setting.archiveByMonth_desc'] = 'Whether or not to archive by month or by year. Yes will archive by month.';
$_lang['articles.setting.tplArchiveMonth'] = 'Archive Listing Chunk';
diff --git a/core/components/articles/lexicon/es/default.inc.php b/core/components/articles/lexicon/es/default.inc.php
new file mode 100755
index 0000000..754595e
--- /dev/null
+++ b/core/components/articles/lexicon/es/default.inc.php
@@ -0,0 +1,360 @@
+
+ *
+ * Articles is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 2 of the License, or (at your option) any later
+ * version.
+ *
+ * Articles is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * Articles; if not, write to the Free Software Foundation, Inc., 59 Temple
+ * Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * @package articles
+ * @subpackage lexicon
+ *
+ * @language es
+ * Articles translated to Spanish by Bentejuy López (bentejuy@gmail.com)
+ */
+$_lang['articles.advanced_settings'] = 'Configuración avanzada';
+$_lang['articles.all'] = 'Todo';
+$_lang['articles.articles'] = 'Artículo';
+$_lang['articles.article_alias'] = 'Alias (Enlace Permanente)';
+$_lang['articles.article_content'] = 'Contenido';
+$_lang['articles.article_create'] = 'Artículo Nuevo';
+$_lang['articles.article_delete'] = 'Eliminar Artículo';
+$_lang['articles.article_delete_confirm'] = '¿Estas seguro de querer eliminar el artículo seleccionado?';
+$_lang['articles.article_delete_multiple'] = 'Eliminar múltiples artículos';
+$_lang['articles.article_delete_multiple_confirm'] = '¿Estas seguro de querer eliminar los artículos seleccionados?';
+$_lang['articles.article_duplicate'] = 'Duplicar Artículo';
+$_lang['articles.article_edit'] = 'Editar Artículo';
+$_lang['articles.article_options'] = 'Opciones del Artículo';
+$_lang['articles.article_edit_options'] = 'Editando Opciones';
+$_lang['articles.article_publish'] = 'Publicar';
+$_lang['articles.article_selected_delete'] = 'Eliminar Seleccionados';
+$_lang['articles.article_selected_undelete'] = 'Recuperar Seleccionados';
+$_lang['articles.article_selected_publish'] = 'Publicar Seleccionados';
+$_lang['articles.article_selected_unpublish'] = 'Des-publicar Seleccionados';
+$_lang['articles.article_summary'] = 'Resumen';
+$_lang['articles.article_tags'] = 'Etiquetas';
+$_lang['articles.article_title'] = 'Titulo del Artículo';
+$_lang['articles.article_unpublish'] = 'Des-publicar';
+$_lang['articles.articles'] = 'Artículos';
+$_lang['articles.articles_err_ns_multiple'] = 'Por favor, seleccione al menos un artículo.';
+$_lang['articles.articles_import'] = 'Importar Artículos';
+$_lang['articles.articles_manage'] = 'Administrar Artículos';
+$_lang['articles.articles_none'] = 'No hay artículos todavía!';
+$_lang['articles.articles_search'] = 'Buscar Artículos...';
+$_lang['articles.articles_view'] = 'Ver Artículos';
+$_lang['articles.articles_write_new'] = 'Escribir Nuevo Artículo';
+$_lang['articles.author'] = 'Autor';
+$_lang['articles.categories'] = 'Categorías';
+$_lang['articles.comments'] = 'Comentarios';
+$_lang['articles.comments.intro_msg'] = 'Aquí usted puede revisar, aprobar y rechazar los comentarios de todos los mensajes para sus Artículos.';
+$_lang['articles.container'] = 'Artículos';
+$_lang['articles.container_alias'] = 'Alias del Contenedor';
+$_lang['articles.container_alias_desc'] = 'La URL amigable que se utilizará para calcular la dirección URL de este artículo del Contenedor.';
+$_lang['articles.container_create_here'] = 'Crear Artículos aquí';
+$_lang['articles.container_delete'] = 'Borrar Artículos de Contenedor';
+$_lang['articles.container_description'] = 'Descripción';
+$_lang['articles.container_description_desc'] = 'Una breve descripción del contenedor de artículos.';
+$_lang['articles.container_duplicate'] = 'Duplicar Contenedor de Artículos';
+$_lang['articles.container_menutitle_desc'] = 'El título utilizado cuando se muestran en un menú de navegación.';
+$_lang['articles.container_new'] = 'Nuevo Contenedor de Artículos';
+$_lang['articles.container_publish'] = 'Publicar Contenedor de Artículos';
+$_lang['articles.container_settings'] = 'Configuración del Contenedor';
+$_lang['articles.container_title'] = ' Título Contenedor';
+$_lang['articles.container_title_desc'] = 'El título de tu Contenedor de Artículos.';
+$_lang['articles.container_undelete'] = 'Recuperar Contenedor de Artículos';
+$_lang['articles.container_unpublish'] = 'Des-publicar Contenedor de Artículos';
+$_lang['articles.content'] = 'Contenido';
+$_lang['articles.filter_ellipsis'] = 'Filtrar...';
+$_lang['articles.import_blogger_container_err_nf'] = 'No se pudo encontrar Contenedor de Artículos para importar en!';
+$_lang['articles.import_blogger_file'] = 'Archivo Blogger Exportado a XML';
+$_lang['articles.import_blogger_file_desc'] = 'Seleccione el archivo XML de Blogger que se obtiene cuando se exporta desde Blogger.';
+$_lang['articles.import_blogger_file_err_nf'] = 'Por favor especificar el archivo Blogger Exportado a XML.';
+$_lang['articles.import_blogger_file_server'] = 'Archivo Blogger XML a Exportar en Servidor';
+$_lang['articles.import_blogger_file_server_desc'] = 'Ó en su defecto, especificar una ruta absoluta al archivo XML de Blogger que se obtiene cuando se exporta desde Blogger que se encuentra en el servidor. Usted puede usar {core_path}, {base_path} y {assets_path} como marcadores de posición.';
+$_lang['articles.import_modx_change_template'] = 'Cambiar plantilla a la del Contenedor';
+$_lang['articles.import_modx_change_template_desc'] = 'Si se activa, cambia la plantilla del nuevo Artículo a la plantilla de contenedor de artículos. Se recomienda dejar marcada.';
+$_lang['articles.import_modx_commentsThreadNameFormat'] = 'Formato de Nombre del Hilo de Quip';
+$_lang['articles.import_modx_commentsThreadNameFormat_desc'] = 'Formato de nombre (como "blog post - [[* id]]") que has establecido para la propiedad hilo de Quip. Utilice [[* id]] para reemplazar a la ID de los Recursos importados. Dejar en blanco para no importar comentarios.';
+$_lang['articles.import_modx_err_no_criteria'] = 'Por favor, Especificar por lo menos un factor limitante en los criterios de importación.';
+$_lang['articles.import_modx_intro'] = 'Esto importará contenido, etiquetas y comentarios de Recursos MODX existentes. Tenga en cuenta que esto no importar cualquier contenido fuera del campo de contenido principal, comentarios y el campo de etiquetas.';
+$_lang['articles.import_modx_hidemenu'] = 'Importar Recursos Ocultos';
+$_lang['articles.import_modx_hidemenu_desc'] = 'Si está marcada, también obtendrá Recursos marcados como Ocultos desde el Menú.';
+$_lang['articles.import_modx_parents'] = 'Recurso(s) Padre';
+$_lang['articles.import_modx_parents_desc'] = 'Una lista separada por comas de los Recursos Padres para importar todos sus hijos.';
+$_lang['articles.import_modx_resources'] = 'Recursos Específicos';
+$_lang['articles.import_modx_resources_desc'] = 'Una lista separada por comas de recursos específicos para importar. Añadir un - antes de la ID (por ejemplo, -123) para excluirlo de la importación.';
+$_lang['articles.import_modx_template'] = 'Desde Plantilla';
+$_lang['articles.import_modx_template_desc'] = 'Si esta seleccionado, toma todos los recursos de esta plantilla específica, excepto los excluidos a través del campo de recursos específicos. NOTA: No importa el contenido de los la plantilla o los valores de las TV.';
+$_lang['articles.import_modx_tagsField'] = 'Campo de Etiquetas (Tags)';
+$_lang['articles.import_modx_tagsField_desc'] = 'El campo (o TV) que tu antiguo blog tiene definido en etiquetas (tags). Con prefijo con "tv." para especificar un TV (por ejemplo, "tv.tags").';
+$_lang['articles.import_modx_unpublished'] = 'Importar No Publicados';
+$_lang['articles.import_modx_unpublished_desc'] = 'Si está marcada, también importará cualquier Recurso no publicado.';
+$_lang['articles.import_options'] = 'Opciones de Importación';
+$_lang['articles.import_service'] = 'Importar Desde';
+$_lang['articles.import_service_desc'] = 'Seleccione el Servicio o Aplicación que desea importar.';
+$_lang['articles.import_wp_container_err_nf'] = 'No se pudo encontrar Artículos en el Contenedores para importar!';
+$_lang['articles.import_wp_file'] = 'Archivo de Exportación WXR de WordPress';
+$_lang['articles.import_wp_file_desc'] = 'Seleccione el archivo de WordPress WXR (XML) que se obtiene cuando se exporta desde WordPress.';
+$_lang['articles.import_wp_file_err_nf'] = 'Por favor, especifique el archivo de WordPress WXR.';
+$_lang['articles.import_wp_file_server'] = 'Archivo de Exportación de WordPress WXR en el Servidor ';
+$_lang['articles.import_wp_file_server_desc'] = 'O, en su defecto, especificar una ruta absoluta al archivo de WordPress WXR (XML) que se obtiene cuando se exporta de WordPress que se encuentra en el servidor. Usted puede usar {core_path}, {base_path} y {assets_path} como marcadores de posición.';
+$_lang['articles.publishedon'] = 'Publicado en';
+$_lang['articles.published'] = 'Publicado';
+$_lang['articles.publishing_information'] = 'Información de Publicación';
+$_lang['articles.settings'] = 'Configuración';
+$_lang['articles.settings_archiving'] = 'Archivos';
+$_lang['articles.settings_comments'] = 'Comentarios';
+$_lang['articles.settings_comments_display'] = 'Visualizar';
+$_lang['articles.settings_comments_latest'] = 'Más recientes';
+$_lang['articles.settings_comments_moderation'] = 'Seguridad';
+$_lang['articles.settings_comments_other'] = 'Otros';
+$_lang['articles.settings_general'] = 'General';
+$_lang['articles.settings_latest_posts'] = 'Últimas Publicaciones';
+$_lang['articles.settings_notifications'] = 'Notificaciones';
+$_lang['articles.settings_pagination'] = 'Paginación';
+$_lang['articles.settings_rss'] = 'RSS';
+$_lang['articles.settings_tagging'] = 'Tagging';
+$_lang['articles.statistics'] = 'Estadísticas';
+$_lang['articles.status'] = 'Estado';
+$_lang['articles.template'] = 'Plantilla';
+$_lang['articles.template_desc'] = 'La Plantilla usada por la Página Principal de Listado.';
+$_lang['articles.tags'] = 'Tags';
+$_lang['articles.unpublished'] = 'No Publicado';
+$_lang['none'] = 'Ninguno';
+
+/* General */
+$_lang['articles.setting.updateServicesEnabled'] = 'Activar Servicios de Actualización';
+$_lang['articles.setting.updateServicesEnabled_desc'] = 'Si está activado, Articles intentará hacer ping a Ping-o-Matic cada vez que publica un Artículo, para enviar su título y la URL de Artículo a los principales motores de búsqueda.';
+$_lang['articles.setting.published_desc'] = 'Valor por defecto para el campo Publicado para los nuevos Artículos.';
+$_lang['articles.setting.richtext_desc'] = 'Una vez creados, los Artículos individuales pueden anular este valor.';
+$_lang['articles.setting.sortBy'] = 'Ordenar por';
+$_lang['articles.setting.sortBy_desc'] = 'El campo para ordenar en el Listado Principal los Artículos.';
+$_lang['articles.setting.sortDir'] = 'Dirección de Ordenación';
+$_lang['articles.setting.sortDir_desc'] = 'La dirección para ordenar en el Listado Principal los Artículos (DESC o ASC).';
+$_lang['articles.setting.archivesIncludeTVs'] = 'Incluir TVs en el Listado';
+$_lang['articles.setting.archivesIncludeTVs_desc'] = 'Si está activado, se incluyen los valores de las TV como opciones en los "chucks" del listado.';
+$_lang['articles.setting.includeTVsList'] = 'Incluir Lista de TVs';
+$_lang['articles.setting.includeTVsList_desc'] = 'Una lista opcional con los nombres de TemplateVar separada por comas a incluir explícitamente, si "Incluir TVs está activada".';
+$_lang['articles.setting.archivesProcessTVs'] = 'Procesar los TVs en el Listado';
+$_lang['articles.setting.archivesProcessTVs_desc'] = 'Si está activado, Se procesará los valores de los TVs en los "chucks" del Listado.';
+$_lang['articles.setting.processTVsList'] = 'Procesar la Lista de los TVs';
+$_lang['articles.setting.processTVsList_desc'] = 'Una lista opcional con los nombres de TemplateVar separada por comas a procesar explícitamente. Las "TemplateVars" especificados aquí tienen que estar incluidas en "Incluir TVs" o en "Incluir Lista de TVs".';
+$_lang['articles.setting.otherGetArchives'] = 'Otros parámetros de Listado';
+$_lang['articles.setting.otherGetArchives_desc'] = 'Cualquier otras propiedades que le gustaría añadir a la llamada getResources/getPage en la Página de Listado de Artículos. Póngalos con la sintaxis de etiquetas MODX, como si estuviera añadiendo un tag a un snippet (eje., &property=`value`).';
+$_lang['articles.setting.articleUriTemplate'] = 'Formato de la URL de los Artículos';
+$_lang['articles.setting.articleUriTemplate_desc'] = '%Y = año, 4 dígitos,%m = mes (con ceros a la izquierda), %d = día (con ceros a la izquierda), %alias = El Alias de Artículo, %id = La ID del Artículo, %ext = Extensión de archivo (por ejemplo, html) . Nota: Los cambios en esta configuración sólo afectan a los *nuevos* artículos, a menos que cambie el alias o des-publiqué y luego vuelva a publicar artículos antiguos, entonces se regenerará su URL al nuevo formato.';
+
+/* template / archives settings */
+$_lang['articles.setting.articleTemplate'] = 'Plantilla de Artículos';
+$_lang['articles.setting.articleTemplate_desc'] = 'La Plantilla por defecto usada para los Artículos.';
+$_lang['articles.setting.tplArticleRow'] = '"Chuck" para filas de Artículos';
+$_lang['articles.setting.tplArticleRow_desc'] = 'El "Chuck" usado al mostrar Artículos en la página frontal o en las páginas de archivos.';
+$_lang['articles.setting.tplarticleRowOdd'] = '"Chuck" para las filas impares de Artículos';
+$_lang['articles.setting.tplarticleRowOdd_desc'] = 'Igual que el "Chuck para las filas de Artículos pero estos son aplicados a las filas impares.';
+$_lang['articles.setting.archiveByMonth'] = '"Archive" por Mes';
+$_lang['articles.setting.archiveByMonth_desc'] = 'Mostrará "Archive" por mes ó por años, Si es "Si" seran archivos por meses.';
+$_lang['articles.setting.tplArchiveMonth'] = '"Chuck" para Listado de Archivos';
+$_lang['articles.setting.tplArchiveMonth_desc'] = 'El "Chuck" usado por cada fila de mes/año que es listado de Archivos';
+$_lang['articles.setting.archiveListingsLimit'] = 'Número de elementos a Mostrar en Archivos';
+$_lang['articles.setting.archiveListingsLimit_desc'] = 'El número meses/años a mostrar en Archivos.';
+$_lang['articles.setting.archiveCls'] = 'La Clase CSS de Archivos';
+$_lang['articles.setting.archiveCls_desc'] = 'Una clase CSS a aplicar por cada archivo listado.';
+$_lang['articles.setting.archiveAltCls'] = 'Clase Altenativa para Archivos';
+$_lang['articles.setting.archiveAltCls_desc'] = 'Una clase CSS a aplicar por cada fila alternativa en el listado de archivos.';
+$_lang['articles.setting.archiveGroupByYear'] = 'Agrupar por Años';
+$_lang['articles.setting.archiveGroupByYear_desc'] = 'Si se define a 1, el resultado del grupo de archivos por años sera una lista anidada, Si se define a 1, se ignorará la configuración de Archivos por Mes".';
+$_lang['articles.setting.archiveGroupByYearTpl'] = '"Chuck" para Agrupar por Años';
+$_lang['articles.setting.archiveGroupByYearTpl_desc'] = 'Si "Agrupar por Años" se define a 1, Será el "Chuck" contenedor de la lista agrupa de Archivos.';
+
+/* Pagination */
+$_lang['articles.setting.articlesPerPage'] = 'Artículos por página';
+$_lang['articles.setting.articlesPerPage_desc'] = 'El número de Artículos a mostrar cuando son listados';
+$_lang['articles.setting.pageLimit'] = 'Límite de páginas ';
+$_lang['articles.setting.pageLimit_desc'] = 'El número máximo de páginas a mostrar al representar los controles de paginación';
+$_lang['articles.setting.pageNavTpl'] = ' Tpl de página de Navegación';
+$_lang['articles.setting.pageNavTpl_desc'] = 'El "Chuck" que contiene la representación del control de navegación de una única página.';
+$_lang['articles.setting.pageActiveTpl'] = 'Tpl de página activa';
+$_lang['articles.setting.pageActiveTpl_desc'] = 'El "Chunck"que contiene la representación del control de la página activa.';
+$_lang['articles.setting.pageFirstTpl'] = 'Tpl de primera página';
+$_lang['articles.setting.pageFirstTpl_desc'] = 'El "Chunck"que contiene la representación del control de la primera página.';
+$_lang['articles.setting.pageLastTpl'] = 'Tpl de la última página';
+$_lang['articles.setting.pageLastTpl_desc'] = 'El "Chunck"que contiene la representación del control de la última página.';
+$_lang['articles.setting.pagePrevTpl'] = 'Tpl de página previa';
+$_lang['articles.setting.pagePrevTpl_desc'] = 'El "Chunck"que contiene la representación del control de la página previa.';
+$_lang['articles.setting.pageNextTpl'] = 'Tpl de página siguiente';
+$_lang['articles.setting.pageNextTpl_desc'] = 'El "Chunck"que contiene la representación del control de la página siguiente.';
+$_lang['articles.setting.pageOffset'] = 'Desplazamiento de página';
+$_lang['articles.setting.pageOffset_desc'] = 'El desplazamiento o posición del registro donde comenzar dentro de la colección para representar los resultados de la páginas actual; se calcula en base a la variable de la página establecida en "Variable para página actual".';
+$_lang['articles.setting.pageVarKey'] = 'Variable para página actual';
+$_lang['articles.setting.pageVarKey_desc'] = 'El nombre de un "placeholder" que contiene el valor la página actual.';
+$_lang['articles.setting.pageTotalVar'] = 'Variable para Total de páginas';
+$_lang['articles.setting.pageTotalVar_desc'] = 'El nombre de un "placeholder" que debe contener el valor total de registros en la colección limitable paginadas.';
+$_lang['articles.setting.pageNavVar'] = 'Variable de navegación de páginas';
+$_lang['articles.setting.pageNavVar_desc'] = 'El nombre de un "placeholder" para ajustar con los controles de navegación de paginación.';
+
+/* RSS settings */
+$_lang['articles.setting.rssAlias'] = 'Alias del RSS Alias (Enlace Permanente)';
+$_lang['articles.setting.rssAlias_desc'] = 'El alias (enlace permanente) para servir los RSS, añadiéndole la URL del contenedor de artículos.';
+$_lang['articles.setting.rssItems'] = 'Número de elementos de RSS';
+$_lang['articles.setting.rssItems_desc'] = 'El número de elementos RSS a mostrar en servir RSS. Establecer a 0 para ilimitadas.';
+$_lang['articles.setting.tplRssFeed'] = '"Chuck" contenedor de los RSS';
+$_lang['articles.setting.tplRssFeed_desc'] = 'El "Chuck" que es usado como plantilla de los RSS.';
+$_lang['articles.setting.tplRssItem'] = '"Chuck" de elementos RSS';
+$_lang['articles.setting.tplRssItem_desc'] = 'El "Chuck que es usado para cada elemento al servir los RSS.';
+
+/* Tagging */
+$_lang['articles.setting.tagsLimit'] = 'Listados de Etiquetas a Mostrar';
+$_lang['articles.setting.tagsLimit_desc'] = 'El número de etiquetas a mostrar en el listado de etiquetas populares.';
+$_lang['articles.setting.tplTagRow'] = '"Chuck" del Listado de Etiquetas';
+$_lang['articles.setting.tplTagRow_desc'] = 'El"Chuck" usado cuando se muestran etiquetas en el listado de páginas.';
+$_lang['articles.setting.tagCls'] = 'Clase CSS para las etiquetas';
+$_lang['articles.setting.tagCls_desc'] = 'Una clase CSS a aplicar para cada etiqueta listada.';
+$_lang['articles.setting.tagAltCls'] = 'Clase CSS Alternativa para las Etiquetas';
+$_lang['articles.setting.tagAltCls_desc'] = 'Una clase CSS a aplicar a cada línea alternativa por cada etiqueta listada.';
+
+/* Latest Posts */
+$_lang['articles.setting.latestPostsTpl'] = '"Chuck" para Últimos Artículos';
+$_lang['articles.setting.latestPostsTpl_desc'] = 'El "Chuck" usado para cada último artículo.';
+$_lang['articles.setting.latestPostsLimit'] = 'Últimos Artículos a Mostrar';
+$_lang['articles.setting.latestPostsLimit_desc'] = 'El número de últimos artículos a mostrar.';
+$_lang['articles.setting.latestPostsOffset'] = 'Desplazamiento de Últimos Artículos';
+$_lang['articles.setting.latestPostsOffset_desc'] = 'El índice a partir de la lista de últimos artículos.';
+$_lang['articles.setting.otherLatestPosts'] = 'Otros parámetros de Listado';
+$_lang['articles.setting.otherLatestPosts_desc'] = 'Cualquier otra propiedad(es) que le gustaría añadir a la llamada de getResources/getPage al mostrar los últimos mensajes. Póngalos con la sintaxis de etiquetas de MODX, como si estuviera agregando a la llamada (por ejemplo, &property=`value`).';
+
+
+/* Notifications */
+$_lang['articles.setting.notifyTwitter'] = 'Enviar a Twitter';
+$_lang['articles.setting.notifyTwitter_desc'] = 'Publicar automáticamente un enlace a Twitter cuando se publica un Artículo.';
+$_lang['articles.setting.notifyTwitter_notyet_desc'] = 'Publicar automáticamente un enlace a Twitter cuando se publique un Artículo. Nota: Primero debes visitar la página de autenticación para autenticar Artículos a tu cuenta de Twitter strong>';
+$_lang['articles.setting.notifyTwitterConsumerKey'] = 'Twitter Consumer Key';
+$_lang['articles.setting.notifyTwitterConsumerKey_desc'] = 'Opcional. La Consumer Key de su cuenta de Twitter que se asigna a la aplicación de Twitter se utiliza para autentificar. Si no se define, se utilizará la predeterminada MODX-Articles. Reemplazarla con su propia Twitter Consumer Key App para mayor seguridad.';
+$_lang['articles.setting.notifyTwitterConsumerKeySecret'] = 'Twitter Consumer Key Secreta';
+$_lang['articles.setting.notifyTwitterConsumerKeySecret_desc'] = 'Opcional. El Token Secreto de acceso para tu Twitter que se asigna a la aplicación de Twitter usado para autentificar. Si no se define, se utilizará por defecto MODX-Articles. Reemplazar con su propia Twitter App Consumer Key secreta para más seguridad.';
+$_lang['articles.setting.notifyTwitterTpl'] = 'Plantilla para Twitter';
+$_lang['articles.setting.notifyTwitterTpl_desc'] = 'La plantilla que se enviará a Twitter como mensaje.';
+$_lang['articles.setting.notifyTwitterTagLimit'] = 'Límite de Tag en Twitter';
+$_lang['articles.setting.notifyTwitterTagLimit_desc'] = 'El número de etiquetas que se usadas cuando el [[+ hashtags]] es usado en el tpl; Este "placeholder" añade etiquetas como hashtags al Tweet.';
+$_lang['articles.setting.shorteningService'] = 'Acortador de URL';
+$_lang['articles.setting.shorteningService_desc'] = 'El servicio a usar para acortar URLs. No definir ninguno para no acortar URLs.';
+
+
+/* Latest Comments */
+$_lang['articles.setting.latestCommentsTpl'] = '"Chuck" de Últimos Comentarios';
+$_lang['articles.setting.latestCommentsTpl_desc'] = 'El "Chuck" a usar por cada último comentario.';
+$_lang['articles.setting.latestCommentsLimit'] = 'Últimos Comentarios a Mostrar';
+$_lang['articles.setting.latestCommentsLimit_desc'] = 'El número de últimos comentarios a mostrar. Por defecto es 10.';
+$_lang['articles.setting.latestCommentsBodyLimit'] = 'Tamaño Límite de los Últimos Comentarios';
+$_lang['articles.setting.latestCommentsBodyLimit_desc'] = 'El número de caracteres a mostrar para los últimos comentarios antes del truncado con un elipsis (...).';
+$_lang['articles.setting.latestCommentsRowCss'] = 'CSS de Fila Últimos Comentarios';
+$_lang['articles.setting.latestCommentsRowCss_desc'] = 'La clase CSS a aplicar para cada últimos comentario.';
+$_lang['articles.setting.latestCommentsAltRowCss'] = 'CSS de Fila Alternativo Últimos Comentarios';
+$_lang['articles.setting.latestCommentsAltRowCss_desc'] = 'La clase CSS a aplicar para cada fila impar de últimos comentarios.';
+
+/* Comments */
+$_lang['articles.setting.commentsEnabled'] = 'Habilitar Comentarios';
+$_lang['articles.setting.commentsEnabled_desc'] = 'Si o no para habilitar comentarios.';
+$_lang['articles.setting.commentsThreaded'] = 'Comentarios Encadenado';
+$_lang['articles.setting.commentsThreaded_desc'] = 'Si o no permite que puedan habar comentarios encadenados. Los Comentarios encadenados permiten a los usuarios hacer comentarios sobre otros comentarios, aumentando el nivel de sangría. "No" Comentarios encadenados solo permiten a los usuarios comentar los Artículo padres, no los comentarios.';
+$_lang['articles.setting.commentsReplyResourceId'] = 'Responder ID de Recurso';
+$_lang['articles.setting.commentsReplyResourceId_desc'] = 'El ID que contiene al "snippet" QuipReply, para responder a los comentarios encadenados. Esto es necesario para los comentarios encadenados. strong>';
+$_lang['articles.setting.commentsMaxDepth'] = 'Máxima profundidad de Encadenación';
+$_lang['articles.setting.commentsMaxDepth_desc'] = 'La profundidad máxima de las respuestas que se puede hacer en un hilo de comentarios encadenados.';
+$_lang['articles.setting.commentsTplComment'] = '"Chuck" para los Comentarios';
+$_lang['articles.setting.commentsTplComment_desc'] = 'El "Chuck" a usar por cada comentario.';
+$_lang['articles.setting.commentsTplCommentOptions'] = 'Opciones del "Chuck" de Comentarios';
+$_lang['articles.setting.commentsTplCommentOptions_desc'] = 'Opciones para el "Chuck", como la de eliminación, que se muestre al propietario de un comentario.';
+$_lang['articles.setting.commentsTplComments'] = 'Envoltura de los "Chuck" de Comentarios';
+$_lang['articles.setting.commentsTplComments_desc'] = 'La envoltura exterior de los comentarios. Puede ser el nombre de "chuck" o valor. Si se define un valor, anulará el "chuck".';
+$_lang['articles.setting.commentsTplAddComment'] = '"Chuck" del Formulario de Respuesta';
+$_lang['articles.setting.commentsTplAddComment_desc'] = '"Chuck" del formulario para añadir comentarios.';
+$_lang['articles.setting.commentsTplLoginToComment'] = '"Chuck" Iniciar sesión para Comentarios';
+$_lang['articles.setting.commentsTplLoginToComment_desc'] = 'El "Chunk" que se muestra cuando el usuario no está conectado y se requiere autenticación.';
+$_lang['articles.setting.commentsTplPreview'] = '"Chunk" de Vista Previa';
+$_lang['articles.setting.commentsTplPreview_desc'] = 'El "Chunk" para ver una Vista previa del comentario.';
+$_lang['articles.setting.commentsUseCss'] = 'CSS de Quip';
+$_lang['articles.setting.commentsUseCss_desc'] = 'Proveer una plantilla CSS básica para la presentación.';
+$_lang['articles.setting.commentsAltRowCss'] = 'Clase CSS alternativa de Filas';
+$_lang['articles.setting.commentsAltRowCss_desc'] = 'La clase CSS alternativa para poner en los comentarios.';
+$_lang['articles.setting.commentsSortDir'] = ' Dirección de ordenación de Comentarios';
+$_lang['articles.setting.commentsSortDir_desc'] = 'La dirección para ordenar comentarios (DESC ó ASC).';
+$_lang['articles.setting.commentsNameField'] = 'Campo Nombre';
+$_lang['articles.setting.commentsNameField_desc'] = 'El campo a usar como nombre de autor por cada comentario, los valores Recomendables son "name" o "username".';
+$_lang['articles.setting.commentsShowAnonymousName'] = 'Mostrar Nombre Anónimo';
+$_lang['articles.setting.commentsShowAnonymousName_desc'] = 'Muestra el valor de la propiedad Nombre anónimo (por defecto es "Anonymous") si el usuario no está conectado cuando va a escribir.';
+$_lang['articles.setting.commentsAnonymousName'] = 'Nombre Anónimo';
+$_lang['articles.setting.commentsAnonymousName_desc'] = 'El nombre a mostrar para en publicaciones anónimas. El valor por defecto es "Anonymous".';
+$_lang['articles.setting.commentsLimit'] = 'Número de Comentarios por página';
+$_lang['articles.setting.commentsLimit_desc'] = 'El número de comentarios a limitar por página. Ajuste a un número distinto de cero permitirá la paginación.';
+$_lang['articles.setting.commentsCloseAfter'] = 'Cerrar Comentarios Después';
+$_lang['articles.setting.commentsCloseAfter_desc'] = 'El número de días en el que el hilo se cerrará automáticamente después de su creación. Establecer a 0 para dejar abierto indefinidamente.';
+$_lang['articles.setting.commentsRequirePreview'] = 'Requerir Prevista para Publicar';
+$_lang['articles.setting.commentsRequirePreview_desc'] = 'Requerir al usuario ver una vista previa de su comentario antes de la publicación.';
+$_lang['articles.setting.commentsRequireAuth'] = 'Requerir Autentificación para Comentar';
+$_lang['articles.setting.commentsRequireAuth_desc'] = 'Sólo los usuarios registrados podrán comentar en el hilo.';
+$_lang['articles.setting.commentsReCaptcha'] = 'ReCaptcha';
+$_lang['articles.setting.commentsReCaptcha_desc'] = 'Habilitar reCaptcha en el formulario para añadir comentarios.';
+$_lang['articles.setting.commentsDisableReCaptchaWhenLoggedIn'] = 'Deshabilitar reCaptcha cuando esta Autentificado';
+$_lang['articles.setting.commentsDisableReCaptchaWhenLoggedIn_desc'] = 'Deshabilita la validación reCaptcha para usuarios registrados.';
+$_lang['articles.setting.commentsModerate'] = 'Moderar comentarios';
+$_lang['articles.setting.commentsModerate_desc'] = 'Todos los nuevas publicaciones en los hilos serán moderados.';
+$_lang['articles.setting.commentsModerateAnonymousOnly'] = 'Moderar Solo Publicaciones Anónimas';
+$_lang['articles.setting.commentsModerateAnonymousOnly_desc'] = 'Soló modera los comentarios por usuarios que no se han registrados.';
+$_lang['articles.setting.commentsModerateFirstPostOnly'] = 'Moderar Solo la Primera Publicación';
+$_lang['articles.setting.commentsModerateFirstPostOnly_desc'] = 'Sólo moderar el primer comentario de usuarios registrados. Todos los demás comentarios se auto-aprobaran. Mensajes anónimos siempre serán moderados.';
+$_lang['articles.setting.commentsModerators'] = 'Moderadores';
+$_lang['articles.setting.commentsModerators_desc'] = 'Una lista separada por comas de nombres de moderadores.';
+$_lang['articles.setting.commentsModeratorGroup'] = 'Grupo de Moderadores';
+$_lang['articles.setting.commentsModeratorGroup_desc'] = 'Cualquier usuario en este Grupo de Usuarios tiene acceso como moderador.';
+$_lang['articles.setting.commentsAllowRemove'] = 'Permitir Eliminar';
+$_lang['articles.setting.commentsAllowRemove_desc'] = 'Permite para usuarios registrados eliminar sus propias publicaciones.';
+$_lang['articles.setting.commentsRemoveThreshold'] = 'Umbral de Eliminación';
+$_lang['articles.setting.commentsRemoveThreshold_desc'] = 'Si "Permitir Eliminar" esta activo, el número de minutos que un usuario puede eliminar sus comentarios después de haberlos publicados.';
+$_lang['articles.setting.commentsAllowReportAsSpam'] = 'Permitir Reportar como spam';
+$_lang['articles.setting.commentsAllowReportAsSpam_desc'] = 'Permitir a los usuarios registrados reportar comentarios como spam.';
+$_lang['articles.setting.commentsDateFormat'] = 'Formato de Fecha';
+$_lang['articles.setting.commentsDateFormat_desc'] = 'El formato de la fecha a mostrar para la publicación de un comentario. La sintaxis es en formato PHP strftime.';
+$_lang['articles.setting.commentsAutoConvertLinks'] = 'Auto Convertir Enlaces';
+$_lang['articles.setting.commentsAutoConvertLinks_desc'] = 'Convertir automáticamente URLs a enlaces.';
+$_lang['articles.setting.commentsGravatar'] = 'Usar Gravatar';
+$_lang['articles.setting.commentsGravatar_desc'] = 'Si o no para mostrar iconos Gravatar en los comentarios.';
+$_lang['articles.setting.commentsGravatarIcon'] = 'Estilo del Icono Gravatar';
+$_lang['articles.setting.commentsGravatarIcon_desc'] = 'El tipo de icono Gravatar a utilizar para un usuario sin un Gravatar.';
+$_lang['articles.setting.commentsGravatarSize'] = 'Tamaño del Icono Gravatar';
+$_lang['articles.setting.commentsGravatarSize_desc'] = 'El tamaño en píxeles del Gravatar. Por defecto es 50.';
+$_lang['articles.setting.'] = '';
+$_lang['articles.setting._desc'] = '';
+$_lang['articles.loading'] = 'Cargando';
+
+/* Settings */
+$_lang['setting_articles.article_show_longtitle'] = 'Mostrar Campo de Título Largo';
+$_lang['setting_articles.article_show_longtitle_desc'] = 'Establezca esta opción a "Sí" si desea que el campo "Título Largo" se muestre cuando se edita un Artículo.';
+
+$_lang['setting_articles.default_container_template'] = 'Plantilla por Defecto Contenedor de Artículos';
+$_lang['setting_articles.default_container_template_desc'] = 'La plantilla por defecto (ID) a usar al crear un nuevo Contenedor de Artículos';
+
+$_lang['setting_articles.default_article_template'] = 'Plantilla por Defecto de Artículos';
+$_lang['setting_articles.default_article_template_desc'] = 'La plantilla por defecto (ID) a usar al crear un nuevo Artículo cuando no hay ninguno especificado en el propio Contenedor.';
+
+$_lang['setting_articles.container_ids'] = 'Artículos FURL IDs';
+$_lang['setting_articles.container_ids_desc'] = 'Una lista separada por comas de los ID de contenedor en uso para el enrutamiento FURL. Lo mejor es dejar esto vacío.';
+
+$_lang['setting_articles.default_article_sort_field'] = 'Campo de Ordenación por defecto de Gestor de Artículos';
+$_lang['setting_articles.default_article_sort_field_desc'] = 'El valor por defecto del campo de ordenación para Artículos en el listado al editar un contenedor. Este campo debe ser una columna de la tabla site_content. TVs no están permitidos.';
+
+$_lang['setting_articles.mgr_date_format'] = 'Formato de Fecha en Gestor';
+$_lang['setting_articles.mgr_date_format_desc'] = 'Formato de fecha mostrado dentro de un contenedor de Artículos al enumerar Artículos dentro de gestor.';
+
+$_lang['setting_articles.mgr_time_format'] = 'Formato de Hora en Gestor';
+$_lang['setting_articles.mgr_time_format_desc'] = 'Formato de hora mostrado dentro de un contenedor de Artículos al enumerar Artículos dentro de gestor.';
diff --git a/core/components/articles/lexicon/es/frontend.inc.php b/core/components/articles/lexicon/es/frontend.inc.php
new file mode 100644
index 0000000..a9b0297
--- /dev/null
+++ b/core/components/articles/lexicon/es/frontend.inc.php
@@ -0,0 +1,29 @@
+
+ *
+ * Articles is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 2 of the License, or (at your option) any later
+ * version.
+ *
+ * Articles is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * Articles; if not, write to the Free Software Foundation, Inc., 59 Temple
+ * Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * @package articles
+ * @subpackage lexicon
+ *
+ * @language es
+ * Articles translated to Spanish by Bentejuy López (bentejuy@gmail.com)
+ */
+$_lang['articles.comments'] = 'Comentarios';
+$_lang['articles.posted_by'] = 'Publicado por';
+$_lang['articles.read_more'] = 'Leer más';
+$_lang['articles.tags'] = 'Tags';
diff --git a/core/components/articles/model/articles/articlescontainer.class.php b/core/components/articles/model/articles/articlescontainer.class.php
index 893c54b..c3fe003 100644
--- a/core/components/articles/model/articles/articlescontainer.class.php
+++ b/core/components/articles/model/articles/articlescontainer.class.php
@@ -356,6 +356,7 @@ public function getPostListingCall($placeholderPrefix = '') {
&sortby=`'.$this->xpdo->getOption('sortBy',$settings,'publishedon').'`
&sortdir=`'.$this->xpdo->getOption('sortDir',$settings,'DESC').'`
&tpl=`'.$this->xpdo->getOption('tplArticleRow',$settings,'sample.ArticleRowTpl').'`
+ &tplOdd=`'.$this->xpdo->getOption('tplArticleRowOdd',$settings,0).'`
&limit=`'.$this->xpdo->getOption('articlesPerPage',$settings,10).'`
&pageLimit=`'.$this->xpdo->getOption('pageLimit',$settings,5).'`
diff --git a/core/components/articles/model/articles/import/articlesimportmodx.class.php b/core/components/articles/model/articles/import/articlesimportmodx.class.php
index db0189b..6c269ab 100644
--- a/core/components/articles/model/articles/import/articlesimportmodx.class.php
+++ b/core/components/articles/model/articles/import/articlesimportmodx.class.php
@@ -114,7 +114,7 @@ public function getQuery() {
$where['id:!='] = array((int)$this->modx->getOption('site_start',null,1));
$where['isfolder'] = false;
- $where['class_key:!='] = 'Article';
+ $where['class_key'] = 'Article';
$c->where($where);
if (!empty($this->config['modx-tagsField'])) {
@@ -166,12 +166,25 @@ public function getTagsQuery(xPDOQuery &$c) {
* @return boolean
*/
public function importResource(modResource $resource) {
+ if (!empty($this->config['modx-duplicate'])) {
+ $resource = $resource->duplicate(array(
+ 'publishedMode' => 'unpublish',
+ 'preserve_alias' => false,
+ 'prefixDuplicate' => false
+ ));
+
+ if (!($resource instanceof modResource)) {
+ return false;
+ }
+ }
+
$resource->set('searchable',true);
$resource->set('richtext',true);
$resource->set('isfolder',false);
$resource->set('cacheable',true);
$resource->set('class_key','Article');
$resource->set('parent',$this->container->get('id'));
+ $resource->set('context_key',$this->container->get('context_key'));
$settings = $this->container->getProperties('articles');
$resource->setProperties($settings,'articles');