web_translate_it 2.4.9 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ee4e863643d0a26d473d758833bbb905bf5d375de25e0892cae8068d72c5a688
4
- data.tar.gz: 8a3f926cb779cfc79a491d9a0085c1c5dc1a624877a503da3b06f1fe3ad1dd90
3
+ metadata.gz: f01930a3c46a7521f57e14caa623d495f37d81f1e392ceee1d11716e53366f69
4
+ data.tar.gz: 24f554f5a22af0333e19adbcd846e1e100d789d06be261b28a943851307e5c57
5
5
  SHA512:
6
- metadata.gz: dc9b48b992ef306e4a4f8955f0fedab83a8f50a8715137cc8e93d0fc7f3552266d15f33a195f6767781c52335f1c8f0d22bf4fc266e1e77feaf810f55647e7c6
7
- data.tar.gz: c2f83a87eb83ff79c4c6753bdcab18bd80aa5db17970b33a065b6267afb2b63e794e7c001a7aabddc883527d219b319392cc2e8e7d36511c35640cc1866e3736
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 configuser)
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", :type => :string
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", :short => "-c", :default => ".wti"
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", :type => :string
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", :type => :string
63
- opt :config, "Path to a configuration file", :short => "-c", :default => ".wti"
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", :short => "-c", :default => ".wti"
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", :short => "-c", :default => ".wti"
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", :short => "-c", :default => ".wti"
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", :short => "-c", :default => ".wti"
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", :short => "-c", :default => ".wti"
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", :short => "-c", :default => ".wti"
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", :short => "-c", :default => ".wti"
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 found_files.any?
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/rm master_file_1 path/to/master_file_2 ..."
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 }.each do |master_file|
137
- master_file.delete(http)
138
- # delete files
139
- success = File.delete(master_file.file_path) if File.exists?(master_file.file_path)
140
- complete_success = false if !success
141
- configuration.files.find_all{ |file| file.master_id == master_file.id }.each do |target_file|
142
- success = File.delete(target_file.file_path) if File.exists?(target_file.file_path)
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("\nCan't find a configuration file in #{File.expand_path(path_to_config_file, self.path)}")
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
- display.push(self.file_path)
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
- request = Net::HTTP::Put::Multipart.new(api_url, {"file" => UploadIO.new(file, "text/plain", file.path), "merge" => merge, "ignore_missing" => ignore_missing, "label" => label, "low_priority" => low_priority, "minor_changes" => minor_changes })
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
- File.open(self.file_path) do |file|
173
- begin
174
- request = Net::HTTP::Delete.new(api_url_for_delete)
175
- WebTranslateIt::Util.add_fields(request)
176
- display.push Util.handle_response(http_connection.request(request))
177
- puts ArrayUtil.to_columns(display)
178
- rescue Timeout::Error
179
- puts StringUtil.failure("Request timeout. Will retry in 5 seconds.")
180
- if (tries -= 1) > 0
181
- sleep(5)
182
- retry
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("\nFile #{self.file_path} doesn't exist!")
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
- " #{StringUtil.backward_truncate(arr[0])} | #{arr[1]} #{arr[2]}\n"
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-2014 Atelier Convivialite
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="https://s3.amazonaws.com/f.cl.ly/items/27192V1K263K2O433h2g/webtranslateit_com_%E2%80%94_edouard_Edouards-MacBook-Pro-2____code_webtranslateit_com_%E2%80%94___anslateit_com_%E2%80%94_zsh_%E2%80%94_80%C3%9740.png" alt="WebTranslateIt Synchronization Tool" width="500px">
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-2018 Atelier Convivialité, released under the MIT License.
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.9
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: 2019-08-07 00:00:00.000000000 Z
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
- rubyforge_project:
145
- rubygems_version: 2.7.7
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: