Esta guia describe el bloque transversal vigente de v3.0 para parametros globales, templates de email, personalizacion visual e internacionalizacion. El contenido fue contrastado contra las rutas administrativas /admin/parameters, /admin/templates y /admin/customization, los EJB que resuelven parametros y mails, las pantallas Wicket que cambian idioma y los scripts de referencia que siembran configuracion inicial.
/admin/parameters y afectan a toda la instancia, no a una eleccion puntual.id=0 en /admin/templates.id=<electionId> en /admin/templates y solo para elecciones no cerradas./admin/customization.ES, EN y PT.EditParameterDashboard.ELECTIONS_DELETER.ElectionsParametersEJBBean.getParameter() devuelve cadena vacia, no null.APP tiene una regla especial: si falta, isProd() considera la instancia como productiva; solo devuelve false si el valor existe y no es PROD.APP, URL, WEBSITE_DEFAULT y DEFAULT_PHOTO.EMAIL_HOST, EMAIL_USER, EMAIL_PASSWORD, DEFAULT_SENDER, DEFAULT_RECIPIENT y DEFAULT_SUPPORT_RECIPIENT.WS_AUTH_METHOD, WS_LACNIC_AUTH_URL, WS_AUTH_TOKEN, WS_AUTHORIZED_IPS y WS_MAX_PAGE_SIZE. El nombre del parametro de autenticacion centralizada se conserva por compatibilidad con bases existentes.PUBLIC_NOMINATION_ENABLED, DataSiteKeyReCaptcha, LOGIN_CAPTCHA_ENABLED, PUBLIC_FAILED_ACCESS_MAX_ATTEMPTS, PUBLIC_FAILED_ACCESS_RATE_LIMIT_CACHE_RESET_HOURS, LOGIN_CAPTCHA_MAX_ATTEMPTS y LOGIN_CAPTCHA_RATE_LIMIT_CACHE_RESET_HOURS.ACCEPT_NOMINATION_CONDITIONS_ES/EN/PT y ABSTENTION_DEFAULT_TEXT.MILACNIC_SYNC_*, incluyendo endpoint, token y umbrales de seguridad para miembros/deudores/Brasil. El prefijo se mantiene por compatibilidad con la configuracion historica.CAMPUS_URL, CAMPUS_TOKEN y parametros de ventanas/rate limit para chequeos de curso y evaluacion.OPENAI_URL, OPENAI_API_KEY, OPENAI_MODEL, AI_TEXT_PROMPT_TRANSLATION y limites diarios/de ventana para mejora de texto.release-files/ref/parameter_NEW.sql siembra varias de estas claves, pero el codigo tambien consume constantes adicionales que pueden requerir carga explicita segun el entorno.Customization: no existe una personalizacion distinta por eleccion ni por idioma.image/.jpg/jpeg/png, maximo 512 KB y resolucion maxima 400x400.siteTitle y loginTitle son campos globales simples. Si se guardan vacios, la pantalla repone el valor por defecto del recurso advCustomizationDefaultSiteTitle.showHome alterna entre el home publico por defecto y un home HTML custom.homeHtml se edita con Summernote y luego se renderiza con setEscapeModelStrings(false), o sea, como HTML confiado almacenado en base.showHome=false, el home publico vuelve al contenido por defecto y deja visible el link historico al reporte de auditoria configurado para la version auditada 2.3./admin/templates?id=0.createElectionEmailTemplates() copia a esa eleccion todas las plantillas base faltantes.ErrorElectionClosed.templateType unico. El backend normaliza el tipo a mayusculas antes de persistirlo.SP, EN y PT, con maximos de 1000 caracteres para asunto y 2000 para cuerpo.NEW primero y luego el resto por templateType.NEW.forceBaseTemplateToOpenElections() recorre solo elecciones no cerradas, elimina la copia previa del tipo y persiste una nueva copia desde el base actual.templateType.EN y PT existe fallback por campo hacia SP: si el asunto o cuerpo en ingles/portugues viene vacio, se usa el valor en espanol.election.defaultSender y, si falta, de DEFAULT_SENDER.election.defaultRecipient; si falta, usa DEFAULT_RECIPIENT; si tampoco existe, cae al remitente de la eleccion o al remitente global.$signature o ${signature}, el motor inyecta el cuerpo del template SIGNATURE resuelto para esa eleccion/idioma.STANDARD_DISPATCH_NOTICE hacia el destinatario administrativo estandar.LINK_RECOVERY, el backend genera un fallback interno trilingue para no dejar el recovery sin correo.ElectionsManagerApp.properties.xml, ElectionsManagerApp_en.properties.xml y ElectionsManagerApp_pt.properties.xml.locale.Election no existe fallback runtime de titulo/descripcion/link hacia espanol. Si se pide EN o PT, devuelve ese campo.onlySp=true, las pantallas de alta y detalle copian automaticamente los textos y URLs de SP hacia EN y PT.LanguageCode acepta alias como es, sp, en y pt, ademas de variantes como espanol o portugues..github/copilot-instructions.md refuerza la regla tecnica vigente: para texto visible fijo se debe usar wicket:message y no hardcodear cadenas en la UI.siteTitle, loginTitle ni homeHtml: esos valores son globales.ElectionsManagerApp, ParametersDashboard, AddParameterPanel, ParametersListPanel, EditParameterDashboard, EmailTemplatesDashboard, AddEmailTemplatePanel, EditEmailTemplatePanel, EmailTemplatesListPanel, EmailTemplateFilterCatalog, CustomizationDashboard, CustomizationPanel, PublicHomeDashboard, AdminTopBarPanel, PublicTokenTopHeaderPanel, PublicTokenBasePage, ElectionsWebAdminSession, SecurityUtils, ElectionsManagerEJBBean, ElectionsParametersEJBBean, MailsSendingEJBBean, Election, ElectionEmailTemplate, LanguageCode, Constants, release-files/ref/parameter_NEW.sql, .github/copilot-instructions.md y los bundles ElectionsManagerApp*.properties.xml.