locale_rails 0.1.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 (89) hide show
  1. data/ChangeLog +7 -0
  2. data/NEWS +7 -0
  3. data/README +33 -0
  4. data/Rakefile +72 -0
  5. data/doc/classes/ActionController/Base.html +442 -0
  6. data/doc/classes/ActionController/Caching.html +348 -0
  7. data/doc/classes/ActionController/Caching/Fragments.html +424 -0
  8. data/doc/classes/ActionView/Base.html +422 -0
  9. data/doc/classes/I18n.html +492 -0
  10. data/doc/classes/Locale.html +364 -0
  11. data/doc/created.rid +1 -0
  12. data/doc/files/ChangeLog.html +355 -0
  13. data/doc/files/README.html +409 -0
  14. data/doc/files/lib/locale_rails/action_controller_rb.html +349 -0
  15. data/doc/files/lib/locale_rails/action_view_rb.html +349 -0
  16. data/doc/files/lib/locale_rails/i18n_rb.html +342 -0
  17. data/doc/files/lib/locale_rails/version_rb.html +342 -0
  18. data/doc/files/lib/locale_rails_rb.html +349 -0
  19. data/doc/fr_class_index.html +7 -0
  20. data/doc/fr_file_index.html +8 -0
  21. data/doc/fr_method_index.html +11 -0
  22. data/doc/index.html +1 -0
  23. data/doc/rdoc-style.css +320 -0
  24. data/lib/locale_rails.rb +18 -0
  25. data/lib/locale_rails/action_controller.rb +141 -0
  26. data/lib/locale_rails/action_view.rb +43 -0
  27. data/lib/locale_rails/i18n.rb +56 -0
  28. data/lib/locale_rails/version.rb +4 -0
  29. data/locale_rails-0.1.0.gem +0 -0
  30. data/sample/README +22 -0
  31. data/sample/Rakefile +10 -0
  32. data/sample/app/controllers/application.rb +41 -0
  33. data/sample/app/controllers/samples_controller.rb +30 -0
  34. data/sample/app/helpers/application_helper.rb +3 -0
  35. data/sample/app/views/layouts/samples.html.erb +20 -0
  36. data/sample/app/views/samples/#cookie.rb# +3 -0
  37. data/sample/app/views/samples/_part.html.erb +68 -0
  38. data/sample/app/views/samples/_part_nl.html.erb +2 -0
  39. data/sample/app/views/samples/cached_action.html.erb +6 -0
  40. data/sample/app/views/samples/index.html.erb +24 -0
  41. data/sample/app/views/samples/index_uz_UZ.html.erb +15 -0
  42. data/sample/config/boot.rb +109 -0
  43. data/sample/config/database.yml +22 -0
  44. data/sample/config/environment.rb +25 -0
  45. data/sample/config/environments/development.rb +17 -0
  46. data/sample/config/environments/production.rb +24 -0
  47. data/sample/config/environments/test.rb +22 -0
  48. data/sample/config/initializers/inflections.rb +10 -0
  49. data/sample/config/initializers/mime_types.rb +5 -0
  50. data/sample/config/initializers/new_rails_defaults.rb +17 -0
  51. data/sample/config/routes.rb +13 -0
  52. data/sample/db/development.sqlite3 +0 -0
  53. data/sample/db/production.sqlite3 +0 -0
  54. data/sample/doc/README_FOR_APP +2 -0
  55. data/sample/log/development.log +2573 -0
  56. data/sample/log/production.log +80 -0
  57. data/sample/public/404.html +30 -0
  58. data/sample/public/422.html +30 -0
  59. data/sample/public/500.html +33 -0
  60. data/sample/public/dispatch.cgi +10 -0
  61. data/sample/public/dispatch.fcgi +24 -0
  62. data/sample/public/dispatch.rb +10 -0
  63. data/sample/public/favicon.ico +0 -0
  64. data/sample/public/images/rails.png +0 -0
  65. data/sample/public/javascripts/application.js +2 -0
  66. data/sample/public/javascripts/controls.js +963 -0
  67. data/sample/public/javascripts/dragdrop.js +972 -0
  68. data/sample/public/javascripts/effects.js +1120 -0
  69. data/sample/public/javascripts/prototype.js +4221 -0
  70. data/sample/public/robots.txt +5 -0
  71. data/sample/public/stylesheets/locale.css +81 -0
  72. data/sample/public/stylesheets/scaffold.css +74 -0
  73. data/sample/script/about +4 -0
  74. data/sample/script/console +3 -0
  75. data/sample/script/dbconsole +3 -0
  76. data/sample/script/destroy +3 -0
  77. data/sample/script/generate +3 -0
  78. data/sample/script/performance/benchmarker +3 -0
  79. data/sample/script/performance/profiler +3 -0
  80. data/sample/script/performance/request +3 -0
  81. data/sample/script/plugin +3 -0
  82. data/sample/script/process/inspector +3 -0
  83. data/sample/script/process/reaper +3 -0
  84. data/sample/script/process/spawner +3 -0
  85. data/sample/script/runner +3 -0
  86. data/sample/script/server +3 -0
  87. data/sample/test/performance/browsing_test.rb +9 -0
  88. data/sample/test/test_helper.rb +38 -0
  89. metadata +195 -0
