phrase 0.4.24 → 0.4.25

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d19161a8b74d93add452fa8141fd6a7c3218736c
4
+ data.tar.gz: ccc2ffadca6cac58332e772def7ccb8a00798a91
5
+ SHA512:
6
+ metadata.gz: 7743e6c862f1191d1dbc06b16aa95e982e9d84633bcbb61a1361c9fed8c8d9c9d84d6935b6f0319e702d939397d34c141cba6d526353cdfc5c577ef782d36a0b
7
+ data.tar.gz: e0ab46de6616360e7d31aec7a7e5d64d41024307c3638dce43b92c049a473cf9d8cff26340ba44021e41b40bb33a6f19c84c291b8a99f5319defff69cbb67a77
@@ -1,4 +1,4 @@
1
- # -*- encoding : utf-8 -*-
1
+ # -*- encoding : utf-8 -*-
2
2
 
3
3
  require 'cgi'
4
4
  require 'json'
@@ -82,7 +82,7 @@ class Phrase::Api::Client
82
82
  true
83
83
  end
84
84
 
85
- def download_translations_for_locale(name, format, tag=nil, updated_since=nil, include_empty_translations=nil)
85
+ def download_translations_for_locale(name, format, tag=nil, updated_since=nil, include_empty_translations=nil, convert_emoji=nil)
86
86
  raise "You must specify a name" if name.nil? || name.blank?
87
87
  raise "You must specify a format" if format.nil? || format.blank?
88
88
 
@@ -92,8 +92,10 @@ class Phrase::Api::Client
92
92
  locale: name,
93
93
  tag: tag,
94
94
  updated_since: updated_since,
95
- include_empty_translations: include_empty_translations ? "1" : nil
95
+ include_empty_translations: include_empty_translations ? "1" : nil,
96
+ convert_emoji: convert_emoji ? "1" : nil
96
97
  }
98
+
97
99
  content = perform_api_request("/translations/download", :get, params)
98
100
  return content
99
101
  rescue Phrase::Api::Exceptions::ServerError => e
@@ -101,7 +103,7 @@ class Phrase::Api::Client
101
103
  end
102
104
  end
103
105
 
104
- def upload(filename, file_content, tags=[], locale=nil, format=nil, update_translations=false, skip_unverification=false, skip_upload_tags=false)
106
+ def upload(filename, file_content, tags=[], locale=nil, format=nil, update_translations=false, skip_unverification=false, skip_upload_tags=false, convert_emoji=false)
105
107
  begin
106
108
  params = {
107
109
  "file_format" => format,
@@ -110,7 +112,8 @@ class Phrase::Api::Client
110
112
  "tags[]" => tags,
111
113
  "update_translations" => update_translations ? "1" : "0",
112
114
  "skip_unverification" => skip_unverification ? "1" : "0",
113
- "skip_upload_tags" => skip_upload_tags ? "1" : "0"
115
+ "skip_upload_tags" => skip_upload_tags ? "1" : "0",
116
+ "convert_emoji" => convert_emoji ? "1" : "0"
114
117
  }
115
118
  params["locale_name"] = locale unless locale.nil?
116
119
  perform_api_request("/translation_keys/upload", :post, params)
@@ -23,14 +23,16 @@ module Phrase::Tool::Commands
23
23
  format: nil,
24
24
  update_translations: false,
25
25
  skip_unverification: false,
26
- skip_upload_tags: false
26
+ skip_upload_tags: false,
27
+ convert_emoji: nil
27
28
  },
28
29
  pull: {
29
30
  format: nil,
30
31
  target: nil,
31
32
  tag: nil,
32
33
  updated_since: nil,
33
- include_empty_translations: nil
34
+ include_empty_translations: nil,
35
+ convert_emoji: nil
34
36
  },
