Recebo um erro 422 ao traduzir texto simples e links com o LibreTranslate. No entanto, posts semelhantes (apenas texto e links) traduzem normalmente.
Na interface do usuário, um pop-up mostra “erro 422”, nada mais.
Nos logs do Discourse, temos o seguinte rastreamento de pilha (diz que não posso incluir links em mensagens):
Failed to handle exception in exception app middleware : ActiveRecord::RecordInvalid : Validation échouée : Nous sommes désolés, vous ne pouvez pas inclure de liens dans vos messages.
activerecord-7.0.8/lib/active_record/validations.rb:80:in `raise_validation_error'
activerecord-7.0.8/lib/active_record/validations.rb:53:in `save!'
activerecord-7.0.8/lib/active_record/transactions.rb:302:in `block in save!'
activerecord-7.0.8/lib/active_record/transactions.rb:354:in `block in with_transaction_returning_status'
activerecord-7.0.8/lib/active_record/connection_adapters/abstract/transaction.rb:319:in `block in within_new_transaction'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
activerecord-7.0.8/lib/active_record/connection_adapters/abstract/transaction.rb:317:in `within_new_transaction'
activerecord-7.0.8/lib/active_record/connection_adapters/abstract/database_statements.rb:316:in `transaction'
activerecord-7.0.8/lib/active_record/transactions.rb:350:in `with_transaction_returning_status'
activerecord-7.0.8/lib/active_record/transactions.rb:302:in `save!'
activerecord-7.0.8/lib/active_record/suppressor.rb:54:in `save!'
/var/www/discourse/plugins/discourse-translator/services/discourse_translator/base.rb:46:in `from_custom_fields'
/var/www/discourse/plugins/discourse-translator/services/discourse_translator/libretranslate.rb:115:in `translate'
/var/www/discourse/plugins/discourse-translator/plugin.rb:78:in `translate'
actionpack-7.0.8/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack-7.0.8/lib/abstract_controller/base.rb:215:in `process_action'
actionpack-7.0.8/lib/action_controller/metal/rendering.rb:165:in `process_action'
actionpack-7.0.8/lib/abstract_controller/callbacks.rb:234:in `block in process_action'
activesupport-7.0.8/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
/var/www/discourse/app/controllers/application_controller.rb:423:in `block in with_resolved_locale'
i18n-1.14.1/lib/i18n.rb:322:in `with_locale'
/var/www/discourse/app/controllers/application_controller.rb:423:in `with_resolved_locale'
activesupport-7.0.8/lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport-7.0.8/lib/active_support/callbacks.rb:138:in `run_callbacks'
actionpack-7.0.8/lib/abstract_controller/callbacks.rb:233:in `process_action'
actionpack-7.0.8/lib/action_controller/metal/rescue.rb:23:in `process_action'
actionpack-7.0.8/lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
activesupport-7.0.8/lib/active_support/notifications.rb:206:in `block in instrument'
activesupport-7.0.8/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport-7.0.8/lib/active_support/notifications.rb:206:in `instrument'
actionpack-7.0.8/lib/action_controller/metal/instrumentation.rb:66:in `process_action'
actionpack-7.0.8/lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord-7.0.8/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack-7.0.8/lib/abstract_controller/base.rb:151:in `process'
actionview-7.0.8/lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler-3.3.0/lib/mini_profiler/profiling_methods.rb:89:in `block in profile_method'
actionpack-7.0.8/lib/action_controller/metal.rb:188:in `dispatch'
actionpack-7.0.8/lib/action_controller/metal.rb:251:in `dispatch'
actionpack-7.0.8/lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack-7.0.8/lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack-7.0.8/lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack-7.0.8/lib/action_dispatch/journey/router.rb:32:in `each'
actionpack-7.0.8/lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack-7.0.8/lib/action_dispatch/routing/route_set.rb:852:in `call'
railties-7.0.8/lib/rails/engine.rb:530:in `call'
railties-7.0.8/lib/rails/railtie.rb:226:in `public_send'
railties-7.0.8/lib/rails/railtie.rb:226:in `method_missing'
actionpack-7.0.8/lib/action_dispatch/routing/mapper.rb:19:in `block in <class:Constraints>'
actionpack-7.0.8/lib/action_dispatch/routing/mapper.rb:48:in `serve'
actionpack-7.0.8/lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack-7.0.8/lib/action_dispatch/journey/router.rb:32:in `each'
actionpack-7.0.8/lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack-7.0.8/lib/action_dispatch/routing/route_set.rb:852:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
rack-2.2.8/lib/rack/tempfile_reaper.rb:15:in `call'
rack-2.2.8/lib/rack/conditional_get.rb:40:in `call'
rack-2.2.8/lib/rack/head.rb:12:in `call'
actionpack-7.0.8/lib/action_dispatch/http/permissions_policy.rb:38:in `call'
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:393:in `call'
/var/www/discourse/lib/middleware/gtm_script_nonce_injector.rb:10:in `call'
/var/www/discourse/config/initializers/008-rack-cors.rb:14:in `call'
rack-2.2.8/lib/rack/session/abstract/id.rb:266:in `context'
rack-2.2.8/lib/rack/session/abstract/id.rb:260:in `call'
actionpack-7.0.8/lib/action_dispatch/middleware/cookies.rb:704:in `call'
actionpack-7.0.8/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport-7.0.8/lib/active_support/callbacks.rb:99:in `run_callbacks'
actionpack-7.0.8/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack-7.0.8/lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'
actionpack-7.0.8/lib/action_dispatch/middleware/show_exceptions.rb:29:in `call'
logster-2.15.0/lib/logster/middleware/reporter.rb:40:in `call'
railties-7.0.8/lib/rails/rack/logger.rb:40:in `call_app'
railties-7.0.8/lib/rails/rack/logger.rb:27:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:20:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:29:in `call'
actionpack-7.0.8/lib/action_dispatch/middleware/remote_ip.rb:93:in `call'
actionpack-7.0.8/lib/action_dispatch/middleware/request_id.rb:26:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:24:in `call'
rack-2.2.8/lib/rack/method_override.rb:24:in `call'
actionpack-7.0.8/lib/action_dispatch/middleware/executor.rb:14:in `call'
rack-2.2.8/lib/rack/sendfile.rb:110:in `call'
actionpack-7.0.8/lib/action_dispatch/middleware/host_authorization.rb:131:in `call'
rack-mini-profiler-3.3.0/lib/mini_profiler.rb:191:in `call'
message_bus-4.3.8/lib/message_bus/rack/middleware.rb:60:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:236:in `call'
railties-7.0.8/lib/rails/engine.rb:530:in `call'
railties-7.0.8/lib/rails/railtie.rb:226:in `public_send'
railties-7.0.8/lib/rails/railtie.rb:226:in `method_missing'
rack-2.2.8/lib/rack/urlmap.rb:74:in `block in call'
rack-2.2.8/lib/rack/urlmap.rb:58:in `each'
rack-2.2.8/lib/rack/urlmap.rb:58:in `call'
unicorn-6.1.0/lib/unicorn/http_server.rb:634:in `process_client'
unicorn-6.1.0/lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn-6.1.0/lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn-6.1.0/lib/unicorn/http_server.rb:143:in `start'
unicorn-6.1.0/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `<main>'
Três consultas chegam à instância do libretranslate antes de falhar:
[25/Jan/2024:15:56:36 +0000] "POST /libretranslatedetect HTTP/1.1" 200 39 "-" "-" "170.187.194.*"
[25/Jan/2024:15:56:36 +0000] "GET /libretranslatelanguages HTTP/1.1" 200 11115 "-" "excon/0.109.0" "170.187.194.*"
[25/Jan/2024:15:56:40 +0000] "POST /libretranslatetranslate HTTP/1.1" 200 852 "-" "-" "170.187.194.*"
Para uma consulta bem-sucedida, tenho mais:
[25/Jan/2024:16:05:37 +0000] "POST /libretranslatedetect HTTP/1.1" 200 39 "-" "-" "170.187.194.*"
[25/Jan/2024:16:05:37 +0000] "POST /libretranslatedetect HTTP/1.1" 200 39 "-" "-" "170.187.194.*"
[25/Jan/2024:16:05:41 +0000] "POST /libretranslatedetect HTTP/1.1" 200 39 "-" "-" "170.187.194.*"
[25/Jan/2024:16:05:41 +0000] "GET /libretranslatelanguages HTTP/1.1" 200 11115 "-" "excon/0.109.0" "170.187.194.*"
[25/Jan/2024:16:05:42 +0000] "POST /libretranslatetranslate HTTP/1.1" 200 132 "-" "-" "170.187.194.*"
Aqui está o texto, é a seção “sobre” de uma categoria:
BON in a Box é um portal de ferramentas e projetos, bem como um motor de pipeline modular para EBVs e Indicadores. Mais informações. Qualquer discussão sobre a plataforma BON in a Box, pipelines e parcerias pode acontecer aqui. As discussões estão abertas a todos os membros do GEO BON.
Para relatórios de bugs sobre o motor de pipeline e a interface do usuário, por favor, abra uma issue no repositório GitHub do motor de pipeline.
Se você encontrar um problema com um script ou pipeline, por favor, abra uma issue no repositório GitHub dos pipelines.
