locale_rails 0.1.0 → 2.0.0

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.
Files changed (47) hide show
  1. data/ChangeLog +10 -4
  2. data/{README → README.rdoc} +6 -1
  3. data/Rakefile +8 -7
  4. data/lib/locale_rails.rb +3 -1
  5. data/lib/locale_rails/action_controller.rb +4 -130
  6. data/lib/locale_rails/action_controller/base.rb +85 -0
  7. data/lib/locale_rails/action_controller/caching.rb +49 -0
  8. data/lib/locale_rails/action_controller/test_process.rb +44 -0
  9. data/lib/locale_rails/action_view.rb +10 -12
  10. data/lib/locale_rails/i18n.rb +20 -1
  11. data/lib/locale_rails/version.rb +3 -3
  12. data/replace.rb +21 -0
  13. data/sample/app/views/samples/index.html.erb +14 -5
  14. data/sample/app/views/samples/index.pt.html.erb +16 -0
  15. data/sample/app/views/samples/index_uz_UZ.html.erb +4 -3
  16. data/sample/config/environment.rb +1 -1
  17. data/sample/config/locales/en.yml +2 -0
  18. data/sample/config/locales/ja.yml +2 -0
  19. data/sample/db/development.sqlite3 +0 -0
  20. data/sample/db/schema.rb +10 -0
  21. data/sample/db/test.sqlite3 +0 -0
  22. data/sample/log/development.log +1492 -2273
  23. metadata +17 -47
  24. data/NEWS +0 -7
  25. data/doc/classes/ActionController/Base.html +0 -442
  26. data/doc/classes/ActionController/Caching.html +0 -348
  27. data/doc/classes/ActionController/Caching/Fragments.html +0 -424
  28. data/doc/classes/ActionView/Base.html +0 -422
  29. data/doc/classes/I18n.html +0 -492
  30. data/doc/classes/Locale.html +0 -364
  31. data/doc/created.rid +0 -1
  32. data/doc/files/ChangeLog.html +0 -355
  33. data/doc/files/README.html +0 -409
  34. data/doc/files/lib/locale_rails/action_controller_rb.html +0 -349
  35. data/doc/files/lib/locale_rails/action_view_rb.html +0 -349
  36. data/doc/files/lib/locale_rails/i18n_rb.html +0 -342
  37. data/doc/files/lib/locale_rails/version_rb.html +0 -342
  38. data/doc/files/lib/locale_rails_rb.html +0 -349
  39. data/doc/fr_class_index.html +0 -7
  40. data/doc/fr_file_index.html +0 -8
  41. data/doc/fr_method_index.html +0 -11
  42. data/doc/index.html +0 -1
  43. data/doc/rdoc-style.css +0 -320
  44. data/locale_rails-0.1.0.gem +0 -0
  45. data/sample/app/views/samples/#cookie.rb# +0 -3
  46. data/sample/db/production.sqlite3 +0 -0
  47. data/sample/log/production.log +0 -80
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: locale_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masao Mutoh
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-12-04 00:00:00 +09:00
12
+ date: 2009-03-22 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -20,10 +20,10 @@ dependencies:
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 0.9.0
23
+ version: 2.0.0
24
24
  version:
25
25
  description: Ruby-Locale for Ruby on Rails is the pure ruby library which provides basic functions for localization.
26
- email: mutoh@highway.ne.jp
26
+ email: mutomasa at gmail.com
27
27
  executables: []
28
28
 
29
29
  extensions: []
@@ -31,43 +31,20 @@ extensions: []
31
31
  extra_rdoc_files: []
32
32
 
33
33
  files:
34
+ - replace.rb
34
35
  - ChangeLog
35
- - doc
36
- - doc/index.html
37
- - doc/fr_method_index.html
38
- - doc/created.rid
39
- - doc/fr_class_index.html
40
- - doc/classes
41
- - doc/classes/Locale.html
42
- - doc/classes/ActionView
43
- - doc/classes/ActionView/Base.html
44
- - doc/classes/I18n.html
45
- - doc/classes/ActionController
46
- - doc/classes/ActionController/Caching.html
47
- - doc/classes/ActionController/Caching
48
- - doc/classes/ActionController/Caching/Fragments.html
49
- - doc/classes/ActionController/Base.html
50
- - doc/files
51
- - doc/files/ChangeLog.html
52
- - doc/files/lib
53
- - doc/files/lib/locale_rails_rb.html
54
- - doc/files/lib/locale_rails
55
- - doc/files/lib/locale_rails/action_view_rb.html
56
- - doc/files/lib/locale_rails/version_rb.html
57
- - doc/files/lib/locale_rails/i18n_rb.html
58
- - doc/files/lib/locale_rails/action_controller_rb.html
59
- - doc/files/README.html
60
- - doc/rdoc-style.css
61
- - doc/fr_file_index.html
62
- - NEWS
63
36
  - lib
