156 lines
5.6 KiB
Python
156 lines
5.6 KiB
Python
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()
|