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 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: