lit 0.2.5 → 0.2.6
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 +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
|