• Nombre Eventos (en respuesta a suscripción)

  • OpenKM tiene muchas características interesantes, pero es necesario un proceso de configuración para mostrar todo su potencial.
OpenKM tiene muchas características interesantes, pero es necesario un proceso de configuración para mostrar todo su potencial.
Forum rules: Por favor, antes de preguntar algo consulta el wiki de documentación o utiliza la función de búsqueda del foro. Recuerda que no tenemos una bola de cristal ni poderes mentales, o sea que que para informar sobre un error es necesario que nos indiques tanto la versión de OpenKM que usas como la del navegador y sistema operativo. Para más información consulta Cómo informar de fallos de forma efectiva.
 #30983  by sandertaker
 
Buenos Días OKM - Team hoy me surgió una duda en cuanto al sistema, en cuanto me suscribo a una carpeta o documento y empiezo a editar los archivos dentro de la misma me envía el aviso al correo que tengo configurado con el siguiente formato:
Code: Select all
Document: /okm:root/Proy/Coment/1234.docx
User: sandertaker
Event: ADD_NOTE
Comment: probando los rss de OpenKM
mi duda es si existe alguna forma de traducir el nombre del evento, ya que como lo veo es una llamada directa a la función(lo que significaría modificar mucho código), y para los usuarios con menos experiencia o que no sepan inglés, por muy descriptivo que sea el nombre, puede ayudarle en nada el saber que lo último que le ha sucedido al documento 1234.docx es "ADD_NOTE" en vez de "NOTA_AGREGADA" o algo similar.

Saludos
 #31025  by jllort
 
Efectivamente, los errores no los hemos traducido. Lo mas sencillo para solucionarlo ahora mismo es aplicar un pequeño parche en el sitio desde el que se envian los correos electrónicos de las notificaciones ( esto es fácil de localizar, sino ya te digo el punto exacto ) y ahí reemplazar estos literales por traducciones mas amenas.

Traducimos muchos literales, pero algunos nos resultan tan familiares, que sinceramente no lo hemos hecho. Y también en parte para simplificar el proceso de traducir la aplicación en la medida de lo posible, ahora creo que debe estar en 1400 terminos mas o menos y eventos hay mas de los que parece.

Obviamente no parece ninguna tontería meter algun wrapper o poder extender la clase que se utiliza para enviar los correos y desde ahí reemplazar esto literales. Lo mas sencillo es el contenido final, procesarlo antes de enviar, esto requerirá pocos cambios y funcionará bien, dado que estos nombres - "ADD_NOTE" - no son de uso comun.

Si piensas mas detenidamente en el tema, las cosas al final no son tan sencillas. A veces la aplicación trabaja con gente en distintos idiomas, esto implicaría enviar el mensaje en N idiomas ( es decir n plantillas ) y a la vez traducir los eventos, sin olvidarnos que cada usuario debería tener indicado cual es su idioma base. No es que no hayamos pensado en estas posiblidades, pero "y aquí lo podemos discutir tranquilamente" nos parece mucha complicación en relación con la mejora que puede aportar ( mi opinión particular ). En cambio las notificaciones en un solo idioma - y se entiende que todo el mundo a estas alturas debe tener unos mínimos de globish, inglés vamos - simplifican el código y es una solución mas sencilla. Cuando en la mesa ponemos simplicidad, complejidad y objetivo, es cuando tenemos nuestras dudas de complicar las cosas. Entonces paramos y o bien nos tiramos inicialmente por una solución sencilla y que nos convenza o no la implementamos hasta encontrar algo mínimamente aceptable y sencillo. Me he enrollado mucho ... quería darte una idea del problema global que representa el tema de las traducciones.
 #31041  by sandertaker
 
Así veo que te has enrollado, bueno siguiendo con mi duda, según entiendo encontrando los archivos adecuados yo mismo podría traducir esos mensajes de error, pero con ello ¿El sistema no quedaría más inestable? o ¿derechamente dejaría de funcionar?, o simplemente no se puede por que hay partes del código que no está disponible para el usuario normal.

Saludos y de antemano muchas gracias
 #31042  by jllort
 
Ahora mismo lo único que puedes hacer es parchear el código fuente para que haga lo que tu quieres. Modificar la clase MailUtils.java https://sourceforge.net/p/openkm/code/H ... Utils.java en concreto el método send:
Code: Select all
private static void send(String fromAddress, Collection<String> toAddress, String subject, String text, Collection<String> docsPath)
throws MessagingException, PathNotFoundException, AccessDeniedException, RepositoryException, IOException, DatabaseException {
	log.debug("send({}, {}, {}, {}, {})", new Object[] { fromAddress, toAddress, subject, text, docsPath });
	List<File> tmpAttachments = new ArrayList<File>();
	try {
		// Need a temporal file for every attachment.
		for (int i = 0; i < docsPath.size(); i++) {
			tmpAttachments.add(FileUtils.createTempFile());
		}
		MimeMessage m = create(fromAddress, toAddress, subject, text, docsPath, tmpAttachments);
			Transport.send(m);
		} finally {
			for (File tmpAttach : tmpAttachments) {
			ileUtils.deleteQuietly(tmpAttach);
		}
	}
	log.debug("send: void");
} 
Y añadirle una linea al principio de la forma:
Code: Select all
text = text.replaceAll("ADD_NOTE","Añadir nota");
Como este literal "ADD_NOTE" no va a aparecer en ningún otro correo electrónico que no sea en las notificaciones de eventos de notas, te funcionará correctamente y el cambio en el código fuente es mínimo.

El código fuente esta todo disponible en sourceforge.net y aquí se indica como montar en entorno de desarrollo http://wiki.openkm.com/index.php/Developer_Guide

About Us

OpenKM is part of the management software. A management software is a program that facilitates the accomplishment of administrative tasks. OpenKM is a document management system that allows you to manage business content and workflow in a more efficient way. Document managers guarantee data protection by establishing information security for business content.