lit 0.2.5 → 0.2.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +13 -5
- data/app/models/lit/localization_key.rb +2 -1
- data/config/database.yml +8 -0
- data/lib/lit/cache.rb +30 -27
- data/lib/lit/i18n_backend.rb +11 -5
- data/lib/lit/version.rb +1 -1
- metadata +19 -18
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NTgyNTU3OTU2YmIwNDY3OTBjZTNkMzcyMGE4MWNkYjQyYWE3MjMyZg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YzY5NzAwMmU5MTM3OGIyMzY4ZThhNzBjM2Q3NzYyMjNjMWU2YzhmNw==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NzM2ZjJlNjg3OTllNmEyM2I1OWQ1NzBkNTA3ZDBlMjMwODA4NjVkZjk5Mjhh
|
10
|
+
MmRiZmYxNmNiNWQ4MGZiMDJjZmFhMGFjNDc2YjJjNDg0YjI1MmNiODA2OTg0
|
11
|
+
M2YxNTBiMTc0Yzc2NjI3Mjk1YzQ2Y2JmZjYyNGZkYjViM2Q2NTA=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
OWE5MWJmNGYyYWJhNWRhZGYzMjY0MWQ5YWExM2M5NjZiZjRlYzdjM2FhMWI2
|
14
|
+
NDc0NWEyN2NmZTM4Nzc4OWUxMGZlNzE2YzIxNmU3MDcyMGJiMDZiMWYyNmJj
|
15
|
+
MGFlMDIxN2VhMzU4ODY3MWJiM2Y3MDhlNDU4MmZhZjUyZjI3MjI=
|
@@ -79,11 +79,12 @@ module Lit
|
|
79
79
|
end
|
80
80
|
if options[:key].present?
|
81
81
|
q = "%#{options[:key]}%"
|
82
|
+
q_underscore = "%#{options[:key].parameterize.underscore}%"
|
82
83
|
cond = localization_key_col.matches(q).or(
|
83
84
|
default_value_col.matches(q).or(
|
84
85
|
translated_value_col.matches(q)
|
85
86
|
)
|
86
|
-
)
|
87
|
+
).or(localization_key_col.matches(q_underscore))
|
87
88
|
s = s.joins([:localizations]).where(cond)
|
88
89
|
end
|
89
90
|
unless options[:include_completed].to_i == 1
|
data/config/database.yml
ADDED
data/lib/lit/cache.rb
CHANGED
@@ -178,40 +178,43 @@ module Lit
|
|
178
178
|
|
179
179
|
def find_localization(locale, key_without_locale, value = nil, force_array = false, update_value = false)
|
180
180
|
unless value.is_a?(Hash)
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
if
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
181
|
+
ActiveRecord::Base.transaction do
|
182
|
+
localization_key = find_localization_key(key_without_locale)
|
183
|
+
localization = Lit::Localization.where(locale_id: locale.id).
|
184
|
+
where(localization_key_id: localization_key.id).first_or_initialize
|
185
|
+
if update_value || localization.new_record?
|
186
|
+
if value.is_a?(Array)
|
187
|
+
unless force_array
|
188
|
+
new_value = nil
|
189
|
+
value_clone = value.dup
|
190
|
+
while (v = value_clone.shift) && v.present?
|
191
|
+
pv = parse_value(v, locale)
|
192
|
+
new_value = pv unless pv.nil?
|
193
|
+
end
|
194
|
+
value = new_value
|
192
195
|
end
|
193
|
-
|
196
|
+
else
|
197
|
+
value = parse_value(value, locale) unless value.nil?
|
194
198
|
end
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
v = localizations[nk]
|
204
|
-
value = v if v.present? && value.nil?
|
199
|
+
if value.nil?
|
200
|
+
if Lit.fallback
|
201
|
+
@locale_cache.keys.each do |lc|
|
202
|
+
if lc != locale.locale
|
203
|
+
nk = "#{lc}.#{key_without_locale}"
|
204
|
+
v = localizations[nk]
|
205
|
+
value = v if v.present? && value.nil?
|
206
|
+
end
|
205
207
|
end
|
206
208
|
end
|
209
|
+
if value.nil? && Lit.humanize_key
|
210
|
+
value = key_without_locale.split('.').last.humanize
|
211
|
+
end
|
207
212
|
end
|
208
|
-
|
209
|
-
value = key_without_locale.split('.').last.humanize
|
210
|
-
end
|
213
|
+
localization.update_default_value(value)
|
211
214
|
end
|
212
|
-
localization
|
215
|
+
return localization
|
216
|
+
|
213
217
|
end
|
214
|
-
return localization
|
215
218
|
else
|
216
219
|
nil
|
217
220
|
end
|
data/lib/lit/i18n_backend.rb
CHANGED
@@ -41,7 +41,9 @@ module Lit
|
|
41
41
|
# @param [Hash] data nested key-value pairs to be added as blurbs
|
42
42
|
def store_translations(locale, data, options = {})
|
43
43
|
super
|
44
|
-
|
44
|
+
ActiveRecord::Base.transaction do
|
45
|
+
store_item(locale, data)
|
46
|
+
end if store_items? && valid_locale?(locale)
|
45
47
|
end
|
46
48
|
|
47
49
|
private
|
@@ -83,9 +85,11 @@ module Lit
|
|
83
85
|
|
84
86
|
def store_item(locale, data, scope = [])
|
85
87
|
if data.respond_to?(:to_hash)
|
86
|
-
|
87
|
-
|
88
|
-
|
88
|
+
# ActiveRecord::Base.transaction do
|
89
|
+
data.to_hash.each do |key, value|
|
90
|
+
store_item(locale, value, scope + [key])
|
91
|
+
end
|
92
|
+
# end
|
89
93
|
elsif data.respond_to?(:to_str)
|
90
94
|
key = ([locale] + scope).join('.')
|
91
95
|
@cache[key] ||= data
|
@@ -96,8 +100,10 @@ module Lit
|
|
96
100
|
end
|
97
101
|
|
98
102
|
def load_translations_to_cache
|
99
|
-
|
103
|
+
ActiveRecord::Base.transaction do
|
104
|
+
(@translations || {}).each do |locale, data|
|
100
105
|
store_item(locale, data) if valid_locale?(locale)
|
106
|
+
end
|
101
107
|
end
|
102
108
|
end
|
103
109
|
|
data/lib/lit/version.rb
CHANGED
metadata
CHANGED
@@ -1,88 +1,88 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maciej Litwiniuk
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ! '>'
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 3.1.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ! '>'
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 3.1.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: i18n
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 0.7.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.7.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: jquery-rails
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ! '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ! '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: pg
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ! '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: devise
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ! '>='
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ! '>='
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
-
description: 'Translate your apps with pleasure (sort of...) and for free. It''s
|
84
|
-
i18n web interface, build on top of twitter bootstrap, that one may find
|
85
|
-
in translating app by non-technicals. '
|
83
|
+
description: ! 'Translate your apps with pleasure (sort of...) and for free. It''s
|
84
|
+
simple i18n web interface, build on top of twitter bootstrap, that one may find
|
85
|
+
helpful in translating app by non-technicals. '
|
86
86
|
email:
|
87
87
|
- maciej@litwiniuk.net
|
88
88
|
executables: []
|
@@ -403,6 +403,7 @@ files:
|
|
403
403
|
- app/views/lit/sources/index.html.erb
|
404
404
|
- app/views/lit/sources/new.html.erb
|
405
405
|
- app/views/lit/sources/show.html.erb
|
406
|
+
- config/database.yml
|
406
407
|
- config/routes.rb
|
407
408
|
- db/migrate/20121103144612_create_lit_locales.rb
|
408
409
|
- db/migrate/20121103174049_create_lit_localization_keys.rb
|
@@ -435,17 +436,17 @@ require_paths:
|
|
435
436
|
- lib
|
436
437
|
required_ruby_version: !ruby/object:Gem::Requirement
|
437
438
|
requirements:
|
438
|
-
- -
|
439
|
+
- - ! '>='
|
439
440
|
- !ruby/object:Gem::Version
|
440
441
|
version: '0'
|
441
442
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
442
443
|
requirements:
|
443
|
-
- -
|
444
|
+
- - ! '>='
|
444
445
|
- !ruby/object:Gem::Version
|
445
446
|
version: '0'
|
446
447
|
requirements: []
|
447
448
|
rubyforge_project:
|
448
|
-
rubygems_version: 2.4.
|
449
|
+
rubygems_version: 2.4.8
|
449
450
|
signing_key:
|
450
451
|
specification_version: 4
|
451
452
|
summary: Database powered i18n backend with web gui
|