web_translate_it 2.4.9 → 2.5.0
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/bin/wti +21 -21
- data/history.md +36 -0
- data/lib/web_translate_it/command_line.rb +64 -11
- data/lib/web_translate_it/configuration.rb +15 -3
- data/lib/web_translate_it/translation_file.rb +30 -24
- data/lib/web_translate_it/util/array_util.rb +5 -1
- data/license +1 -1
- data/readme.md +2 -2
- metadata +6 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f01930a3c46a7521f57e14caa623d495f37d81f1e392ceee1d11716e53366f69
|
4
|
+
data.tar.gz: 24f554f5a22af0333e19adbcd846e1e100d789d06be261b28a943851307e5c57
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 65aa66ec8c8b70c937c18de52857e8d2a54835847b147ea2b9c8e07e761ea8ef262b1af6db87be42ee6b41c36b94eaee1748f677e36dacb453e27e84e4710f7d
|
7
|
+
data.tar.gz: 47d4c899f44bb80f04d695a0365fe2acd9948b3cfac8eec936ce9df44c846a4659fcbd34e1023aab686ac2b51ec3ed39f0e68ff84e3852484745ae905b058533
|
data/bin/wti
CHANGED
@@ -14,18 +14,18 @@ The most commonly used wti commands are:
|
|
14
14
|
match Display matching of local files with File Manager
|
15
15
|
add Create and push a new master language file
|
16
16
|
rm Delete a master language file from a project
|
17
|
+
mv Moves a file both locally and from a project
|
17
18
|
addlocale Add a new locale to the project
|
18
19
|
rmlocale Delete a locale from a project
|
19
20
|
status Fetch and display project statistics
|
20
21
|
init Configure your project to sync
|
21
|
-
configuser Configure your user email
|
22
22
|
|
23
23
|
See `wti <command> --help` for more information on a specific command.
|
24
24
|
|
25
25
|
[options] are:
|
26
26
|
EOS
|
27
27
|
|
28
|
-
SUB_COMMANDS = %w(pull push match add addlocale status st init
|
28
|
+
SUB_COMMANDS = %w(pull push match add rm mv addlocale rmlocale status st init)
|
29
29
|
global_options = Optimist::options do
|
30
30
|
stop_on SUB_COMMANDS
|
31
31
|
banner show_commands
|
@@ -40,10 +40,10 @@ command_options = case command
|
|
40
40
|
wti pull [filename] - Pull target language file(s)
|
41
41
|
[options] are:
|
42
42
|
EOS
|
43
|
-
opt :locale, "ISO code of locale(s) to pull", :
|
43
|
+
opt :locale, "ISO code of locale(s) to pull, space-separated", type: :string
|
44
44
|
opt :all, "Pull all files"
|
45
45
|
opt :force, "Force pull (bypass conditional requests to WTI)"
|
46
|
-
opt :config, "Path to a configuration file", :
|
46
|
+
opt :config, "Path to a configuration file", short: "-c", default: ".wti"
|
47
47
|
opt :debug, "Display debug information"
|
48
48
|
end
|
49
49
|
when "push"
|
@@ -52,15 +52,15 @@ EOS
|
|
52
52
|
wti push [filename] - Push master language file(s)
|
53
53
|
[options] are:
|
54
54
|
EOS
|
55
|
-
opt :locale, "ISO code of locale(s) to push", :
|
55
|
+
opt :locale, "ISO code of locale(s) to push, space-separated", type: :string
|
56
56
|
opt :target, "Upload all target files"
|
57
57
|
opt :force, "Force push (bypass conditional requests to WTI)"
|
58
58
|
opt :low_priority, "WTI will process this file with a low priority"
|
59
59
|
opt :merge, "Force WTI to merge this file"
|
60
60
|
opt :ignore_missing, "Force WTI to not obsolete missing strings"
|
61
61
|
opt :minor, "Minor Changes. When pushing a master file, prevents target translations to be flagged as `to_verify`."
|
62
|
-
opt :label, "Apply a label to the changes", :
|
63
|
-
opt :config, "Path to a configuration file", :
|
62
|
+
opt :label, "Apply a label to the changes", type: :string
|
63
|
+
opt :config, "Path to a configuration file", short: "-c", default: ".wti"
|
64
64
|
opt :all, "DEPRECATED -- See `wti push --target` instead"
|
65
65
|
opt :debug, "Display debug information"
|
66
66
|
end
|
@@ -68,48 +68,49 @@ EOS
|
|
68
68
|
Optimist::options do
|
69
69
|
banner "wti add filename - Create and push a new master language file"
|
70
70
|
opt :low_priority, "WTI will process this file with a low priority"
|
71
|
-
opt :config, "Path to a configuration file", :
|
71
|
+
opt :config, "Path to a configuration file", short: "-c", default: ".wti"
|
72
72
|
opt :debug, "Display debug information"
|
73
73
|
end
|
74
74
|
when "rm"
|
75
75
|
Optimist::options do
|
76
76
|
banner "wti rm filename - Delete a master language file"
|
77
|
-
opt :config, "Path to a configuration file", :
|
77
|
+
opt :config, "Path to a configuration file", short: "-c", default: ".wti"
|
78
78
|
opt :debug, "Display debug information"
|
79
79
|
end
|
80
|
+
when "mv"
|
81
|
+
Optimist::options do
|
82
|
+
banner "wti mv filename - Moves a master language file and its target files"
|
83
|
+
opt :config, "Path to a configuration file", short: "-c", default: ".wti"
|
84
|
+
opt :debug, "Display debug information"
|
85
|
+
end
|
80
86
|
when "addlocale"
|
81
87
|
Optimist::options do
|
82
88
|
banner "wti addlocale localename - Add a new locale to the project"
|
83
|
-
opt :config, "Path to a configuration file", :
|
89
|
+
opt :config, "Path to a configuration file", short: "-c", default: ".wti"
|
84
90
|
opt :debug, "Display debug information"
|
85
91
|
end
|
86
92
|
when "rmlocale"
|
87
93
|
Optimist::options do
|
88
94
|
banner "wti rmlocale localename Delete a locale from the project"
|
89
|
-
opt :config, "Path to a configuration file", :
|
95
|
+
opt :config, "Path to a configuration file", short: "-c", default: ".wti"
|
90
96
|
opt :debug, "Display debug information"
|
91
97
|
end
|
92
98
|
when "status"
|
93
99
|
Optimist::options do
|
94
|
-
banner "wti status - Fetch and display project statistics"
|
95
|
-
opt :config, "Path to a configuration file", :
|
100
|
+
banner "wti status - Fetch and display project statistics.\nReturns 100 if untranslated segments exist in project\nReturns 101 if unproofread segments exist in project."
|
101
|
+
opt :config, "Path to a configuration file", short: "-c", default: ".wti"
|
96
102
|
opt :debug, "Display debug information"
|
97
103
|
end
|
98
104
|
when "init"
|
99
105
|
Optimist::options do
|
100
106
|
banner "wti init [api_token] - Configure your project to sync"
|
101
|
-
opt :config, "Path to a configuration file", :
|
102
|
-
opt :debug, "Display debug information"
|
103
|
-
end
|
104
|
-
when "configuser"
|
105
|
-
Optimist::options do
|
106
|
-
banner "wti configuser - Configure your user email"
|
107
|
+
opt :config, "Path to a configuration file", short: "-c", default: ".wti"
|
107
108
|
opt :debug, "Display debug information"
|
108
109
|
end
|
109
110
|
when "match"
|
110
111
|
Optimist::options do
|
111
112
|
banner "wti match - Display matching of local files with File Manager"
|
112
|
-
opt :config, "Path to a configuration file", :
|
113
|
+
opt :config, "Path to a configuration file", short: "-c", default: ".wti"
|
113
114
|
opt :debug, "Display debug information"
|
114
115
|
end
|
115
116
|
else
|
@@ -128,4 +129,3 @@ rescue Interrupt => e
|
|
128
129
|
puts StringUtil.failure("\nQuitting...")
|
129
130
|
exit 1
|
130
131
|
end
|
131
|
-
|
data/history.md
CHANGED
@@ -1,3 +1,39 @@
|
|
1
|
+
## Version 2.5.0 / 2021-11-15
|
2
|
+
|
3
|
+
* Display files that are being updated on WebTranslateIt but are not ready to be downloaded by a `*`.
|
4
|
+
|
5
|
+
``` bash
|
6
|
+
~/Desktop/test% wti pull
|
7
|
+
# Pulling files on test 3
|
8
|
+
*cs-CZ.de.yml | 65a7fc8..65a7fc8 Skipped
|
9
|
+
en.yml | ffd8096..ffd8096 Skipped
|
10
|
+
i18nextv4.de.json | 142aca7..142aca7 Skipped
|
11
|
+
*cs-CZ.yml | 42c32a3..42c32a3 Skipped
|
12
|
+
de.yml | 9dda491..9dda491 Skipped
|
13
|
+
test.de.json | 48a9c13..48a9c13 Skipped
|
14
|
+
test.de.txt | 8f305f3..8f305f3 Skipped
|
15
|
+
test.json | 7a9478f..7a9478f Skipped
|
16
|
+
i18nextv4.json | 84d6cdf..8776cb3 OK
|
17
|
+
test.txt | 8f305f3..7a1a5db OK
|
18
|
+
```
|
19
|
+
* Improve help on `wti status` documentation.
|
20
|
+
|
21
|
+
## Version 2.4.12 / 2021-06-30
|
22
|
+
|
23
|
+
* Add ability to pass project API token as an ENV variable. You can run:
|
24
|
+
`export WTI_PROJECT_API_KEY=[my_api_token]`
|
25
|
+
`wti pull`
|
26
|
+
|
27
|
+
## Version 2.4.11 / 2019-10-22
|
28
|
+
|
29
|
+
* Fix for `wti pull` without parameters.
|
30
|
+
|
31
|
+
## Version 2.4.10 / 2019-10-21
|
32
|
+
|
33
|
+
* New command: `wti mv path/to/file.po newpath/to/file.po` to move a language file
|
34
|
+
both on your local working directory and on your WebTranslateIt project.
|
35
|
+
* Fix: `wti pull something` now doesn’t pull anything if no files match what needs to be pulled. Close #151.
|
36
|
+
|
1
37
|
## Version 2.4.9 / 2019-08-07
|
2
38
|
|
3
39
|
* Fix issue referencing old `Trollop` library. #149
|
@@ -18,6 +18,8 @@ module WebTranslateIt
|
|
18
18
|
message = "Creating master files"
|
19
19
|
when 'rm'
|
20
20
|
message = "Deleting files"
|
21
|
+
when 'mv'
|
22
|
+
message = "Moving files"
|
21
23
|
when 'addlocale'
|
22
24
|
message = "Adding locale"
|
23
25
|
when 'rmlocale'
|
@@ -44,7 +46,7 @@ module WebTranslateIt
|
|
44
46
|
parameters.each do |parameter|
|
45
47
|
found_files += files.find_all{ |file| File.fnmatch(parameter, file.file_path) }
|
46
48
|
end
|
47
|
-
files = found_files if
|
49
|
+
files = found_files if parameters.any?
|
48
50
|
files = files.uniq.sort{ |a,b| a.file_path <=> b.file_path }
|
49
51
|
if files.size == 0
|
50
52
|
puts "No files to pull."
|
@@ -111,7 +113,7 @@ module WebTranslateIt
|
|
111
113
|
to_add = parameters.reject{ |param| added.include?(File.expand_path(param))}
|
112
114
|
if to_add.any?
|
113
115
|
to_add.each do |param|
|
114
|
-
file = TranslationFile.new(nil, param, nil, configuration.api_key)
|
116
|
+
file = TranslationFile.new(nil, param.gsub(/ /, "\\ "), nil, configuration.api_key)
|
115
117
|
success = file.create(http, command_options.low_priority)
|
116
118
|
complete_success = false if !success
|
117
119
|
end
|
@@ -127,26 +129,77 @@ module WebTranslateIt
|
|
127
129
|
STDOUT.sync = true
|
128
130
|
if parameters == []
|
129
131
|
puts StringUtil.failure("Error: You must provide the path to the master file to remove.")
|
130
|
-
puts "Usage: wti path/to/
|
132
|
+
puts "Usage: wti rm path/to/master_file_1 path/to/master_file_2 ..."
|
131
133
|
exit
|
132
134
|
end
|
133
135
|
WebTranslateIt::Connection.new(configuration.api_key) do |http|
|
134
136
|
parameters.each do |param|
|
135
137
|
if Util.ask_yes_no("Are you sure you want to delete the master file #{param}?\nThis will also delete its target files and translations.", false)
|
136
|
-
configuration.files.find_all{ |file| file.file_path == param }
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
138
|
+
files = configuration.files.find_all{ |file| file.file_path == param }
|
139
|
+
if files.any?
|
140
|
+
files.each do |master_file|
|
141
|
+
master_file.delete(http)
|
142
|
+
# delete files
|
143
|
+
if File.exists?(master_file.file_path)
|
144
|
+
success = File.delete(master_file.file_path)
|
145
|
+
puts StringUtil.success("Deleted master file #{master_file.file_path}.") if success
|
146
|
+
end
|
143
147
|
complete_success = false if !success
|
148
|
+
configuration.files.find_all{ |file| file.master_id == master_file.id }.each do |target_file|
|
149
|
+
if File.exists?(target_file.file_path)
|
150
|
+
success = File.delete(target_file.file_path)
|
151
|
+
puts StringUtil.success("Deleted target file #{target_file.file_path}.") if success
|
152
|
+
else
|
153
|
+
puts StringUtil.failure("Target file #{target_file.file_path} doesn’t exist locally")
|
154
|
+
end
|
155
|
+
complete_success = false if !success
|
156
|
+
end
|
144
157
|
end
|
158
|
+
puts StringUtil.success("All done.") if complete_success
|
159
|
+
else
|
160
|
+
puts StringUtil.failure("#{param}: File doesn’t exist on project.")
|
161
|
+
end
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
complete_success
|
166
|
+
end
|
167
|
+
|
168
|
+
def mv
|
169
|
+
complete_success = true
|
170
|
+
STDOUT.sync = true
|
171
|
+
if parameters.count != 2
|
172
|
+
puts StringUtil.failure("Error: You must provide the source path and destination path of the master file to move.")
|
173
|
+
puts "Usage: wti mv path/to/master_file_old_path path/to/master_file_new_path ..."
|
174
|
+
exit
|
175
|
+
end
|
176
|
+
source = parameters[0]
|
177
|
+
destination = parameters[1]
|
178
|
+
WebTranslateIt::Connection.new(configuration.api_key) do |http|
|
179
|
+
if Util.ask_yes_no("Are you sure you want to move the master file #{source} and its target files?", true)
|
180
|
+
configuration.files.find_all{ |file| file.file_path == source }.each do |master_file|
|
181
|
+
master_file.upload(http, false, false, nil, false, false, true, true, destination)
|
182
|
+
# move master file
|
183
|
+
if File.exists?(source)
|
184
|
+
success = File.rename(source, destination) if File.exists?(source)
|
185
|
+
puts StringUtil.success("Moved master file #{master_file.file_path}.") if success
|
186
|
+
end
|
187
|
+
complete_success = false if !success
|
188
|
+
configuration.files.find_all{ |file| file.master_id == master_file.id }.each do |target_file|
|
189
|
+
if File.exists?(target_file.file_path)
|
190
|
+
success = File.delete(target_file.file_path)
|
191
|
+
complete_success = false if !success
|
192
|
+
end
|
193
|
+
end
|
194
|
+
configuration.reload
|
195
|
+
configuration.files.find_all{ |file| file.master_id == master_file.id }.each do |target_file|
|
196
|
+
success = target_file.fetch(http)
|
197
|
+
complete_success = false if !success
|
145
198
|
end
|
199
|
+
puts StringUtil.success("All done.") if complete_success
|
146
200
|
end
|
147
201
|
end
|
148
202
|
end
|
149
|
-
puts StringUtil.success("Master file deleted.")
|
150
203
|
complete_success
|
151
204
|
end
|
152
205
|
|
@@ -20,7 +20,7 @@ module WebTranslateIt
|
|
20
20
|
self.path = root_path
|
21
21
|
self.logger = logger
|
22
22
|
if File.exists?(File.expand_path(path_to_config_file, self.path))
|
23
|
-
self.api_key = configuration['api_key']
|
23
|
+
self.api_key = ENV["WTI_PROJECT_API_KEY"] || configuration['api_key']
|
24
24
|
self.before_pull = configuration['before_pull']
|
25
25
|
self.after_pull = configuration['after_pull']
|
26
26
|
self.before_push = configuration['before_push']
|
@@ -33,11 +33,23 @@ module WebTranslateIt
|
|
33
33
|
WebTranslateIt::Connection.turn_silent_on if configuration['silence_errors']
|
34
34
|
self.project_name = project_info['project']['name']
|
35
35
|
else
|
36
|
-
puts StringUtil.failure("\
|
36
|
+
puts StringUtil.failure("\nNo configuration file found in #{File.expand_path(path_to_config_file, self.path)}")
|
37
37
|
exit(1)
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
+
# Reload project data
|
42
|
+
#
|
43
|
+
def reload
|
44
|
+
project_info = YAML.load WebTranslateIt::Project.fetch_info(self.api_key)
|
45
|
+
set_locales_to_ignore(configuration)
|
46
|
+
set_locales_needed(configuration)
|
47
|
+
set_files(project_info['project'])
|
48
|
+
set_locales(project_info['project'])
|
49
|
+
WebTranslateIt::Connection.turn_silent_on if configuration['silence_errors']
|
50
|
+
self.project_name = project_info['project']['name']
|
51
|
+
end
|
52
|
+
|
41
53
|
# Set the project locales from the Project API.
|
42
54
|
# Implementation example:
|
43
55
|
#
|
@@ -59,7 +71,7 @@ module WebTranslateIt
|
|
59
71
|
if project_file['name'].nil? or project_file['name'].strip == ''
|
60
72
|
puts "File #{project_file['id']} not set up"
|
61
73
|
else
|
62
|
-
self.files.push TranslationFile.new(project_file['id'], project_file['name'], project_file['locale_code'], self.api_key, project_file['updated_at'], project_file['hash_file'], project_file['master_project_file_id'])
|
74
|
+
self.files.push TranslationFile.new(project_file['id'], project_file['name'], project_file['locale_code'], self.api_key, project_file['updated_at'], project_file['hash_file'], project_file['master_project_file_id'], project_file['fresh'])
|
63
75
|
end
|
64
76
|
end
|
65
77
|
end
|
@@ -12,9 +12,9 @@ module WebTranslateIt
|
|
12
12
|
require 'time'
|
13
13
|
require 'fileutils'
|
14
14
|
|
15
|
-
attr_accessor :id, :file_path, :locale, :api_key, :updated_at, :remote_checksum, :master_id
|
15
|
+
attr_accessor :id, :file_path, :locale, :api_key, :updated_at, :remote_checksum, :master_id, :fresh
|
16
16
|
|
17
|
-
def initialize(id, file_path, locale, api_key, updated_at = nil, remote_checksum = "", master_id = nil)
|
17
|
+
def initialize(id, file_path, locale, api_key, updated_at = nil, remote_checksum = "", master_id = nil, fresh = nil)
|
18
18
|
self.id = id
|
19
19
|
self.file_path = file_path
|
20
20
|
self.locale = locale
|
@@ -22,6 +22,7 @@ module WebTranslateIt
|
|
22
22
|
self.updated_at = updated_at
|
23
23
|
self.remote_checksum = remote_checksum
|
24
24
|
self.master_id = master_id
|
25
|
+
self.fresh = fresh
|
25
26
|
end
|
26
27
|
|
27
28
|
# Fetch a language file.
|
@@ -40,7 +41,11 @@ module WebTranslateIt
|
|
40
41
|
success = true
|
41
42
|
tries ||= 3
|
42
43
|
display = []
|
43
|
-
|
44
|
+
if self.fresh
|
45
|
+
display.push(self.file_path)
|
46
|
+
else
|
47
|
+
display.push("*#{self.file_path}")
|
48
|
+
end
|
44
49
|
display.push "#{StringUtil.checksumify(self.local_checksum.to_s)}..#{StringUtil.checksumify(self.remote_checksum.to_s)}"
|
45
50
|
if !File.exist?(self.file_path) or force or self.remote_checksum != self.local_checksum
|
46
51
|
begin
|
@@ -82,7 +87,7 @@ module WebTranslateIt
|
|
82
87
|
#
|
83
88
|
# Note that the request might or might not eventually be acted upon, as it might be disallowed when processing
|
84
89
|
# actually takes place. This is due to the fact that language file imports are handled by background processing.
|
85
|
-
def upload(http_connection, merge=false, ignore_missing=false, label=nil, low_priority=false, minor_changes=false, force=false)
|
90
|
+
def upload(http_connection, merge=false, ignore_missing=false, label=nil, low_priority=false, minor_changes=false, force=false, rename_others=false, destination_path=nil)
|
86
91
|
success = true
|
87
92
|
tries ||= 3
|
88
93
|
display = []
|
@@ -92,7 +97,10 @@ module WebTranslateIt
|
|
92
97
|
if force or self.remote_checksum != self.local_checksum
|
93
98
|
File.open(self.file_path) do |file|
|
94
99
|
begin
|
95
|
-
|
100
|
+
params = {"file" => UploadIO.new(file, "text/plain", file.path), "merge" => merge, "ignore_missing" => ignore_missing, "label" => label, "low_priority" => low_priority, "minor_changes" => minor_changes }
|
101
|
+
params["name"] = destination_path unless destination_path.nil?
|
102
|
+
params["rename_others"] = rename_others
|
103
|
+
request = Net::HTTP::Put::Multipart.new(api_url, params)
|
96
104
|
WebTranslateIt::Util.add_fields(request)
|
97
105
|
display.push Util.handle_response(http_connection.request(request))
|
98
106
|
rescue Timeout::Error
|
@@ -113,7 +121,7 @@ module WebTranslateIt
|
|
113
121
|
end
|
114
122
|
puts ArrayUtil.to_columns(display)
|
115
123
|
else
|
116
|
-
puts StringUtil.failure("Can't push #{self.file_path}. File doesn't exist.")
|
124
|
+
puts StringUtil.failure("Can't push #{self.file_path}. File doesn't exist locally.")
|
117
125
|
end
|
118
126
|
return success
|
119
127
|
end
|
@@ -156,7 +164,7 @@ module WebTranslateIt
|
|
156
164
|
end
|
157
165
|
end
|
158
166
|
else
|
159
|
-
puts StringUtil.failure("\nFile #{self.file_path} doesn't exist!")
|
167
|
+
puts StringUtil.failure("\nFile #{self.file_path} doesn't exist locally!")
|
160
168
|
end
|
161
169
|
return success
|
162
170
|
end
|
@@ -169,27 +177,25 @@ module WebTranslateIt
|
|
169
177
|
display = []
|
170
178
|
display.push file_path
|
171
179
|
if File.exists?(self.file_path)
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
else
|
184
|
-
success = false
|
185
|
-
end
|
186
|
-
rescue
|
187
|
-
display.push StringUtil.failure("An error occured: #{$!}")
|
180
|
+
begin
|
181
|
+
request = Net::HTTP::Delete.new(api_url_for_delete)
|
182
|
+
WebTranslateIt::Util.add_fields(request)
|
183
|
+
display.push Util.handle_response(http_connection.request(request))
|
184
|
+
puts ArrayUtil.to_columns(display)
|
185
|
+
rescue Timeout::Error
|
186
|
+
puts StringUtil.failure("Request timeout. Will retry in 5 seconds.")
|
187
|
+
if (tries -= 1) > 0
|
188
|
+
sleep(5)
|
189
|
+
retry
|
190
|
+
else
|
188
191
|
success = false
|
189
192
|
end
|
193
|
+
rescue
|
194
|
+
display.push StringUtil.failure("An error occured: #{$!}")
|
195
|
+
success = false
|
190
196
|
end
|
191
197
|
else
|
192
|
-
puts StringUtil.failure("\
|
198
|
+
puts StringUtil.failure("\nMaster file #{self.file_path} doesn't exist locally!")
|
193
199
|
end
|
194
200
|
return success
|
195
201
|
end
|
@@ -1,6 +1,10 @@
|
|
1
1
|
class ArrayUtil
|
2
2
|
def self.to_columns(arr)
|
3
|
-
|
3
|
+
if arr[0][0] == "*"
|
4
|
+
"*#{StringUtil.backward_truncate(arr[0][1..-1])} | #{arr[1]} #{arr[2]}\n"
|
5
|
+
else
|
6
|
+
" #{StringUtil.backward_truncate(arr[0])} | #{arr[1]} #{arr[2]}\n"
|
7
|
+
end
|
4
8
|
end
|
5
9
|
|
6
10
|
def self.chunk(arr, pieces=2)
|
data/license
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright (c) 2009-
|
3
|
+
Copyright (c) 2009-2019 WebTranslateIt Software S.L
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
6
6
|
this software and associated documentation files (the "Software"), to deal in
|
data/readme.md
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
wti lets you easily sync your language files with [WebTranslateIt.com](https://webtranslateit.com), a web-based tool to translation software.
|
9
9
|
|
10
|
-
<img src="
|
10
|
+
<img src="http://edouard.baconfile.com.s3.us-east-1.amazonaws.com/web_translate_it/wti4.png" alt="WebTranslateIt Synchronization Tool" width="500px">
|
11
11
|
|
12
12
|
### wti...
|
13
13
|
|
@@ -276,4 +276,4 @@ fr: 100% translated, 100% completed.
|
|
276
276
|
|
277
277
|
# License
|
278
278
|
|
279
|
-
Copyright (c) 2009-
|
279
|
+
Copyright (c) 2009-2021 WebTranslateIt Software S.L, released under the MIT License.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: web_translate_it
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Edouard Briere
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-11-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multipart-post
|
@@ -124,7 +124,7 @@ homepage: https://webtranslateit.com
|
|
124
124
|
licenses:
|
125
125
|
- MIT
|
126
126
|
metadata: {}
|
127
|
-
post_install_message:
|
127
|
+
post_install_message:
|
128
128
|
rdoc_options:
|
129
129
|
- "--main"
|
130
130
|
- readme.md
|
@@ -141,9 +141,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
141
|
- !ruby/object:Gem::Version
|
142
142
|
version: '0'
|
143
143
|
requirements: []
|
144
|
-
|
145
|
-
|
146
|
-
signing_key:
|
144
|
+
rubygems_version: 3.0.6
|
145
|
+
signing_key:
|
147
146
|
specification_version: 4
|
148
147
|
summary: A CLI to sync locale files with WebTranslateIt.com.
|
149
148
|
test_files:
|