isomorfeus-i18n 1.0.0.epsilon4 → 1.0.0.zeta1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 82c32d9c849355121fbdc084e57b20d1e752244048a345b9b404f2c89656ef0d
4
- data.tar.gz: 007dd1b9e5243c72c59f0cc3e6518a5b1ffb1f18f9c2bbee8ffc4a382eb92174
3
+ metadata.gz: '078ab425c4256f17c430d05ae3c5bd7000d4d650d15233fbf64d4488b879a85b'
4
+ data.tar.gz: 7999006e1b34c9ddb111ce828237c8bc3fe6436ce3c0b9964314bd16d509eab7
5
5
  SHA512:
6
- metadata.gz: 78e6cb07ce1fcefbe05bc7c978cc610bc3de058903861e77375c3ef5f702e12ed9ba1e39848bfc32218c293bec0323aa592a317c48eb8197eafe9049103bbd72
7
- data.tar.gz: 8d4d5fae4989ea5187351c28c206cc7021e3935922d06b48f8c78e083a4411178666352d21963753e900a6dc423b1d36c6c14f67270408fc3a5bf6468f5b2e40
6
+ metadata.gz: 4fa2ab0befebd0ee3da9b7e90c43c59ea5bd933b90830f1d554e64423fb1575eb7927e0ecffec9e95f09b76b8ecf45abb59ccedc358630a247eb28eae7a34080
7
+ data.tar.gz: e6ed6b953137e6879044bbb8b5374ce9edc7d1be58f67c880c809bf5a0dcdfefb9f30b8f96c1eef3e181c9eacedd6e2baaea388149655138618281c33bf698ad
@@ -29,6 +29,14 @@ module Isomorfeus
29
29
  Isomorfeus.store.dispatch(type: 'I18N_LOAD', data: { locale: locale })
30
30
  loc
31
31
  end
32
+
33
+ def negotiated_locale
34
+ @negotiated_locale
35
+ end
36
+
37
+ def negotiated_locale=(l)
38
+ @negotiated_locale = l
39
+ end
32
40
  else
33
41
  def available_locales
34
42
  @available_locales
@@ -11,12 +11,17 @@ module Isomorfeus
11
11
  Isomorfeus::I18n::Init.init unless Thread.current[:isomorfeus_i18n_initialized] == true
12
12
  result = {}
13
13
  # promise_send_path('Isomorfeus::I18n::Handler::LocaleHandler', domain, locale, method, [args])
14
- if request == 'init'
15
- result['data'] = { 'available_locales' => FastGettext.available_locales,
16
- 'locale' => FastGettext.locale,
17
- 'domain' => FastGettext.text_domain }
18
- else
19
- request.each_key do |domain|
14
+ request.each_key do |domain|
15
+ if domain == 'init'
16
+ locale = request[domain]
17
+ result['data'] = { 'available_locales' => FastGettext.available_locales,
18
+ 'domain' => FastGettext.text_domain }
19
+ result['data']['locale'] = if Isomorfeus.available_locales.include?(locale)
20
+ locale
21
+ else
22
+ FastGettext.locale
23
+ end
24
+ else
20
25
  result[domain] = {}
21
26
  begin
22
27
  FastGettext.with_domain(domain) do
@@ -5,7 +5,11 @@ module Isomorfeus
5
5
  def self.init
6
6
  return if @initializing || initialized?
7
7
  @initializing = true
8
- Isomorfeus::Transport.promise_send_path('Isomorfeus::I18n::Handler::LocaleHandler', :init).then do |response|
8
+ if Isomorfeus.on_browser?
9
+ root_element = `document.querySelector('div[data-iso-root]')`
10
+ Isomorfeus.negotiated_locale = root_element.JS.getAttribute('data-iso-nloc')
11
+ end
12
+ Isomorfeus::Transport.promise_send_path('Isomorfeus::I18n::Handler::LocaleHandler', :init, Isomorfeus.negotiated_locale).then do |response|
9
13
  if response[:agent_response].key?(:error)
10
14
  `console.error(#{response[:agent_response][:error].to_n})`
