Funciona con AllenBradley
This commit is contained in:
parent
c037c001fc
commit
db0d5026b0
Binary file not shown.
93
config.ini
93
config.ini
|
@ -5,6 +5,97 @@ idioma_var = Spanish
|
||||||
idioma_var2 = English_US
|
idioma_var2 = English_US
|
||||||
|
|
||||||
[TextContent]
|
[TextContent]
|
||||||
output_text =
|
output_text = Ejecutando x1_importar_to_master.run()
|
||||||
|
Se han agregado 929 nuevas filas al archivo maestro.
|
||||||
|
Ejecutando x2_master_export2translate.run()
|
||||||
|
Archivo guardado exitosamente.
|
||||||
|
Archivo exportado para traducción: .\data\2_master_export2translate_allenbradley.xlsx
|
||||||
|
Ejecutando x3_llm_auto_translate.run()
|
||||||
|
Número total de textos a traducir: 621
|
||||||
|
Traduciendo : celdas desde: 0 a :20.
|
||||||
|
Traduciendo : celdas desde: 20 a :40.
|
||||||
|
Traduciendo : celdas desde: 40 a :60.
|
||||||
|
Traduciendo : celdas desde: 60 a :80.
|
||||||
|
Traduciendo : celdas desde: 80 a :100.
|
||||||
|
Traduciendo : celdas desde: 100 a :120.
|
||||||
|
Traduciendo : celdas desde: 120 a :140.
|
||||||
|
Traduciendo : celdas desde: 140 a :160.
|
||||||
|
Traduciendo : celdas desde: 160 a :180.
|
||||||
|
Traduciendo : celdas desde: 180 a :200.
|
||||||
|
Traduciendo : celdas desde: 200 a :220.
|
||||||
|
Traduciendo : celdas desde: 220 a :240.
|
||||||
|
Traduciendo : celdas desde: 240 a :260.
|
||||||
|
Error en el intento 1 de traducción de celdas desde 240 a 260: La cantidad de traducciones recibidas no coincide con la cantidad de textos enviados.. Reintentando...
|
||||||
|
Traduciendo : celdas desde: 260 a :280.
|
||||||
|
Traduciendo : celdas desde: 280 a :300.
|
||||||
|
Traduciendo : celdas desde: 300 a :320.
|
||||||
|
Traduciendo : celdas desde: 320 a :340.
|
||||||
|
Traduciendo : celdas desde: 340 a :360.
|
||||||
|
Traduciendo : celdas desde: 360 a :380.
|
||||||
|
Traduciendo : celdas desde: 380 a :400.
|
||||||
|
Traduciendo : celdas desde: 400 a :420.
|
||||||
|
Traduciendo : celdas desde: 420 a :440.
|
||||||
|
Traduciendo : celdas desde: 440 a :460.
|
||||||
|
Traduciendo : celdas desde: 460 a :480.
|
||||||
|
Traduciendo : celdas desde: 480 a :500.
|
||||||
|
Traduciendo : celdas desde: 500 a :520.
|
||||||
|
Traduciendo : celdas desde: 520 a :540.
|
||||||
|
Traduciendo : celdas desde: 540 a :560.
|
||||||
|
Traduciendo : celdas desde: 560 a :580.
|
||||||
|
Traduciendo : celdas desde: 580 a :600.
|
||||||
|
Traduciendo : celdas desde: 600 a :620.
|
||||||
|
Traduciendo : celdas desde: 620 a :621.
|
||||||
|
Afinidad: celdas desde: 0 a :20.
|
||||||
|
Error en el intento 1 de Afinidad de celdas desde 0 a 20: La cantidad de afinidades recibidas no coincide con la cantidad de textos enviados.. Reintentando...
|
||||||
|
Error en todos los intentos de Afinidad de celdas desde 0 a 20: La cantidad de afinidades recibidas no coincide con la cantidad de textos enviados.
|
||||||
|
Afinidad: celdas desde: 20 a :40.
|
||||||
|
Afinidad: celdas desde: 40 a :60.
|
||||||
|
Afinidad: celdas desde: 60 a :80.
|
||||||
|
Afinidad: celdas desde: 80 a :100.
|
||||||
|
Error en el intento 1 de Afinidad de celdas desde 80 a 100: La cantidad de afinidades recibidas no coincide con la cantidad de textos enviados.. Reintentando...
|
||||||
|
Error en todos los intentos de Afinidad de celdas desde 80 a 100: La cantidad de afinidades recibidas no coincide con la cantidad de textos enviados.
|
||||||
|
Afinidad: celdas desde: 100 a :120.
|
||||||
|
Afinidad: celdas desde: 120 a :140.
|
||||||
|
Error en el intento 1 de Afinidad de celdas desde 120 a 140: La cantidad de afinidades recibidas no coincide con la cantidad de textos enviados.. Reintentando...
|
||||||
|
Error en todos los intentos de Afinidad de celdas desde 120 a 140: La cantidad de afinidades recibidas no coincide con la cantidad de textos enviados.
|
||||||
|
Afinidad: celdas desde: 140 a :160.
|
||||||
|
Afinidad: celdas desde: 160 a :180.
|
||||||
|
Afinidad: celdas desde: 180 a :200.
|
||||||
|
Afinidad: celdas desde: 200 a :220.
|
||||||
|
Afinidad: celdas desde: 220 a :240.
|
||||||
|
Afinidad: celdas desde: 240 a :260.
|
||||||
|
Afinidad: celdas desde: 260 a :280.
|
||||||
|
Afinidad: celdas desde: 280 a :300.
|
||||||
|
Afinidad: celdas desde: 300 a :320.
|
||||||
|
Afinidad: celdas desde: 320 a :340.
|
||||||
|
Afinidad: celdas desde: 340 a :360.
|
||||||
|
Afinidad: celdas desde: 360 a :380.
|
||||||
|
Error en el intento 1 de Afinidad de celdas desde 360 a 380: La cantidad de afinidades recibidas no coincide con la cantidad de textos enviados.. Reintentando...
|
||||||
|
Error en todos los intentos de Afinidad de celdas desde 360 a 380: La cantidad de afinidades recibidas no coincide con la cantidad de textos enviados.
|
||||||
|
Afinidad: celdas desde: 380 a :400.
|
||||||
|
Afinidad: celdas desde: 400 a :420.
|
||||||
|
Afinidad: celdas desde: 420 a :440.
|
||||||
|
Afinidad: celdas desde: 440 a :460.
|
||||||
|
Afinidad: celdas desde: 460 a :480.
|
||||||
|
Afinidad: celdas desde: 480 a :500.
|
||||||
|
Afinidad: celdas desde: 500 a :520.
|
||||||
|
Afinidad: celdas desde: 520 a :540.
|
||||||
|
Afinidad: celdas desde: 540 a :560.
|
||||||
|
Afinidad: celdas desde: 560 a :580.
|
||||||
|
Afinidad: celdas desde: 580 a :600.
|
||||||
|
Afinidad: celdas desde: 600 a :620.
|
||||||
|
Afinidad: celdas desde: 620 a :621.
|
||||||
|
Archivo guardado exitosamente.
|
||||||
|
Archivo traducido guardado en: .\data\3_master_export2translate_translated_allenbradley.xlsx
|
||||||
|
Ejecutando x4_integrate_translates_to_master.run()
|
||||||
|
Archivo guardado exitosamente.
|
||||||
|
Traducciones importadas y archivo maestro actualizado: .\data\1_hmi_master_translates_allenbradley.xlsx.
|
||||||
|
Ejecutando x5_complete_empty_cells_master.run()
|
||||||
|
Archivo guardado exitosamente.
|
||||||
|
Traducciones importadas y archivo maestro actualizado: .\data\1_hmi_master_translates_allenbradley.xlsx.
|
||||||
|
Ejecutando x6_update_from_master.run()
|
||||||
|
Archivo guardado exitosamente.
|
||||||
|
Se han actualizado las filas en C:/Trabajo/VM/31 - 9.3953 - Omega - Mexico - (ABradley)/Reporte/HMI/HMI_93953_25.xlsx desde el archivo maestro.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -174,6 +174,19 @@ def verificar_celda_traducida(tipo_PLC, celda_clave, celda_traducida):
|
||||||
else :
|
else :
|
||||||
return verificar_celda_traducida_ab(celda_clave, celda_traducida)
|
return verificar_celda_traducida_ab(celda_clave, celda_traducida)
|
||||||
|
|
||||||
|
def texto_requiere_traduccion(tipo_PLC, texto, logger):
|
||||||
|
if tipo_PLC == "siemens" :
|
||||||
|
return texto_requiere_traduccion_siemens(texto, logger)
|
||||||
|
else :
|
||||||
|
return texto_requiere_traduccion_ab(texto, logger)
|
||||||
|
|
||||||
|
def texto_con_campos_especiales(tipo_PLC, texto):
|
||||||
|
if tipo_PLC == "siemens" :
|
||||||
|
return texto_con_campos_especiales_siemens(texto)
|
||||||
|
else :
|
||||||
|
return texto_con_campos_especiales_ab(texto)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# SIEMENS
|
# SIEMENS
|
||||||
#
|
#
|
||||||
|
@ -194,6 +207,25 @@ def compactar_celda_clave_siemens(celda_original):
|
||||||
return re.sub(r"<(.*?)>|\d+", reemplazar, str(celda_original))
|
return re.sub(r"<(.*?)>|\d+", reemplazar, str(celda_original))
|
||||||
|
|
||||||
|
|
||||||
|
# SIEMENS
|
||||||
|
def texto_requiere_traduccion_siemens(texto, logger):
|
||||||
|
palabras = re.findall(r"\b\w{4,}\b", texto)
|
||||||
|
campos_especiales = re.findall(r"<.*?>", texto)
|
||||||
|
requiere_traduccion = len(palabras) > 0 or len(campos_especiales) != len(
|
||||||
|
re.findall(r"<#>", texto)
|
||||||
|
)
|
||||||
|
logger.debug(
|
||||||
|
f"Decisión de traducción para texto '{texto}': {'Sí' if requiere_traduccion else 'No'} (palabras > 3 letras: {len(palabras) > 0}, solo campos especiales: {len(campos_especiales) == len(re.findall(r'<#>', texto))})"
|
||||||
|
)
|
||||||
|
return requiere_traduccion
|
||||||
|
|
||||||
|
# SIEMENS
|
||||||
|
def texto_con_campos_especiales_siemens(texto):
|
||||||
|
campos_especiales = len(re.findall(r"<#>", texto) )
|
||||||
|
return campos_especiales > 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# SIEMENS
|
# SIEMENS
|
||||||
#
|
#
|
||||||
# Transforma: "A[[digits]]/[[digits]]/[[digits]] Air - M<field ref="[[digits]]" /> - Necessaria Manutenzione Filtro" ->
|
# Transforma: "A[[digits]]/[[digits]]/[[digits]] Air - M<field ref="[[digits]]" /> - Necessaria Manutenzione Filtro" ->
|
||||||
|
@ -273,6 +305,26 @@ def verificar_celda_traducida_siemens(celda_clave, celda_traducida):
|
||||||
text_error += f" - Tags en clave: {tags_clave}, Tags en traducida: {tags_traducida}"
|
text_error += f" - Tags en clave: {tags_clave}, Tags en traducida: {tags_traducida}"
|
||||||
return False, text_error
|
return False, text_error
|
||||||
|
|
||||||
|
|
||||||
|
# ALLEN BRADLEY
|
||||||
|
def texto_requiere_traduccion_ab(texto, logger):
|
||||||
|
palabras = re.findall(r"\b\w{4,}\b", texto)
|
||||||
|
campos_especiales = re.findall(r"/\*.*?\*/", texto)
|
||||||
|
total_palabras_largas = len(palabras) > 0
|
||||||
|
total_campos_especiales = len(campos_especiales)
|
||||||
|
total_campos_marcados = len(re.findall(r"/\*#\*/", texto))
|
||||||
|
solo_campos_especiales = total_campos_especiales == total_campos_marcados
|
||||||
|
requiere_traduccion = total_palabras_largas or not solo_campos_especiales
|
||||||
|
|
||||||
|
logger.debug(
|
||||||
|
f"Decisión de traducción para texto '{texto}': {'Sí' if requiere_traduccion else 'No'} "
|
||||||
|
f"(palabras > 3 letras: {total_palabras_largas}, "
|
||||||
|
f"solo campos especiales: {solo_campos_especiales})"
|
||||||
|
)
|
||||||
|
return requiere_traduccion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ALLEN BRADLEY
|
# ALLEN BRADLEY
|
||||||
# Transforma: "A271/47/6 Air - M/*field ref="0" */ - Necessaria Manutenzione Filtro" ->
|
# Transforma: "A271/47/6 Air - M/*field ref="0" */ - Necessaria Manutenzione Filtro" ->
|
||||||
# "A[[digits]]/[[digits]]/[[digits]] Air - M/*field ref="[[digits]]" */ - Necessaria Manutenzione Filtro"
|
# "A[[digits]]/[[digits]]/[[digits]] Air - M/*field ref="[[digits]]" */ - Necessaria Manutenzione Filtro"
|
||||||
|
@ -368,6 +420,14 @@ def verificar_celda_traducida_ab(celda_clave, celda_traducida):
|
||||||
return False, text_error
|
return False, text_error
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# ALLEN BRADLEY
|
||||||
|
#
|
||||||
|
def texto_con_campos_especiales_ab(texto):
|
||||||
|
campos_especiales = len(re.findall(r"/\*#\*/", texto))
|
||||||
|
return campos_especiales > 0
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# SIEMENS
|
# SIEMENS
|
||||||
print("****************** SIEMENS ***************************")
|
print("****************** SIEMENS ***************************")
|
||||||
|
|
12163
logs/translate_log.log
12163
logs/translate_log.log
File diff suppressed because it is too large
Load Diff
|
@ -66,18 +66,6 @@ def translate_batch_ollama(texts, source_lang, target_lang):
|
||||||
return translations
|
return translations
|
||||||
|
|
||||||
|
|
||||||
def texto_requiere_traduccion(texto):
|
|
||||||
palabras = re.findall(r"\b\w{4,}\b", texto)
|
|
||||||
campos_especiales = re.findall(r"<.*?>", texto)
|
|
||||||
requiere_traduccion = len(palabras) > 0 or len(campos_especiales) != len(
|
|
||||||
re.findall(r"<#>", texto)
|
|
||||||
)
|
|
||||||
logger.debug(
|
|
||||||
f"Decisión de traducción para texto '{texto}': {'Sí' if requiere_traduccion else 'No'} (palabras > 3 letras: {len(palabras) > 0}, solo campos especiales: {len(campos_especiales) == len(re.findall(r'<#>', texto))})"
|
|
||||||
)
|
|
||||||
return requiere_traduccion
|
|
||||||
|
|
||||||
|
|
||||||
def translate_batch_openai(texts_dict, source_lang, target_lang):
|
def translate_batch_openai(texts_dict, source_lang, target_lang):
|
||||||
system_prompt = read_system_prompt()
|
system_prompt = read_system_prompt()
|
||||||
texts_list = list(texts_dict.values())
|
texts_list = list(texts_dict.values())
|
||||||
|
@ -222,7 +210,7 @@ def main(tipo_PLC, codigo_columna_maestra, file_path, target_lang_code, target_l
|
||||||
|
|
||||||
texts_to_translate = {}
|
texts_to_translate = {}
|
||||||
|
|
||||||
for _, row in df.iterrows():
|
for index, row in df.iterrows():
|
||||||
celda_clave = str(row[source_col])
|
celda_clave = str(row[source_col])
|
||||||
source_translated_text = (
|
source_translated_text = (
|
||||||
str(row[source_translated_col])
|
str(row[source_translated_col])
|
||||||
|
@ -232,15 +220,15 @@ def main(tipo_PLC, codigo_columna_maestra, file_path, target_lang_code, target_l
|
||||||
celda_clave_compactada = fc.compactar_celda_traducida(tipo_PLC, celda_clave)
|
celda_clave_compactada = fc.compactar_celda_traducida(tipo_PLC, celda_clave)
|
||||||
|
|
||||||
if traducir_todo:
|
if traducir_todo:
|
||||||
if texto_requiere_traduccion(celda_clave_compactada):
|
if fc.texto_requiere_traduccion(tipo_PLC, celda_clave_compactada, logger):
|
||||||
df[row,source_translated_col] = '' # Necesita ser traducida. En esta iteracion o en la siguiente.
|
df.at[index, source_translated_col] = '' # Necesita ser traducida.
|
||||||
texts_to_translate[celda_clave] = celda_clave_compactada
|
texts_to_translate[celda_clave] = celda_clave_compactada
|
||||||
else:
|
else:
|
||||||
if (
|
if (
|
||||||
pd.isna(row[source_translated_col])
|
pd.isna(row[source_translated_col])
|
||||||
or source_translated_text.strip() == ""
|
or source_translated_text.strip() == ""
|
||||||
):
|
):
|
||||||
if texto_requiere_traduccion(celda_clave_compactada):
|
if fc.texto_requiere_traduccion(tipo_PLC, celda_clave_compactada, logger) or fc.texto_con_campos_especiales(tipo_PLC, celda_clave_compactada):
|
||||||
texts_to_translate[celda_clave] = celda_clave_compactada
|
texts_to_translate[celda_clave] = celda_clave_compactada
|
||||||
|
|
||||||
num_texts = len(texts_to_translate)
|
num_texts = len(texts_to_translate)
|
||||||
|
|
Loading…
Reference in New Issue