64
37
  - lib/locale_rails.rb
65
38
  - lib/locale_rails
39
+ - lib/locale_rails/action_controller
40
+ - lib/locale_rails/action_controller/base.rb
41
+ - lib/locale_rails/action_controller/test_process.rb
42
+ - lib/locale_rails/action_controller/caching.rb
66
43
  - lib/locale_rails/action_controller.rb
67
44
  - lib/locale_rails/version.rb
68
45
  - lib/locale_rails/action_view.rb
69
46
  - lib/locale_rails/i18n.rb
70
- - README
47
+ - README.rdoc
71
48
  - sample
72
49
  - sample/script
73
50
  - sample/script/plugin
@@ -108,24 +85,21 @@ files:
108
85
  - sample/public/stylesheets/scaffold.css
109
86
  - sample/public/stylesheets/locale.css
110
87
  - sample/public/dispatch.cgi
111
- - sample/lib
112
- - sample/lib/tasks
113
88
  - sample/db
114
- - sample/db/production.sqlite3
89
+ - sample/db/schema.rb
90
+ - sample/db/test.sqlite3
115
91
  - sample/db/development.sqlite3
116
92
  - sample/README
117
93
  - sample/test
118
- - sample/test/fixtures
119
- - sample/test/functional
120
94
  - sample/test/test_helper.rb
121
- - sample/test/unit
122
95
  - sample/test/performance
123
96
  - sample/test/performance/browsing_test.rb
124
- - sample/test/integration
125
97
  - sample/log
126
- - sample/log/production.log
127
98
  - sample/log/development.log
128
99
  - sample/config
100
+ - sample/config/locales
101
+ - sample/config/locales/ja.yml
102
+ - sample/config/locales/en.yml
129
103
  - sample/config/initializers
130
104
  - sample/config/initializers/mime_types.rb
131
105
  - sample/config/initializers/inflections.rb
@@ -144,26 +118,22 @@ files:
144
118
  - sample/app/views
145
119
  - sample/app/views/samples
146
120
  - sample/app/views/samples/index_uz_UZ.html.erb
121
+ - sample/app/views/samples/index.pt.html.erb
147
122
  - sample/app/views/samples/_part_nl.html.erb
148
123
  - sample/app/views/samples/cached_action.html.erb
149
- - sample/app/views/samples/#cookie.rb#
150
124
  - sample/app/views/samples/_part.html.erb
151
125
  - sample/app/views/samples/index.html.erb
152
126
  - sample/app/views/layouts
153
127
  - sample/app/views/layouts/samples.html.erb
154
- - sample/app/models
155
128
  - sample/app/controllers
156
129
  - sample/app/controllers/samples_controller.rb
157
130
  - sample/app/controllers/application.rb
158
- - sample/vendor
159
- - sample/vendor/plugins
160
131
  - sample/tmp
161
132
  - sample/tmp/cache
162
133
  - sample/tmp/sockets
163
134
  - sample/tmp/sessions
164
135
  - sample/tmp/pids
165
136
  - sample/Rakefile
166
- - locale_rails-0.1.0.gem
167
137
  - Rakefile
168
138
  has_rdoc: true
169
139
  homepage: http://locale.rubyforge.org/
@@ -187,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
187
157
  requirements: []
188
158
 
189
159
  rubyforge_project: locale
190
- rubygems_version: 1.2.0
160
+ rubygems_version: 1.3.1
191
161
  signing_key:
192
162
  specification_version: 2
193
163
  summary: Ruby-Locale for Ruby on Rails is the pure ruby library which provides basic functions for localization based on Ruby-Locale.
