tolk 4.1.0 → 4.3.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: 5564840ddc80ff7aa53877b92a53d012c1d7da569d66ebc62f0de81b3e048ce9
4
- data.tar.gz: 5e341c5940739f53d6d391de924fce6c85894992362b9d3946be674bbc33c0e3
3
+ metadata.gz: 16e13f007c1439906c3231b8f392450bb0a5537b6ef7b9f04b6ecc33475131b2
4
+ data.tar.gz: 90014d2dde967571b20d112584ff2bb5b69e4e75f0ba45eff8e24cbe9746e461
5
5
  SHA512:
6
- metadata.gz: 27468ef20b2250b344ab1f4e2905eee920f504f37d20b8a2293fd327dd409ce309bf1246bab0b4525652b27d35a7558d3db597a9f3adee3431b4358f045949f6
7
- data.tar.gz: 4f4ec9c4114d4d9503f3c7339f9f3cb00e2e0db0454bb36b32f9eb737f8add9f5e9e12fd8fb8dc3596502f5ef4316160b79abf9bf2cf3881854a6be3907c1141
6
+ metadata.gz: f66f126b8023ed812ee3f1a5e8a28a9f7392a77b7cf6af9b5a58b2e1e3e87081a1eef484939833424acdb18e2bf0992d8214be56fbb199f8f536b259cd966704
7
+ data.tar.gz: 66d9c79259a92f84cdbcea223142ebce7ae445ceb350119c751a6e9070ea1610baf3e5d611b9b8d0d3fcb4207a61975a9553545edda2169edf9f0effd1531aeb
@@ -107,7 +107,9 @@ module Tolk
107
107
  phrases = phrases.where('tolk_phrases.id NOT IN (?)', existing_ids) if existing_ids.present?
108
108
 
109
109
  result = phrases.public_send(pagination_method, page)
110
- if Rails.version =~ /^4\.0/
110
+ if Gem::Version.new(Rails.version) >= Gem::Version.new('7')
111
+ ActiveRecord::Associations::Preloader.new(records: result, associations: :translations).call
112
+ elsif Rails.version =~ /^4\.0/
111
113
  ActiveRecord::Associations::Preloader.new result, :translations
112
114
  else
113
115
  ActiveRecord::Associations::Preloader.new().preload(result, :translations)
@@ -143,7 +145,9 @@ module Tolk
143
145
  # phrases = phrases.scoped(:conditions => ['tolk_phrases.id NOT IN (?) AND tolk_phrases.id IN(?)', existing_ids, found_translations_ids]) if existing_ids.present?
144
146
  phrases = phrases.where(['tolk_phrases.id NOT IN (?) AND tolk_phrases.id IN(?)', existing_ids, found_translations_ids]) if existing_ids.present?
145
147
  result = phrases.public_send(pagination_method, page)
146
- if Rails.version =~ /^4\.0/
148
+ if Gem::Version.new(Rails.version) >= Gem::Version.new('7')
149
+ ActiveRecord::Associations::Preloader.new(records: result, associations: :translations).call
150
+ elsif Rails.version =~ /^4\.0/
147
151
  ActiveRecord::Associations::Preloader.new result, :translations
148
152
  else
149
153
  ActiveRecord::Associations::Preloader.new().preload(result, :translations)
@@ -153,14 +157,14 @@ module Tolk
153
157
  end
154
158
 
155
159
  def to_hash
156
- data = translations.joins(:phrase).order("tolk_phrases.key ASC").pluck("tolk_phrases.key, text").
157
- each_with_object(Hash.new(0)) do |translation, locale|
158
- if translation[0].include?(".")
159
- locale.deep_merge!(unsquish(translation[0], translation[1]))
160
- else
161
- locale[translation[0]] = translation[1]
160
+ data = translations.includes(:phrase).references(:phrases).order(phrases.arel_table[:key]).
161
+ each_with_object({}) do |translation, locale|
162
+ if translation.phrase.key.include?(".")
163
+ locale.deep_merge!(unsquish(translation.phrase.key, translation.value))
164
+ else
165
+ locale[translation.phrase.key] = translation.value
166
+ end
162
167
  end
163
- end
164
168
  { name => data }
165
169
  end
166
170
 
@@ -186,7 +190,9 @@ module Tolk
186
190
  def translations_with_html
