diff --git a/data/3_master_export2translate_translated.xlsx b/data/3_master_export2translate_translated.xlsx index 2b98852..7a03a91 100644 Binary files a/data/3_master_export2translate_translated.xlsx and b/data/3_master_export2translate_translated.xlsx differ diff --git a/data/translate_log.log b/data/translate_log.log index 37f187b..e7b3e32 100644 --- a/data/translate_log.log +++ b/data/translate_log.log @@ -1390,3 +1390,300 @@ Water supply 2024-07-31 11:58:34,586 - INFO - Respuestas recibidas: ['Значение % для установки в ручном режиме', 'Значение, рассчитанное по PID', 'Значение, рассчитанное по PID + Feedforward', 'Значение, рассчитанное по PID + FF к актуатору', 'Значение, рассчитанное по PID с масштабированием', 'Значение для принудительного задания, когда PID отключен', 'Проверьте с форматом', 'W<#>/<#>/<#> Общая - Максимальное давление датчика достигнуто', 'W<#>/<#>/<#> Общая - Уровень в баке ниже минимального', 'W<#>/<#>/<#> Общая - Остановить заполнитель из-за перегрева', 'W<#>/<#>/<#> Общая - Сигналы принудительно', 'Ожидание продукта', 'Ожидание включения селектора подачи', 'Ожидание минимальной накопляемости', 'Предупреждения', 'Системный watchdog', 'Подача воды'] 2024-07-31 11:58:34,586 - INFO - Número total de traducciones recibidas: 17 +2024-07-31 12:03:28,179 - DEBUG - Decisión de traducción para texto 'Value % to set in Manual Mode': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:03:28,179 - DEBUG - Decisión de traducción para texto 'Value calculated from PID': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:03:28,180 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + Feedforward': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:03:28,180 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + FF to Actuator': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:03:28,180 - DEBUG - Decisión de traducción para texto 'Value calculated from PID Scaled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:03:28,180 - DEBUG - Decisión de traducción para texto 'Value to force when PID es disabled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:03:28,182 - DEBUG - Decisión de traducción para texto 'Verificare Con Formato': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:03:28,183 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Pressure sensor Maximun reached': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:03:28,184 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Tank under minimun level': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:03:28,184 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Stop Filler for Overtemperature': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:03:28,185 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Signals Forced': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:03:28,185 - DEBUG - Decisión de traducción para texto 'Waiting for product': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:03:28,185 - DEBUG - Decisión de traducción para texto 'Waiting Infeed Selector Enable': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:03:28,185 - DEBUG - Decisión de traducción para texto 'Waiting Minimal Accumulation': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:03:28,186 - DEBUG - Decisión de traducción para texto 'Warnings': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:03:28,186 - DEBUG - Decisión de traducción para texto 'Watchdog del sistema': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:03:28,186 - DEBUG - Decisión de traducción para texto 'Water supply': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:03:28,186 - DEBUG - Decisión de traducción para texto 'YV<#>': No (palabras > 3 letras: False, solo campos especiales: True) +2024-07-31 12:03:28,187 - INFO - Número total de textos a traducir: 17 +2024-07-31 12:03:28,187 - INFO - Traduciendo: celdas desde 0 a 17. +2024-07-31 12:03:28,188 - INFO - Solicitando traducción de Italian a Russian para el lote de textos: +{"texts": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W<#>/<#>/<#> General - Pressure sensor Maximun reached", "W<#>/<#>/<#> General - Tank under minimun level", "W<#>/<#>/<#> General - Stop Filler for Overtemperature", "W<#>/<#>/<#> General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"], "source_lang": "Italian", "target_lang": "Russian"} +2024-07-31 12:03:32,608 - INFO - Respuestas recibidas: +['Значение % для установки в ручном режиме', 'Значение, рассчитанное по PID', 'Значение, рассчитанное по PID + Feedforward', 'Значение, рассчитанное по PID + FF к актуатору', 'Значение, рассчитанное по PID с масштабированием', 'Значение для принудительного управления, когда PID отключен', 'Проверить с форматом', 'W<#>/<#>/<#> Общая - Максимальное давление датчика достигнуто', 'W<#>/<#>/<#> Общая - Уровень в баке ниже минимального', 'W<#>/<#>/<#> Общая - Остановить наполнитель из-за перегрева', 'W<#>/<#>/<#> Общая - Сигналы принудительно активированы', 'Ожидание продукта', 'Ожидание включения селектора подачи', 'Ожидание минимальной накопленной массы', 'Предупреждения', 'Системный watchdog', 'Подача воды'] +2024-07-31 12:03:32,608 - INFO - Número total de traducciones recibidas: 17 +2024-07-31 12:03:59,137 - INFO - Archivo traducido guardado en: .\data\3_master_export2translate_translated.xlsx +2024-07-31 12:36:20,147 - DEBUG - Decisión de traducción para texto 'Value % to set in Manual Mode': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:36:20,148 - DEBUG - Decisión de traducción para texto 'Value calculated from PID': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:36:20,148 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + Feedforward': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:36:20,148 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + FF to Actuator': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:36:20,148 - DEBUG - Decisión de traducción para texto 'Value calculated from PID Scaled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:36:20,149 - DEBUG - Decisión de traducción para texto 'Value to force when PID es disabled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:36:20,150 - DEBUG - Decisión de traducción para texto 'Verificare Con Formato': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:36:20,152 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Pressure sensor Maximun reached': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:36:20,152 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Tank under minimun level': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:36:20,152 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Stop Filler for Overtemperature': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:36:20,152 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Signals Forced': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:36:20,153 - DEBUG - Decisión de traducción para texto 'Waiting for product': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:36:20,153 - DEBUG - Decisión de traducción para texto 'Waiting Infeed Selector Enable': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:36:20,153 - DEBUG - Decisión de traducción para texto 'Waiting Minimal Accumulation': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:36:20,153 - DEBUG - Decisión de traducción para texto 'Warnings': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:36:20,153 - DEBUG - Decisión de traducción para texto 'Watchdog del sistema': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:36:20,153 - DEBUG - Decisión de traducción para texto 'Water supply': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:36:20,154 - DEBUG - Decisión de traducción para texto 'YV<#>': No (palabras > 3 letras: False, solo campos especiales: True) +2024-07-31 12:36:20,154 - INFO - Número total de textos a traducir: 17 +2024-07-31 12:36:20,154 - INFO - Traduciendo: celdas desde 0 a 17. +2024-07-31 12:36:20,155 - INFO - Solicitando traducción de Italian a Russian para el lote de textos: +{"texts": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W<#>/<#>/<#> General - Pressure sensor Maximun reached", "W<#>/<#>/<#> General - Tank under minimun level", "W<#>/<#>/<#> General - Stop Filler for Overtemperature", "W<#>/<#>/<#> General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"], "source_lang": "Italian", "target_lang": "Russian"} +2024-07-31 12:36:25,205 - INFO - Respuestas recibidas: +['Значение % для установки в ручном режиме', 'Значение, рассчитанное по PID', 'Значение, рассчитанное по PID + Feedforward', 'Значение, рассчитанное по PID + FF к актуатору', 'Значение, рассчитанное по PID с масштабированием', 'Значение для принудительного задания при отключенном PID', 'Проверьте с форматом', 'W<#>/<#>/<#> Общая - Максимальное давление датчика достигнуто', 'W<#>/<#>/<#> Общая - Уровень в баке ниже минимального', 'W<#>/<#>/<#> Общая - Остановить заполнитель из-за перегрева', 'W<#>/<#>/<#> Общая - Сигналы принудительно установлены', 'Ожидание продукта', 'Ожидание включения селектора подачи', 'Ожидание минимальной накопительной емкости', 'Предупреждения', 'Системный watchdog', 'Подача воды'] +2024-07-31 12:36:25,205 - INFO - Número total de traducciones recibidas: 17 +2024-07-31 12:56:08,228 - DEBUG - Decisión de traducción para texto 'Value % to set in Manual Mode': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:56:08,228 - DEBUG - Decisión de traducción para texto 'Value calculated from PID': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:56:08,228 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + Feedforward': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:56:08,228 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + FF to Actuator': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:56:08,229 - DEBUG - Decisión de traducción para texto 'Value calculated from PID Scaled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:56:08,229 - DEBUG - Decisión de traducción para texto 'Value to force when PID es disabled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:56:08,229 - DEBUG - Decisión de traducción para texto 'Verificare Con Formato': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:56:08,230 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Pressure sensor Maximun reached': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:56:08,230 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Tank under minimun level': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:56:08,230 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Stop Filler for Overtemperature': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:56:08,230 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Signals Forced': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:56:08,230 - DEBUG - Decisión de traducción para texto 'Waiting for product': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:56:08,230 - DEBUG - Decisión de traducción para texto 'Waiting Infeed Selector Enable': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:56:08,230 - DEBUG - Decisión de traducción para texto 'Waiting Minimal Accumulation': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:56:08,230 - DEBUG - Decisión de traducción para texto 'Warnings': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:56:08,230 - DEBUG - Decisión de traducción para texto 'Watchdog del sistema': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:56:08,230 - DEBUG - Decisión de traducción para texto 'Water supply': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 12:56:08,230 - DEBUG - Decisión de traducción para texto 'YV<#>': No (palabras > 3 letras: False, solo campos especiales: True) +2024-07-31 12:56:08,231 - INFO - Número total de textos a traducir: 17 +2024-07-31 12:56:08,231 - INFO - Traduciendo: celdas desde 0 a 17. +2024-07-31 12:56:08,233 - INFO - Solicitando traducción de Italian a Russian para el lote de textos: +{"texts": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W<#>/<#>/<#> General - Pressure sensor Maximun reached", "W<#>/<#>/<#> General - Tank under minimun level", "W<#>/<#>/<#> General - Stop Filler for Overtemperature", "W<#>/<#>/<#> General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"], "source_lang": "Italian", "target_lang": "Russian"} +2024-07-31 12:56:12,796 - INFO - Respuestas recibidas: +['Значение % для установки в ручном режиме', 'Значение, рассчитанное по PID', 'Значение, рассчитанное по PID + Feedforward', 'Значение, рассчитанное по PID + FF к актуатору', 'Значение, рассчитанное по PID с масштабированием', 'Значение для принудительного управления, когда PID отключен', 'Проверьте с форматом', 'W<#>/<#>/<#> Общий - Максимальное давление датчика достигнуто', 'W<#>/<#>/<#> Общий - Уровень в баке ниже минимального', 'W<#>/<#>/<#> Общий - Остановить наполнитель из-за перегрева', 'W<#>/<#>/<#> Общий - Сигналы принудительно', 'Ожидание продукта', 'Ожидание включения селектора подачи', 'Ожидание минимального накопления', 'Предупреждения', 'Системный watchdog', 'Подача воды'] +2024-07-31 12:56:12,796 - INFO - Número total de traducciones recibidas: 17 +2024-07-31 13:02:46,006 - DEBUG - Decisión de traducción para texto 'Value % to set in Manual Mode': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:02:46,006 - DEBUG - Decisión de traducción para texto 'Value calculated from PID': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:02:46,006 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + Feedforward': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:02:46,007 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + FF to Actuator': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:02:46,007 - DEBUG - Decisión de traducción para texto 'Value calculated from PID Scaled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:02:46,007 - DEBUG - Decisión de traducción para texto 'Value to force when PID es disabled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:02:46,009 - DEBUG - Decisión de traducción para texto 'Verificare Con Formato': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:02:46,010 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Pressure sensor Maximun reached': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:02:46,011 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Tank under minimun level': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:02:46,011 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Stop Filler for Overtemperature': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:02:46,011 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Signals Forced': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:02:46,011 - DEBUG - Decisión de traducción para texto 'Waiting for product': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:02:46,012 - DEBUG - Decisión de traducción para texto 'Waiting Infeed Selector Enable': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:02:46,012 - DEBUG - Decisión de traducción para texto 'Waiting Minimal Accumulation': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:02:46,012 - DEBUG - Decisión de traducción para texto 'Warnings': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:02:46,012 - DEBUG - Decisión de traducción para texto 'Watchdog del sistema': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:02:46,012 - DEBUG - Decisión de traducción para texto 'Water supply': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:02:46,013 - DEBUG - Decisión de traducción para texto 'YV<#>': No (palabras > 3 letras: False, solo campos especiales: True) +2024-07-31 13:02:46,013 - INFO - Número total de textos a traducir: 17 +2024-07-31 13:02:46,013 - INFO - Traduciendo: celdas desde 0 a 17. +2024-07-31 13:02:46,014 - INFO - Solicitando traducción de Italian a Russian para el lote de textos: +{"texts": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W<#>/<#>/<#> General - Pressure sensor Maximun reached", "W<#>/<#>/<#> General - Tank under minimun level", "W<#>/<#>/<#> General - Stop Filler for Overtemperature", "W<#>/<#>/<#> General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"], "source_lang": "Italian", "target_lang": "Russian"} +2024-07-31 13:02:48,959 - INFO - Respuestas recibidas: +['Значение % для установки в ручном режиме', 'Значение, рассчитанное по PID', 'Значение, рассчитанное по PID + Feedforward', 'Значение, рассчитанное по PID + FF к актуатору', 'Значение, рассчитанное по PID с масштабированием', 'Значение для принудительного задания, когда PID отключен', 'Проверить с форматом', 'W<#>/<#>/<#> Общая - Максимальное значение датчика давления достигнуто', 'W<#>/<#>/<#> Общая - Уровень в баке ниже минимального', 'W<#>/<#>/<#> Общая - Остановить наполнитель из-за перегрева', 'W<#>/<#>/<#> Общая - Сигналы принудительно установлены', 'Ожидание продукта', 'Ожидание активации селектора подачи', 'Ожидание минимального накопления', 'Предупреждения', 'Системный watchdog', 'Подача воды'] +2024-07-31 13:02:48,959 - INFO - Número total de traducciones recibidas: 17 +2024-07-31 13:29:36,189 - DEBUG - Decisión de traducción para texto 'Value % to set in Manual Mode': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:29:36,190 - DEBUG - Decisión de traducción para texto 'Value calculated from PID': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:29:36,190 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + Feedforward': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:29:36,190 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + FF to Actuator': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:29:36,190 - DEBUG - Decisión de traducción para texto 'Value calculated from PID Scaled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:29:36,190 - DEBUG - Decisión de traducción para texto 'Value to force when PID es disabled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:29:36,191 - DEBUG - Decisión de traducción para texto 'Verificare Con Formato': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:29:36,191 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Pressure sensor Maximun reached': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:29:36,191 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Tank under minimun level': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:29:36,191 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Stop Filler for Overtemperature': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:29:36,192 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Signals Forced': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:29:36,192 - DEBUG - Decisión de traducción para texto 'Waiting for product': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:29:36,192 - DEBUG - Decisión de traducción para texto 'Waiting Infeed Selector Enable': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:29:36,192 - DEBUG - Decisión de traducción para texto 'Waiting Minimal Accumulation': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:29:36,192 - DEBUG - Decisión de traducción para texto 'Warnings': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:29:36,192 - DEBUG - Decisión de traducción para texto 'Watchdog del sistema': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:29:36,192 - DEBUG - Decisión de traducción para texto 'Water supply': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:29:36,192 - DEBUG - Decisión de traducción para texto 'YV<#>': No (palabras > 3 letras: False, solo campos especiales: True) +2024-07-31 13:29:36,192 - INFO - Número total de textos a traducir: 17 +2024-07-31 13:29:36,192 - INFO - Traduciendo: celdas desde 0 a 17. +2024-07-31 13:29:36,193 - INFO - Solicitando traducción de Italian a Russian para el lote de textos: +{"texts": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W<#>/<#>/<#> General - Pressure sensor Maximun reached", "W<#>/<#>/<#> General - Tank under minimun level", "W<#>/<#>/<#> General - Stop Filler for Overtemperature", "W<#>/<#>/<#> General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"], "source_lang": "Italian", "target_lang": "Russian"} +2024-07-31 13:29:39,890 - INFO - Respuestas recibidas: +['Значение % для установки в ручном режиме', 'Значение, рассчитанное по PID', 'Значение, рассчитанное по PID + Feedforward', 'Значение, рассчитанное по PID + FF к актуатору', 'Значение, рассчитанное по PID с масштабированием', 'Значение для принудительной установки, когда PID отключен', 'Проверить с форматом', 'W<#>/<#>/<#> Общая - Максимальное значение датчика давления достигнуто', 'W<#>/<#>/<#> Общая - Уровень в баке ниже минимального', 'W<#>/<#>/<#> Общая - Остановить наполнитель из-за перегрева', 'W<#>/<#>/<#> Общая - Сигналы принудительно установлены', 'Ожидание продукта', 'Ожидание активации селектора подачи', 'Ожидание минимальной накопленной массы', 'Предупреждения', 'Системный watchdog', 'Подача воды'] +2024-07-31 13:29:39,890 - INFO - Número total de traducciones recibidas: 17 +2024-07-31 13:58:27,338 - DEBUG - Decisión de traducción para texto 'Value % to set in Manual Mode': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:58:27,338 - DEBUG - Decisión de traducción para texto 'Value calculated from PID': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:58:27,339 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + Feedforward': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:58:27,339 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + FF to Actuator': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:58:27,339 - DEBUG - Decisión de traducción para texto 'Value calculated from PID Scaled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:58:27,340 - DEBUG - Decisión de traducción para texto 'Value to force when PID es disabled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:58:27,341 - DEBUG - Decisión de traducción para texto 'Verificare Con Formato': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:58:27,343 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Pressure sensor Maximun reached': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:58:27,343 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Tank under minimun level': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:58:27,343 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Stop Filler for Overtemperature': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:58:27,343 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Signals Forced': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:58:27,344 - DEBUG - Decisión de traducción para texto 'Waiting for product': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:58:27,344 - DEBUG - Decisión de traducción para texto 'Waiting Infeed Selector Enable': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:58:27,344 - DEBUG - Decisión de traducción para texto 'Waiting Minimal Accumulation': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:58:27,344 - DEBUG - Decisión de traducción para texto 'Warnings': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:58:27,344 - DEBUG - Decisión de traducción para texto 'Watchdog del sistema': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:58:27,345 - DEBUG - Decisión de traducción para texto 'Water supply': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 13:58:27,345 - DEBUG - Decisión de traducción para texto 'YV<#>': No (palabras > 3 letras: False, solo campos especiales: True) +2024-07-31 13:58:27,345 - INFO - Número total de textos a traducir: 17 +2024-07-31 13:58:27,346 - INFO - Traduciendo: celdas desde 0 a 17. +2024-07-31 13:58:27,346 - INFO - Solicitando traducción de Italian a Russian para el lote de textos: +{"texts": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W<#>/<#>/<#> General - Pressure sensor Maximun reached", "W<#>/<#>/<#> General - Tank under minimun level", "W<#>/<#>/<#> General - Stop Filler for Overtemperature", "W<#>/<#>/<#> General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"], "source_lang": "Italian", "target_lang": "Russian"} +2024-07-31 13:58:31,440 - INFO - Respuestas recibidas: +['Значение % для установки в ручном режиме', 'Значение, рассчитанное по PID', 'Значение, рассчитанное по PID + Feedforward', 'Значение, рассчитанное по PID + FF к актуатору', 'Значение, рассчитанное по PID с масштабированием', 'Значение для принудительного управления, когда PID отключен', 'Проверить с форматом', 'W<#>/<#>/<#> Общая - Максимальное значение датчика давления достигнуто', 'W<#>/<#>/<#> Общая - Уровень в баке ниже минимального', 'W<#>/<#>/<#> Общая - Остановить наполнитель из-за перегрева', 'W<#>/<#>/<#> Общая - Сигналы принудительно установлены', 'Ожидание продукта', 'Ожидание включения селектора подачи', 'Ожидание минимального накопления', 'Предупреждения', 'Системный watchdog', 'Подача воды'] +2024-07-31 13:58:31,440 - INFO - Número total de traducciones recibidas: 17 +2024-07-31 13:58:37,226 - INFO - Afinidad: celdas desde 0 a 17. +2024-07-31 14:01:51,358 - INFO - Solicitando Afinidad para el lote de textos: +{"original": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W[[digits]]/[[digits]]/[[digits]] General - Pressure sensor Maximun reached", "W[[digits]]/[[digits]]/[[digits]] General - Tank under minimun level", "W[[digits]]/[[digits]]/[[digits]] General - Stop Filler for Overtemperature", "W[[digits]]/[[digits]]/[[digits]] General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"], "compared": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W<#>/<#>/<#> General - Pressure sensor Maximun reached", "W<#>/<#>/<#> General - Tank under minimun level", "W<#>/<#>/<#> General - Stop Filler for Overtemperature", "W<#>/<#>/<#> General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"]} +2024-07-31 14:02:42,195 - DEBUG - Decisión de traducción para texto 'Value % to set in Manual Mode': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:02:42,196 - DEBUG - Decisión de traducción para texto 'Value calculated from PID': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:02:42,196 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + Feedforward': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:02:42,196 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + FF to Actuator': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:02:42,196 - DEBUG - Decisión de traducción para texto 'Value calculated from PID Scaled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:02:42,197 - DEBUG - Decisión de traducción para texto 'Value to force when PID es disabled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:02:42,198 - DEBUG - Decisión de traducción para texto 'Verificare Con Formato': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:02:42,199 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Pressure sensor Maximun reached': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:02:42,200 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Tank under minimun level': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:02:42,200 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Stop Filler for Overtemperature': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:02:42,200 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Signals Forced': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:02:42,200 - DEBUG - Decisión de traducción para texto 'Waiting for product': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:02:42,201 - DEBUG - Decisión de traducción para texto 'Waiting Infeed Selector Enable': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:02:42,201 - DEBUG - Decisión de traducción para texto 'Waiting Minimal Accumulation': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:02:42,201 - DEBUG - Decisión de traducción para texto 'Warnings': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:02:42,201 - DEBUG - Decisión de traducción para texto 'Watchdog del sistema': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:02:42,201 - DEBUG - Decisión de traducción para texto 'Water supply': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:02:42,202 - DEBUG - Decisión de traducción para texto 'YV<#>': No (palabras > 3 letras: False, solo campos especiales: True) +2024-07-31 14:02:42,202 - INFO - Número total de textos a traducir: 17 +2024-07-31 14:02:42,202 - INFO - Traduciendo: celdas desde 0 a 17. +2024-07-31 14:02:42,203 - INFO - Solicitando traducción de Italian a Russian para el lote de textos: +{"texts": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W<#>/<#>/<#> General - Pressure sensor Maximun reached", "W<#>/<#>/<#> General - Tank under minimun level", "W<#>/<#>/<#> General - Stop Filler for Overtemperature", "W<#>/<#>/<#> General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"], "source_lang": "Italian", "target_lang": "Russian"} +2024-07-31 14:02:45,821 - INFO - Respuestas recibidas: +['Значение % для установки в ручном режиме', 'Значение, рассчитанное по PID', 'Значение, рассчитанное по PID + Feedforward', 'Значение, рассчитанное по PID + FF к актуатору', 'Значение, рассчитанное по масштабированному PID', 'Значение для принудительной установки, когда PID отключен', 'Проверьте формат', 'W<#>/<#>/<#> Общая - Максимальное значение датчика давления достигнуто', 'W<#>/<#>/<#> Общая - Уровень в баке ниже минимального', 'W<#>/<#>/<#> Общая - Остановить наполнитель из-за перегрева', 'W<#>/<#>/<#> Общая - Сигналы принудительно установлены', 'Ожидание продукта', 'Ожидание включения селектора подачи', 'Ожидание минимального накопления', 'Предупреждения', 'Системный watchdog', 'Подача воды'] +2024-07-31 14:02:45,821 - INFO - Número total de traducciones recibidas: 17 +2024-07-31 14:02:51,595 - INFO - Afinidad: celdas desde 0 a 17. +2024-07-31 14:02:57,297 - INFO - Solicitando Afinidad para el lote de textos: +{"original": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W[[digits]]/[[digits]]/[[digits]] General - Pressure sensor Maximun reached", "W[[digits]]/[[digits]]/[[digits]] General - Tank under minimun level", "W[[digits]]/[[digits]]/[[digits]] General - Stop Filler for Overtemperature", "W[[digits]]/[[digits]]/[[digits]] General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"], "compared": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W<#>/<#>/<#> General - Pressure sensor Maximun reached", "W<#>/<#>/<#> General - Tank under minimun level", "W<#>/<#>/<#> General - Stop Filler for Overtemperature", "W<#>/<#>/<#> General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"]} +2024-07-31 14:05:15,285 - DEBUG - Decisión de traducción para texto 'Value % to set in Manual Mode': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:05:15,286 - DEBUG - Decisión de traducción para texto 'Value calculated from PID': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:05:15,286 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + Feedforward': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:05:15,286 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + FF to Actuator': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:05:15,287 - DEBUG - Decisión de traducción para texto 'Value calculated from PID Scaled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:05:15,287 - DEBUG - Decisión de traducción para texto 'Value to force when PID es disabled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:05:15,288 - DEBUG - Decisión de traducción para texto 'Verificare Con Formato': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:05:15,290 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Pressure sensor Maximun reached': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:05:15,290 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Tank under minimun level': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:05:15,290 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Stop Filler for Overtemperature': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:05:15,291 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Signals Forced': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:05:15,291 - DEBUG - Decisión de traducción para texto 'Waiting for product': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:05:15,291 - DEBUG - Decisión de traducción para texto 'Waiting Infeed Selector Enable': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:05:15,291 - DEBUG - Decisión de traducción para texto 'Waiting Minimal Accumulation': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:05:15,291 - DEBUG - Decisión de traducción para texto 'Warnings': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:05:15,292 - DEBUG - Decisión de traducción para texto 'Watchdog del sistema': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:05:15,292 - DEBUG - Decisión de traducción para texto 'Water supply': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:05:15,292 - DEBUG - Decisión de traducción para texto 'YV<#>': No (palabras > 3 letras: False, solo campos especiales: True) +2024-07-31 14:05:15,292 - INFO - Número total de textos a traducir: 17 +2024-07-31 14:05:15,293 - INFO - Traduciendo: celdas desde 0 a 17. +2024-07-31 14:05:15,294 - INFO - Solicitando traducción de Italian a Russian para el lote de textos: +{"texts": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W<#>/<#>/<#> General - Pressure sensor Maximun reached", "W<#>/<#>/<#> General - Tank under minimun level", "W<#>/<#>/<#> General - Stop Filler for Overtemperature", "W<#>/<#>/<#> General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"], "source_lang": "Italian", "target_lang": "Russian"} +2024-07-31 14:05:19,244 - INFO - Respuestas recibidas: +['Значение % для установки в ручном режиме', 'Значение, рассчитанное по PID', 'Значение, рассчитанное по PID + Feedforward', 'Значение, рассчитанное по PID + FF к актуатору', 'Значение, рассчитанное по масштабированному PID', 'Значение для принудительного задания, когда PID отключен', 'Проверьте с форматом', 'W<#>/<#>/<#> Общая - Максимальное значение датчика давления достигнуто', 'W<#>/<#>/<#> Общая - Уровень в баке ниже минимального', 'W<#>/<#>/<#> Общая - Остановить наполнитель из-за перегрева', 'W<#>/<#>/<#> Общая - Сигналы принудительно', 'Ожидание продукта', 'Ожидание включения селектора подачи', 'Ожидание минимальной накопительной емкости', 'Предупреждения', 'Система watchdog', 'Подача воды'] +2024-07-31 14:05:19,245 - INFO - Número total de traducciones recibidas: 17 +2024-07-31 14:05:25,074 - INFO - Afinidad: celdas desde 0 a 17. +2024-07-31 14:05:25,075 - INFO - Solicitando Afinidad para el lote de textos: +{"original": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W[[digits]]/[[digits]]/[[digits]] General - Pressure sensor Maximun reached", "W[[digits]]/[[digits]]/[[digits]] General - Tank under minimun level", "W[[digits]]/[[digits]]/[[digits]] General - Stop Filler for Overtemperature", "W[[digits]]/[[digits]]/[[digits]] General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"], "compared": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W<#>/<#>/<#> General - Pressure sensor Maximun reached", "W<#>/<#>/<#> General - Tank under minimun level", "W<#>/<#>/<#> General - Stop Filler for Overtemperature", "W<#>/<#>/<#> General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"]} +2024-07-31 14:06:54,483 - DEBUG - Decisión de traducción para texto 'Value % to set in Manual Mode': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:06:54,484 - DEBUG - Decisión de traducción para texto 'Value calculated from PID': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:06:54,484 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + Feedforward': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:06:54,484 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + FF to Actuator': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:06:54,484 - DEBUG - Decisión de traducción para texto 'Value calculated from PID Scaled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:06:54,484 - DEBUG - Decisión de traducción para texto 'Value to force when PID es disabled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:06:54,486 - DEBUG - Decisión de traducción para texto 'Verificare Con Formato': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:06:54,488 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Pressure sensor Maximun reached': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:06:54,488 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Tank under minimun level': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:06:54,488 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Stop Filler for Overtemperature': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:06:54,488 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Signals Forced': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:06:54,489 - DEBUG - Decisión de traducción para texto 'Waiting for product': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:06:54,489 - DEBUG - Decisión de traducción para texto 'Waiting Infeed Selector Enable': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:06:54,489 - DEBUG - Decisión de traducción para texto 'Waiting Minimal Accumulation': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:06:54,489 - DEBUG - Decisión de traducción para texto 'Warnings': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:06:54,489 - DEBUG - Decisión de traducción para texto 'Watchdog del sistema': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:06:54,490 - DEBUG - Decisión de traducción para texto 'Water supply': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:06:54,490 - DEBUG - Decisión de traducción para texto 'YV<#>': No (palabras > 3 letras: False, solo campos especiales: True) +2024-07-31 14:06:54,490 - INFO - Número total de textos a traducir: 17 +2024-07-31 14:06:54,491 - INFO - Traduciendo: celdas desde 0 a 17. +2024-07-31 14:06:54,492 - INFO - Solicitando traducción de Italian a Russian para el lote de textos: +{"texts": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W<#>/<#>/<#> General - Pressure sensor Maximun reached", "W<#>/<#>/<#> General - Tank under minimun level", "W<#>/<#>/<#> General - Stop Filler for Overtemperature", "W<#>/<#>/<#> General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"], "source_lang": "Italian", "target_lang": "Russian"} +2024-07-31 14:06:57,910 - INFO - Respuestas recibidas: +['Значение % для установки в ручном режиме', 'Значение, рассчитанное по PID', 'Значение, рассчитанное по PID + Feedforward', 'Значение, рассчитанное по PID + FF к актуатору', 'Значение, рассчитанное по масштабированному PID', 'Значение для принудительной установки при отключенном PID', 'Проверьте формат', 'W<#>/<#>/<#> Общая - Максимальное давление датчика достигнуто', 'W<#>/<#>/<#> Общая - Уровень в баке ниже минимального', 'W<#>/<#>/<#> Общая - Остановить наполнитель из-за перегрева', 'W<#>/<#>/<#> Общая - Сигналы принудительно установлены', 'Ожидание продукта', 'Ожидание включения селектора подачи', 'Ожидание минимальной накопленной массы', 'Предупреждения', 'Системный watchdog', 'Подача воды'] +2024-07-31 14:06:57,910 - INFO - Número total de traducciones recibidas: 17 +2024-07-31 14:07:03,703 - INFO - Afinidad: celdas desde 0 a 17. +2024-07-31 14:07:03,704 - INFO - Solicitando Afinidad para el lote de textos: +{"original": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W[[digits]]/[[digits]]/[[digits]] General - Pressure sensor Maximun reached", "W[[digits]]/[[digits]]/[[digits]] General - Tank under minimun level", "W[[digits]]/[[digits]]/[[digits]] General - Stop Filler for Overtemperature", "W[[digits]]/[[digits]]/[[digits]] General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"], "compared": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W<#>/<#>/<#> General - Pressure sensor Maximun reached", "W<#>/<#>/<#> General - Tank under minimun level", "W<#>/<#>/<#> General - Stop Filler for Overtemperature", "W<#>/<#>/<#> General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"]} +2024-07-31 14:12:04,033 - DEBUG - Decisión de traducción para texto 'Value % to set in Manual Mode': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:12:04,034 - DEBUG - Decisión de traducción para texto 'Value calculated from PID': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:12:04,034 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + Feedforward': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:12:04,034 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + FF to Actuator': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:12:04,034 - DEBUG - Decisión de traducción para texto 'Value calculated from PID Scaled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:12:04,035 - DEBUG - Decisión de traducción para texto 'Value to force when PID es disabled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:12:04,036 - DEBUG - Decisión de traducción para texto 'Verificare Con Formato': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:12:04,038 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Pressure sensor Maximun reached': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:12:04,038 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Tank under minimun level': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:12:04,038 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Stop Filler for Overtemperature': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:12:04,038 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Signals Forced': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:12:04,039 - DEBUG - Decisión de traducción para texto 'Waiting for product': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:12:04,039 - DEBUG - Decisión de traducción para texto 'Waiting Infeed Selector Enable': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:12:04,039 - DEBUG - Decisión de traducción para texto 'Waiting Minimal Accumulation': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:12:04,039 - DEBUG - Decisión de traducción para texto 'Warnings': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:12:04,039 - DEBUG - Decisión de traducción para texto 'Watchdog del sistema': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:12:04,039 - DEBUG - Decisión de traducción para texto 'Water supply': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:12:04,040 - DEBUG - Decisión de traducción para texto 'YV<#>': No (palabras > 3 letras: False, solo campos especiales: True) +2024-07-31 14:12:04,040 - INFO - Número total de textos a traducir: 17 +2024-07-31 14:12:04,040 - INFO - Traduciendo: celdas desde 0 a 17. +2024-07-31 14:12:04,041 - INFO - Solicitando traducción de Italian a Russian para el lote de textos: +{"texts": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W<#>/<#>/<#> General - Pressure sensor Maximun reached", "W<#>/<#>/<#> General - Tank under minimun level", "W<#>/<#>/<#> General - Stop Filler for Overtemperature", "W<#>/<#>/<#> General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"], "source_lang": "Italian", "target_lang": "Russian"} +2024-07-31 14:12:08,853 - INFO - Respuestas recibidas: +['Значение % для установки в ручном режиме', 'Значение, рассчитанное по PID', 'Значение, рассчитанное по PID + Feedforward', 'Значение, рассчитанное по PID + FF к актуатору', 'Значение, рассчитанное по PID с масштабированием', 'Значение для принудительного задания, когда PID отключен', 'Проверить с форматом', 'W<#>/<#>/<#> Общая - Максимальное значение датчика давления достигнуто', 'W<#>/<#>/<#> Общая - Уровень в баке ниже минимального', 'W<#>/<#>/<#> Общая - Остановить наполнитель из-за перегрева', 'W<#>/<#>/<#> Общая - Сигналы принудительно установлены', 'Ожидание продукта', 'Ожидание включения селектора подачи', 'Ожидание минимального накопления', 'Предупреждения', 'Системный watchdog', 'Подача воды'] +2024-07-31 14:12:08,854 - INFO - Número total de traducciones recibidas: 17 +2024-07-31 14:12:14,567 - INFO - Afinidad: celdas desde 0 a 17. +2024-07-31 14:12:14,567 - INFO - Solicitando Afinidad para el lote de textos: +{"original": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W[[digits]]/[[digits]]/[[digits]] General - Pressure sensor Maximun reached", "W[[digits]]/[[digits]]/[[digits]] General - Tank under minimun level", "W[[digits]]/[[digits]]/[[digits]] General - Stop Filler for Overtemperature", "W[[digits]]/[[digits]]/[[digits]] General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"], "compared": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W<#>/<#>/<#> General - Pressure sensor Maximun reached", "W<#>/<#>/<#> General - Tank under minimun level", "W<#>/<#>/<#> General - Stop Filler for Overtemperature", "W<#>/<#>/<#> General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"]} +2024-07-31 14:13:34,692 - DEBUG - Decisión de traducción para texto 'Value % to set in Manual Mode': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:13:34,693 - DEBUG - Decisión de traducción para texto 'Value calculated from PID': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:13:34,693 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + Feedforward': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:13:34,693 - DEBUG - Decisión de traducción para texto 'Value calculated from PID + FF to Actuator': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:13:34,693 - DEBUG - Decisión de traducción para texto 'Value calculated from PID Scaled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:13:34,694 - DEBUG - Decisión de traducción para texto 'Value to force when PID es disabled': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:13:34,694 - DEBUG - Decisión de traducción para texto 'Verificare Con Formato': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:13:34,696 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Pressure sensor Maximun reached': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:13:34,696 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Tank under minimun level': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:13:34,696 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Stop Filler for Overtemperature': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:13:34,697 - DEBUG - Decisión de traducción para texto 'W<#>/<#>/<#> General - Signals Forced': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:13:34,697 - DEBUG - Decisión de traducción para texto 'Waiting for product': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:13:34,698 - DEBUG - Decisión de traducción para texto 'Waiting Infeed Selector Enable': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:13:34,698 - DEBUG - Decisión de traducción para texto 'Waiting Minimal Accumulation': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:13:34,698 - DEBUG - Decisión de traducción para texto 'Warnings': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:13:34,698 - DEBUG - Decisión de traducción para texto 'Watchdog del sistema': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:13:34,699 - DEBUG - Decisión de traducción para texto 'Water supply': Sí (palabras > 3 letras: True, solo campos especiales: True) +2024-07-31 14:13:34,699 - DEBUG - Decisión de traducción para texto 'YV<#>': No (palabras > 3 letras: False, solo campos especiales: True) +2024-07-31 14:13:34,699 - INFO - Número total de textos a traducir: 17 +2024-07-31 14:13:34,700 - INFO - Traduciendo: celdas desde 0 a 17. +2024-07-31 14:13:34,701 - INFO - Solicitando traducción de Italian a Russian para el lote de textos: +{"texts": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W<#>/<#>/<#> General - Pressure sensor Maximun reached", "W<#>/<#>/<#> General - Tank under minimun level", "W<#>/<#>/<#> General - Stop Filler for Overtemperature", "W<#>/<#>/<#> General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"], "source_lang": "Italian", "target_lang": "Russian"} +2024-07-31 14:13:38,463 - INFO - Respuestas recibidas: +['Значение % для установки в ручном режиме', 'Значение, рассчитанное по PID', 'Значение, рассчитанное по PID + Feedforward', 'Значение, рассчитанное по PID + FF к актуатору', 'Значение, рассчитанное по PID с масштабированием', 'Значение для принудительного управления при отключенном PID', 'Проверьте формат', 'W<#>/<#>/<#> Общая - Максимальное давление датчика достигнуто', 'W<#>/<#>/<#> Общая - Уровень в баке ниже минимального', 'W<#>/<#>/<#> Общая - Остановить наполнитель из-за перегрева', 'W<#>/<#>/<#> Общая - Сигналы принудительно установлены', 'Ожидание продукта', 'Ожидание включения селектора подачи', 'Ожидание минимальной накопленной массы', 'Предупреждения', 'Системный watchdog', 'Подача воды'] +2024-07-31 14:13:38,463 - INFO - Número total de traducciones recibidas: 17 +2024-07-31 14:13:44,157 - INFO - Afinidad: celdas desde 0 a 17. +2024-07-31 14:13:44,158 - INFO - Solicitando Afinidad para el lote de textos: +{"original": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W[[digits]]/[[digits]]/[[digits]] General - Pressure sensor Maximun reached", "W[[digits]]/[[digits]]/[[digits]] General - Tank under minimun level", "W[[digits]]/[[digits]]/[[digits]] General - Stop Filler for Overtemperature", "W[[digits]]/[[digits]]/[[digits]] General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"], "compared": ["Value % to set in Manual Mode", "Value calculated from PID", "Value calculated from PID + Feedforward", "Value calculated from PID + FF to Actuator", "Value calculated from PID Scaled", "Value to force when PID es disabled", "Verificare Con Formato", "W<#>/<#>/<#> General - Pressure sensor Maximun reached", "W<#>/<#>/<#> General - Tank under minimun level", "W<#>/<#>/<#> General - Stop Filler for Overtemperature", "W<#>/<#>/<#> General - Signals Forced", "Waiting for product", "Waiting Infeed Selector Enable", "Waiting Minimal Accumulation", "Warnings", "Watchdog del sistema", "Water supply"]} +2024-07-31 14:13:58,257 - INFO - Respuestas recibidas: +[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.9, 0.9, 0.9, 0.9, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] +2024-07-31 14:14:38,642 - INFO - Archivo traducido guardado en: .\data\3_master_export2translate_translated.xlsx diff --git a/x3_llm_translate_text.py b/x3_llm_translate_text.py index 8c636b0..fa64f77 100644 --- a/x3_llm_translate_text.py +++ b/x3_llm_translate_text.py @@ -12,8 +12,8 @@ from google.cloud import translate_v2 as translate from google.oauth2 import service_account import html -client = OpenAI(api_key=openai_api_key()) -GOOGLE_APPLICATION_CREDENTIALS ="translate-431108-020c17463fbb.json" +openai_client = OpenAI(api_key=openai_api_key()) +GOOGLE_APPLICATION_CREDENTIALS = "translate-431108-020c17463fbb.json" # Diccionario de idiomas IDIOMAS = { @@ -25,6 +25,7 @@ IDIOMAS = { 6: ("German", "de-DE"), } + def configurar_logger(): logger = logging.getLogger("translate_logger") logger.setLevel(logging.DEBUG) @@ -36,6 +37,7 @@ def configurar_logger(): logger.addHandler(fh) return logger + def init_google_translate_client(): if os.path.exists(GOOGLE_APPLICATION_CREDENTIALS): # Usar credenciales de cuenta de servicio @@ -44,57 +46,39 @@ def init_google_translate_client(): ) return translate.Client(credentials=credentials) else: - raise ValueError("No se han proporcionado credenciales válidas para Google Translate") + raise ValueError( + "No se han proporcionado credenciales válidas para Google Translate" + ) + google_translate_client = init_google_translate_client() + def google_translate(text, target_language): result = google_translate_client.translate(text, target_language=target_language) - translated_text = result['translatedText'] + translated_text = result["translatedText"] return html.unescape(translated_text) + logger = configurar_logger() + def mostrar_idiomas(): print("Selecciona el idioma de destino:") for numero, (nombre, _) in IDIOMAS.items(): print(f"{numero}: {nombre}") + def read_system_prompt(): try: with open(".\\data\\system_prompt.txt", "r", encoding="utf-8") as file: return file.read().strip() except FileNotFoundError: - logger.warning("Archivo system_prompt.txt no encontrado. Usando prompt por defecto.") + logger.warning( + "Archivo system_prompt.txt no encontrado. Usando prompt por defecto." + ) return "You are a translator." -def translate_batch_openai(texts_dict, source_lang, target_lang): - system_prompt = read_system_prompt() - texts_list = list(texts_dict.values()) - joined_text = "\n".join(texts_list) - - request_payload = json.dumps({"texts": texts_list, "source_lang": source_lang, "target_lang": target_lang}) - logger.info( - f"Solicitando traducción de {source_lang} a {target_lang} para el lote de textos:\n{request_payload}" - ) - - response = client.chat.completions.create( - model="gpt-4o-mini", - messages=[ - {"role": "system", "content": f"You are a translator.{system_prompt}."}, - {"role": "user", "content": request_payload} - ], - max_tokens=1500, - temperature=0.3, - ) - response_payload = json.loads(response.choices[0].message.content.strip()) - translations = response_payload.get("texts", []) - logger.info(f"Respuestas recibidas:\n{translations}") - - if len(translations) != len(texts_list): - raise ValueError("La cantidad de traducciones recibidas no coincide con la cantidad de textos enviados.") - - return dict(zip(texts_dict.keys(), translations)) def translate_batch_ollama(texts, source_lang, target_lang): joined_text = "\n".join(texts) @@ -102,12 +86,16 @@ def translate_batch_ollama(texts, source_lang, target_lang): logger.info( f"Solicitando traducción de {source_lang} a {target_lang} para el lote de textos:\n{joined_text}" ) - response = ollama.generate(model='llama3.1', prompt=f"Translate the following texts from {source_lang} to {target_lang} while preserving special fields like <> and <#>. {system_prompt}: \n\n{joined_text}") + response = ollama.generate( + model="llama3.1", + prompt=f"Translate the following texts from {source_lang} to {target_lang} while preserving special fields like <> and <#>. {system_prompt}: \n\n{joined_text}", + ) - translations = response['response'].strip().split("\n") + translations = response["response"].strip().split("\n") logger.info(f"Respuestas recibidas:\n{translations}") return translations + def texto_requiere_traduccion(texto): palabras = re.findall(r"\b\w{4,}\b", texto) campos_especiales = re.findall(r"<.*?>", texto) @@ -119,79 +107,211 @@ def texto_requiere_traduccion(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()) + + request_payload = json.dumps( + {"texts": texts_list, "source_lang": source_lang, "target_lang": target_lang} + ) + logger.info( + f"Solicitando traducción de {source_lang} a {target_lang} para el lote de textos:\n{request_payload}" + ) + + response = openai_client.chat.completions.create( + model="gpt-4o-mini", + messages=[ + {"role": "system", "content": f"You are a translator.{system_prompt}."}, + {"role": "user", "content": request_payload}, + ], + max_tokens=1500, + temperature=0.3, + ) + response_payload = json.loads(response.choices[0].message.content.strip()) + translations = response_payload.get("texts", []) + logger.info(f"Respuestas recibidas:\n{translations}") + + if len(translations) != len(texts_list): + raise ValueError( + "La cantidad de traducciones recibidas no coincide con la cantidad de textos enviados." + ) + + return dict(zip(texts_dict.keys(), translations)) + + +def affinity_batch_openai(texts_dict): + system_prompt = "Evaluate the semantic similarity between the following pairs of texts on a scale from 0 to 1. Return the similarity score in JSON format for each pair in the same order." + original_list = list(texts_dict.keys()) + re_translated_list = list(texts_dict.values()) + + request_payload = json.dumps( + {"original": original_list, "compared": re_translated_list} + ) + logger.info(f"Solicitando Afinidad para el lote de textos:\n{request_payload}") + + response = openai_client.chat.completions.create( + model="gpt-4o-mini", + messages=[ + { + "role": "system", + "content": f"You are a semantic similarity evaluator.{system_prompt}", + }, + {"role": "user", "content": request_payload}, + ], + max_tokens=1500, + temperature=0.3, + ) + response_payload = json.loads(response.choices[0].message.content.strip("'```json\n").strip("```")) + scores = response_payload + logger.info(f"Respuestas recibidas:\n{scores}") + + if len(scores) != len(original_list): + raise ValueError( + "La cantidad de afinidades recibidas no coincide con la cantidad de textos enviados." + ) + + return dict(zip(texts_dict.keys(), scores)) + def main(file_path, target_lang_code, target_lang, traducir_todo, batch_size=10): df = pd.read_excel(file_path) source_col = "it-IT" source_translated_col = target_lang_code target_col = f"{target_lang_code} Translated" check_translate_col = f"{target_lang_code} CheckTranslate" + affinity_col = f"{target_lang_code} Affinity" # Asegurarse de que la columna de destino existe if target_col not in df.columns: df[target_col] = None if check_translate_col not in df.columns: df[check_translate_col] = None + if affinity_col not in df.columns: + df[affinity_col] = None texts_to_translate = {} for _, row in df.iterrows(): source_text = str(row[source_col]) - source_translated_text = str(row[source_translated_col]) if source_translated_col in df.columns else "" + source_translated_text = ( + str(row[source_translated_col]) + if source_translated_col in df.columns + else "" + ) processed_text = transformar_texto(source_text) - + if traducir_todo: if texto_requiere_traduccion(processed_text): texts_to_translate[source_text] = processed_text else: - if pd.isna(row[source_translated_col]) or source_translated_text.strip() == "": + if ( + pd.isna(row[source_translated_col]) + or source_translated_text.strip() == "" + ): if texto_requiere_traduccion(processed_text): texts_to_translate[source_text] = processed_text num_texts = len(texts_to_translate) logger.info(f"Número total de textos a traducir: {num_texts}") print(f"Número total de textos a traducir: {num_texts}") - + + # Traducciones + # Hacer las traducciones via LLM en batch translations = {} for start_idx in range(0, num_texts, batch_size): end_idx = min(start_idx + batch_size, num_texts) batch_texts = dict(list(texts_to_translate.items())[start_idx:end_idx]) logger.info(f"Traduciendo: celdas desde {start_idx} a {end_idx}.") print(f"Traduciendo : celdas desde: {start_idx} a :{end_idx}.") - + retries = 2 # Número de intentos totales (1 inicial + 1 reintento) for attempt in range(retries): try: - batch_translations = translate_batch_openai(batch_texts, 'Italian', target_lang) + batch_translations = translate_batch_openai( + batch_texts, "Italian", target_lang + ) translations.update(batch_translations) break # Si la traducción es exitosa, salimos del bucle de reintentos except Exception as e: if attempt < retries - 1: # Si no es el último intento - logger.warning(f"Error en el intento {attempt + 1} de traducción de celdas desde {start_idx} a {end_idx}: {e}. Reintentando...") - print(f"Error en el intento {attempt + 1} de traducción de celdas desde {start_idx} a {end_idx}: {e}. Reintentando...") + logger.warning( + f"Error en el intento {attempt + 1} de traducción de celdas desde {start_idx} a {end_idx}: {e}. Reintentando..." + ) + print( + f"Error en el intento {attempt + 1} de traducción de celdas desde {start_idx} a {end_idx}: {e}. Reintentando..." + ) else: # Si es el último intento - logger.error(f"Error en todos los intentos de traducción de celdas desde {start_idx} a {end_idx}: {e}") - print(f"Error en todos los intentos de traducción de celdas desde {start_idx} a {end_idx}: {e}") + logger.error( + f"Error en todos los intentos de traducción de celdas desde {start_idx} a {end_idx}: {e}" + ) + print( + f"Error en todos los intentos de traducción de celdas desde {start_idx} a {end_idx}: {e}" + ) logger.info(f"Número total de traducciones recibidas: {len(translations)}") - # Actualizar el DataFrame con las traducciones + # Traduccion inversa + # Actualizar el DataFrame con las traducciones y hacemos la Traduccion inversa for index, row in df.iterrows(): source_text = str(row[source_col]) if source_text in translations: df.at[index, target_col] = translations[source_text] # Realizar la traducción de verificación con Google Translate try: - google_translation = google_translate(translations[source_text], 'it') + google_translation = google_translate(translations[source_text], "it") df.at[index, check_translate_col] = google_translation except Exception as e: - logger.error(f"Error en la traducción de Google para el texto '{source_text}': {e}") + logger.error( + f"Error en la traducción de Google para el texto '{source_text}': {e}" + ) df.at[index, check_translate_col] = "Error en la traducción" + df.at[index, affinity_col] = 0.0 - output_path = os.path.join(os.path.dirname(file_path), '3_master_export2translate_translated.xlsx') + # Afinidades + # Se calculan las Afinidades + affinities = {} + for start_idx in range(0, num_texts, batch_size): + end_idx = min(start_idx + batch_size, num_texts) + batch_texts = dict(list(texts_to_translate.items())[start_idx:end_idx]) + logger.info(f"Afinidad: celdas desde {start_idx} a {end_idx}.") + print(f"Afinidad: celdas desde: {start_idx} a :{end_idx}.") + + retries = 2 # Número de intentos totales (1 inicial + 1 reintento) + for attempt in range(retries): + try: + batch_affinities = affinity_batch_openai(batch_texts) + affinities.update(batch_affinities) + break # Si la llamada es exitosa, salimos del bucle de reintentos + except Exception as e: + if attempt < retries - 1: # Si no es el último intento + logger.warning( + f"Error en el intento {attempt + 1} de Afinidad de celdas desde {start_idx} a {end_idx}: {e}. Reintentando..." + ) + print( + f"Error en el intento {attempt + 1} de Afinidad de celdas desde {start_idx} a {end_idx}: {e}. Reintentando..." + ) + else: # Si es el último intento + logger.error( + f"Error en todos los intentos de Afinidad de celdas desde {start_idx} a {end_idx}: {e}" + ) + print( + f"Error en todos los intentos de Afinidad de celdas desde {start_idx} a {end_idx}: {e}" + ) + + # Actualizar el DataFrame con las Afinidades + for index, row in df.iterrows(): + source_text = str(row[source_col]) + if source_text in translations: + df.at[index, affinity_col] = affinities[source_text] + + output_path = os.path.join( + os.path.dirname(file_path), "3_master_export2translate_translated.xlsx" + ) df.to_excel(output_path, index=False) logger.info(f"Archivo traducido guardado en: {output_path}") print(f"Archivo traducido guardado en: {output_path}") + if __name__ == "__main__": batch_size = 20 translate_file = ".\\data\\2_master_export2translate.xlsx" @@ -205,4 +325,4 @@ if __name__ == "__main__": traducir_todo = ( input("¿Desea traducir todas las celdas (s/n)? ").strip().lower() == "s" ) - main(translate_file, target_lang_code, target_lang, traducir_todo, batch_size) \ No newline at end of file + main(translate_file, target_lang_code, target_lang, traducir_todo, batch_size)