data/NEWS DELETED
@@ -1,7 +0,0 @@
1
- = Ruby-Locale for Ruby on Rails-0.1.0 (2008-12-04)
2
-
3
- * Initial released.
4
- * Auto-Detect the locales from the WWW browser
5
- * Localized Routes
6
- * Action/Fragment caching
7
- * Separated Localized View template file
@@ -1,442 +0,0 @@
1
- <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title>Class: ActionController::Base</title><link type="text/css" href="../.././rdoc-style.css" media="screen" rel="stylesheet"/><script type="text/javascript">
2
- // Allison template
3
- // Copyright 2007, 2008 Cloudburst, LLC. Licensed under the AFL 3. See the included LICENSE file.
4
-
5
- var href_base = '../.././rdoc-style.css'.replace(/(.*\/).*/, '$1'); // inline js is good for something
6
-
7
- function $(id) {
8
- if (document.getElementById)
9
- elem = document.getElementById(id);
10
- else if ( document.all )
11
- elem = eval("document.all." + id);
12
- else
13
- return false;
14
- return elem;
15
- }
16
-
17
- function toggle(id) {
18
- elem = $(id);
19
- elemStyle = elem.style;
20
- if (elemStyle.display == "block") {
21
- elemStyle.display = "none"
22
- } else {
23
- elemStyle.display = "block"
24
- }
25
- return true;
26
- }
27
-
28
- function toggleText(id) {
29
- elem = $(id)
30
- if (m = elem.innerHTML.match(/(Hide)(.*)/)) {
31
- elem.innerHTML = "Show" + m[2];
32
- } else if (m = elem.innerHTML.match(/(Show)(.*)/)) {
33
- elem.innerHTML = "Hide" + m[2];
34
- }
35
- return true;
36
- }
37
-
38
- function span(s, klass) {
39
- return '<span class="' + klass + '">' + s + '</span>';
40
- }
41
-
42
- function highlightSymbols() {
43
- pres = document.getElementsByTagName('pre');
44
- for(var i = 0; i < pres.length; i++) {
45
- pre = pres[i];
46
- spans = pre.getElementsByTagName('span');
47
- for(var k = 0; k < spans.length; k++) {
48
- span = spans[k];
49
- if (span.className.match(/ruby-identifier/)) {
50
- if (span.innerHTML.match(/^:/)) {
51
- span.className += " ruby-symbol";
52
- }
53
- }
54
- }
55
- }
56
- }
57
-
58
- function hasClass(obj) {
59
- var result = false;
60
- if (obj.getAttributeNode("class") != null) {
61
- result = obj.getAttributeNode("class").value;
62
- }
63
- return result;
64
- }
65
-
66
- function stripe() {
67
- var even = true;
68
- var color = "#e4ebed";
69
- var tables = document.getElementsByTagName('table');
70
- if (tables.length == 0) { return; }
71
- for (var h = 0; h < tables.length; h++) {
72
- var trs = tables[h].getElementsByTagName("tr");
73
- for (var i = 0; i < trs.length; i++) {
74
- var tds = trs[i].getElementsByTagName("td");
75
- for (var j = 0; j < tds.length; j++) {
76
- if (hasClass(tds[j]) != "first") {
77
- var mytd = tds[j];
78
- if (even) {
79
- mytd.style.backgroundColor = color;
80
- }
81
- }
82
- }
83
- even = ! even;
84
- }
85
- }
86
- }
87
-
88
- function ajaxGet(url) {
89
- url = (href_base + url).replace('/./', '/')
90
- var req = false;
91
-
92
- if (window.ActiveXObject) {
93
- try {
94
- // stupid hack because IE7 disables local Ajax with the native xmlhttprequest object
95
- // for security purposes. Yet ActiveX still works. Thanks, Microsoft. I hate you. Die.
96
- req = new ActiveXObject("MSXML2.XMLHTTP.3.0");
97
- } catch (e) {
98
- try {
99
- /* IE 6 and maybe 5, don't know, don't care */
100
- req = new ActiveXObject("Msxml2.XMLHTTP");
101
- } catch (e) {
102
- try {
103
- req = new ActiveXObject("Microsoft.XMLHTTP");
104
- } catch (e) {
105
- req = false;
106
- }
107
- }
108
- }
109
- }
110
-
111
- /* real browsers */
112
- if (!req && window.XMLHttpRequest) {
113
- try {
114
- req = new XMLHttpRequest();
115
- } catch (e) {
116
- req = false;
117
- }
118
- }
119
-
120
- if (req) {
121
- req.open('GET', url, false);
122
- req.send(null);
123
- return req.responseText;
124
- } else {
125
- return "Ajax error";
126
- }
127
- }
128
-
129
-
130
- function addEvent(elm, evType, fn, useCapture) {
131
- if (elm.addEventListener) {
132
- elm.addEventListener(evType, fn, useCapture);
133
- return true;
134
- } else if (elm.attachEvent) {
135
- var r = elm.attachEvent('on' + evType, fn);
136
- return r;
137
- } else {
138
- elm['on' + evType] = fn;
139
- }
140
- }
141
-
142
- function insertIndices() {
143
- pages = ["class", "file", "method"]
144
- for (x in pages) {
145
- $(pages[x]).innerHTML += ajaxGet('fr_' + pages[x] + '_index.html').replace(/(href=")/g, '$1' + href_base);
146
- }
147
- /* mouseoverify method links */
148
- links = $('method').getElementsByTagName('a');
149
- for (var x = 0; x < links.length; x++) {
150
- if (m = links[x].innerHTML.match(/(.*)\s\((.*)\)/)) {
151
- links[x].innerHTML = m[1] + '<br>';
152
- links[x].title = m[2];
153
- }
154
- }
155
- /* this is stupid */
156
- $('class').style.display = "block";
157
- $('file').style.display = "block";
158
-
159
- /* has to be here because IE7 does not guarantee the onLoad callback order */
160
- abbreviateIndicesInner(["class", "file"], 25, "a");
161
- /* same, linkTitle() depends on the class link list */
162
- linkTitle();
163
- }
164
-
165
- function abbreviateIndices() {
166
- var ids = ["defined_in", "child_of", "includes", "requires", "method", "methods"];
167
- abbreviateIndicesInner(ids, 25, 'a');
168
- abbreviateIndicesInner(ids, 25, 'span');
169
- }
170
-
171
- function abbreviateIndicesInner(indices, amount, tag) {
172
- for (var x = 0; x < indices.length; x++) {
173
- var the_index = $(indices[x]);
174
- if (the_index) {
175
- links = the_index.getElementsByTagName(tag);
176
- for (var y = 0; y < links.length; y++) {
177
- var link = links[y];
178
- if (link.getElementsByTagName('span').length == 0 && link.getElementsByTagName('a').length == 0) {
179
- // avoid nesting
180
- link.innerHTML = link.innerHTML.replace(/<br>|\n/gi, '');
181
- link.title = link.innerHTML;
182
- link.innerHTML = abbreviate(link.innerHTML, amount) + '<br>';
183
- }
184
- }
185
- }
186
- }
187
- }
188
-
189
- function linkTitle() {
190
-
191
- /* grab the correct title element from the index */
192
- var index_page = ajaxGet('index.html');
193
- title_text = index_page.match(/<title>(.*)<\/title>/m)[1];
194
- document.title = title_text + " - " + document.title;
195
- var p = $('header').getElementsByTagName('p')[0]
196
- if (p.innerHTML.match(/^\s*$/)) {
197
- p.innerHTML = title_text;
198
- } else {
199
- p.innerHTML = title_text + ": " + p.innerHTML;
200
- }
201
-
202
- /* set the link properly */
203
- title_link = index_page.match(/<a\s+href="(.*?)"/)[1];
204
- var element = $('title');
205
- var item_type = "";
206
- var item_name = "";
207
- if (m = element.innerHTML.match(/(Class:|Module:|File:)\s*(.*)/)) {
208
- item_type = m[1];
209
- item_name = m[2];
210
- } else {
211
- item_name = element.innerHTML;
212
- }
213
- element.innerHTML = '<a href="' + href_base + title_link + '">' + item_type + " " + abbreviate(item_name, 45) + '</a>';
214
- element.getElementsByTagName('a')[0].title = item_name
215
-
216
- /* breadcrumb navigation */
217
- items = item_name.split("::");
218
- items_new = item_name.split("::");
219
- file_links = $('class').getElementsByTagName('a');
220
- for (var x = 0; x < items.length - 1; x++ ){
221
- var item = items[x];
222
- link = ("/classes/" + items.slice(0,x).join("/") + "/" + item + ".html").replace('//', '/');
223
- regex = new RegExp(RegExp.escape(link) + '$');
224
- for (var y = 0; y < file_links.length; y++) {
225
- if (file_links[y].href.match(regex)) {
226
- items_new[x] = '<a href="' + href_base + link + '">' + item + '</a>';
227
- break;
228
- }
229
- }
230
- }
231
- $('item_name').innerHTML = item_type + ' ' + items_new.join(" :: ");
232
- }
233
-
234
- function abbreviate(s, size) {
235
- while (s.length > size) {
236
- var old_s = s;
237
- s = s.replace(/\s|\n/mg, '');
238
- s = s.replace(/([A-Z])[a-z]+/m, '$1');
239
- if (!s || old_s == s) {
240
- return "..." + s.substring(s.length - size, s.length);
241
- }
242
- }
243
- return s;
244
- }
245
-
246
- function disableSubmit(event) {
247
- var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
248
- if (keyCode == 13) {
249
- return false;
250
- } else {
251
- return true;
252
- }
253
- }
254
-
255
- function filterList(id, s, event) {
256
-
257
- /* some weak escaping */
258
- s = s.replace(/[^\w\d\.\_\-\/\:\=\[\]\?\!]/g, '');
259
- s = RegExp.escape(s);
260
-
261
- var show_all = false;
262
- if (s.match(/^\s*$/)) {
263
- show_all = true;
264
- }
265
-
266
- links = $(id).getElementsByTagName('a')
267
- regex = new RegExp(s, 'i');
268
-
269
- for (var x = 0; x < links.length; x++) {
270
- var link = links[x];
271
- if (show_all) {
272
- link.style.display = 'inline';
273
- } else {
274
- if (link.innerHTML.match(regex)) {
275
- link.style.display = 'inline';
276
- } else {
277
- link.style.display = 'none';
278
- }
279
- }
280
- }
281
- return true;
282
- }
283
-
284
- RegExp.escape = function(text) {
285
- if (!arguments.callee.sRE) {
286
- var specials = ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'];
287
- arguments.callee.sRE = new RegExp(
288
- '(\\' + specials.join('|\\') + ')', 'g'
289
- );
290
- }
291
- return text.replace(arguments.callee.sRE, '\\$1');
292
- }
293
-
294
- function hacks() {
295
- // show the spacer if necessary,
296
- divs = document.getElementsByTagName('div');
297
- for(var x = 0; x < divs.length; x++) {
298
- if (divs[x].className && divs[x].className.match(/top/)) {
299
- document.getElementById('spacer').style.display = 'block';
300
- }
301
- }
302
- // remove extra colons from tables
303
- tds = document.getElementsByTagName('td');
304
- for(var x = 0; x < tds.length; x++) {
305
- str = tds[x].innerHTML
306
- if (str.charAt(str.length - 1) == ":") {
307
- tds[x].innerHTML = str.slice(0, str.length - 1)
308
- }
309
- }
310
- }
311
-
312
- addEvent(window, 'load', insertIndices, false);
313
- addEvent(window, 'load', abbreviateIndices, false);
314
- addEvent(window, 'load', stripe, false);
315
- addEvent(window, 'load', highlightSymbols, false);
316
- addEvent(window, 'load', hacks, false);
317
- </script></head><body><div id="container"><div class="curve" id="preheader_curve_0"></div><div class="curve" id="preheader_curve_1"></div><div class="curve" id="preheader_curve_2"></div><div class="curve" id="preheader_curve_3"></div><div class="curve" id="preheader_curve_4"></div><div class="curve" id="preheader_curve_5"></div><div id="header"><p>
318
- </p><span><h1 id="title">
319
- Class: ActionController::Base
320
- </h1></span>
321
- </div><div class="clear"></div><div id="left">
322
- <div class="navigation darker top" id="child_of"><h3>Child of</h3><span>
323
-
324
- Object
325
- </span></div>
326
-
327
- <div class="navigation darker top" id="defined_in"><h3>Defined in</h3>
328
-
329
- <a href="../../files/lib/locale_rails/action_controller_rb.html">lib/locale_rails/action_controller.rb</a>
330
-
331
- </div>
332
-
333
-
334
-
335
- <div class="navigation top" id="methods"><h3>Methods</h3>
336
-
337
-
338
- <a href='#M000004'>
339
- after_init_locale<br/>
340
- </a>
341
-
342
-
343
-
344
-
345
- <a href='#M000003'>
346
- before_init_locale<br/>
347
- </a>
348
-
349
-
350
- </div>
351
- <div id="spacer"></div><div class="navigation darker index" id="class_wrapper"><div class="list_header"><h3>All classes</h3></div><div class="list_header_link"><a onclick="toggle('class'); toggleText('class_link'); return false;" href="#" id="class_link">Hide...</a></div><div class="clear"></div><div id="class"><form><label for="filter_class">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('class', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_class"></input></form></div></div><div class="navigation darker index" id="file_wrapper"><div class="list_header"><h3>All files</h3></div><div class="list_header_link"><a onclick="toggle('file'); toggleText('file_link'); return false;" href="#" id="file_link">Hide...</a></div><div class="clear"></div><div id="file"><form><label for="filter_file">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('file', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_file"></input></form></div></div><div class="navigation darker index" id="method_wrapper"><div class="list_header"><h3>All methods</h3></div><div class="list_header_link"><a onclick="toggle('method'); toggleText('method_link'); return false;" href="#" id="method_link">Show...</a></div><div class="clear"></div><div id="method"><form><label for="filter_method">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('method', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_method"></input></form></div></div></div><div id="content">
352
- <h1 id="item_name">Class: ActionController::Base</h1>
353
-
354
-
355
-
356
-
357
-
358
- <p></p>
359
-
360
-
361
-
362
-
363
-
364
-
365
- <h1>Public Class Methods</h1>
366
-
367
-
368
- <a class="small" name="M000004"><br/></a>
369
- <div class="method_block"><h3>
370
- <a href='#M000004'>
371
-
372
-
373
- after_init_locale
374
-
375
- (*filters, &amp;block)
376
-
377
- </a>
378
- </h3>
379
- <p>
380
- Append a block which is called after initializing locale on each WWW
381
- request.
382
- </p>
383
- <p>
384
- (e.g.)
385
- </p>
386
- <pre>
387
- class ApplicationController &lt; ActionController::Base
388
- def after_init_i18n
389
- L10nClass.new(locale_candidates)
390
- end
391
- after_init_locale :after_init_i18n
392
- # ...
393
- end
394
- </pre>
395
-
396
- <p class="source_link" id="M000004-show-link"><a onclick="toggle('M000004-source'); toggleText('M000004-link'); return false;" href="#" id="M000004-link">Show source...</a></p><div class="source" id="M000004-source"><pre> <span class="ruby-comment cmt"># File lib/locale_rails/action_controller.rb, line 74</span>
397
- 74: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">after_init_locale</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">filters</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
398
- 75: <span class="ruby-identifier">locale_filter_chain</span>.<span class="ruby-identifier">append_filter_to_chain</span>(<span class="ruby-identifier">filters</span>, <span class="ruby-identifier">:after</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
399
- 76: <span class="ruby-keyword kw">end</span></pre></div>
400
- </div>
401
-
402
- <a class="small" name="M000003"><br/></a>
403
- <div class="method_block"><h3>
404
- <a href='#M000003'>
405
-
406
-
407
- before_init_locale
408
-
409
- (*filters, &amp;block)
410
-
411
- </a>
412
- </h3>
413
- <p>
414
- Append a block which is called before initializing locale on each WWW
415
- request.
416
- </p>
417
- <p>
418
- (e.g.)
419
- </p>
420
- <pre>
421
- class ApplicationController &lt; ActionController::Base
422
- def before_init_i18n
423
- if (cookies[&quot;lang&quot;].nil? or cookies[&quot;lang&quot;].empty?)
424
- params[&quot;lang&quot;] = &quot;ko_KR&quot;
425
- end
426
- end
427
- before_init_locale :before_init_i18n
428
- # ...
429
- end
430
- </pre>
431
-
432
- <p class="source_link" id="M000003-show-link"><a onclick="toggle('M000003-source'); toggleText('M000003-link'); return false;" href="#" id="M000003-link">Show source...</a></p><div class="source" id="M000003-source"><pre> <span class="ruby-comment cmt"># File lib/locale_rails/action_controller.rb, line 60</span>
433
- 60: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">before_init_locale</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">filters</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
434
- 61: <span class="ruby-identifier">locale_filter_chain</span>.<span class="ruby-identifier">append_filter_to_chain</span>(<span class="ruby-identifier">filters</span>, <span class="ruby-identifier">:before</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
435
- 62: <span class="ruby-keyword kw">end</span></pre></div>
436
- </div>
437
-
438
-
439
-
440
-
441
-
442
- </div><div class="clear" id="footer">Generated on Jan 21, 2008 / Allison 2 &copy; 2007 <a href="http://cloudbur.st">Cloudburst, LLC</a></div></div></body></html>