tml-rails 4.4.3 → 5.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/tml/cache_adapters/rails.rb +1 -1
- data/lib/tml_rails/extensions/action_common_methods.rb +1 -1
- data/lib/tml_rails/extensions/action_controller_extension.rb +77 -38
- data/lib/tml_rails/extensions/action_view_extension.rb +9 -5
- data/lib/tml_rails/version.rb +1 -1
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2088405b5d3e687320118711c6d8af1da0a6e512
|
4
|
+
data.tar.gz: 056a6c51fb7ccfb609eb8c303dd937aaffa517ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: daf41e9d10c5e54cf2a78be03c65de63ea3cd844b4fa1554a6c02556ce0d4e1f383c13789c65518413a2d45441b8f029ee2afd25f618b1312e01ecef1e99b725
|
7
|
+
data.tar.gz: 1d26cb1bd823edcbcd39072ebf0f5561313e1b561786f00d16c4f9499ca73ac1866e1508032c569504a0f94ba9cf43c5346ae23ca8bd2d6b21d30f8eb4219242
|
@@ -65,7 +65,7 @@ class Tml::CacheAdapters::Rails < Tml::Cache
|
|
65
65
|
|
66
66
|
def store(key, data, opts = {})
|
67
67
|
info("Cache store: #{key}")
|
68
|
-
@cache.write(versioned_key(key, opts), data)
|
68
|
+
@cache.write(versioned_key(key, opts), strip_extensions(data))
|
69
69
|
data
|
70
70
|
rescue Exception => ex
|
71
71
|
warn("Failed to store data: #{ex.message}")
|
@@ -58,7 +58,7 @@ module TmlRails
|
|
58
58
|
# Translate individual sentences
|
59
59
|
if params[:options][:split]
|
60
60
|
text = params[:label]
|
61
|
-
sentences = Tml::Utils.
|
61
|
+
sentences = Tml::Utils.split_sentences(text)
|
62
62
|
sentences.each do |sentence|
|
63
63
|
text = text.gsub(sentence, tml_current_language.translate(sentence, params[:description], params[:tokens], params[:options]))
|
64
64
|
end
|
@@ -37,8 +37,8 @@ module TmlRails
|
|
37
37
|
base.send(:include, InstanceMethods)
|
38
38
|
|
39
39
|
if Tml.config.auto_init
|
40
|
-
base.before_filter
|
41
|
-
base.after_filter
|
40
|
+
base.before_filter :tml_init
|
41
|
+
base.after_filter :tml_reset
|
42
42
|
end
|
43
43
|
|
44
44
|
if defined? base.rescue_from
|
@@ -53,18 +53,11 @@ module TmlRails
|
|
53
53
|
|
54
54
|
module InstanceMethods
|
55
55
|
|
56
|
+
# Returns all browser accepted locales
|
56
57
|
def tml_browser_accepted_locales
|
57
|
-
@tml_browser_accepted_locales ||= Tml::Utils.browser_accepted_locales(request)
|
58
|
+
@tml_browser_accepted_locales ||= Tml::Utils.browser_accepted_locales(request.env['HTTP_ACCEPT_LANGUAGE']).join(',')
|
58
59
|
end
|
59
60
|
|
60
|
-
def tml_user_preferred_locale
|
61
|
-
tml_browser_accepted_locales.each do |locale|
|
62
|
-
next unless Tml.session.application and Tml.session.application.locales.include?(locale)
|
63
|
-
return locale
|
64
|
-
end
|
65
|
-
Tml.config.default_locale
|
66
|
-
end
|
67
|
-
|
68
61
|
# Overwrite this method in a controller to assign a custom source for all views
|
69
62
|
def tml_source
|
70
63
|
"/#{controller_name}/#{action_name}"
|
@@ -72,44 +65,90 @@ module TmlRails
|
|
72
65
|
self.class.name
|
73
66
|
end
|
74
67
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
68
|
+
# Returns data from cookie set by the agent
|
69
|
+
def tml_cookie
|
70
|
+
@tml_cookie ||= begin
|
71
|
+
cookie = cookies[Tml::Utils.cookie_name(Tml.config.application[:key])]
|
72
|
+
if cookie.blank?
|
73
|
+
{}
|
74
|
+
else
|
75
|
+
HashWithIndifferentAccess.new(Tml::Utils.decode(cookie, Tml.config.application[:token]))
|
76
|
+
end
|
77
|
+
end
|
78
|
+
rescue Exception => ex
|
79
|
+
Tml.logger.error("Failed to parse tml cookie: #{ex.message}")
|
80
|
+
{}
|
81
|
+
end
|
79
82
|
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
+
# Locale is retrieved from method => params => cookie => subdomain => browser accepted locales
|
84
|
+
# Alternatively, this method can be overwritten
|
85
|
+
def tml_locale
|
86
|
+
@tml_locale ||= begin
|
87
|
+
locale = nil
|
88
|
+
|
89
|
+
unless Tml.config.current_locale_method.blank?
|
90
|
+
begin
|
91
|
+
locale = self.send(Tml.config.current_locale_method)
|
92
|
+
rescue
|
93
|
+
locale = nil
|
94
|
+
end
|
95
|
+
end
|
83
96
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
97
|
+
if locale.nil?
|
98
|
+
if params[:locale].blank?
|
99
|
+
locale = tml_cookie[:locale]
|
100
|
+
if locale.nil?
|
101
|
+
if Tml.config.locale[:subdomain]
|
102
|
+
locale = request.subdomain
|
103
|
+
else
|
104
|
+
locale = tml_browser_accepted_locales
|
105
|
+
end
|
106
|
+
end
|
107
|
+
else
|
108
|
+
locale = tml_cookie[:locale] = params[:locale]
|
109
|
+
cookies[Tml::Utils.cookie_name(Tml.config.application[:key])] = Tml::Utils.encode(tml_cookie, Tml.config.application[:token])
|
110
|
+
end
|
89
111
|
end
|
112
|
+
|
113
|
+
locale
|
90
114
|
end
|
115
|
+
end
|
91
116
|
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
117
|
+
def tml_viewing_user
|
118
|
+
@tml_viewing_user ||= begin
|
119
|
+
unless Tml.config.current_user_method.blank?
|
120
|
+
begin
|
121
|
+
self.send(Tml.config.current_user_method)
|
122
|
+
rescue
|
123
|
+
{}
|
124
|
+
end
|
97
125
|
end
|
98
126
|
end
|
127
|
+
end
|
99
128
|
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
129
|
+
def tml_translator
|
130
|
+
@tml_translator ||= begin
|
131
|
+
if tml_cookie[:translator]
|
132
|
+
Tml::Translator.new(tml_cookie[:translator])
|
133
|
+
else
|
134
|
+
nil
|
135
|
+
end
|
105
136
|
end
|
137
|
+
end
|
138
|
+
|
139
|
+
def tml_init
|
140
|
+
return if Tml.config.disabled?
|
106
141
|
|
107
|
-
Tml.
|
142
|
+
# Tml.logger.info(tml_cookie.inspect)
|
108
143
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
144
|
+
@tml_started_at = Time.now
|
145
|
+
|
146
|
+
Tml.session.init({
|
147
|
+
:source => tml_source,
|
148
|
+
:locale => tml_locale,
|
149
|
+
:user => tml_viewing_user,
|
150
|
+
:translator => tml_translator
|
151
|
+
})
|
113
152
|
|
114
153
|
if I18n.backend.class.name == 'I18n::Backend::Tml'
|
115
154
|
if defined? I18n.enforce_available_locales
|
@@ -33,6 +33,7 @@ module TmlRails
|
|
33
33
|
module ActionViewExtension
|
34
34
|
extend ActiveSupport::Concern
|
35
35
|
|
36
|
+
# Translates HTML block
|
36
37
|
def trh(tokens = {}, options = {}, &block)
|
37
38
|
return '' unless block_given?
|
38
39
|
|
@@ -42,10 +43,12 @@ module TmlRails
|
|
42
43
|
tokenizer.translate(label).html_safe
|
43
44
|
end
|
44
45
|
|
46
|
+
# Translates <select><option></option></select>
|
45
47
|
def tml_options_for_select(options, selected = nil, description = nil, lang = Tml.session.current_language)
|
46
48
|
options_for_select(options.tro(description), selected)
|
47
49
|
end
|
48
50
|
|
51
|
+
# Returns language flag
|
49
52
|
def tml_language_flag_tag(lang = tml_current_language, opts = {})
|
50
53
|
return '' unless tml_application.feature_enabled?(:language_flags)
|
51
54
|
html = image_tag(lang.flag_url, :style => (opts[:style] || 'vertical-align:middle;'), :title => lang.native_name)
|
@@ -53,6 +56,7 @@ module TmlRails
|
|
53
56
|
html.html_safe
|
54
57
|
end
|
55
58
|
|
59
|
+
# Returns language name
|
56
60
|
def tml_language_name_tag(lang = tml_current_language, opts = {})
|
57
61
|
show_flag = opts[:flag].nil? ? true : opts[:flag]
|
58
62
|
name_type = opts[:language].nil? ? :english : opts[:language].to_sym # :full, :native, :english, :locale, :both
|
@@ -81,6 +85,7 @@ module TmlRails
|
|
81
85
|
html.join.html_safe
|
82
86
|
end
|
83
87
|
|
88
|
+
# Returns language selector UI
|
84
89
|
def tml_language_selector_tag(type = nil, opts = {})
|
85
90
|
return unless Tml.config.enabled?
|
86
91
|
|
@@ -94,6 +99,7 @@ module TmlRails
|
|
94
99
|
render(:partial => "/tml_rails/tags/language_selector_#{type}", :locals => {:opts => opts})
|
95
100
|
end
|
96
101
|
|
102
|
+
# Returns language strip UI
|
97
103
|
def tml_language_strip_tag(opts = {})
|
98
104
|
opts[:flag] = opts[:flag].nil? ? false : opts[:flag]
|
99
105
|
opts[:name] = opts[:name].nil? ? :native : opts[:name]
|
@@ -103,6 +109,7 @@ module TmlRails
|
|
103
109
|
render(:partial => '/tml_rails/tags/language_strip', :locals => {:opts => opts})
|
104
110
|
end
|
105
111
|
|
112
|
+
# Translates flashes
|
106
113
|
def tml_flashes_tag(opts = {})
|
107
114
|
render(:partial => '/tml_rails/tags/flashes', :locals => {:opts => opts})
|
108
115
|
end
|
@@ -191,8 +198,9 @@ module TmlRails
|
|
191
198
|
|
192
199
|
# provides the locale and direction of the language
|
193
200
|
def tml_html_attributes_tag(lang = tml_current_language)
|
194
|
-
"#{tml_lang_attribute_tag(lang)} #{tml_dir_attribute_tag(lang)}"
|
201
|
+
"xml:lang='#{lang.locale}' #{tml_lang_attribute_tag(lang)} #{tml_dir_attribute_tag(lang)}".html_safe
|
195
202
|
end
|
203
|
+
alias_method :tml_lang_attributes_tag, :tml_html_attributes_tag
|
196
204
|
|
197
205
|
# providers the direction of the language
|
198
206
|
def tml_dir_attribute_tag(lang = tml_current_language)
|
@@ -206,10 +214,6 @@ module TmlRails
|
|
206
214
|
"lang='#{lang.locale}'".html_safe
|
207
215
|
end
|
208
216
|
|
209
|
-
def tml_lang_attributes_tag(lang = tml_current_language)
|
210
|
-
"#{tml_lang_attribute_tag(lang)} #{tml_dir_attribute_tag(lang)}".html_safe
|
211
|
-
end
|
212
|
-
|
213
217
|
def tml_stylesheet_link_tag(ltr, rtl, attrs = {})
|
214
218
|
if tml_current_language.right_to_left?
|
215
219
|
stylesheet_link_tag(rtl, attrs)
|
data/lib/tml_rails/version.rb
CHANGED
metadata
CHANGED
@@ -1,43 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tml-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Berkovich
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-08 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.2'
|
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.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: tml
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '5.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
|
-
version: '
|
40
|
+
version: '5.0'
|
41
41
|
description: Translation Markup Language from Translation Exchange.
|
42
42
|
email:
|
43
43
|
- michael@translationexchange.com
|
@@ -82,17 +82,17 @@ require_paths:
|
|
82
82
|
- lib
|
83
83
|
required_ruby_version: !ruby/object:Gem::Requirement
|
84
84
|
requirements:
|
85
|
-
- -
|
85
|
+
- - ">="
|
86
86
|
- !ruby/object:Gem::Version
|
87
87
|
version: '0'
|
88
88
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
89
|
requirements:
|
90
|
-
- -
|
90
|
+
- - ">="
|
91
91
|
- !ruby/object:Gem::Version
|
92
92
|
version: '0'
|
93
93
|
requirements: []
|
94
94
|
rubyforge_project:
|
95
|
-
rubygems_version: 2.4.
|
95
|
+
rubygems_version: 2.4.5
|
96
96
|
signing_key:
|
97
97
|
specification_version: 4
|
98
98
|
summary: Tml Client SDK for Ruby on Rails
|