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
|
||||
|
||||
[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 :
|
||||
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
|
||||
#
|
||||
|
@ -194,6 +207,25 @@ def compactar_celda_clave_siemens(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
|
||||
#
|
||||
# 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}"
|
||||
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
|
||||
# Transforma: "A271/47/6 Air - M/*field ref="0" */ - 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
|
||||
|
||||
|
||||
#
|
||||
# ALLEN BRADLEY
|
||||
#
|
||||
def texto_con_campos_especiales_ab(texto):
|
||||
campos_especiales = len(re.findall(r"/\*#\*/", texto))
|
||||
return campos_especiales > 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# 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
|
||||
|
||||
|
||||
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):
|
||||
system_prompt = read_system_prompt()
|
||||
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 = {}
|
||||
|
||||
for _, row in df.iterrows():
|
||||
for index, row in df.iterrows():
|
||||
celda_clave = str(row[source_col])
|
||||
source_translated_text = (
|
||||
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)
|
||||
|
||||
if traducir_todo:
|
||||
if texto_requiere_traduccion(celda_clave_compactada):
|
||||
df[row,source_translated_col] = '' # Necesita ser traducida. En esta iteracion o en la siguiente.
|
||||
if fc.texto_requiere_traduccion(tipo_PLC, celda_clave_compactada, logger):
|
||||
df.at[index, source_translated_col] = '' # Necesita ser traducida.
|
||||
texts_to_translate[celda_clave] = celda_clave_compactada
|
||||
else:
|
||||
if (
|
||||
pd.isna(row[source_translated_col])
|
||||
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
|
||||
|
||||
num_texts = len(texts_to_translate)
|
||||
|
|
Loading…
Reference in New Issue