data/ChangeLog ADDED
@@ -0,0 +1,7 @@
1
+ 2008-12-01 Masao Mutoh <mutoh@highway.ne.jp>
2
+
3
+ * Fix a trivial bug.
4
+
5
+ 2008-11-24 Masao Mutoh <mutoh@highway.ne.jp>
6
+
7
+ * Initial import.
data/NEWS ADDED
@@ -0,0 +1,7 @@
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
data/README ADDED
@@ -0,0 +1,33 @@
1
+ = Ruby-Locale for Ruby on Rails
2
+
3
+ This library provides some Rails localized functions.
4
+
5
+ This is useful with Rails i18n backends which doesn't have
6
+ auto-detection and some other features includes this library.
7
+
8
+ == Features for Ruby on Rails
9
+ * Auto-Detect the locales from the WWW browser
10
+ * Action/Fragment caching
11
+ * Separated Localized View template file
12
+ * Localized Routes
13
+
14
+ == Website
15
+ * http://www.yotabanana.com/hiki/ruby-locale-rails.html
16
+ * http://locale.rubyforge.org/
17
+
18
+ == Requirements
19
+ * Ruby-1.8.7 or later <http://www.ruby-lang.org/ja/>
20
+ * JRuby-1.1.4 or later <http://jruby.codehaus.org/>
21
+ * Ruby-Locale-0.9.0 or later <http://locale.rubyforge.org/>
22
+
23
+ == Install
24
+ * gem:
25
+ ($ su)
26
+ # gem install locale_rails
27
+
28
+ == License
29
+ This program is licenced under the same licence as Ruby.
30
+ (See the file 'COPYING'.)
31
+
32
+ == Maintainer
33
+ Masao Mutoh <mutoh at highway.ne.jp>
data/Rakefile ADDED
@@ -0,0 +1,72 @@
1
+ $:.unshift "./lib"
2
+
3
+ require 'rake'
4
+ require 'rake/testtask'
5
+ require 'rake/rdoctask'
6
+ require 'rake/packagetask'
7
+ require 'rake/gempackagetask'
8
+
9
+ require 'locale_rails/version'
10
+
11
+ #desc "Default Task"
12
+ #task :default => [ :test ]
13
+
14
+ PKG_NAME = "locale_rails"
15
+ PKG_VERSION = Locale::LOCALE_RAILS_VERSION
16
+
17
+ # Run the unit tests
18
+ task :test do
19
+ Dir.glob("test/test_*.rb").each do |v|
20
+ ruby "-Ilib #{v}"
21
+ end
22
+ end
23
+
24
+ Rake::RDocTask.new { |rdoc|
25
+ begin
26
+ allison = `allison --path`.chop
27
+ rescue Exception
28
+ allison = ""
29
+ end
30
+ rdoc.rdoc_dir = 'doc'
31
+ rdoc.title = "Ruby-Locale for Ruby on Rails"
32
+ rdoc.options << '--line-numbers' << '--inline-source'
33
+ rdoc.rdoc_files.include('README', 'ChangeLog')
34
+ rdoc.rdoc_files.include('lib/**/*.rb')
35
+ rdoc.template = allison if allison.size > 0
36
+ }
37
+
38
+ desc "Create gem"
39
+ spec = Gem::Specification.new do |s|
40
+ s.name = PKG_NAME
41
+ s.version = PKG_VERSION
42
+ s.summary = 'Ruby-Locale for Ruby on Rails is the pure ruby library which provides basic functions for localization based on Ruby-Locale.'
43
+ s.author = 'Masao Mutoh'
44
+ s.email = 'mutoh@highway.ne.jp'
45
+ s.homepage = 'http://locale.rubyforge.org/'
46
+ s.rubyforge_project = "locale"
47
+ s.files = FileList['**/*'].to_a.select{|v| v !~ /pkg|CVS/}
48
+ s.require_path = 'lib'
49
+ s.bindir = 'bin'
50
+ s.add_dependency('locale', '>= 0.9.0')
51
+ s.has_rdoc = true
52
+ s.description = <<-EOF
53
+ Ruby-Locale for Ruby on Rails is the pure ruby library which provides basic functions for localization.
54
+ EOF
55
+ end
56
+
57
+ Rake::GemPackageTask.new(spec) do |p|
58
+ p.gem_spec = spec
59
+ p.need_tar_gz = false
60
+ p.need_zip = false
61
+ end
62
+
63
+ desc "Publish the release files to RubyForge."
64
+ task :release => [ :package ] do
65
+ require 'rubyforge'
66
+
67
+ rubyforge = RubyForge.new
68
+ rubyforge.login
69
+ rubyforge.add_release("locale", "locale",
70
+ "Ruby-Locale for Ruby on Rails #{PKG_VERSION}",
71
+ "pkg/#{PKG_NAME}-#{PKG_VERSION}.gem")
72
+ end
@@ -0,0 +1,442 @@
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>