11
15
  raise response[:agent_response][:error]
@@ -1,5 +1,5 @@
1
1
  module Isomorfeus
2
2
  module I18n
3
- VERSION = '1.0.0.epsilon4'
3
+ VERSION = '1.0.0.zeta1'
4
4
  end
5
5
  end
@@ -13,6 +13,8 @@ else
13
13
  require 'active_support'
14
14
  require 'oj'
15
15
  require 'fast_gettext'
16
+ require 'http_accept_language/parser'
17
+ require 'http_accept_language/middleware'
16
18
  require 'isomorfeus/promise'
17
19
  require 'isomorfeus-data'
18
20
  require 'isomorfeus/i18n/config'
@@ -20,6 +22,8 @@ else
20
22
  require 'lucid_translation/mixin'
21
23
  require 'isomorfeus/i18n/handler/locale_handler'
22
24
 
25
+ Isomorfeus.add_middleware(HttpAcceptLanguage::Middleware)
26
+
23
27
  Opal.append_path(__dir__.untaint) unless Opal.paths.include?(__dir__.untaint)
24
28
 
25
29
  Isomorfeus.locale_path = File.expand_path(File.join('isomorfeus', 'locales'))
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isomorfeus-i18n
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.epsilon4
4
+ version: 1.0.0.zeta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Biedermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-19 00:00:00.000000000 Z
11
+ date: 2019-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -38,20 +38,34 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 2.0.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: http_accept_language
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 2.1.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 2.1.1
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: oj
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - ">="
46
60
  - !ruby/object:Gem::Version
47
- version: 3.8.0
61
+ version: 3.9.0
48
62
  type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - ">="
53
67
  - !ruby/object:Gem::Version
54
- version: 3.8.0
68
+ version: 3.9.0
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: opal
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +114,14 @@ dependencies:
100
114
  requirements:
101
115
  - - ">="
102
116
  - !ruby/object:Gem::Version
103
- version: 16.9.5
117
+ version: 16.9.8
104
118
  type: :runtime
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
122
  - - ">="
109
123
  - !ruby/object:Gem::Version
110
- version: 16.9.5
124
+ version: 16.9.8
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: isomorfeus-redux
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -128,56 +142,56 @@ dependencies:
128
142
  requirements:
129
143
  - - '='
130
144
  - !ruby/object:Gem::Version
131
- version: 1.0.0.epsilon4
145
+ version: 1.0.0.zeta1
132
146
  type: :runtime
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
150
  - - '='
137
151
  - !ruby/object:Gem::Version
138
- version: 1.0.0.epsilon4
152
+ version: 1.0.0.zeta1
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: isomorfeus-data
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
157
  - - '='
144
158
  - !ruby/object:Gem::Version
145
- version: 1.0.0.epsilon4
159
+ version: 1.0.0.zeta1
146
160
  type: :runtime
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
164
  - - '='
151
165
  - !ruby/object:Gem::Version
152
- version: 1.0.0.epsilon4
166
+ version: 1.0.0.zeta1
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: isomorfeus-installer
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
171
  - - '='
158
172
  - !ruby/object:Gem::Version
159
- version: 1.0.0.epsilon4
173
+ version: 1.0.0.zeta1
160
174
  type: :development
161
175
  prerelease: false
162
176
  version_requirements: !ruby/object:Gem::Requirement
163
177
  requirements:
164
178
  - - '='
165
179
  - !ruby/object:Gem::Version
166
- version: 1.0.0.epsilon4
180
+ version: 1.0.0.zeta1
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: opal-webpack-loader
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
185
  - - ">="
172
186
  - !ruby/object:Gem::Version
173
- version: 0.9.4
187
+ version: 0.9.5
174
188
  type: :development
175
189
  prerelease: false
176
190
  version_requirements: !ruby/object:Gem::Requirement
177
191
  requirements:
178
192
  - - ">="
179
193
  - !ruby/object:Gem::Version
180
- version: 0.9.4
194
+ version: 0.9.5
181
195
  - !ruby/object:Gem::Dependency
182
196
  name: rake
183
197
  requirement: !ruby/object:Gem::Requirement