Agregada logica para celdas vacias en la clave en el archivo base para que estas celdas se copien como vacias en el archivo _import. Modificado error en el x6 para contemplar el "User Texts" en la version Siemens.
This commit is contained in:
parent
f2a410485b
commit
a15a4f82fc
Binary file not shown.
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"codigo_tipo_PLC": "siemens",
|
"codigo_tipo_PLC": "siemens",
|
||||||
"codigo_columna_maestra": "it-IT",
|
"codigo_columna_maestra": "it-IT",
|
||||||
"codigo_idioma_seleccionado": "es-ES",
|
"codigo_idioma_seleccionado": "tr-TR",
|
||||||
"codigo_idioma_secundario": "en-GB",
|
"codigo_idioma_secundario": "en-GB",
|
||||||
"work_dir": "C:/Trabajo/VM/38 - 93998 - Sipa - PortoRico/Reporte/Language",
|
"work_dir": "C:/Trabajo/VM/TIA.Example.Test/Report/94057",
|
||||||
"master_name": "1_hmi_master_translates_siemens.xlsx",
|
"master_name": "1_hmi_master_translates_siemens.xlsx",
|
||||||
"translate_name": "2_master_export2translate_siemens_es-ES.xlsx",
|
"translate_name": "2_master_export2translate_siemens_tr-TR.xlsx",
|
||||||
"auto_translate_name": "3_master_export2translate_translated_siemens_es-ES.xlsx",
|
"auto_translate_name": "3_master_export2translate_translated_siemens_tr-TR.xlsx",
|
||||||
"nivel_afinidad_minimo": 0.5,
|
"nivel_afinidad_minimo": 0.5,
|
||||||
"traducir_todo": false
|
"traducir_todo": false
|
||||||
}
|
}
|
|
@ -40,49 +40,71 @@ def update_from_master(config: TranslationConfig, archivo_to_update):
|
||||||
|
|
||||||
for index, fila in df_to_update.iterrows():
|
for index, fila in df_to_update.iterrows():
|
||||||
valor_original = fila[col_clave]
|
valor_original = fila[col_clave]
|
||||||
|
|
||||||
|
# Si el valor original está vacío, mantener vacío en el destino
|
||||||
|
if pd.isna(valor_original) or str(valor_original).strip() == "":
|
||||||
|
if pd.notna(fila[config.codigo_idioma_seleccionado]) and str(fila[config.codigo_idioma_seleccionado]).strip() != "":
|
||||||
|
df_changes.at[index, "Original_Value"] = fila[config.codigo_idioma_seleccionado]
|
||||||
|
df_to_update.at[index, config.codigo_idioma_seleccionado] = ""
|
||||||
|
df_changes.at[index, config.codigo_idioma_seleccionado] = ""
|
||||||
|
celdas_modificadas.append(index)
|
||||||
|
logger.info(f"Actualizado a vacío: Fila {index}")
|
||||||
|
progress_bar.increment()
|
||||||
|
continue
|
||||||
|
|
||||||
clave = fc.compactar_celda_clave(config.codigo_tipo_PLC, valor_original)
|
clave = fc.compactar_celda_clave(config.codigo_tipo_PLC, valor_original)
|
||||||
|
if clave in df_maestro[col_clave].values:
|
||||||
if not pd.isna(clave) and clave in df_maestro[col_clave].values:
|
|
||||||
indice_maestro = df_maestro.index[df_maestro[col_clave] == clave].tolist()[0]
|
indice_maestro = df_maestro.index[df_maestro[col_clave] == clave].tolist()[0]
|
||||||
valor_traducido_compacto = df_maestro.loc[indice_maestro, master_col]
|
valor_maestro = df_maestro.loc[indice_maestro, master_col]
|
||||||
|
|
||||||
if pd.isna(valor_traducido_compacto):
|
# Si el valor en el maestro está vacío, mantener vacío en el destino
|
||||||
continue
|
if pd.isna(valor_maestro) or str(valor_maestro).strip() == "":
|
||||||
|
if pd.notna(fila[config.codigo_idioma_seleccionado]) and str(fila[config.codigo_idioma_seleccionado]).strip() != "":
|
||||||
valor_traducido = fc.decompactar_celda_traducida(
|
|
||||||
config.codigo_tipo_PLC,
|
|
||||||
celda_original=valor_original,
|
|
||||||
celda_traducida=valor_traducido_compacto
|
|
||||||
)
|
|
||||||
|
|
||||||
if not pd.isna(valor_traducido) and fila[config.codigo_idioma_seleccionado] != valor_traducido:
|
|
||||||
okToSave, Error = fc.verificar_celda_traducida(
|
|
||||||
config.codigo_tipo_PLC, clave, valor_traducido_compacto
|
|
||||||
)
|
|
||||||
if okToSave:
|
|
||||||
# Store original value in changes DataFrame
|
|
||||||
df_changes.at[index, "Original_Value"] = fila[config.codigo_idioma_seleccionado]
|
df_changes.at[index, "Original_Value"] = fila[config.codigo_idioma_seleccionado]
|
||||||
|
df_to_update.at[index, config.codigo_idioma_seleccionado] = ""
|
||||||
# Update both DataFrames
|
df_changes.at[index, config.codigo_idioma_seleccionado] = ""
|
||||||
df_to_update.at[index, config.codigo_idioma_seleccionado] = valor_traducido
|
|
||||||
df_changes.at[index, config.codigo_idioma_seleccionado] = valor_traducido
|
|
||||||
|
|
||||||
celdas_modificadas.append(index)
|
celdas_modificadas.append(index)
|
||||||
logger.info(f"Actualizado: Fila {index} : Clave: {clave}")
|
logger.info(f"Actualizado a vacío: Fila {index} : Clave: {clave}")
|
||||||
|
else:
|
||||||
|
valor_traducido = fc.decompactar_celda_traducida(
|
||||||
|
config.codigo_tipo_PLC,
|
||||||
|
celda_original=valor_original,
|
||||||
|
celda_traducida=valor_maestro
|
||||||
|
)
|
||||||
|
|
||||||
|
if not pd.isna(valor_traducido) and fila[config.codigo_idioma_seleccionado] != valor_traducido:
|
||||||
|
okToSave, Error = fc.verificar_celda_traducida(
|
||||||
|
config.codigo_tipo_PLC, clave, valor_maestro
|
||||||
|
)
|
||||||
|
if okToSave:
|
||||||
|
# Store original value in changes DataFrame
|
||||||
|
df_changes.at[index, "Original_Value"] = fila[config.codigo_idioma_seleccionado]
|
||||||
|
|
||||||
|
# Update both DataFrames
|
||||||
|
df_to_update.at[index, config.codigo_idioma_seleccionado] = valor_traducido
|
||||||
|
df_changes.at[index, config.codigo_idioma_seleccionado] = valor_traducido
|
||||||
|
|
||||||
|
celdas_modificadas.append(index)
|
||||||
|
logger.info(f"Actualizado: Fila {index} : Clave: {clave}")
|
||||||
|
|
||||||
progress_bar.increment()
|
progress_bar.increment()
|
||||||
|
|
||||||
progress_bar.finish()
|
progress_bar.finish()
|
||||||
|
|
||||||
|
# [Rest of the code for saving files remains the same...]
|
||||||
# Save updated file with formatting
|
# Save updated file with formatting
|
||||||
nombre, extension = os.path.splitext(archivo_to_update)
|
nombre, extension = os.path.splitext(archivo_to_update)
|
||||||
nuevo_nombre = f"{nombre}_import{extension}"
|
nuevo_nombre = f"{nombre}_import{extension}"
|
||||||
|
|
||||||
with pd.ExcelWriter(nuevo_nombre, engine='openpyxl') as writer:
|
with pd.ExcelWriter(nuevo_nombre, engine='openpyxl') as writer:
|
||||||
df_to_update.to_excel(writer, sheet_name="User Texts", index=False)
|
# Save with default sheet name first
|
||||||
|
df_to_update.to_excel(writer, index=False)
|
||||||
|
|
||||||
workbook = writer.book
|
workbook = writer.book
|
||||||
worksheet = writer.sheets["User Texts"]
|
# Get the active sheet
|
||||||
|
worksheet = workbook.active
|
||||||
|
# Rename it to "User Texts"
|
||||||
|
worksheet.title = "User Texts"
|
||||||
|
|
||||||
# Format columns
|
# Format columns
|
||||||
from openpyxl.utils import get_column_letter
|
from openpyxl.utils import get_column_letter
|
||||||
|
@ -110,10 +132,14 @@ def update_from_master(config: TranslationConfig, archivo_to_update):
|
||||||
changes_nombre = f"{nombre}_changes{extension}"
|
changes_nombre = f"{nombre}_changes{extension}"
|
||||||
if len(celdas_modificadas) > 0:
|
if len(celdas_modificadas) > 0:
|
||||||
with pd.ExcelWriter(changes_nombre, engine="openpyxl") as writer:
|
with pd.ExcelWriter(changes_nombre, engine="openpyxl") as writer:
|
||||||
|
# Save with default sheet name first
|
||||||
df_changes.to_excel(writer, index=False)
|
df_changes.to_excel(writer, index=False)
|
||||||
|
|
||||||
workbook = writer.book
|
workbook = writer.book
|
||||||
worksheet = writer.sheets["User Texts"]
|
# Get the active sheet
|
||||||
|
worksheet = workbook.active
|
||||||
|
# Rename it to "User Texts"
|
||||||
|
worksheet.title = "User Texts"
|
||||||
|
|
||||||
light_blue = PatternFill(start_color="ADD8E6", end_color="ADD8E6", fill_type="solid")
|
light_blue = PatternFill(start_color="ADD8E6", end_color="ADD8E6", fill_type="solid")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue