HMI_Translate_Helper_wMaste.../x2_master_export2translate.py

57 lines
1.8 KiB
Python

import pandas as pd
import os
import PyLibrary.funciones_comunes as fc
from translation_config import TranslationConfig
# Definir el logger a nivel de módulo
logger = None
def exportar_para_traduccion(config: TranslationConfig):
master_path = config.get_master_path()
if not os.path.exists(master_path):
print("El archivo maestro no existe.")
return
# Leer el archivo maestro
df_maestro = fc.read_dataframe_with_cleanup_retries(master_path)
# Crear un nuevo DataFrame para la exportación
df_export = pd.DataFrame()
# Copiar la primera columna y la columna del idioma de destino
primera_columna = df_maestro.columns[0]
df_export[primera_columna] = df_maestro[primera_columna]
df_export[config.codigo_idioma_seleccionado] = df_maestro[
config.codigo_idioma_seleccionado
]
# Guardar el archivo exportado
ruta_export = config.get_translate_path()
# Usar ExcelWriter para tener más control sobre el proceso de escritura
with pd.ExcelWriter(ruta_export, engine="openpyxl") as writer:
df_export.to_excel(writer, index=False, sheet_name="Sheet1")
# Ajustar el ancho de las columnas
worksheet = writer.sheets["Sheet1"]
for idx, col in enumerate(df_export.columns):
max_length = max(df_export[col].astype(str).map(len).max(), len(col))
if max_length > 50:
max_length = 50
worksheet.column_dimensions[chr(65 + idx)].width = max_length + 2
print(f"Archivo exportado para traducción: {ruta_export}")
def run(config: TranslationConfig):
global logger
logger = fc.configurar_logger(config.work_dir)
exportar_para_traduccion(config)
if __name__ == "__main__":
import menu_pasos_traduccion
menu_pasos_traduccion.main()