187
191
  translations = self.translations.all(:conditions => "tolk_translations.text LIKE '%>%' AND
188
192
  tolk_translations.text LIKE '%<%' AND tolk_phrases.key NOT LIKE '%_html'", :joins => :phrase)
189
- if Rails.version =~ /^4\.0/
193
+ if Gem::Version.new(Rails.version) >= Gem::Version.new('7')
194
+ ActiveRecord::Associations::Preloader.new(records: result, associations: :translations).call
195
+ elsif Rails.version =~ /^4\.0/
190
196
  ActiveRecord::Associations::Preloader.new translations, :phrase
191
197
  else
192
198
  ActiveRecord::Associations::Preloader.new().preload(translations, :phrase)
@@ -230,7 +236,9 @@ module Tolk
230
236
  phrase.translation = phrase.translations.for(self)
231
237
  end
232
238
 
233
- if Rails.version =~ /^4\.0/
239
+ if Gem::Version.new(Rails.version) >= Gem::Version.new('7')
240
+ ActiveRecord::Associations::Preloader.new(records: result, associations: :translations).call
241
+ elsif Rails.version =~ /^4\.0/
234
242
  ActiveRecord::Associations::Preloader.new result, :translations
235
243
  else
236
244
  ActiveRecord::Associations::Preloader.new().preload(result, :translations)
File without changes
File without changes
File without changes
@@ -79,7 +79,7 @@
79
79
  </div>
80
80
  <% else %>
81
81
  <div class="empty-state">
82
- <%= render 'tolk/blank_canva.svg' %>
82
+ <%= render 'tolk/blank_canva' %>
83
83
  <p class="empty-state__msg">
84
84
  There aren't any completed translations for this locale.
85
85
  </p>
@@ -32,7 +32,7 @@
32
32
  </ul>
33
33
  <% else %>
34
34
  <div class="empty-state">
35
- <%= render 'tolk/empty.svg' %>
35
+ <%= render 'tolk/empty' %>
36
36
  <p class="empty-state__msg">
37
37
  No locales yet, add one:
38
38
  </p>
@@ -64,7 +64,7 @@
64
64
  </div>
65
65
  <% else %>
66
66
  <div class="empty-state">
67
- <%= render 'tolk/houra.svg' %>
67
+ <%= render 'tolk/houra' %>
68
68
  <p class="empty-state__msg">
69
69
  <% if @locale.has_updated_translations? %>
70
70
  There aren't any missing phrases that need translation.
@@ -60,7 +60,7 @@
60
60
  </div>
61
61
  <% else %>
62
62
  <div class="empty-state">
63
- <%= render 'tolk/no_data.svg' %>
63
+ <%= render 'tolk/no_data' %>
64
64
  <p class="empty-state__msg">
65
65
  No search results.
66
66
  </p>
data/lib/tolk/config.rb CHANGED
@@ -20,6 +20,9 @@ module Tolk
20
20
  # reject files of type xxx.en.yml when syncing locales
21
21
  attr_accessor :block_xxx_en_yml_locale_files
22
22
 
23
+ # specify an array of files to skip ["devise"] will skip devise.<locale>.yml when syncing locales.
24
+ attr_accessor :ignore_locale_files
25
+
23
26
  # strip translation texts automatically
24
27
  attr_accessor :strip_texts
25
28
 
data/lib/tolk/sync.rb CHANGED
@@ -25,6 +25,16 @@ module Tolk
25
25
  translations_files = translations_files.reject(&locale_block_filter)
26
26
  end
27
27
 
28
+ if Tolk.config.ignore_locale_files.present?
29
+ locale_block_filter = Proc.new do |file_name|
30
+ directory_path = Rails.root.join('config', 'locales', 'final_separator').to_s.gsub("final_separator", "")
31
+ normalized_file_name = file_name.gsub(directory_path, "").split('.').first
32
+ Tolk.config.ignore_locale_files.include?(normalized_file_name)
33
+ end
34
+ translations_files = translations_files.reject(&locale_block_filter)
35
+ end
36
+
37
+
28
38
  I18n.backend.load_translations(translations_files)
29
39
  else
30
40
  I18n.backend.send :init_translations unless I18n.backend.initialized? # force load
data/lib/tolk/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Tolk
2
- VERSION = "4.1.0"
2
+ VERSION = "4.3.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tolk
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0
4
+ version: 4.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
@@ -9,10 +9,10 @@ authors:
9
9
  - Emilio Tagua
10
10
  - Thomas Darde
11
11
  - Ferran Basora
12
- autorequire:
12
+ autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2021-07-21 00:00:00.000000000 Z
15
+ date: 2022-04-06 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rails
@@ -29,47 +29,47 @@ dependencies:
29
29
  - !ruby/object:Gem::Version
30
30
  version: '5.0'
31
31
  - !ruby/object:Gem::Dependency
32
- name: safe_yaml
32
+ name: sprockets-rails
33
33
  requirement: !ruby/object:Gem::Requirement
34
34
  requirements:
35
- - - ">="
35
+ - - "~>"
36
36
  - !ruby/object:Gem::Version
37
- version: 0.8.6
37
+ version: '3.4'
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
41
41
  requirements:
42
- - - ">="
42
+ - - "~>"
43
43
  - !ruby/object:Gem::Version
44
- version: 0.8.6
44
+ version: '3.4'
45
45
  - !ruby/object:Gem::Dependency
46
- name: sassc
46
+ name: safe_yaml
47
47
  requirement: !ruby/object:Gem::Requirement
48
48
  requirements:
49
49
  - - ">="
50
50
  - !ruby/object:Gem::Version
51
- version: '0'
51
+ version: 0.8.6
52
52
  type: :runtime
53
53
  prerelease: false
54
54
  version_requirements: !ruby/object:Gem::Requirement
55
55
  requirements:
56
56
  - - ">="
57
57
  - !ruby/object:Gem::Version
58
- version: '0'
58
+ version: 0.8.6
59
59
  - !ruby/object:Gem::Dependency
60
- name: capybara
60
+ name: sassc
61
61
  requirement: !ruby/object:Gem::Requirement
62
62
  requirements:
63
- - - "~>"
63
+ - - ">="
64
64
  - !ruby/object:Gem::Version
65
- version: '2.14'
66
- type: :development
65
+ version: '0'
66
+ type: :runtime
67
67
  prerelease: false
68
68
  version_requirements: !ruby/object:Gem::Requirement
69
69
  requirements:
70
- - - "~>"
70
+ - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: '2.14'
72
+ version: '0'
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: sqlite3
75
75
  requirement: !ruby/object:Gem::Requirement
@@ -105,7 +105,7 @@ dependencies:
105
105
  - !ruby/object:Gem::Version
106
106
  version: '1.0'
107
107
  - !ruby/object:Gem::Dependency
108
- name: poltergeist
108
+ name: will_paginate
109
109
  requirement: !ruby/object:Gem::Requirement
110
110
  requirements:
111
111
  - - ">="
@@ -119,7 +119,49 @@ dependencies:
119
119
  - !ruby/object:Gem::Version
120
120
  version: '0'
121
121
  - !ruby/object:Gem::Dependency
122
- name: will_paginate
122
+ name: capybara
123
+ requirement: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: '3.14'
128
+ type: :development
129
+ prerelease: false
130
+ version_requirements: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: '3.14'
135
+ - !ruby/object:Gem::Dependency
136
+ name: cuprite
137
+ requirement: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ type: :development
143
+ prerelease: false
144
+ version_requirements: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ - !ruby/object:Gem::Dependency
150
+ name: puma
151
+ requirement: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: '5.5'
156
+ type: :development
157
+ prerelease: false
158
+ version_requirements: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - "~>"
161
+ - !ruby/object:Gem::Version
162
+ version: '5.5'
163
+ - !ruby/object:Gem::Dependency
164
+ name: appraisal
123
165
  requirement: !ruby/object:Gem::Requirement
124
166
  requirements:
125
167
  - - ">="
@@ -157,11 +199,11 @@ files:
157
199
  - app/models/tolk/phrase.rb
158
200
  - app/models/tolk/translation.rb
159
201
  - app/views/layouts/tolk/application.html.erb
160
- - app/views/tolk/_blank_canva.svg
161
- - app/views/tolk/_empty.svg
162
- - app/views/tolk/_houra.svg
202
+ - app/views/tolk/_blank_canva.html.erb
203
+ - app/views/tolk/_empty.html.erb
204
+ - app/views/tolk/_houra.html.erb
163
205
  - app/views/tolk/_nav.html.erb
164
- - app/views/tolk/_no_data.svg
206
+ - app/views/tolk/_no_data.html.erb
165
207
  - app/views/tolk/locales/all.html.erb
166
208
  - app/views/tolk/locales/index.html.erb
167
209
  - app/views/tolk/locales/show.atom.builder
@@ -189,7 +231,7 @@ homepage: https://github.com/tolk/tolk
189
231
  licenses:
190
232
  - MIT
191
233
  metadata: {}
192
- post_install_message:
234
+ post_install_message:
193
235
  rdoc_options: []
194
236
  require_paths:
195
237
  - lib
@@ -204,8 +246,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
204
246
  - !ruby/object:Gem::Version
205
247
  version: '0'
206
248
  requirements: []
207
- rubygems_version: 3.2.20
208
- signing_key:
249
+ rubygems_version: 3.3.10
250
+ signing_key:
209
251
  specification_version: 4
210
252
  summary: Rails engine providing web interface for managing i18n yaml files
211
253
  test_files: []