import tkinter as tk from tkinter import ttk from tkinter import messagebox import funciones_comunes as fc import x1_importar_to_master import x2_master_export2translate import x3_llm_auto_translate import x4_integrate_translates_to_master import x5_complete_empty_cells_master import x6_update_from_master # Crear la ventana principal ventana = tk.Tk() ventana.title("Ayuda para traducir textos de TIA Portal y Allen Bradley") ventana.geometry("600x550") # Aumentamos el tamaño para acomodar los nuevos widgets # Opciones para tipo_PLC opciones_tipo_PLC = ['siemens', 'allenbradley'] # Variables para almacenar las selecciones del usuario tipo_PLC_var = tk.StringVar() idioma_maestra_var = tk.StringVar() idioma_var = tk.StringVar() idioma_var2 = tk.StringVar() # Crear listas de idiomas con sus códigos idiomas_lista = sorted([(nombre, codigo) for _, (nombre, codigo) in fc.IDIOMAS.items()]) # Crear un combobox para seleccionar el tipo de PLC label_tipo_PLC = tk.Label(ventana, text="Selecciona el tipo de PLC:") combo_tipo_PLC = ttk.Combobox(ventana, textvariable=tipo_PLC_var, state="readonly") combo_tipo_PLC["values"] = opciones_tipo_PLC combo_tipo_PLC.current(0) # Selecciona 'siemens' por defecto # Crear combobox para seleccionar el Idioma Columna Maestra label_maestra = tk.Label(ventana, text="Idioma Columna Maestra:") combo_maestra = ttk.Combobox(ventana, textvariable=idioma_maestra_var, state="readonly") combo_maestra["values"] = [nombre for nombre, _ in idiomas_lista] combo_maestra.current(0) # Selecciona el primer idioma por defecto # Crear comboboxes para seleccionar los idiomas label_idioma1 = tk.Label(ventana, text="Selecciona el idioma principal:") combo = ttk.Combobox(ventana, textvariable=idioma_var, state="readonly") combo["values"] = [nombre for nombre, _ in idiomas_lista] combo.current(1) # Selecciona el segundo idioma por defecto label_idioma2 = tk.Label(ventana, text="Selecciona el segundo idioma:") combo2 = ttk.Combobox(ventana, textvariable=idioma_var2, state="readonly") combo2["values"] = [nombre for nombre, _ in idiomas_lista] combo2.current(2) # Selecciona el tercer idioma por defecto # Ubicar los widgets en la ventana label_tipo_PLC.pack(pady=5) combo_tipo_PLC.pack(pady=5) label_maestra.pack(pady=5) combo_maestra.pack(pady=5) label_idioma1.pack(pady=5) combo.pack(pady=5) label_idioma2.pack(pady=5) combo2.pack(pady=5) # Función para obtener el código del idioma seleccionado a partir del índice def obtener_codigo_idioma(indice): return idiomas_lista[indice][1] # Funciones que se llamarán cuando se presionen los botones def accion_boton1(): tipo_PLC = tipo_PLC_var.get() indice_maestra = combo_maestra.current() codigo_columna_maestra = obtener_codigo_idioma(indice_maestra) print("Ejecutando x1_importar_to_master.py") x1_importar_to_master.run(tipo_PLC, codigo_columna_maestra) def accion_boton2(): tipo_PLC = tipo_PLC_var.get() indice_maestra = combo_maestra.current() codigo_columna_maestra = obtener_codigo_idioma(indice_maestra) print("Ejecutando x2_master_export2translate.py") x2_master_export2translate.run(tipo_PLC, codigo_columna_maestra) def accion_boton3(): tipo_PLC = tipo_PLC_var.get() indice_maestra = combo_maestra.current() codigo_columna_maestra = obtener_codigo_idioma(indice_maestra) traducir_todo = messagebox.askyesno("Traducir todo", "¿Desea traducir todas las celdas?") print("Ejecutando x3_llm_auto_translate.py") x3_llm_auto_translate.run(tipo_PLC, codigo_columna_maestra, traducir_todo) def accion_boton4(): tipo_PLC = tipo_PLC_var.get() indice_maestra = combo_maestra.current() codigo_columna_maestra = obtener_codigo_idioma(indice_maestra) print("Ejecutando x4_integrate_translates_to_master.py") x4_integrate_translates_to_master.run(tipo_PLC, codigo_columna_maestra) def accion_boton5(): tipo_PLC = tipo_PLC_var.get() indice_maestra = combo_maestra.current() codigo_columna_maestra = obtener_codigo_idioma(indice_maestra) indice_idioma1 = combo.current() codigo_columna_secundaria = obtener_codigo_idioma(indice_idioma1) print("Ejecutando x5_complete_empty_cells_master.py") x5_complete_empty_cells_master.run(tipo_PLC, codigo_columna_maestra, codigo_columna_secundaria) def accion_boton6(): tipo_PLC = tipo_PLC_var.get() indice_maestra = combo_maestra.current() codigo_columna_maestra = obtener_codigo_idioma(indice_maestra) print("Ejecutando x6_update_from_master.py") x6_update_from_master.run(tipo_PLC, codigo_columna_maestra) # Crear los botones con el mismo ancho button_width = 70 paso1 = tk.Button(ventana, text="1 - Importar al Master", command=accion_boton1, width=button_width) paso2 = tk.Button( ventana, text="2 - Exportar idioma a '2_master_export2translate.xlsx'", command=accion_boton2, width=button_width ) paso3 = tk.Button( ventana, text="3 - Traducir y generar '3_master_export2translate_translated.xlsx'", command=accion_boton3, width=button_width ) paso4 = tk.Button( ventana, text="4 - Integrar las traducciones al '1_hmi_master_translates'", command=accion_boton4, width=button_width ) paso5 = tk.Button( ventana, text="5 - Completar celdas vacías usando el segundo idioma", command=accion_boton5, width=button_width ) paso6 = tk.Button( ventana, text="6 - Exportar desde '1_hmi_master_translates' al PLC", command=accion_boton6, width=button_width ) # Ubicar los botones en la ventana paso1.pack(pady=5) paso2.pack(pady=5) paso3.pack(pady=5) paso4.pack(pady=5) paso5.pack(pady=5) paso6.pack(pady=5) # Iniciar el bucle principal de la interfaz ventana.mainloop()