autotolk 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/assets/javascripts/autotolk/locales.js.coffee +15 -12
- data/app/controllers/translations_controller.rb +1 -5
- data/app/services/auto_translator.rb +35 -0
- data/lib/autotolk/version.rb +1 -1
- metadata +3 -3
- data/app/assets/javascripts/locales.js.coffee +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 99ba99954c85978aed16ebf0967290cbbc67374c
|
4
|
+
data.tar.gz: f85a3b070fdbbf171d6190b2434ff6e0a4170b1f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7072bd5e147ca11b3d1ce68b74a06b63388f4a3c3ef6fa9fd8346523d3591c373d1f3e26287882149acacc3297bf4b6d9156bb78c68263c730f4bc38940060c4
|
7
|
+
data.tar.gz: 67b3a1afb4a1a07aed7659c7f20eb371b5d168e7c6b4364905ceab37b466c0e209adeb74539bfc9628489f4db44c49ca72e284f0dadb32877a34977811ec6868
|
data/README.md
CHANGED
@@ -26,7 +26,7 @@ And follow the instructions on the screen (you will have to add your bing tokens
|
|
26
26
|
|
27
27
|
## Usage
|
28
28
|
|
29
|
-
Now when you go to `/tolk/locales/xx` you will see
|
29
|
+
Now when you go to `/tolk/locales/xx` you will see a button `Start autotranslating!`. When you click on it, the translation will be automatic. The text areas will fill out with the translated text, so you could change it if needed and save.
|
30
30
|
|
31
31
|
## Issues
|
32
32
|
|
@@ -1,16 +1,19 @@
|
|
1
|
+
autotranslatingClicked = 0
|
2
|
+
|
1
3
|
$(document).on 'ready page:load', ->
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
4
|
+
$( "#container div.translations" ).prepend( "<div id='autotranslate' style='text-align: right;'><button> Start autotranslating!</button></div>" )
|
5
|
+
$('div#autotranslate').on 'click', 'button', ->
|
6
|
+
startTranslating()
|
7
|
+
|
8
|
+
startTranslating = () ->
|
9
|
+
autotranslatingClicked += 1
|
10
|
+
to_lang = document.URL.split('/').slice(-1).pop()
|
11
|
+
$translation_rows = $('table.translations tbody tr:not(:first-child)')
|
12
|
+
for $translation_row in $translation_rows
|
13
|
+
original = $translation_row.querySelector('td.original textarea#translations__original_text').innerText
|
14
|
+
$translationArea = $translation_row.querySelector('td.translation textarea')
|
15
|
+
if $translationArea.innerText == '' && autotranslatingClicked == 1
|
16
|
+
translate(original, to_lang, $translationArea)
|
14
17
|
|
15
18
|
translate = (original, to, textarea) ->
|
16
19
|
$.get '/translate', {original: original, to: to}, ((response) ->
|
@@ -1,12 +1,8 @@
|
|
1
|
-
require 'bing_translator'
|
2
|
-
|
3
1
|
class TranslationsController < ApplicationController
|
4
2
|
skip_before_action :authenticate_user!, :validate_subdomain
|
5
3
|
|
6
4
|
def translate
|
7
|
-
|
8
|
-
false, Autotolk.azure_account_key)
|
9
|
-
translated = translator.translate params[:original], :to => params[:to]
|
5
|
+
translated = AutoTranslator.new(original: params[:original], to: params[:to]).perform
|
10
6
|
render json: {status: 200, translated: translated}
|
11
7
|
rescue Exception => e
|
12
8
|
render json: {status: 500, error: e}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'bing_translator'
|
2
|
+
|
3
|
+
class AutoTranslator
|
4
|
+
|
5
|
+
def initialize parameters = { original: nil, to: nil }
|
6
|
+
@translator = nil
|
7
|
+
@translation = nil
|
8
|
+
@original = parameters[:original]
|
9
|
+
@to = parameters[:to]
|
10
|
+
end
|
11
|
+
|
12
|
+
def perform
|
13
|
+
set_translator
|
14
|
+
raw_translate
|
15
|
+
fix_special_characters
|
16
|
+
@translation
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def set_translator
|
22
|
+
@translator = BingTranslator.new( Autotolk.bing_client_id, Autotolk.bing_client_secret,
|
23
|
+
false, Autotolk.azure_account_key)
|
24
|
+
end
|
25
|
+
|
26
|
+
def raw_translate
|
27
|
+
@translation = @translator.translate @original, to: @to
|
28
|
+
end
|
29
|
+
|
30
|
+
def fix_special_characters
|
31
|
+
@translation.gsub!('% {', '%{')
|
32
|
+
@translation.gsub!(/{(?<word>\w+)} %[^{]*/, '%{\k<word>}')
|
33
|
+
@translation.gsub!('---', '')
|
34
|
+
end
|
35
|
+
end
|
data/lib/autotolk/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: autotolk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joanna Rajewska
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -70,8 +70,8 @@ files:
|
|
70
70
|
- app/assets/.DS_Store
|
71
71
|
- app/assets/javascripts/.DS_Store
|
72
72
|
- app/assets/javascripts/autotolk/locales.js.coffee
|
73
|
-
- app/assets/javascripts/locales.js.coffee
|
74
73
|
- app/controllers/translations_controller.rb
|
74
|
+
- app/services/auto_translator.rb
|
75
75
|
- autotolk.gemspec
|
76
76
|
- bin/console
|
77
77
|
- bin/setup
|
@@ -1,19 +0,0 @@
|
|
1
|
-
$(document).on 'ready page:load', ->
|
2
|
-
$( "#container div.translations" ).prepend( "<div style='text-align: right;'><button onclick='startTranslating()'> Start autotranslating!</button></div>" )
|
3
|
-
autotranslatingClicked = 0
|
4
|
-
|
5
|
-
startTranslating = ->
|
6
|
-
autotranslatingClicked += 1
|
7
|
-
to_lang = document.URL.split('/').slice(-1).pop()
|
8
|
-
$translation_rows = $('table.translations tbody tr:not(:first-child)')
|
9
|
-
for $translation_row in $translation_rows
|
10
|
-
original = $translation_row.querySelector('td.original textarea#translations__original_text').innerText
|
11
|
-
$translationArea = $translation_row.querySelector('td.translation textarea')
|
12
|
-
if $translationArea.innerText == '' && autotranslatingClicked == 1
|
13
|
-
translate(original, to_lang, $translationArea)
|
14
|
-
|
15
|
-
translate = (original, to, textarea) ->
|
16
|
-
$.get '/translate', {original: original, to: to}, ((response) ->
|
17
|
-
if response.status == 200
|
18
|
-
textarea.innerText = response.translated
|
19
|
-
), 'json'
|