diff --git a/scm-webapp/src/main/webapp/resources/extjs/i18n/ext-lang-es.js b/scm-webapp/src/main/webapp/resources/extjs/i18n/ext-lang-es.js new file mode 100644 index 0000000000..7f303733d5 --- /dev/null +++ b/scm-webapp/src/main/webapp/resources/extjs/i18n/ext-lang-es.js @@ -0,0 +1,319 @@ +/*! + * Ext JS Library 3.3.1 + * Copyright(c) 2006-2010 Sencha Inc. + * licensing@sencha.com + * http://www.sencha.com/license + */ +/* + * Spanish/Latin American Translation by genius551v 04-08-2007 + * Revised by efege, 2007-04-15. + * Revised by Rafaga2k 10-01-2007 (mm/dd/yyyy) + * Revised by FeDe 12-13-2007 (mm/dd/yyyy) + * Synchronized with 2.2 version of ext-lang-en.js (provided by Condor 8 aug 2008) + * by halkon_polako 14-aug-2008 + */ + +Ext.UpdateManager.defaults.indicatorText = '
Cargando...
'; + +if(Ext.DataView){ + Ext.DataView.prototype.emptyText = ""; +} + +if(Ext.grid.GridPanel){ + Ext.grid.GridPanel.prototype.ddText = "{0} fila(s) seleccionada(s)"; +} + +if(Ext.LoadMask){ + Ext.LoadMask.prototype.msg = "Cargando..."; +} + +Date.monthNames = [ + "Enero", + "Febrero", + "Marzo", + "Abril", + "Mayo", + "Junio", + "Julio", + "Agosto", + "Septiembre", + "Octubre", + "Noviembre", + "Diciembre" +]; + +Date.getShortMonthName = function(month) { + return Date.monthNames[month].substring(0, 3); +}; + +Date.monthNumbers = { + Ene : 0, + Feb : 1, + Mar : 2, + Abr : 3, + May : 4, + Jun : 5, + Jul : 6, + Ago : 7, + Sep : 8, + Oct : 9, + Nov : 10, + Dic : 11 +}; + +Date.getMonthNumber = function(name) { + return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()]; +}; + +Date.dayNames = [ + "Domingo", + "Lunes", + "Martes", + "Mi\u00E9rcoles", + "Jueves", + "Viernes", + "S\u00E1bado" +]; + +Date.getShortDayName = function(day) { + if (day==3) return "Mié"; + if (day==6) return "Sáb"; + return Date.dayNames[day].substring(0, 3); +}; + +Date.parseCodes.S.s = "(?:st|nd|rd|th)"; + +if(Ext.MessageBox){ + Ext.MessageBox.buttonText = { + ok : "Aceptar", + cancel : "Cancelar", + yes : "S\u00ED", + no : "No" + }; +} + +if(Ext.util.Format){ + Ext.util.Format.date = function(v, format){ + if(!v) return ""; + if(!(v instanceof Date)) v = new Date(Date.parse(v)); + return v.dateFormat(format || "d/m/Y"); + }; +} + +if(Ext.DatePicker){ + Ext.apply(Ext.DatePicker.prototype, { + todayText : "Hoy", + minText : "Esta fecha es anterior a la fecha m\u00EDnima", + maxText : "Esta fecha es posterior a la fecha m\u00E1xima", + disabledDaysText : "", + disabledDatesText : "", + monthNames : Date.monthNames, + dayNames : Date.dayNames, + nextText : 'Mes Siguiente (Control+Right)', + prevText : 'Mes Anterior (Control+Left)', + monthYearText : 'Seleccione un mes (Control+Up/Down para desplazar el a\u00F1o)', + todayTip : "{0} (Barra espaciadora)", + format : "d/m/Y", + okText : " Ok ", + cancelText : "Cancelar", + startDay : 1 + }); +} + +if(Ext.PagingToolbar){ + Ext.apply(Ext.PagingToolbar.prototype, { + beforePageText : "P\u00E1gina", + afterPageText : "de {0}", + firstText : "Primera p\u00E1gina", + prevText : "P\u00E1gina anterior", + nextText : "P\u00E1gina siguiente", + lastText : "Última p\u00E1gina", + refreshText : "Actualizar", + displayMsg : "Mostrando {0} - {1} de {2}", + emptyMsg : 'Sin datos para mostrar' + }); +} + +if(Ext.form.Field){ + Ext.form.Field.prototype.invalidText = "El valor en este campo es inv\u00E1lido"; +} + +if(Ext.form.TextField){ + Ext.apply(Ext.form.TextField.prototype, { + minLengthText : "El tama\u00F1o m\u00EDnimo para este campo es de {0}", + maxLengthText : "El tama\u00F1o m\u00E1ximo para este campo es de {0}", + blankText : "Este campo es obligatorio", + regexText : "", + emptyText : null + }); +} + +if(Ext.form.NumberField){ + Ext.apply(Ext.form.NumberField.prototype, { + decimalSeparator : ".", + decimalPrecision : 2, + minText : "El valor m\u00EDnimo para este campo es de {0}", + maxText : "El valor m\u00E1ximo para este campo es de {0}", + nanText : "{0} no es un n\u00FAmero v\u00E1lido" + }); +} + +if(Ext.form.DateField){ + Ext.apply(Ext.form.DateField.prototype, { + disabledDaysText : "Deshabilitado", + disabledDatesText : "Deshabilitado", + minText : "La fecha para este campo debe ser posterior a {0}", + maxText : "La fecha para este campo debe ser anterior a {0}", + invalidText : "{0} no es una fecha v\u00E1lida - debe tener el formato {1}", + format : "d/m/Y", + altFormats : "d/m/Y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d", + startDay : 1 + }); +} + +if(Ext.form.ComboBox){ + Ext.apply(Ext.form.ComboBox.prototype, { + loadingText : "Cargando...", + valueNotFoundText : undefined + }); +} + +if(Ext.form.VTypes){ + Ext.apply(Ext.form.VTypes, { + emailText : 'Este campo debe ser una direcci\u00F3n de correo electr\u00F3nico con el formato "usuario@dominio.com"', + urlText : 'Este campo debe ser una URL con el formato "http:/'+'/www.dominio.com"', + alphaText : 'Este campo s\u00F3lo debe contener letras y _', + alphanumText : 'Este campo s\u00F3lo debe contener letras, n\u00FAmeros y _' + }); +} + +if(Ext.form.HtmlEditor){ + Ext.apply(Ext.form.HtmlEditor.prototype, { + createLinkText : "Por favor proporcione la URL para el enlace:", + buttonTips : { + bold : { + title: 'Negritas (Ctrl+B)', + text: 'Transforma el texto seleccionado en Negritas.', + cls: 'x-html-editor-tip' + }, + italic : { + title: 'It\u00E1lica (Ctrl+I)', + text: 'Transforma el texto seleccionado en It\u00E1licas.', + cls: 'x-html-editor-tip' + }, + underline : { + title: 'Subrayado (Ctrl+U)', + text: 'Subraya el texto seleccionado.', + cls: 'x-html-editor-tip' + }, + increasefontsize : { + title: 'Aumentar la fuente', + text: 'Aumenta el tama\u00F1o de la fuente', + cls: 'x-html-editor-tip' + }, + decreasefontsize : { + title: 'Reducir la fuente', + text: 'Reduce el tama\u00F1o de la fuente.', + cls: 'x-html-editor-tip' + }, + backcolor : { + title: 'Color de fondo', + text: 'Modifica el color de fondo del texto seleccionado.', + cls: 'x-html-editor-tip' + }, + forecolor : { + title: 'Color de la fuente', + text: 'Modifica el color del texto seleccionado.', + cls: 'x-html-editor-tip' + }, + justifyleft : { + title: 'Alinear a la izquierda', + text: 'Alinea el texto a la izquierda.', + cls: 'x-html-editor-tip' + }, + justifycenter : { + title: 'Centrar', + text: 'Centrar el texto.', + cls: 'x-html-editor-tip' + }, + justifyright : { + title: 'Alinear a la derecha', + text: 'Alinea el texto a la derecha.', + cls: 'x-html-editor-tip' + }, + insertunorderedlist : { + title: 'Lista de vi\u00F1etas', + text: 'Inicia una lista con vi\u00F1etas.', + cls: 'x-html-editor-tip' + }, + insertorderedlist : { + title: 'Lista numerada', + text: 'Inicia una lista numerada.', + cls: 'x-html-editor-tip' + }, + createlink : { + title: 'Enlace', + text: 'Inserta un enlace de hipertexto.', + cls: 'x-html-editor-tip' + }, + sourceedit : { + title: 'C\u00F3digo Fuente', + text: 'Pasar al modo de edici\u00F3n de c\u00F3digo fuente.', + cls: 'x-html-editor-tip' + } + } + }); +} + +if(Ext.grid.GridView){ + Ext.apply(Ext.grid.GridView.prototype, { + sortAscText : "Ordenar en forma ascendente", + sortDescText : "Ordenar en forma descendente", + columnsText : "Columnas" + }); +} + +if(Ext.grid.GroupingView){ + Ext.apply(Ext.grid.GroupingView.prototype, { + emptyGroupText : '(Ninguno)', + groupByText : 'Agrupar por este campo', + showGroupsText : 'Mostrar en grupos' + }); +} + +if(Ext.grid.PropertyColumnModel){ + Ext.apply(Ext.grid.PropertyColumnModel.prototype, { + nameText : "Nombre", + valueText : "Valor", + dateFormat : "j/m/Y" + }); +} + +if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){ + Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, { + splitTip : "Arrastre para redimensionar.", + collapsibleSplitTip : "Arrastre para redimensionar. Doble clic para ocultar." + }); +} + +if(Ext.form.TimeField){ + Ext.apply(Ext.form.TimeField.prototype, { + minText : "La hora en este campo debe ser igual o posterior a {0}", + maxText : "La hora en este campo debe ser igual o anterior a {0}", + invalidText : "{0} no es una hora v\u00E1lida", + format : "g:i A", + altFormats : "g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H" + }); +} + +if(Ext.form.CheckboxGroup){ + Ext.apply(Ext.form.CheckboxGroup.prototype, { + blankText : "Debe seleccionar al menos un \u00E9tem de este grupo" + }); +} + +if(Ext.form.RadioGroup){ + Ext.apply(Ext.form.RadioGroup.prototype, { + blankText : "Debe seleccionar un \u00E9tem de este grupo" + }); +} diff --git a/scm-webapp/src/main/webapp/resources/js/i18n/es.js b/scm-webapp/src/main/webapp/resources/js/i18n/es.js new file mode 100644 index 0000000000..15460c2fec --- /dev/null +++ b/scm-webapp/src/main/webapp/resources/js/i18n/es.js @@ -0,0 +1,668 @@ +/* + * Copyright (c) 2010, Sebastian Sdorra + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of SCM-Manager; nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * http://bitbucket.org/sdorra/scm-manager + * + */ + +if (Ext.form.VTypes) { + + Ext.override(Ext.form.VTypes, { + // sonia.config.js + pluginurlText: 'Este campo debe ser una URL. Formato: \n\ + "http://plugins.scm-manager.org/scm-plugin-backend/api/{version}/plugins?os={os}&arch={arch}&snapshot=false"', + passwordText: '¡Las contraseñas no coinciden!', + nameTest: 'El nombre no es válido.', + usernameText: 'El nombre de usuario no es válido.', + repositoryNameText: 'El nombre del repositorio no es válido.' + }); + +} + +// sonia.util.js + +if (Ext.util.Format) { + + Ext.apply(Ext.util.Format, { + timeAgoJustNow: 'Ahora', + timeAgoOneMinuteAgo: 'Hace un minuto', + timeAgoOneMinuteFromNow: 'Dentro de un minuto', + timeAgoMinutes: 'Minutos', + timeAgoOneHourAgo: 'Hace una hora', + timeAgoOneHourFromNow: 'Dentro de una hora', + timeAgoHours: 'Horas', + timeAgoYesterday: 'Ayer', + timeAgoTomorrow: 'Mañana', + timeAgoDays: 'Días', + timeAgoLastWeek: 'La semana pasada', + timeAgoNextWeek: 'La próxima semana', + timeAgoWeeks: 'Semanas', + timeAgoLastMonth: 'El mes pasado', + timeAgoNextMonth: 'El próximo mes', + timeAgoMonths: 'Meses', + timeAgoLastYear: 'El año pasado', + timeAgoNextYear: 'El próximo año', + timeAgoYears: 'Años', + timeAgoLastCentury: 'El siglo pasado', + timeAgoNextCentury: 'El próximo siglo', + timeAgoCenturies: 'Siglos' + }); + +} + +// sonia.login.js + +if (Sonia.login.Form) { + + Ext.override(Sonia.login.Form, { + usernameText: 'Nombre de usuario', + passwordText: 'Contraseña', + loginText: 'Iniciar sesión', + cancelText: 'Cancelar', + waitTitleText: 'Conectando', + WaitMsgText: 'Enviando datos...', + failedMsgText: '¡Error de acceso!', + failedDescriptionText: 'O el nombre de usuario o la contraseña son incorrectos o usted \n\ + no tiene suficientes permisos. Por favor inténtelo de nuevo.', + accountLockedText: 'La cuenta está bloqueada.', + accountTemporaryLockedText: 'En este momento la cuenta está bloqueada. \n\ + Inténtelo más tarde.', + rememberMeText: 'Recuérdame' + }); + +} + +if (Sonia.login.Window) { + + Ext.override(Sonia.login.Window, { + titleText: 'Iniciar sesión' + }); + +} + +// sonia.rest.js + +if (Sonia.rest.JsonStore) { + + Ext.override(Sonia.rest.JsonStore, { + errorTitleText: 'Error', + errorMsgText: 'No se pudieron cargar los datos. Estado del servidor: {0}' + }); + +} + +if (Sonia.rest.Grid) { + + Ext.override(Sonia.rest.Grid, { + emptyText: 'No se encontraron datos.' + }); + +} + +if (Sonia.rest.FormPanel) { + + Ext.override(Sonia.rest.FormPanel, { + okText: 'Aceptar', + cancelText: 'Cancelar', + addText: 'Añadir', + removeText: 'Eliminar' + }); + +} + +if (Sonia.repository.ChangesetPanel) { + + Ext.apply(Sonia.repository.ChangesetPanel, { + diffLabel: 'Diferenciar', + rawDiffLabel: 'Fichero de diferencias' + }); + +} + +// sonia.repository.js + +if (Sonia.repository.DefaultPanel) { + + Ext.apply(Sonia.repository.DefaultPanel, { + title: 'Repositorio', + html: 'Añada o seleccione un repositorio' + }); + +} + +if (Sonia.repository.Grid) { + + Ext.override(Sonia.repository.Grid, { + colNameText: 'Nombre', + colTypeText: 'Tipo', + colContactText: 'Contacto', + colDescriptionText: 'Descripción', + colCreationDateText: 'Fecha de creación', + colUrlText: 'URL', + colArchiveText: 'Archivo', + emptyText: 'El repositorio no está configurado', + formTitleText: 'Repositorio', + unknownType: 'Desconocido' + }); + +} + +if (Sonia.repository.FormPanel) { + + Ext.override(Sonia.repository.FormPanel, { + colGroupPermissionText: 'Es un grupo', + colNameText: 'Nombre', + colTypeText: 'Tipo', + formTitleText: 'Ajustes', + nameText: 'Nombre', + typeText: 'Tipo', + contactText: 'Contacto', + descriptionText: 'Descripción', + publicText: 'Público', + permissionText: 'Permisos', + errorTitleText: 'Error', + updateErrorMsgText: 'Error al actualizar el repositorio', + createErrorMsgText: 'Error el crear el repositorio', + // help + nameHelpText: 'El nombre del repositorio. Este nombre es parte de la URL del repositorio.', + typeHelpText: 'El tipo del repositorio (por ejemplo, Mercurial, Git o Subversion).', + contactHelpText: 'La dirección de correo electrónico de la persona responsable del repositorio.', + descriptionHelpText: 'Una breve descripción del repositorio.', + publicHelpText: 'Un repositorio público puede ser leído por cualquier persona.', + permissionHelpText: 'Los permisos de gestión para un usuario o un grupo específico.
\n\ + Permisos:
READ = lectura
WRITE = lectura y escritura
\n\ + OWNER = lectura, escritura y gestión de propiedades y permisos' + }); + +} + +if (Sonia.repository.Panel) { + + Ext.override(Sonia.repository.Panel, { + titleText: 'Repositorio', + filterText: 'Filtrar: ', + searchText: 'Buscar: ', + archiveText: 'Archivar', + unarchiveText: 'Restaurar', + archiveTitleText: 'Archivar el repositorio', + unarchiveTitleText: 'Restaurar el repositorio', + archiveMsgText: '¿Archivar el repositorio "{0}"?', + unarchiveMsgText: '¿Restaurar el repositorio "{0}"?', + errorArchiveMsgText: 'Error al archivar el repositorio.', + errorUnarchiveMsgText: 'Error al restaurar el repositorio.', + displayArchivedRepositoriesText: 'Archivo', + emptyText: 'Añada o seleccione un repositorio', + removeTitleText: 'Eliminar el repositorio', + removeMsgText: 'Eliminar el repositorio "{0}"?', + errorTitleText: 'Error', + errorMsgText: 'Error al eliminar el repositorio' + }); + +} + +if (Sonia.repository.PermissionFormPanel) { + + Ext.override(Sonia.repository.PermissionFormPanel, { + titleText: 'Permisos' + }); + +} + +if (Sonia.repository.ChangesetViewerPanel) { + + Ext.override(Sonia.repository.ChangesetViewerPanel, { + // spanish ?? + changesetViewerTitleText: 'Commits {0}' //Confirmaciones + }); + +} + +if (Sonia.repository.InfoPanel) { + + Ext.override(Sonia.repository.InfoPanel, { + nameText: 'Nombre: ', + typeText: 'Tipo: ', + contactText: 'Contacto: ', + urlText: 'URL: ', + // spanish ?? + changesetViewerText: 'Commits', //Confirmaciones + accessText: 'Acceso:', + accessReadOnly: 'Acceso de solo lectura', + accessReadWrite: 'Acceso de lectura y escritura' + }); + +} + +if (Sonia.repository.ExtendedInfoPanel) { + + Ext.override(Sonia.repository.ExtendedInfoPanel, { + // spanish ?? + checkoutText: 'Checkout: ', //Obtener + repositoryBrowserText: 'Código fuente' + }); + +} + +if (Sonia.repository.RepositoryBrowser) { + + Ext.override(Sonia.repository.RepositoryBrowser, { + repositoryBrowserTitleText: 'Código fuente {0}', + emptyText: 'Este directorio está vacio', + colNameText: 'Nombre', + colLengthText: 'Longitud', + colLastModifiedText: 'Última modificación', + colDescriptionText: 'Descripción' + }); + +} + +if (Sonia.repository.ChangesetViewerGrid) { + + Ext.override(Sonia.repository.ChangesetViewerGrid, { + // spanish ?? + emptyText: 'No hay commits disponibles' //confirmaciones + }); + +} + +if (Sonia.repository.ImportWindow) { + + Ext.override(Sonia.repository.ImportWindow, { + titleText: 'Importar repositorios', + okText: 'Aceptar', + closeText: 'Cerrar' + }); + +} + +// sonia.config.js + +if (Sonia.config.ScmConfigPanel) { + + Ext.override(Sonia.config.ScmConfigPanel, { + titleText: 'Ajustes generales', + servnameText: 'Nombre del servidor', + dateFormatText: 'Formato de la fecha', + enableForwardingText: 'Habilitar el reenvío (mod_proxy)', + forwardPortText: 'Puerto para el reenvío', + pluginRepositoryText: 'Repositorio de plugins', + allowAnonymousAccessText: 'Permitir el acceso anónimo', + enableSSLText: 'Activar SSL', + sslPortText: 'Puerto SSL', + adminGroupsText: 'Grupos de administradores', + adminUsersText: 'Usuarios administradores', + enableProxyText: 'Activar proxy', + proxyServerText: 'Servidor proxy', + proxyPortText: 'Puerto para el proxy', + proxyUserText: 'Usuario para el proxy', + proxyPasswordText: 'Contraseña para el proxy', + proxyExcludesText: 'Excepciones para el proxy', + baseUrlText: 'URL base', + forceBaseUrlText: 'Forzar a URL base', + disableGroupingGridText: 'Desactivar la agrupación de repositorios', + enableRepositoryArchiveText: 'Habilitar el archivado de repositorios', + submitText: 'Enviando ...', + loadingText: 'Cargando ...', + errorTitleText: 'Error', + errorMsgText: 'No se pudo cargar la configuración.', + errorSubmitMsgText: 'No se pudo enviar la configuración.', + loginAttemptLimitText: 'Intentos de inicio de sesión fallidos', + loginAttemptLimitTimeoutText: 'Tiempo de espera para inicio de sesión', + // help + servernameHelpText: 'El nombre de este servidor. Este nombre será parte de la URL del repositorio.', + dateFormatHelpText: 'Formato de la fecha. Por favor, eche un vistazo a\n\ + http://momentjs.com/docs/#/displaying/format/.', + pluginRepositoryHelpText: 'La URL del repositorio de plugins.
Descripción de los {comodines}:\n\ +
version = Versión de SCM-Manager
os = Sistema Operativo
arch = Arquitectura', + enableForwardingHelpText: 'Habilitar el reenvío de puerto de Apache mod_proxy.', + forwardPortHelpText: 'El puerto para el reenvío de puerto de Apache mod_proxy.', + allowAnonymousAccessHelpText: 'Los usuarios anónimos pueden leer los repositorios públicos.', + enableSSLHelpText: 'Habilitar conexiones seguras a través de HTTPS.', + sslPortHelpText: 'El puerto SSL.', + adminGroupsHelpText: 'Lista de grupos con derechos de administrador separados por comas.', + adminUsersHelpText: 'Lista de usuarios con derechos de administrador separados por comas.', + loginAttemptLimitHelpText: 'El número máximo de inicios de sesión fallidos. Un valor de -1 desactiva el límite.', + loginAttemptLimitTimeoutHelpText: 'El tiempo, en segundos, que un usuario será bloqueado temporalmente debido a muchos intentos fallidos de inicio de sesión.', + enableProxyHelpText: 'Usar la configuración del proxy.', + proxyServerHelpText: 'El servidor proxy.', + proxyPortHelpText: 'El puerto para el proxy', + proxyUserHelpText: 'El nombre de usuario para la autenticación en el servidor proxy.', + proxyPasswordHelpText: 'La contraseña del usuario para la autenticación en el servidor proxy.', + proxyExcludesHelpText: 'Una lista separada por comas de los patrones globales de nombre de servidor que serán excluidos de la configuración del proxy', + baseUrlHelpText: 'La URL completa del servidor, incluyendo el contexto, por ejemplo: http://localhost:8080/scm.', + forceBaseUrlHelpText: 'Redirige a la URL base si la solicitud proviene de otra URL.', + disableGroupingGridHelpText: 'Desactiva la agrupación de repositorios. Si se cambia este valor, la página se tiene que volver a cargar.', + enableRepositoryArchiveHelpText: 'Habilita el archivado de repositorios. Si se cambia este valor, la página se tiene que volver a cargar.' + }); + +} + +if (Sonia.config.ConfigForm) { + + Ext.override(Sonia.config.ConfigForm, { + title: 'Configuración', + saveButtonText: 'Guardar', + resetButtontext: 'Reestablecer', + submitText: 'Enviando ...', + loadingText: 'Cargando ...', + failedText: 'Se ha producido un error desconocido.' + }); + +} + +// sonia.user.js + +if (Sonia.user.DefaultPanel) { + + Ext.apply(Sonia.user.DefaultPanel, { + title: 'Usuario', + html: 'Añada o seleccione un usuario.' + }); + +} + +if (Sonia.user.Grid) { + + Ext.override(Sonia.user.Grid, { + titleText: 'Usuario', + colNameText: 'Nombre', + colDisplayNameText: 'Mostrar nombre', + colMailText: 'Correo electrónico', + colActiveText: 'Activo', + colAdminText: 'Administrador', + colCreationDateText: 'Fecha de creación', + colLastModifiedText: 'Última modificación', + colTypeText: 'Tipo' + }); + +} + +if (Sonia.user.FormPanel) { + + Ext.override(Sonia.user.FormPanel, { + nameText: 'Nombre', + displayNameText: 'Mostrar nombre', + mailText: 'Correo electrónico', + passwordText: 'Contraseña', + adminText: 'Administrador', + activeText: 'Activo', + errorTitleText: 'Error', + updateErrorMsgText: 'No se ha podido actualizar el usuario', + createErrorMsgText: 'No se ha podido crear el usuario', + passwordMinLengthText: 'La contraseña debe tener al menos 6 caracteres', + // help + usernameHelpText: 'Nombre único de usuario.', + displayNameHelpText: 'Muestra el nombre del usuario.', + mailHelpText: 'Dirección de correo electrónico del usuario.', + passwordHelpText: 'Contraseña en texto plano del usuario.', + passwordConfirmHelpText: 'Repita la contraseña para la validación.', + adminHelpText: 'Un administrador puede crear, editar y borrar repositorios, grupos y usuarios.', + activeHelpText: 'Activa o desactiva el usuario.' + }); + +} + +if (Sonia.user.Panel) { + + Ext.override(Sonia.user.Panel, { + titleText: 'Usuario', + emptyText: 'Añada o seleccione un usuario', + removeTitleText: 'Eliminar usuario', + removeMsgText: '¿Eliminar el usuario "{0}"?', + showOnlyActiveText: 'Mostrar solo activos: ', + errorTitleText: 'Error', + errorMsgText: 'No se ha podido eliminar el usuario' + }); + +} + + +// sonia.group.js + +if (Sonia.group.DefaultPanel) { + + Ext.apply(Sonia.group.DefaultPanel, { + title: 'Grupo', + html: 'Añada o seleccione un grupo' + }); + +} + +if (Sonia.group.Grid) { + + Ext.override(Sonia.group.Grid, { + colNameText: 'Nombre', + colDescriptionText: 'Descripción', + colMembersText: 'Miembros', + colCreationDateText: 'Fecha de creación', + colTypeText: 'Tipo', + emptyGroupStoreText: 'El grupo no está configurado.', + groupFormTitleText: 'Grupo' + }); + +} + +if (Sonia.group.FormPanel) { + + Ext.override(Sonia.group.FormPanel, { + colMemberText: 'Miembro', + titleText: 'Ajustes', + nameText: 'Nombre', + descriptionText: 'Descripción', + membersText: 'Miembros', + errorTitleText: 'Error', + updateErrorMsgText: 'No se pudo actualizar el grupo', + createErrorMsgText: 'No se pudo crear el grupo', + // help + nameHelpText: 'Nombre único del grupo.', + descriptionHelpText: 'Una breve descripción del grupo.', + membersHelpText: 'Nombres de usuario de los miembros del grupo.' + }); + +} + +if (Sonia.group.Panel) { + + Ext.override(Sonia.group.Panel, { + titleText: 'Grupo', + emptyText: 'Añada o seleccione un grupo', + removeTitleText: 'Eliminar grupo', + removeMsgText: '¿Eliminar el grupo "{0}"?', + errorTitleText: 'Error', + errorMsgText: 'No se pudo eliminar el grupo.' + }); + +} + +// sonia.action.js + +if (Sonia.action.ChangePasswordWindow) { + + Ext.override(Sonia.action.ChangePasswordWindow, { + titleText: 'Cambiar contraseña', + oldPasswordText: 'Clave antigua', // Better 'Contraseña antigua' change dialog size + newPasswordText: 'Clave nueva', // Better 'Contraseña nueva' change dialog size + confirmPasswordText: 'Confirma clave', // Better 'Confirma clave' change dialog size + okText: 'Aceptar', + cancelText: 'Cancelar', + connectingText: 'Conectando', + failedText: '¡No se pudo cambiar la contraseña!', + waitMsgText: 'Enviando datos ...' + }); + +} + +if (Sonia.action.ExceptionWindow) { + + // ?? + Ext.override(Sonia.action.ExceptionWindow, { + okText: 'Aceptar', + detailsText: 'Detalles', + exceptionText: 'Excepción' + }); + +} + +// sonia.plugin.js + +if (Sonia.plugin.Center) { + + Ext.override(Sonia.plugin.Center, { + waitTitleText: 'Por favor espere', + errorTitleText: 'Error', + restartText: 'Reinicie el servidor para activar el pugin.', + installWaitMsgText: 'Instalando el plugin.', + installSuccessText: 'Instalación correcta', + installFailedText: 'La instalación falló', + uninstallWaitMsgText: 'Desinstalando el plugin.', + uninstallSuccessText: 'Desinstalación correcta', + uninstallFailedText: 'La desinstalación falló', + updateWaitMsgText: 'Actualizando el plugin.', + updateSuccessText: 'Actualización correcta', + updateFailedText: 'La actualización falló' + + /* + Better: + + installSuccessText: 'El plugin se instaló correctamente', + installFailedText: 'La instalación del plugin ha fallado', + + uninstallSuccessText: 'El plugin se desinstaló correctamente', + uninstallFailedText: 'La desinstalación del plugin ha fallado', + + updateSuccessText: 'El plugin se actualizó correctamente', + updateFailedText: 'La actualización del plugin ha fallado' + + But needed change dialog size + */ + }); + +} + +if (Sonia.plugin.Grid) { + + Ext.override(Sonia.plugin.Grid, { + colNameText: 'Nombre', + colAuthorText: 'Autor', + colDescriptionText: 'Descripción', + colVersionText: 'Versión', + colActionText: 'Acción', + colUrlText: 'URL', + colCategoryText: 'Categoría', + emptyText: 'No hay plugins disponibles.', + btnReload: 'Actualizar', + btnInstallPackage: 'Instalar paquete', + uploadWindowTitle: 'Cargar paquete de plugins' + }); + +} + +if (Sonia.plugin.UploadForm) { + + Ext.override(Sonia.plugin.UploadForm, { + emptyText: 'Seleccione un paquete de plugins', + uploadFieldLabel: 'Paquete', + waitMsg: 'Cargando el paquete ...', + btnUpload: 'Cargar', + btnReset: 'Limpiar' + }); + +} + +// sonia.scm.js + +if (Sonia.scm.Main) { + + Ext.override(Sonia.scm.Main, { + tabRepositoriesText: 'Repositorios', + navChangePasswordText: 'Cambiar contraseña', + sectionMainText: 'Principal', + sectionSecurityText: 'Seguridad', + navRepositoriesText: 'Repositorios', + sectionConfigText: 'Configuración', + navGeneralConfigText: 'General', + tabGeneralConfigText: 'Configuración general', + navRepositoryTypesText: 'Repositorios', + navImportRepositoriesText: 'Importar repositorios', + tabRepositoryTypesText: 'Configuración de repositorios', + navPluginsText: 'Plugins', + tabPluginsText: 'Configuración de plugins', + navUsersText: 'Usuarios', + tabUsersText: 'Usuarios', + navGroupsText: 'Grupos', + tabGroupsText: 'Grupos', + sectionLoginText: 'Iniciar sesión', + navLoginText: 'Iniciar sesión', + sectionLogoutText: 'Cerrar sesión', + navLogoutText: 'Cerrar sesión', + logoutFailedText: '¡Ha ocurrido un error al salir!', + errorTitle: 'Error', + errorMessage: 'Se ha producido un error desconocido.', + errorSessionExpiredTitle: 'Sesión expirada', + errorSessionExpiredMessage: 'Su sesión ha expirado. Por favor, inicie sesión de nuevo.', + errorNoPermissionsTitle: 'Sin permiso', + errorNoPermissionsMessage: 'Usted no tiene permiso para realizar esta acción.', + errorNotFoundTitle: 'No encontrado', + errorNotFoundMessage: 'El recurso no se pudo encontrar.', + loggedInTextTemplate: 'conectado como {state.user.name} - ', + userInfoMailText: 'Correo electrónico', + userInfoGroupsText: 'Grupos' + }); + +} + +if (Sonia.panel.SyntaxHighlighterPanel) { + + Ext.override(Sonia.panel.SyntaxHighlighterPanel, { + loadErrorTitleText: 'Error', + loadErrorMsgText: 'No se pudo cargar el fichero' + }); + +} + + +if (Sonia.rest.Panel) { + + Ext.override(Sonia.rest.Panel, { + addText: 'Añadir', + removeText: 'Eliminar', + reloadText: 'Actualizar' + }); + +} + +// sonia.security.permissionspanel.js +if (Sonia.security.PermissionsPanel) { + + Ext.override(Sonia.security.PermissionsPanel, { + addText: 'Añadir', + removeText: 'Eliminar', + reloadText: 'Actualizar', + titleText: 'Permisos' + }); + +} \ No newline at end of file