tml-rails 4.4.3 → 5.0.1
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/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
|