diff --git a/hmi_master_translates.xlsx b/hmi_master_translates.xlsx index 7413c7a..16b64cc 100644 Binary files a/hmi_master_translates.xlsx and b/hmi_master_translates.xlsx differ diff --git a/import_translate2master.py b/import_translate2master.py new file mode 100644 index 0000000..707abf1 --- /dev/null +++ b/import_translate2master.py @@ -0,0 +1,68 @@ +import pandas as pd +import os +import re +import logging +from manejoArchivos import select_file + +def configurar_logger(ruta_log): + logger = logging.getLogger('importacion_logger') + logger.setLevel(logging.INFO) + fh = logging.FileHandler(ruta_log, encoding='utf-8') + fh.setLevel(logging.INFO) + formatter = logging.Formatter('%(asctime)s - %(message)s') + fh.setFormatter(formatter) + logger.addHandler(fh) + return logger + +def revertir_transformaciones(texto, digitos, secciones): + # Revertir <> a [[digits]] + for digito in digitos: + texto = texto.replace('<>', digito, 1) + # Revertir <#> a <...> usando las secciones originales + for seccion in secciones: + texto = texto.replace('<#>', f'<{seccion}>', 1) + return texto + +def importar_traduccion(archivo_maestro, archivo_traduccion): + if not os.path.exists(archivo_maestro): + print("El archivo maestro no existe.") + return + + df_maestro = pd.read_excel(archivo_maestro) + df_traduccion = pd.read_excel(archivo_traduccion) + + # Configurar el logger + directorio = os.path.dirname(archivo_maestro) + nombre_log = os.path.join(directorio, 'importacion_traduccion.log') + logger = configurar_logger(nombre_log) + + # Iterar sobre las filas del archivo de traducción para revertir transformaciones y actualizar el maestro + for index, fila in df_traduccion.iterrows(): + clave = fila[df_maestro.columns[0]] + if clave in df_maestro[df_maestro.columns[0]].values: + # Obtener los dígitos y secciones originales de la clave + digitos = re.findall(r'\d+', str(clave)) + secciones = re.findall(r'<(.*?)>', str(clave)) + + # Actualizar solo las columnas que existen en df_maestro y df_traduccion + for columna in df_traduccion.columns[1:]: + if columna in df_maestro.columns: + valor_traducido = fila[columna] + if pd.isnull(valor_traducido): + continue # Omitir celdas vacías + valor_original = df_maestro.loc[df_maestro[df_maestro.columns[0]] == clave, columna].values[0] + valor_revertido = revertir_transformaciones(valor_traducido, digitos, secciones) + + if pd.notnull(valor_original) and str(valor_original) != valor_revertido: + df_maestro.loc[df_maestro[df_maestro.columns[0]] == clave, columna] = valor_revertido + logger.info(f'Fila {index}, Columna {columna}: "{valor_original}" actualizado a "{valor_revertido}"') + + # Guardar el archivo maestro actualizado + df_maestro.to_excel(archivo_maestro, index=False) + print(f"Traducciones importadas y archivo maestro actualizado: {archivo_maestro}. Detalles de los cambios en {nombre_log}") + + +if __name__ == "__main__": + archivo_maestro = "hmi_master_translates.xlsx" + archivo_traduccion = "master_export2translate.xlsx" + importar_traduccion(archivo_maestro, archivo_traduccion) diff --git a/importacion_traduccion.log b/importacion_traduccion.log new file mode 100644 index 0000000..e69de29 diff --git a/master_export2translate.py b/master_export2translate.py new file mode 100644 index 0000000..2a10e92 --- /dev/null +++ b/master_export2translate.py @@ -0,0 +1,37 @@ +import pandas as pd +import os +import re +from manejoArchivos import select_file + +def transformar_texto(texto): + # Sustituir [[digits]] por <> + texto_transformado = re.sub(r'\[\[digits\]\]', '<>', texto) + # Sustituir cualquier <...> por <#> + texto_transformado = re.sub(r'<.*?>', '<#>', texto_transformado) + return texto_transformado + +def exportar_para_traduccion(archivo_maestro): + if not os.path.exists(archivo_maestro): + print("El archivo maestro no existe.") + return + + df_maestro = pd.read_excel(archivo_maestro) + + # Crear un nuevo DataFrame para la exportación + df_export = pd.DataFrame() + + # Copiar la primera columna tal cual + df_export[df_maestro.columns[0]] = df_maestro[df_maestro.columns[0]] + + # Transformar las demás columnas + for columna in df_maestro.columns[1:]: + df_export[columna] = df_maestro[columna].apply(lambda x: transformar_texto(str(x)) if pd.notnull(x) else x) + + # Guardar el archivo exportado + ruta_export = os.path.join(os.path.dirname(archivo_maestro), 'master_export2translate.xlsx') + df_export.to_excel(ruta_export, index=False) + print(f"Archivo exportado para traducción: {ruta_export}") + +if __name__ == "__main__": + archivo_maestro = "hmi_master_translates.xlsx" + exportar_para_traduccion(archivo_maestro) diff --git a/master_export2translate.xlsx b/master_export2translate.xlsx new file mode 100644 index 0000000..1f86c41 Binary files /dev/null and b/master_export2translate.xlsx differ