From d86dd067ceb1dc05e67417fa1d7f1e84519b2fca Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Wed, 28 Sep 2022 06:33:56 +0900 Subject: [PATCH] Fix auto detect language for translate service (#19244) --- .devcontainer/devcontainer.json | 2 +- .devcontainer/docker-compose.yml | 7 +++++++ app/lib/translation_service/deepl.rb | 2 +- app/lib/translation_service/libre_translate.rb | 3 ++- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 9d9e54d4f8..47497794fb 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -20,7 +20,7 @@ "forwardPorts": [3000, 4000], // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "bundle install --path vendor/bundle && yarn install && ./bin/rails db:setup", + "postCreateCommand": "bundle install --path vendor/bundle && yarn install && git checkout -- Gemfile.lock && ./bin/rails db:setup", // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. "remoteUser": "vscode" diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 538f6cccde..46f42c4549 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -27,6 +27,7 @@ services: ES_ENABLED: 'true' ES_HOST: es ES_PORT: '9200' + LIBRE_TRANSLATE_ENDPOINT: http://libretranslate:5000 # Overrides default command so things don't shut down after the process ends. command: sleep infinity networks: @@ -72,6 +73,12 @@ services: soft: -1 hard: -1 + libretranslate: + image: libretranslate/libretranslate:v1.2.9 + restart: unless-stopped + networks: + - internal_network + volumes: postgres-data: redis-data: diff --git a/app/lib/translation_service/deepl.rb b/app/lib/translation_service/deepl.rb index 89ccf01e51..b75b604a81 100644 --- a/app/lib/translation_service/deepl.rb +++ b/app/lib/translation_service/deepl.rb @@ -28,7 +28,7 @@ class TranslationService::DeepL < TranslationService private def request(text, source_language, target_language) - req = Request.new(:post, endpoint_url, form: { text: text, source_lang: source_language.upcase, target_lang: target_language, tag_handling: 'html' }) + req = Request.new(:post, endpoint_url, form: { text: text, source_lang: source_language&.upcase, target_lang: target_language, tag_handling: 'html' }) req.add_headers('Authorization': "DeepL-Auth-Key #{@api_key}") req end diff --git a/app/lib/translation_service/libre_translate.rb b/app/lib/translation_service/libre_translate.rb index 66acdeed7b..8cf26f8684 100644 --- a/app/lib/translation_service/libre_translate.rb +++ b/app/lib/translation_service/libre_translate.rb @@ -26,7 +26,8 @@ class TranslationService::LibreTranslate < TranslationService private def request(text, source_language, target_language) - req = Request.new(:post, "#{@base_url}/translate", body: Oj.dump(q: text, source: source_language, target: target_language, format: 'html', api_key: @api_key)) + body = Oj.dump(q: text, source: source_language.presence || 'auto', target: target_language, format: 'html', api_key: @api_key) + req = Request.new(:post, "#{@base_url}/translate", body: body) req.add_headers('Content-Type': 'application/json') req end