import { Injectable } from '@angular/core'; import { ResourcesService } from '../resources.service'; @Injectable({ providedIn: 'root', }) export class InternationalizationService { public words: Map; private arrAvailableLanguages: Array; private arrLanguageWords: Array; constructor(public resourcesService: ResourcesService) { this.arrAvailableLanguages = ['ES', 'IN']; this.words = new Map(); this.arrLanguageWords = [ { S002V01M03GEPR: 'Gestión de los procesos', S002V01S01GFTR: 'Gestión de los flujos de trabajo', S002V01S02GETA: 'Gestión de las tareas', S002V01S03SFTR: 'Solicitud de flujos de trabajo', cambiar_idioma: 'Cambiar idioma', espanol: 'Español', ingles: 'Inglés', regresar: 'Regresar', S002V01F01GFTR: 'Gestión de los flujos de trabajo', S002V01F02BUMU: 'Búsquedas multicriterio', S002V01F01GETA: 'Gestión de tareas', S002V01F01GSFT: 'Gestión de solicitudes de flujos de trabajo', titulo_selecciona_funcion: 'Seleccione una función', cerrar: 'Cerrar', guardar: 'Guardar', cancelar: 'Cancelar', aceptar: 'Aceptar', editar: 'Editar', eliminar: 'Eliminar', ver_tareas: 'Ver tareas', ver_flujo: 'Ver flujo de trabajo', cargando_menu: 'Cargando menú de gestión de procesos', nuevo: 'Nuevo', actualizar_datos: 'Actualizar Datos', buscador: 'Buscador', ingrese_palabra_buscar: 'Ingrese la palabra a buscar', eliminar_filtro: 'Eliminar filtro', items_per_page_label: 'Datos por página', next_page_label: 'Siguiente página', previous_page_label: 'Anterior página', first_page_label: 'Primera página', last_page_label: 'Última página', _de_: ' de ', cargando_informacion_flujos: 'Cargando información de los flujos de trabajo', cargando_informacion_formulario: 'Cargando la información del formulario', cargando_informacion_tareas: 'Cargando la información de las tareas', cargando_informacion_solicitudes: 'Cargando la información de las solicitudes', cargando_informacion_notificaciones: 'Cargando la información de las notificaciones', descripcion: 'Descripción', es_automatico: '¿Es automático?', fue_automatico: '¿Fue automático?', es_predefinido: '¿Es predefinido?', usuario_modificacion: 'Usuario modificación', fecha_actualizacion: 'Fecha de actualización', estado: 'Estado', acciones: 'Acciones', registro_exitoso: '¡Registro exitoso!', modificacion_exitoso: '¡Modificación Existosa!', opcion_no_disponible: 'Opción no disponible', clic_desplegar: 'Clic para desplegar', confirmacion: 'Confirmación', register_description_alert: '¿Está seguro de registrar el flujo de trabajo?', update_description_alert: '¿Está seguro de modificar el flujo de trabajo?', delete_description_alert: '¿Está seguro de eliminar el flujo de trabajo?', update_request_alert: '¿Está seguro de modificar el estado de la solicitud?', register_task_alert: '¿Está seguro de registrar la tarea?', update_task_alert: '¿Está seguro de modificar la tarea?', registro_flujo_trabajo: 'Registro de flujo de trabajo', modificacion_flujo_trabajo: 'Modificación de flujo de trabajo', nombre_flujo_trabajo: 'Nombre del flujo de trabajo', placeholder_nombre_flujo_trabajo: 'Ingrese el nombre del flujo de trabajo...', el_campo: 'El campo', es_requerido: 'es requerido', placeholder_descripcion: 'Ingrese la descripción del flujo de trabajo...', no_tarea: 'No. Tarea', no_flujo: 'No. Flujo', nombre_tarea: 'Nombre tarea', secuencia: 'Secuencia', registro_tarea: 'Registro de tareas', modificacion_tarea: 'Modificación de tareas', flujo_trabajo: 'Flujo de trabajo', procesos_flujo_trabajo: 'Procesos de flujo de trabajo', nombre_de_la_tarea: 'Nombre de la tarea', placeholder_nombre_de_la_tarea: 'Ingrese el nombre de la tarea...', placeholder_descripcion_tarea: 'Ingrese la descripción de la tarea...', reglas_validacion: 'Reglas de validación', usuario_para_validacion: 'Usuario para validar la tarea', usuario_solo_notificar: 'Usuarios para solo notificar', cambio_flujo_trabajo: 'Cambio de flujo de trabajo', cambiar_usuario: 'Cambiar al usuario', siempre_esperar_validacion_usuario: 'Siempre esperar validación del usuario', cambiar_otro_usuario: 'Cambiar al siguiente usuario', ejecutar_otro_flujo_trabajo: 'Ejecutar otro flujo de trabajo', tarea: 'Tarea', cambio_estado_solicitud: 'Cambio de estado de la solicitud', proceso: 'Proceso', ver_informacion_flujo_trabajo: 'Ver información del flujo de trabajo', ver_informacion: 'Ver información', numero_ejecucion: 'No. Ejecución', no_ejecucion_tarea: 'No. Ejecución Tarea', nombre_responsable: 'Nombre del responsable', ver_ejecucion_tareas: 'Ver ejecución de tareas', solicitud_ejecuciones_tareas: 'Solicitud de ejecuciones de tareas', mensaje_rechazo: 'Mensaje de rechazo', progreso: 'Progreso', historial_validaciones: 'Historial de validaciones', usuario: 'Usuario', no_notificacion: 'No. Notificación', tipo_notificacion: 'Tipo de notificación', cargando_informacion: 'Cargando información', buscar: 'Buscar', busqueda_solicitudes: 'Búsquedas de solicitudes', busqueda_notificaciones: 'Búsquedas de notificaciones', numero_ejecucion_flujo_trabajo: 'Número de ejecución del flujo de trabajo', estado_ejecucion_flujo_trabajo: 'Estado de ejecución del flujo de trabajo', numero_ejecucion_tarea: 'Número de ejecución de la tarea', estado_ejecucion_tarea: 'Estado de ejecución de la tarea', nombre_proceso: 'Nombre del proceso', rango_fecha: 'Rango de fechas', fecha_inicial: 'Fecha inicial', fecha_final: 'Fecha final', usuario_notificado: 'Usuario notificado', numero_notificacion: 'Número de notificación', estado_notifiación: 'Estado de la notificación', fecha_inicio_no_valida: 'Fecha de inicio no válida', fecha_finalizacion_no_valida: 'Fecha de finalización no válida', ejecucion_flujo_trabajo: 'Ejecución del flujo de trabajo', ejecucion_tarea: 'Ejecución de la tarea', ver_detalles_solicitud: 'Ver detalles de la solicitud', detalles_solicitud: 'Detalles de la solicitud', descripcion_flujo_trabajo: 'Descripción del flujo de trabajo', descripcion_tarea: 'Descripción de la tarea', ver_informacion_solicitud: 'Ver información de la solicitud', no_es_valido: 'no es válido', detalles_notificacion: 'Detalles de la notificación', numero_secuencia: 'Número de secuencia', reset_configuration: 'Restaurar configuración', reset_description_alert: '¿Está seguro de restablecer la configuración por defecto de todos los flujos de trabajo?', register_task: 'Registrar tarea', update_task: 'Actualizar tarea', module: 'Módulo relacionado', task_users_settings: 'Configuración de usuarios', next_status: 'Siguiente estado', automatic_task: 'Tarea automática', configure_users: 'Configurar usuarios', the_maximum_length: 'La longitud máxima del campo', the_minimum_length: 'La longitud mínima del campo', is_of: 'es de', characters: 'caracteres', requiere_validacion: 'Requiere validación', regla_validacion: 'Regla de validación', registrar_workflow: 'Registrar Workflow', nombre_workflow: 'Nombre del Workflow', campo_requerido: 'Este campo es requerido', registrar: 'Registrar', sin_datos: 'Sin datos', confirmar: 'Confirmar', esta_seguro_eliminar_tarea: '¿Está seguro de eliminar la tarea?', eliminacion_exitosa: '¡Eliminación Exitosa!', ingrese_nombre_tarea: 'Ingrese el nombre de la tarea', ingrese_descripcion_tarea: 'Ingrese la descripción de la tarea', usuario_validador: 'Usuarios elegibles para validar', usuarios_notificar: 'Usuarios a Notificar', esperar: 'Esperar', ejecutar: 'Ejecutar', workflow_ejecutar: 'Workflow a Ejecutar', funcion_relacionada_tarea: 'Función relacionada que ejecuta la tarea', modulo: 'Módulo', submodulo: 'Submódulo', funcion: 'Función', registro_exitoso_tarea: '¡Registro exitoso!', modificacion_exitosa_tarea: '¡Modificación exitosa!', detalles_tarea: 'Detalles de la Tarea', id: 'ID', nombre: 'Nombre', si: 'Sí', no: 'No', na: 'N/A', usuario_registro: 'Usuario Registro', fecha_registro: 'Fecha Registro', fecha_modifica: 'Fecha Modifica', hoy: 'Hoy', hace_1_dia: 'Hace 1 día', hace_dias: 'Hace {0} días', modulos: 'Módulos', predeterminado: 'Predeterminado', version: 'Versión', historial: 'Historial', ver_historial_cambios: 'Ver historial de cambios', ver_detalles: 'Ver detalles', registrar_tareas: 'Registrar tareas', activar: 'Activar', desactivar: 'Desactivar', cambio_estado_exitoso: '¡Cambio de estado exitoso!', no_puede_activar_workflow: 'No se puede activar el workflow. Debe tener al menos una tarea registrada.', error_verificar_tareas: 'Error al verificar tareas: {0}', no_pudo_encontrar_informacion: 'No se pudo encontrar información para editar.', comentario_cambio: 'Comentario del cambio', explique_motivo_cambio: 'Explique el motivo del cambio...', detalles_workflow: 'Detalles del Workflow', usuario_modifica: 'Usuario modifica', cambiar_estado: 'Cambiar Estado', esta_seguro_cambiar_estado: '¿Está seguro de cambiar el estado a {0}?', explique_motivo_cambio_estado: 'Explique el motivo del cambio de estado...', intervalo: 'Intervalo', ingrese_intervalo: 'Ingrese el intervalo', unidad_tiempo: 'Unidad de tiempo', segundos: 'Segundos', minutos: 'Minutos', horas: 'Horas', }, { S002V01M03GEPR: 'Process management', S002V01S01GFTR: 'Workflow management', S002V01S02GETA: 'Task management', S002V01S03SFTR: 'Request workflows', cambiar_idioma: 'Change language', espanol: 'Spanish', ingles: 'English', regresar: 'Go back', S002V01F01GFTR: 'Workflow management', S002V01F02BUMU: 'Multi-criteria searches', S002V01F01GETA: 'Task management', S002V01F01GSFT: 'Workflow request management', titulo_selecciona_funcion: 'Select a function', cerrar: 'Close', guardar: 'Save', cancelar: 'Cancel', aceptar: 'Accept', editar: 'Edit', eliminar: 'Delete', ver_tareas: 'View tasks', ver_flujo: 'View workflow', cargando_menu: 'Loading process management menu', nuevo: 'New', actualizar_datos: 'Update data', buscador: 'Search', ingrese_palabra_buscar: 'Enter the word to search', eliminar_filtro: 'Remove filter', items_per_page_label: 'Items per page', next_page_label: 'Next page', previous_page_label: 'Previous page', first_page_label: 'First page', last_page_label: 'Last page', _de_: ' of ', cargando_informacion_flujos: 'Loading workflow information', cargando_informacion_formulario: 'Loading form information', cargando_informacion_tareas: 'Loading task information', cargando_informacion_solicitudes: 'Loading application information', cargando_informacion_notificaciones: 'Loading notification information', descripcion: 'Description', es_automatico: 'It is automatic?', fue_automatico: 'Was it automatic?', es_predefinido: 'Is it predefined?', usuario_modificacion: 'User modification', fecha_actualizacion: 'Update date', estado: 'State', acciones: 'Actions', registro_exitoso: 'Successful registration!', modificacion_exitoso: 'Successful Modification!', opcion_no_disponible: 'Option not available', clic_desplegar: 'Click to display', confirmacion: 'Confirmation', register_description_alert: 'Are you sure to record the workflow?', update_description_alert: 'Are you sure about modifying the workflow?', delete_description_alert: 'Are you sure to delete the workflow?', update_request_alert: 'Are you sure to change the status of the request?', register_task_alert: 'Are you sure to register the task?', update_task_alert: 'Are you sure about modifying the task?.', registro_flujo_trabajo: 'Workflow registration', modificacion_flujo_trabajo: 'Workflow Modification', nombre_flujo_trabajo: 'Workflow name', placeholder_nombre_flujo_trabajo: 'Enter the name of the workflow...', el_campo: 'The field', es_requerido: 'is required', placeholder_descripcion: 'Enter the workflow description...', no_tarea: 'No. Task', no_flujo: 'No. Workflow', nombre_tarea: 'Task name', secuencia: 'Sequence', registro_tarea: 'Task registration', modificacion_tarea: 'Task modification', flujo_trabajo: 'Workflow', procesos_flujo_trabajo: 'Workflow processes', nombre_de_la_tarea: 'Task name', placeholder_nombre_de_la_tarea: 'Enter the name of the task...', placeholder_descripcion_tarea: 'Enter the task description...', reglas_validacion: 'Validation rules', usuario_para_validacion: 'User to validate the task', usuario_solo_notificar: 'Notify-only users', cambio_flujo_trabajo: 'Workflow change', cambiar_usuario: 'Change user', siempre_esperar_validacion_usuario: 'Always wait for user validation', cambiar_otro_usuario: 'Switch to next user', ejecutar_otro_flujo_trabajo: 'Run another workflow', tarea: 'Task', cambio_estado_solicitud: 'Request status change', proceso: 'Process', ver_informacion_flujo_trabajo: 'View workflow information', ver_informacion: 'View information', numero_ejecucion: 'No. Execution', no_ejecucion_tarea: 'No. Task Execution', nombre_responsable: 'Name of person responsible', ver_ejecucion_tareas: 'View task execution', solicitud_ejecuciones_tareas: 'Request task executions', mensaje_rechazo: 'Rejection message', progreso: 'Progress', historial_validaciones: 'Validation history', usuario: 'User', no_notificacion: 'No. Notification', tipo_notificacion: 'Notification type', cargando_informacion: 'Loading information', buscar: 'Search', busqueda_solicitudes: 'Request searches', busqueda_notificaciones: 'Notification searches', numero_ejecucion_flujo_trabajo: 'Workflow Execution Number', estado_ejecucion_flujo_trabajo: 'Workflow Execution Status', numero_ejecucion_tarea: 'Task execution number', estado_ejecucion_tarea: 'Task execution status', nombre_proceso: 'Name of process', rango_fecha: 'Date range', fecha_inicial: 'Start date', fecha_final: 'End date', usuario_notificado: 'Notified user', numero_notificacion: 'Notification number', estado_notifiación: 'Notification status', fecha_inicio_no_valida: 'Invalid start date', fecha_finalizacion_no_valida: 'Invalid end date', ejecucion_flujo_trabajo: 'Workflow execution', ejecucion_tarea: 'Task execution', ver_detalles_solicitud: 'View request details', detalles_solicitud: 'Request details', descripcion_flujo_trabajo: 'Workflow description', descripcion_tarea: 'Task description', ver_informacion_solicitud: 'View request information', no_es_valido: 'it is not valid', detalles_notificacion: 'Notification details', numero_secuencia: 'Sequence number', reset_configuration: 'Restore settings', reset_description_alert: 'Are you sure you want to reset all workflows to default settings?', register_task: 'Add task', update_task: 'Update task', module: 'Related module', task_users_settings: 'User configuration', next_status: 'Next status', automatic_task: 'Automatic task', configure_users: 'Configure users', the_maximum_length: 'The maximum length of the', the_minimum_length: 'The minimum length of the', is_of: 'field is', characters: 'characters', requiere_validacion: 'Requires validation', regla_validacion: 'Validation rule', registrar_workflow: 'Register Workflow', nombre_workflow: 'Workflow Name', campo_requerido: 'This field is required', registrar: 'Register', sin_datos: 'No data', confirmar: 'Confirm', esta_seguro_eliminar_tarea: 'Are you sure you want to delete the task?', eliminacion_exitosa: 'Successful Deletion!', ingrese_nombre_tarea: 'Enter the task name', ingrese_descripcion_tarea: 'Enter the task description', usuario_validador: 'users eligible to validate', usuarios_notificar: 'Users to Notify', esperar: 'Wait', ejecutar: 'Execute', workflow_ejecutar: 'Workflow to Execute', funcion_relacionada_tarea: 'Related function that executes the task', modulo: 'Module', submodulo: 'Submodule', funcion: 'Function', registro_exitoso_tarea: 'Successful registration!', modificacion_exitosa_tarea: 'Successful modification!', detalles_tarea: 'Task Details', id: 'ID', nombre: 'Name', si: 'Yes', no: 'No', na: 'N/A', usuario_registro: 'Registration User', fecha_registro: 'Registration Date', fecha_modifica: 'Modification Date', hoy: 'Today', hace_1_dia: '1 day ago', hace_dias: '{0} days ago', modulos: 'Modules', predeterminado: 'Default', version: 'Version', historial: 'History', ver_historial_cambios: 'View change history', ver_detalles: 'View details', registrar_tareas: 'Register tasks', activar: 'Activate', desactivar: 'Deactivate', cambio_estado_exitoso: 'Status change successful!', no_puede_activar_workflow: 'Cannot activate workflow. Must have at least one registered task.', error_verificar_tareas: 'Error verifying tasks: {0}', no_pudo_encontrar_informacion: 'Could not find information to edit.', comentario_cambio: 'Change comment', explique_motivo_cambio: 'Explain the reason for the change...', detalles_workflow: 'Workflow Details', usuario_modifica: 'User modifies', cambiar_estado: 'Change Status', esta_seguro_cambiar_estado: 'Are you sure you want to change the status to {0}?', explique_motivo_cambio_estado: 'Explain the reason for the status change...', intervalo: 'Interval', ingrese_intervalo: 'Enter the interval', unidad_tiempo: 'Time unit', segundos: 'Seconds', minutos: 'Minutes', horas: 'Hours', }, ]; this.checkLanguage(); } private checkLanguage() { let language: string | null = localStorage.getItem('language'); if (language === null) { localStorage.setItem('language', 'ES'); language = 'ES'; } if (!this.arrAvailableLanguages.includes(language)) { this.resourcesService.openSnackBar( 'El idioma seleccionado no está disponible.' ); language = 'ES'; } this.generateObjectLanguage(language); } public generateObjectLanguage(language: string) { const indexLanguage = this.arrAvailableLanguages.findIndex( (aviable: string) => aviable === language ); const elementLenguage = this.arrLanguageWords[indexLanguage]; const arrKeys: Array = Object.keys(elementLenguage); const propertyValues: Array = Object.values(elementLenguage); this.words = new Map(); arrKeys.forEach((element, index) => { this.words.set(element, propertyValues[index]); }); } public get(word: string) { let result: string | undefined = this.words.get(word); if (result === undefined) { result = '...'; } return result; } }