35
37
  tags: {
36
38
  list: true
@@ -1,4 +1,4 @@
1
- # -*- encoding : utf-8 -*-
1
+ # -*- encoding : utf-8 -*-f
2
2
 
3
3
  class Phrase::Tool::Commands::Pull < Phrase::Tool::Commands::Base
4
4
  ALLOWED_DOWNLOAD_FORMATS = Phrase::Formats::SUPPORTED_FORMATS.keys.map(&:to_s)
@@ -16,6 +16,7 @@ class Phrase::Tool::Commands::Pull < Phrase::Tool::Commands::Base
16
16
  @tag = @options.get(:tag)
17
17
  @updated_since = @options.get(:updated_since)
18
18
  @include_empty_translations = @options.get(:include_empty_translations)
19
+ @convert_emoji = @options.get(:convert_emoji)
19
20
  @target ||= Phrase::Formats.target_directory(@format) if format_valid?(@format)
20
21
  end
21
22
 
@@ -23,14 +24,14 @@ class Phrase::Tool::Commands::Pull < Phrase::Tool::Commands::Base
23
24
  (print_error("Invalid format: #{@format}") and exit_command) unless format_valid?(@format)
24
25
  locales_to_download.compact.each do |locale|
25
26
  print_message "Downloading #{locale.name}..."
26
- fetch_translations_for_locale(locale, @format, @tag, @updated_since, @include_empty_translations)
27
+ fetch_translations_for_locale(locale, @format, @tag, @updated_since, @include_empty_translations, @convert_emoji)
27
28
  end
28
29
  end
29
30
 
30
31
  private
31
- def fetch_translations_for_locale(locale, format, tag=nil, updated_since=nil, include_empty_translations=nil)
32
+ def fetch_translations_for_locale(locale, format, tag=nil, updated_since=nil, include_empty_translations=nil, convert_emoji=nil)
32
33
  begin
33
- content = api_client.download_translations_for_locale(locale.name, format, tag, updated_since, include_empty_translations)
34
+ content = api_client.download_translations_for_locale(locale.name, format, tag, updated_since, include_empty_translations, convert_emoji)
34
35
  store_content_in_locale_file(locale, content)
35
36
  rescue Exception => e
36
37
  print_error "Failed"
@@ -47,7 +48,7 @@ private
47
48
  begin
48
49
  FileUtils.mkpath(path)
49
50
  File.open(target, "w") do |file|
50
- file.write(content.force_encoding("UTF-8"))
51
+ file.write(encode(content))
51
52
  end
52
53
  print_message "Saved to #{clean_path target}".green
53
54
  rescue
@@ -56,6 +57,10 @@ private
56
57
  end
57
58
  end
58
59
 
60
+ def encode content
61
+ content.force_encoding("UTF-8")
62
+ end
63
+
59
64
  def clean_path(str)
60
65
  str.gsub("/./", "/")
61
66
  end
@@ -16,6 +16,7 @@ class Phrase::Tool::Commands::Push < Phrase::Tool::Commands::Base
16
16
  @update_translations = @options.get(:update_translations)
17
17
  @skip_unverification = @options.get(:skip_unverification)
18
18
  @skip_upload_tags = @options.get(:skip_upload_tags)
19
+ @convert_emoji = @options.get(:convert_emoji)
19
20
  end
20
21
 
21
22
  def execute!
@@ -91,7 +92,7 @@ private
91
92
  locale = Phrase::Tool::Locale.find_default_locale.try(:name)
92
93
  end
93
94
  locale = @locale if @locale
94
- api_client.upload(file, file_content(file), @tags, locale, @format, @update_translations, @skip_unverification, @skip_upload_tags)
95
+ api_client.upload(file, file_content(file), @tags, locale, @format, @update_translations, @skip_unverification, @skip_upload_tags, @convert_emoji)
95
96
  print_message "OK".green
96
97
  rescue Exception => e
97
98
  print_error "Failed"
@@ -71,6 +71,10 @@ class OptionsFactory
71
71
  set[:skip_upload_tags] = skip_upload_tags
72
72
  end
73
73
 
74
+ opts.on("--convert-emoji", "Convert Emojis to store and display them correctly in PhraseApp") do |convert_emoji|
75
+ set[:convert_emoji] = convert_emoji
76
+ end
77
+
74
78
  opts.on("--secret=YOUR_AUTH_TOKEN", String, "The Auth Token to use for this operation instead of the saved one (optional)") do |secret|
75
79
  set[:secret] = secret
76
80
  end
@@ -100,6 +104,10 @@ class OptionsFactory
100
104
  set[:include_empty_translations] = include_empty_translations
101
105
  end
102
106
 
107
+ opts.on("--convert-emoji", "Convert Emoji symbols") do |convert_emoji|
108
+ set[:convert_emoji] = convert_emoji
109
+ end
110
+
103
111
  opts.on("--secret=YOUR_AUTH_TOKEN", String, "The Auth Token to use for this operation instead of the saved one (optional)") do |secret|
104
112
  set[:secret] = secret
105
113
  end
@@ -1,3 +1,3 @@
1
1
  module Phrase
2
- VERSION = "0.4.24"
2
+ VERSION = "0.4.25"
3
3
  end
metadata CHANGED
@@ -1,174 +1,153 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phrase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.24
5
- prerelease:
4
+ version: 0.4.25
6
5
  platform: ruby
7
6
  authors:
8
7
  - Dynport GmbH
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-04-17 00:00:00.000000000 Z
11
+ date: 2014-05-26 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: colorize
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: json
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: i18n
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rake
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rspec
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: webmock
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: vcr
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - '>='
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - '>='
124
109
  - !ruby/object:Gem::Version
125
110
  version: '0'
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: timecop
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
- - - ! '>='
115
+ - - '>='
132
116
  - !ruby/object:Gem::Version
133
117
  version: '0'
134
118
  type: :development
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
- - - ! '>='
122
+ - - '>='
140
123
  - !ruby/object:Gem::Version
141
124
  version: '0'
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: genspec
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
- - - ! '>='
129
+ - - '>='
148
130
  - !ruby/object:Gem::Version
149
131
  version: '0'
150
132
  type: :development
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
- - - ! '>='
136
+ - - '>='
156
137
  - !ruby/object:Gem::Version
157
138
  version: '0'
158
139
  - !ruby/object:Gem::Dependency
159
140
  name: rails
160
141
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
142
  requirements:
163
- - - ! '>='
143
+ - - '>='
164
144
  - !ruby/object:Gem::Version
165
145
  version: '0'
166
146
  type: :development
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
149
  requirements:
171
- - - ! '>='
150
+ - - '>='
172
151
  - !ruby/object:Gem::Version
173
152
  version: '0'
174
153
  description: phrase allows you to edit translations in-place on the page itself. More
@@ -264,26 +243,25 @@ files:
264
243
  - phrase.gemspec
265
244
  homepage: https://phraseapp.com
266
245
  licenses: []
246
+ metadata: {}
267
247
  post_install_message:
268
248
  rdoc_options: []
269
249
  require_paths:
270
250
  - lib
271
251
  required_ruby_version: !ruby/object:Gem::Requirement
272
- none: false
273
252
  requirements:
274
- - - ! '>='
253
+ - - '>='
275
254
  - !ruby/object:Gem::Version
276
255
  version: '0'
277
256
  required_rubygems_version: !ruby/object:Gem::Requirement
278
- none: false
279
257
  requirements:
280
- - - ! '>='
258
+ - - '>='
281
259
  - !ruby/object:Gem::Version
282
260
  version: 1.3.6
283
261
  requirements: []
284
262
  rubyforge_project: phrase
285
- rubygems_version: 1.8.23
263
+ rubygems_version: 2.2.2
286
264
  signing_key:
287
- specification_version: 3
265
+ specification_version: 4
288
266
  summary: The best way to manage i18n.
289
267
  test_files: []