about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYamagishi Kazutoshi <ykzts@desire.sh>2022-09-28 06:33:56 +0900
committerGitHub <noreply@github.com>2022-09-27 23:33:56 +0200
commitd86dd067ceb1dc05e67417fa1d7f1e84519b2fca (patch)
treeb86422f5ad9375daaf76b1c7f79f0d309802818f
parent2635c8dc5c19ea976b9fc787169244d7e8cec90a (diff)
Fix auto detect language for translate service (#19244)
-rw-r--r--.devcontainer/devcontainer.json2
-rw-r--r--.devcontainer/docker-compose.yml7
-rw-r--r--app/lib/translation_service/deepl.rb2
-rw-r--r--app/lib/translation_service/libre_translate.rb3
4 files changed, 11 insertions, 3 deletions
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 9d9e54d4f..47497794f 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 538f6cccd..46f42c454 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 89ccf01e5..b75b604a8 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 66acdeed7..8cf26f868 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