tolk 1.7.0 → 1.8.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/app/controllers/tolk/application_controller.rb +3 -0
- data/app/controllers/tolk/locales_controller.rb +4 -4
- data/app/controllers/tolk/searches_controller.rb +1 -1
- data/app/helpers/tolk/application_helper.rb +4 -0
- data/app/models/tolk/locale.rb +11 -8
- data/app/models/tolk/phrase.rb +1 -2
- data/app/views/tolk/locales/all.html.erb +1 -1
- data/app/views/tolk/locales/show.html.erb +1 -1
- data/app/views/tolk/searches/show.html.erb +1 -1
- data/lib/tolk.rb +0 -1
- data/lib/tolk/config.rb +5 -0
- data/lib/tolk/engine.rb +14 -0
- data/lib/tolk/pagination.rb +28 -0
- data/lib/tolk/sync.rb +8 -1
- data/lib/tolk/version.rb +1 -1
- metadata +18 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9abfb538fd5b1496c475291c76eb390219c6e9a1
|
4
|
+
data.tar.gz: 94333e34720a9a3120c9fa366b8f2d17147cfc91
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8334be8d312ce698cadaad7e4c184a51a88648eb3b08a29e530de859620ca45a9baeb0735943d1e32fe570401a0eb9f75726f0901ec6a9954cf4523bf4d42402
|
7
|
+
data.tar.gz: 021100519c121daee3f8f852d7529442e94ed03c3c4ceb1dfbf9613f348658df4b9b2dd433e70ac41deeddd537b100e36833ff60f85e6a1ed2b66c66297a3b74
|
@@ -10,10 +10,10 @@ module Tolk
|
|
10
10
|
def show
|
11
11
|
respond_to do |format|
|
12
12
|
format.html do
|
13
|
-
@phrases = @locale.phrases_without_translation(params[
|
13
|
+
@phrases = @locale.phrases_without_translation(params[pagination_param])
|
14
14
|
end
|
15
15
|
|
16
|
-
format.atom { @phrases = @locale.phrases_without_translation(params[
|
16
|
+
format.atom { @phrases = @locale.phrases_without_translation(params[pagination_param]).per(50) }
|
17
17
|
|
18
18
|
format.yaml do
|
19
19
|
data = @locale.to_hash
|
@@ -30,11 +30,11 @@ module Tolk
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def all
|
33
|
-
@phrases = @locale.phrases_with_translation(params[
|
33
|
+
@phrases = @locale.phrases_with_translation(params[pagination_param])
|
34
34
|
end
|
35
35
|
|
36
36
|
def updated
|
37
|
-
@phrases = @locale.phrases_with_updated_translation(params[
|
37
|
+
@phrases = @locale.phrases_with_updated_translation(params[pagination_param])
|
38
38
|
render :all
|
39
39
|
end
|
40
40
|
|
@@ -3,7 +3,7 @@ module Tolk
|
|
3
3
|
before_filter :find_locale
|
4
4
|
|
5
5
|
def show
|
6
|
-
@phrases = @locale.search_phrases(params[:q], params[:scope].to_sym, params[:k], params[
|
6
|
+
@phrases = @locale.search_phrases(params[:q], params[:scope].to_sym, params[:k], params[pagination_param])
|
7
7
|
end
|
8
8
|
|
9
9
|
private
|
data/app/models/tolk/locale.rb
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
require 'tolk/config'
|
2
|
+
require 'tolk/pagination'
|
2
3
|
|
3
4
|
module Tolk
|
4
5
|
class Locale < ActiveRecord::Base
|
6
|
+
include Tolk::Pagination::Methods
|
7
|
+
|
5
8
|
self.table_name = "tolk_locales"
|
6
9
|
|
7
10
|
def self._dump_path
|
@@ -95,13 +98,13 @@ module Tolk
|
|
95
98
|
find_phrases_with_translations(page, :'tolk_translations.primary_updated' => true).count
|
96
99
|
end
|
97
100
|
|
98
|
-
def phrases_without_translation(page = nil
|
101
|
+
def phrases_without_translation(page = nil)
|
99
102
|
phrases = Tolk::Phrase.all.order('tolk_phrases.key ASC')
|
100
103
|
|
101
104
|
existing_ids = self.translations(:select => 'tolk_translations.phrase_id').map(&:phrase_id).uniq
|
102
105
|
phrases = phrases.where('tolk_phrases.id NOT IN (?)', existing_ids) if existing_ids.present?
|
103
106
|
|
104
|
-
result = phrases.
|
107
|
+
result = phrases.public_send(pagination_method, page)
|
105
108
|
if Rails.version =~ /^4\.0/
|
106
109
|
ActiveRecord::Associations::Preloader.new result, :translations
|
107
110
|
else
|
@@ -111,7 +114,7 @@ module Tolk
|
|
111
114
|
result
|
112
115
|
end
|
113
116
|
|
114
|
-
def search_phrases(query, scope, key_query, page = nil
|
117
|
+
def search_phrases(query, scope, key_query, page = nil)
|
115
118
|
return [] unless query.present? || key_query.present?
|
116
119
|
|
117
120
|
translations = case scope
|
@@ -125,11 +128,11 @@ module Tolk
|
|
125
128
|
phrases = phrases.containing_text(key_query)
|
126
129
|
|
127
130
|
phrases = phrases.where('tolk_phrases.id IN(?)', translations.map(&:phrase_id).uniq)
|
128
|
-
phrases.
|
131
|
+
phrases.public_send(pagination_method, page)
|
129
132
|
end
|
130
133
|
|
131
|
-
def search_phrases_without_translation(query, page = nil
|
132
|
-
return phrases_without_translation(page
|
134
|
+
def search_phrases_without_translation(query, page = nil)
|
135
|
+
return phrases_without_translation(page) unless query.present?
|
133
136
|
|
134
137
|
phrases = Tolk::Phrase.all.order('tolk_phrases.key ASC')
|
135
138
|
|
@@ -137,7 +140,7 @@ module Tolk
|
|
137
140
|
existing_ids = self.translations.select('tolk_translations.phrase_id').to_a.map(&:phrase_id).uniq
|
138
141
|
# phrases = phrases.scoped(:conditions => ['tolk_phrases.id NOT IN (?) AND tolk_phrases.id IN(?)', existing_ids, found_translations_ids]) if existing_ids.present?
|
139
142
|
phrases = phrases.where(['tolk_phrases.id NOT IN (?) AND tolk_phrases.id IN(?)', existing_ids, found_translations_ids]) if existing_ids.present?
|
140
|
-
result = phrases.
|
143
|
+
result = phrases.public_send(pagination_method, page)
|
141
144
|
if Rails.version =~ /^4\.0/
|
142
145
|
ActiveRecord::Associations::Preloader.new result, :translations
|
143
146
|
else
|
@@ -219,7 +222,7 @@ module Tolk
|
|
219
222
|
end
|
220
223
|
|
221
224
|
def find_phrases_with_translations(page, conditions = {})
|
222
|
-
result = Tolk::Phrase.where({ :'tolk_translations.locale_id' => self.id }.merge(conditions)).joins(:translations).order('tolk_phrases.key ASC').
|
225
|
+
result = Tolk::Phrase.where({ :'tolk_translations.locale_id' => self.id }.merge(conditions)).joins(:translations).order('tolk_phrases.key ASC').public_send(pagination_method, page)
|
223
226
|
|
224
227
|
result.each do |phrase|
|
225
228
|
phrase.translation = phrase.translations.for(self)
|
data/app/models/tolk/phrase.rb
CHANGED
data/lib/tolk.rb
CHANGED
data/lib/tolk/config.rb
CHANGED
@@ -14,7 +14,12 @@ module Tolk
|
|
14
14
|
# primary locale to not be overriden by default locale in development mode
|
15
15
|
attr_accessor :primary_locale_name
|
16
16
|
|
17
|
+
# exclude locales tokens from gems
|
18
|
+
attr_accessor :exclude_gems_token
|
19
|
+
|
17
20
|
def reset
|
21
|
+
@exclude_gems_token = false
|
22
|
+
|
18
23
|
@dump_path = Proc.new { "#{Rails.application.root}/config/locales" }
|
19
24
|
|
20
25
|
@mapping = {
|
data/lib/tolk/engine.rb
CHANGED
@@ -7,5 +7,19 @@ module Tolk
|
|
7
7
|
initializer :assets do |app|
|
8
8
|
app.config.assets.precompile += ['tolk/libraries.js']
|
9
9
|
end
|
10
|
+
|
11
|
+
# We need one of the two pagination engines loaded by this point.
|
12
|
+
# We don't care which one, just one of them will do.
|
13
|
+
begin
|
14
|
+
require 'kaminari'
|
15
|
+
rescue LoadError
|
16
|
+
begin
|
17
|
+
require 'will_paginate'
|
18
|
+
rescue LoadError
|
19
|
+
puts "Please add the kaminari or will_paginate gem to your application's Gemfile."
|
20
|
+
puts "The Tolk engine needs either kaminari or will_paginate in order to paginate."
|
21
|
+
exit
|
22
|
+
end
|
23
|
+
end
|
10
24
|
end
|
11
25
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Tolk
|
2
|
+
module Pagination
|
3
|
+
module Methods
|
4
|
+
# Kaminari defaults page_method_name to :page, will_paginate always uses
|
5
|
+
# :page
|
6
|
+
def pagination_method
|
7
|
+
defined?(Kaminari) ? Kaminari.config.page_method_name : :page
|
8
|
+
end
|
9
|
+
|
10
|
+
# Kaminari defaults param_name to :page, will_paginate always uses :page
|
11
|
+
def pagination_param
|
12
|
+
defined?(Kaminari) ? Kaminari.config.param_name : :page
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
module ViewHelper
|
17
|
+
def tolk_paginate(collection, options = {})
|
18
|
+
if respond_to?(:will_paginate)
|
19
|
+
# If parent app is using Will Paginate, we need to use it also
|
20
|
+
will_paginate collection, options
|
21
|
+
else
|
22
|
+
# Otherwise use Kaminari
|
23
|
+
paginate collection, options
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/tolk/sync.rb
CHANGED
@@ -10,7 +10,14 @@ module Tolk
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def load_translations
|
13
|
-
|
13
|
+
if Tolk.config.exclude_gems_token
|
14
|
+
# bypass default init_translations
|
15
|
+
I18n.backend.reload! if I18n.backend.initialized?
|
16
|
+
I18n.backend.instance_variable_set(:@initialized, true)
|
17
|
+
I18n.backend.load_translations(Dir[Rails.root.join('config', 'locales', "*.{rb,yml}")])
|
18
|
+
else
|
19
|
+
I18n.backend.send :init_translations unless I18n.backend.initialized? # force load
|
20
|
+
end
|
14
21
|
translations = flat_hash(I18n.backend.send(:translations)[primary_locale.name.to_sym])
|
15
22
|
filter_out_i18n_keys(translations.merge(read_primary_locale_file))
|
16
23
|
end
|
data/lib/tolk/version.rb
CHANGED
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: 1.
|
4
|
+
version: 1.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2015-03-28 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: rails
|
@@ -34,20 +34,6 @@ dependencies:
|
|
34
34
|
- - "<"
|
35
35
|
- !ruby/object:Gem::Version
|
36
36
|
version: '4.3'
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: will_paginate
|
39
|
-
requirement: !ruby/object:Gem::Requirement
|
40
|
-
requirements:
|
41
|
-
- - ">="
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: '0'
|
44
|
-
type: :runtime
|
45
|
-
prerelease: false
|
46
|
-
version_requirements: !ruby/object:Gem::Requirement
|
47
|
-
requirements:
|
48
|
-
- - ">="
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
version: '0'
|
51
37
|
- !ruby/object:Gem::Dependency
|
52
38
|
name: safe_yaml
|
53
39
|
requirement: !ruby/object:Gem::Requirement
|
@@ -118,6 +104,20 @@ dependencies:
|
|
118
104
|
- - ">="
|
119
105
|
- !ruby/object:Gem::Version
|
120
106
|
version: '0'
|
107
|
+
- !ruby/object:Gem::Dependency
|
108
|
+
name: will_paginate
|
109
|
+
requirement: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - ">="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '0'
|
114
|
+
type: :development
|
115
|
+
prerelease: false
|
116
|
+
version_requirements: !ruby/object:Gem::Requirement
|
117
|
+
requirements:
|
118
|
+
- - ">="
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0'
|
121
121
|
description: Tolk is a web interface for doing i18n translations packaged as an engine
|
122
122
|
for Rails applications.
|
123
123
|
email: david@loudthinking.com
|
@@ -160,6 +160,7 @@ files:
|
|
160
160
|
- lib/tolk/engine.rb
|
161
161
|
- lib/tolk/export.rb
|
162
162
|
- lib/tolk/import.rb
|
163
|
+
- lib/tolk/pagination.rb
|
163
164
|
- lib/tolk/sync.rb
|
164
165
|
- lib/tolk/version.rb
|
165
166
|
- lib/tolk/yaml.rb
|
@@ -183,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
183
184
|
version: '0'
|
184
185
|
requirements: []
|
185
186
|
rubyforge_project:
|
186
|
-
rubygems_version: 2.4.
|
187
|
+
rubygems_version: 2.4.5
|
187
188
|
signing_key:
|
188
189
|
specification_version: 4
|
189
190
|
summary: Rails engine providing web interface for managing i18n yaml files
|