locale 2.0.2 → 2.0.3

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 (62) hide show
  1. data/ChangeLog +3 -0
  2. data/benchmark/benchmark.rb +34 -0
  3. data/benchmark/benchmark_2.0.1.txt +7 -0
  4. data/doc/classes/Locale.html +1244 -0
  5. data/doc/classes/Locale/Driver.html +374 -0
  6. data/doc/classes/Locale/Driver/CGI.html +536 -0
  7. data/doc/classes/Locale/Driver/Env.html +439 -0
  8. data/doc/classes/Locale/Driver/JRuby.html +389 -0
  9. data/doc/classes/Locale/Driver/Posix.html +430 -0
  10. data/doc/classes/Locale/Driver/Win32.html +398 -0
  11. data/doc/classes/Locale/Driver/Win32Table.html +355 -0
  12. data/doc/classes/Locale/Info.html +585 -0
  13. data/doc/classes/Locale/Info/Language.html +763 -0
  14. data/doc/classes/Locale/Info/Region.html +470 -0
  15. data/doc/classes/Locale/Tag.html +433 -0
  16. data/doc/classes/Locale/Tag/Cldr.html +523 -0
  17. data/doc/classes/Locale/Tag/Common.html +624 -0
  18. data/doc/classes/Locale/Tag/Irregular.html +423 -0
  19. data/doc/classes/Locale/Tag/Posix.html +612 -0
  20. data/doc/classes/Locale/Tag/Rfc.html +581 -0
  21. data/doc/classes/Locale/Tag/Simple.html +721 -0
  22. data/doc/classes/Locale/TagList.html +826 -0
  23. data/doc/classes/Locale/Util.html +506 -0
  24. data/doc/classes/Locale/Util/Memoizable.html +355 -0
  25. data/doc/created.rid +1 -0
  26. data/doc/files/ChangeLog.html +537 -0
  27. data/doc/files/README_rdoc.html +565 -0
  28. data/doc/files/lib/locale/driver/cgi_rb.html +341 -0
  29. data/doc/files/lib/locale/driver/env_rb.html +353 -0
  30. data/doc/files/lib/locale/driver/jruby_rb.html +353 -0
  31. data/doc/files/lib/locale/driver/posix_rb.html +341 -0
  32. data/doc/files/lib/locale/driver/win32_rb.html +348 -0
  33. data/doc/files/lib/locale/driver/win32_table_rb.html +341 -0
  34. data/doc/files/lib/locale/info/language_rb.html +352 -0
  35. data/doc/files/lib/locale/info/region_rb.html +352 -0
  36. data/doc/files/lib/locale/info_rb.html +353 -0
  37. data/doc/files/lib/locale/tag/cldr_rb.html +348 -0
  38. data/doc/files/lib/locale/tag/common_rb.html +348 -0
  39. data/doc/files/lib/locale/tag/irregular_rb.html +348 -0
  40. data/doc/files/lib/locale/tag/posix_rb.html +341 -0
  41. data/doc/files/lib/locale/tag/rfc_rb.html +348 -0
  42. data/doc/files/lib/locale/tag/simple_rb.html +348 -0
  43. data/doc/files/lib/locale/tag_rb.html +378 -0
  44. data/doc/files/lib/locale/taglist_rb.html +348 -0
  45. data/doc/files/lib/locale/util/memoizable_rb.html +359 -0
  46. data/doc/files/lib/locale/version_rb.html +341 -0
  47. data/doc/files/lib/locale_rb.html +363 -0
  48. data/doc/fr_class_index.html +22 -0
  49. data/doc/fr_file_index.html +23 -0
  50. data/doc/fr_method_index.html +99 -0
  51. data/doc/index.html +1 -0
  52. data/doc/rdoc-style.css +320 -0
  53. data/lib/locale/util/memoizable.rb.20090328 +96 -0
  54. data/lib/locale/util/memoizable.rb.old +91 -0
  55. data/lib/locale/version.rb +1 -1
  56. data/replace.rb +21 -0
  57. data/test.rb +28 -0
  58. data/test/test.rb +7 -0
  59. data/test/tmp.txt +20 -0
  60. data/test2.rb +14 -0
  61. data/test3.rb +12 -0
  62. metadata +75 -1
data/ChangeLog CHANGED
@@ -1,3 +1,6 @@
1
+ = locale-2.0.3 (2009-05-09)
2
+ * Update version.
3
+
1
4
  = locale-2.0.2 (2009-05-04)
2
5
  * Add Locale.set_app_language_tags to restrict the target locales whole the application. [Suggested by Vladimir Dobriakov]
3
6
  * locale/driver/cgi.rb: Add Locale.set_request.
@@ -0,0 +1,34 @@
1
+ #$LOAD_PATH.unshift "../lib"
2
+
3
+ require 'benchmark'
4
+ require 'locale'
5
+ def memory
6
+ GC.start
7
+ pid = Process.pid
8
+ map = `pmap -d #{pid}`
9
+ map.split("\n").last.strip.squeeze(' ').split(' ')[3].to_i
10
+ end
11
+
12
+ size = memory
13
+
14
+ Benchmark.bm(18){|x|
15
+ x.report("Locale.default="){ 50000.times{|i|
16
+ Locale.default = "ja-JP"
17
+ } }
18
+ x.report("Locale.default=(parse)"){ 50000.times{|i|
19
+ Locale.default = Locale::Tag::Posix.parse("ja-JP.eucJP")
20
+ } }
21
+ x.report("Locale.default=(new)"){ 50000.times{|i|
22
+ Locale.default = Locale::Tag::Posix.new("ja", "JP", "eucJP")
23
+ } }
24
+ Locale.default = nil
25
+ x.report("Locale.candidates"){ 50000.times{|i|
26
+ Locale.candidates
27
+ } }
28
+ Locale.default = nil
29
+ x.report("Locale.current"){ 50000.times{|i|
30
+ Locale.current
31
+ } }
32
+ }
33
+
34
+ p "memory: #{memory - size}"
@@ -0,0 +1,7 @@
1
+ user system total real
2
+ Locale.default= 0.960000 0.010000 0.970000 ( 0.975299)
3
+ Locale.default=(parse) 0.620000 0.000000 0.620000 ( 0.632838)
4
+ Locale.default=(new) 0.840000 0.000000 0.840000 ( 0.839074)
5
+ Locale.candidates 0.650000 0.000000 0.650000 ( 0.659982)
6
+ Locale.current 0.120000 0.000000 0.120000 ( 0.112794)
7
+ "memory: 5856"
@@ -0,0 +1,1244 @@
1
+ <html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title>Module: Locale</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
+ Module: Locale
320
+ </h1></span></div><div class="clear"></div><div id="left">
321
+
322
+ <div class="navigation darker top" id="defined_in"><h3>Defined in</h3>
323
+
324
+ <a href="../files/lib/locale/driver/env_rb.html">lib/locale/driver/env.rb</a>
325
+
326
+
327
+ <a href="../files/lib/locale/driver/jruby_rb.html">lib/locale/driver/jruby.rb</a>
328
+
329
+
330
+ <a href="../files/lib/locale/driver/posix_rb.html">lib/locale/driver/posix.rb</a>
331
+
332
+
333
+ <a href="../files/lib/locale/driver/win32_table_rb.html">lib/locale/driver/win32_table.rb</a>
334
+
335
+
336
+ <a href="../files/lib/locale/driver/win32_rb.html">lib/locale/driver/win32.rb</a>
337
+
338
+
339
+ <a href="../files/lib/locale/driver/cgi_rb.html">lib/locale/driver/cgi.rb</a>
340
+
341
+
342
+ <a href="../files/lib/locale/version_rb.html">lib/locale/version.rb</a>
343
+
344
+
345
+ <a href="../files/lib/locale/tag_rb.html">lib/locale/tag.rb</a>
346
+
347
+
348
+ <a href="../files/lib/locale/tag/cldr_rb.html">lib/locale/tag/cldr.rb</a>
349
+
350
+
351
+ <a href="../files/lib/locale/tag/common_rb.html">lib/locale/tag/common.rb</a>
352
+
353
+
354
+ <a href="../files/lib/locale/tag/rfc_rb.html">lib/locale/tag/rfc.rb</a>
355
+
356
+
357
+ <a href="../files/lib/locale/tag/irregular_rb.html">lib/locale/tag/irregular.rb</a>
358
+
359
+
360
+ <a href="../files/lib/locale/tag/posix_rb.html">lib/locale/tag/posix.rb</a>
361
+
362
+
363
+ <a href="../files/lib/locale/tag/simple_rb.html">lib/locale/tag/simple.rb</a>
364
+
365
+
366
+ <a href="../files/lib/locale/info/language_rb.html">lib/locale/info/language.rb</a>
367
+
368
+
369
+ <a href="../files/lib/locale/info/region_rb.html">lib/locale/info/region.rb</a>
370
+
371
+
372
+ <a href="../files/lib/locale/taglist_rb.html">lib/locale/taglist.rb</a>
373
+
374
+
375
+ <a href="../files/lib/locale/util/memoizable_rb.html">lib/locale/util/memoizable.rb</a>
376
+
377
+
378
+ <a href="../files/lib/locale_rb.html">lib/locale.rb</a>
379
+
380
+ </div>
381
+
382
+ <div class="navigation top" id="includes"><h3>Includes</h3>
383
+
384
+
385
+ <a href='Locale/Util/Memoizable.html'>
386
+ Locale::Util::Memoizable<br/>
387
+ </a>
388
+
389
+
390
+ </div>
391
+
392
+
393
+ <div class="navigation top" id="methods"><h3>Methods</h3>
394
+
395
+
396
+ <a href='#M000017'>
397
+ app_language_tags<br/>
398
+ </a>
399
+
400
+
401
+
402
+
403
+ <a href='#M000012'>
404
+ candidates<br/>
405
+ </a>
406
+
407
+
408
+
409
+
410
+ <a href='#M000003'>
411
+ cgi=<br/>
412
+ </a>
413
+
414
+
415
+
416
+
417
+ <a href='#M000013'>
418
+ charset<br/>
419
+ </a>
420
+
421
+
422
+
423
+
424
+ <a href='#M000014'>
425
+ clear<br/>
426
+ </a>
427
+
428
+
429
+
430
+
431
+ <a href='#M000015'>
432
+ clear_all<br/>
433
+ </a>
434
+
435
+
436
+
437
+
438
+ <a href='#M000011'>
439
+ current<br/>
440
+ </a>
441
+
442
+
443
+
444
+
445
+ <a href='#M000010'>
446
+ current=<br/>
447
+ </a>
448
+
449
+
450
+
451
+
452
+ <a href='#M000008'>
453
+ default<br/>
454
+ </a>
455
+
456
+
457
+
458
+
459
+ <a href='#M000007'>
460
+ default=<br/>
461
+ </a>
462
+
463
+
464
+
465
+
466
+ <a href='#M000005'>
467
+ driver_module<br/>
468
+ </a>
469
+
470
+
471
+
472
+
473
+ <a href='#M000004'>
474
+ init<br/>
475
+ </a>
476
+
477
+
478
+
479
+
480
+ <a href='#M000016'>
481
+ set_app_language_tags<br/>
482
+ </a>
483
+
484
+
485
+
486
+
487
+ <a href='#M000002'>
488
+ set_cgi<br/>
489
+ </a>
490
+
491
+
492
+
493
+
494
+ <a href='#M000009'>
495
+ set_current<br/>
496
+ </a>
497
+
498
+
499
+
500
+
501
+ <a href='#M000006'>
502
+ set_default<br/>
503
+ </a>
504
+
505
+
506
+
507
+
508
+ <a href='#M000001'>
509
+ set_request<br/>
510
+ </a>
511
+
512
+
513
+ </div>
514
+ <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 href="#" onclick="toggle('class'); toggleText('class_link'); return false;" 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 href="#" onclick="toggle('file'); toggleText('file_link'); return false;" 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 href="#" onclick="toggle('method'); toggleText('method_link'); return false;" 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">
515
+ <h1 id="item_name">Module: Locale</h1>
516
+
517
+ <div id="description"><p>
518
+ <a href="Locale.html">Locale</a> module manages the locale informations of
519
+ the application. These functions are the most important APIs in this
520
+ library. Almost of all i18n/l10n programs use this APIs only.
521
+ </p>
522
+ </div>
523
+
524
+
525
+
526
+
527
+ <p></p>
528
+
529
+ <h1>Child modules and classes</h1><p>Module <a href="Locale/Driver.html" class="link">Locale::Driver</a><br />
530
+ Module <a href="Locale/Info.html" class="link">Locale::Info</a><br />
531
+ Module <a href="Locale/Tag.html" class="link">Locale::Tag</a><br />
532
+ Module <a href="Locale/Util.html" class="link">Locale::Util</a><br />
533
+ Class <a href="Locale/TagList.html" class="link">Locale::TagList</a><br />
534
+ </p>
535
+
536
+ <h1>Constants</h1><p><table><tr><th>Name</th><th>Value</th></tr>
537
+ <tr>
538
+ <td class="highlight">VERSION</td>
539
+
540
+ <td class="normal">&quot;2.0.3&quot;</td>
541
+
542
+
543
+
544
+ </tr>
545
+ <tr>
546
+ <td class="highlight">ROOT</td>
547
+
548
+ <td class="normal">File.dirname(__FILE__)</td>
549
+
550
+
551
+
552
+ </tr>
553
+ </table></p>
554
+
555
+
556
+
557
+
558
+ <h1>Public Instance Methods</h1>
559
+
560
+
561
+ <a class="small" name="M000017"><br/></a>
562
+ <div class="method_block"><h3>
563
+ <a href='#M000017'>
564
+
565
+
566
+ app_language_tags
567
+
568
+ ()
569
+
570
+ </a>
571
+ </h3>
572
+ <p>
573
+ Returns the <a href="Locale.html#M000017">app_language_tags</a>. Default is
574
+ nil. See <a href="Locale.html#M000016">set_app_language_tags</a> for more
575
+ details.
576
+ </p>
577
+
578
+ <p class="source_link" id="M000017-show-link"><a href="#" onclick="toggle('M000017-source'); toggleText('M000017-link'); return false;" id="M000017-link">Show source...</a></p><div class="source" id="M000017-source"><pre> <span class="ruby-comment cmt"># File lib/locale.rb, line 325</span>
579
+ 325: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">app_language_tags</span>
580
+ 326: <span class="ruby-ivar">@@app_language_tags</span>
581
+ 327: <span class="ruby-keyword kw">end</span></pre></div>
582
+ </div>
583
+
584
+ <a class="small" name="M000012"><br/></a>
585
+ <div class="method_block"><h3>
586
+ <a href='#M000012'>
587
+
588
+
589
+ candidates
590
+
591
+ (options = {})
592
+
593
+ </a>
594
+ </h3>
595
+ <p>
596
+ Returns the language tags which are variations of the <a
597
+ href="Locale.html#M000011">current</a> locales order by priority.
598
+ </p>
599
+ <p>
600
+ For example, if the <a href="Locale.html#M000011">current</a> locales are
601
+ [&quot;fr&quot;, &quot;ja_JP&quot;, &quot;en_US&quot;,
602
+ &quot;en-Latn-GB-VARIANT&quot;], then returns [&quot;fr&quot;,
603
+ &quot;ja_JP&quot;, &quot;en_US&quot;, &quot;en-Latn-GB-VARIANT&quot;,
604
+ &quot;en_Latn_GB&quot;, &quot;en_GB&quot;, &quot;ja&quot;, &quot;en&quot;].
605
+ &quot;en&quot; is the <a href="Locale.html#M000008">default</a> locale(You
606
+ can change it using <a href="Locale.html#M000006">set_default</a>). The <a
607
+ href="Locale.html#M000008">default</a> locale is added at the end of the
608
+ list even if it isn&#8216;t exist.
609
+ </p>
610
+ <p>
611
+ Usually, this method is used to find the locale data as the path(or a kind
612
+ of IDs).
613
+ </p>
614
+ <ul>
615
+ <li>options: options as a Hash or nil.
616
+
617
+ <ul>
618
+ <li>:supported_language_tags - An Array of the language tags order by the
619
+ priority. This option restricts the locales which are supported by the
620
+ library/application. Default is nil if you don&#8216;t need to restrict the
621
+ locales.
622
+
623
+ <pre>
624
+ (e.g.1) [&quot;fr_FR&quot;, &quot;en_GB&quot;, &quot;en_US&quot;, ...]
625
+ </pre>
626
+ </li>
627
+ <li>:type - The type of language tag. :common, :rfc, :cldr, :posix and :simple
628
+ are available. Default value is :common
629
+
630
+ </li>
631
+ </ul>
632
+ </li>
633
+ </ul>
634
+
635
+ <p class="source_link" id="M000012-show-link"><a href="#" onclick="toggle('M000012-source'); toggleText('M000012-link'); return false;" id="M000012-link">Show source...</a></p><div class="source" id="M000012-source"><pre> <span class="ruby-comment cmt"># File lib/locale.rb, line 211</span>
636
+ 211: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">candidates</span>(<span class="ruby-identifier">options</span> = {})
637
+ 212: <span class="ruby-identifier">opts</span> = {<span class="ruby-identifier">:supported_language_tags</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">:current</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">current</span>,
638
+ 213: <span class="ruby-identifier">:type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">:common</span>}.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
639
+ 214:
640
+ 215: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-identifier">:candidates_caches</span>]
641
+ 216: <span class="ruby-identifier">cache</span> = <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-identifier">:candidates_caches</span>][<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">hash</span>]
642
+ 217: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">cache</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cache</span>
643
+ 218: <span class="ruby-keyword kw">else</span>
644
+ 219: <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-identifier">:candidates_caches</span>] = {}
645
+ 220: <span class="ruby-keyword kw">end</span>
646
+ 221: <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-identifier">:candidates_caches</span>][<span class="ruby-identifier">opts</span>.<span class="ruby-identifier">hash</span>] =
647
+ 222: <span class="ruby-identifier">collect_candidates</span>(<span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:type</span>], <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:current</span>],
648
+ 223: <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:supported_language_tags</span>])
649
+ 224: <span class="ruby-keyword kw">end</span></pre></div>
650
+ </div>
651
+
652
+ <a class="small" name="M000003"><br/></a>
653
+ <div class="method_block"><h3>
654
+ <a href='#M000003'>
655
+
656
+
657
+ cgi=
658
+
659
+ (cgi)
660
+
661
+ </a>
662
+ </h3>
663
+ <p>
664
+ Sets a CGI object.This is the convenient function of <a
665
+ href="Locale.html#M000001">set_request</a>().
666
+ </p>
667
+ <p>
668
+ This method is appeared when <a
669
+ href="Locale.html#M000004">Locale.init</a>(:driver =&gt; :cgi) is called.
670
+ </p>
671
+ <ul>
672
+ <li>cgi: CGI object
673
+
674
+ </li>
675
+ <li>Returns: cgi
676
+
677
+ </li>
678
+ </ul>
679
+
680
+ <p class="source_link" id="M000003-show-link"><a href="#" onclick="toggle('M000003-source'); toggleText('M000003-link'); return false;" id="M000003-link">Show source...</a></p><div class="source" id="M000003-source"><pre> <span class="ruby-comment cmt"># File lib/locale/driver/cgi.rb, line 132</span>
681
+ 132: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cgi=</span>(<span class="ruby-identifier">cgi</span>)
682
+ 133: <span class="ruby-identifier">set_cgi</span>(<span class="ruby-identifier">cgi</span>)
683
+ 134: <span class="ruby-identifier">cgi</span>
684
+ 135: <span class="ruby-keyword kw">end</span></pre></div>
685
+ </div>
686
+
687
+ <a class="small" name="M000013"><br/></a>
688
+ <div class="method_block"><h3>
689
+ <a href='#M000013'>
690
+
691
+
692
+ charset
693
+
694
+ ()
695
+
696
+ </a>
697
+ </h3>
698
+ <p>
699
+ Gets the <a href="Locale.html#M000011">current</a> <a
700
+ href="Locale.html#M000013">charset</a>.
701
+ </p>
702
+ <p>
703
+ This returns the <a href="Locale.html#M000011">current</a> user/system <a
704
+ href="Locale.html#M000013">charset</a>. This value is read only, so you
705
+ can&#8216;t set it by yourself.
706
+ </p>
707
+ <ul>
708
+ <li>Returns: the <a href="Locale.html#M000011">current</a> <a
709
+ href="Locale.html#M000013">charset</a>.
710
+
711
+ </li>
712
+ </ul>
713
+
714
+ <p class="source_link" id="M000013-show-link"><a href="#" onclick="toggle('M000013-source'); toggleText('M000013-link'); return false;" id="M000013-link">Show source...</a></p><div class="source" id="M000013-source"><pre> <span class="ruby-comment cmt"># File lib/locale.rb, line 270</span>
715
+ 270: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">charset</span>
716
+ 271: <span class="ruby-identifier">driver_module</span>.<span class="ruby-identifier">charset</span> <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;UTF-8&quot;</span>
717
+ 272: <span class="ruby-keyword kw">end</span></pre></div>
718
+ </div>
719
+
720
+ <a class="small" name="M000014"><br/></a>
721
+ <div class="method_block"><h3>
722
+ <a href='#M000014'>
723
+
724
+
725
+ clear
726
+
727
+ ()
728
+
729
+ </a>
730
+ </h3>
731
+ <p>
732
+ Clear <a href="Locale.html#M000011">current</a> locale.
733
+ </p>
734
+ <ul>
735
+ <li>Returns: self
736
+
737
+ </li>
738
+ </ul>
739
+
740
+ <p class="source_link" id="M000014-show-link"><a href="#" onclick="toggle('M000014-source'); toggleText('M000014-link'); return false;" id="M000014-link">Show source...</a></p><div class="source" id="M000014-source"><pre> <span class="ruby-comment cmt"># File lib/locale.rb, line 277</span>
741
+ 277: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear</span>
742
+ 278: <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-identifier">:current_languages</span>] = <span class="ruby-keyword kw">nil</span>
743
+ 279: <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-identifier">:candidates_caches</span>] = <span class="ruby-keyword kw">nil</span>
744
+ 280: <span class="ruby-keyword kw">self</span>
745
+ 281: <span class="ruby-keyword kw">end</span></pre></div>
746
+ </div>
747
+
748
+ <a class="small" name="M000015"><br/></a>
749
+ <div class="method_block"><h3>
750
+ <a href='#M000015'>
751
+
752
+
753
+ clear_all
754
+
755
+ ()
756
+
757
+ </a>
758
+ </h3>
759
+ <p>
760
+ Clear all locales and charsets of all threads. This doesn&#8216;t <a
761
+ href="Locale.html#M000014">clear</a> the <a
762
+ href="Locale.html#M000008">default</a> and <a
763
+ href="Locale.html#M000017">app_language_tags</a>. Use <a
764
+ href="Locale.html#M000008">Locale.default</a> = nil to unset the <a
765
+ href="Locale.html#M000008">default</a> locale.
766
+ </p>
767
+ <ul>
768
+ <li>Returns: self
769
+
770
+ </li>
771
+ </ul>
772
+
773
+ <p class="source_link" id="M000015-show-link"><a href="#" onclick="toggle('M000015-source'); toggleText('M000015-link'); return false;" id="M000015-link">Show source...</a></p><div class="source" id="M000015-source"><pre> <span class="ruby-comment cmt"># File lib/locale.rb, line 287</span>
774
+ 287: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear_all</span>
775
+ 288: <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">thread</span><span class="ruby-operator">|</span>
776
+ 289: <span class="ruby-identifier">thread</span>[<span class="ruby-identifier">:current_languages</span>] = <span class="ruby-keyword kw">nil</span>
777
+ 290: <span class="ruby-identifier">thread</span>[<span class="ruby-identifier">:candidates_caches</span>] = <span class="ruby-keyword kw">nil</span>
778
+ 291: <span class="ruby-keyword kw">end</span>
779
+ 292: <span class="ruby-identifier">memoize_clear</span>
780
+ 293: <span class="ruby-keyword kw">self</span>
781
+ 294: <span class="ruby-keyword kw">end</span></pre></div>
782
+ </div>
783
+
784
+ <a class="small" name="M000011"><br/></a>
785
+ <div class="method_block"><h3>
786
+ <a href='#M000011'>
787
+
788
+
789
+ current
790
+
791
+ ()
792
+
793
+ </a>
794
+ </h3>
795
+ <p>
796
+ Gets the <a href="Locale.html#M000011">current</a> locales (<a
797
+ href="Locale/Tag.html">Locale::Tag</a>&#8216;s class). If the <a
798
+ href="Locale.html#M000011">current</a> locale is not set, this returns
799
+ system/default locale.
800
+ </p>
801
+ <p>
802
+ This method returns the <a href="Locale.html#M000011">current</a> language
803
+ tags even if it isn&#8216;t included in <a
804
+ href="Locale.html#M000017">app_language_tags</a>.
805
+ </p>
806
+ <p>
807
+ Usually, the programs should use <a
808
+ href="Locale.html#M000012">Locale.candidates</a> to find the correct
809
+ locale, not this method.
810
+ </p>
811
+ <ul>
812
+ <li>Returns: an Array of the <a href="Locale.html#M000011">current</a> locales
813
+ (<a href="Locale/Tag.html">Locale::Tag</a>&#8216;s class).
814
+
815
+ </li>
816
+ </ul>
817
+
818
+ <p class="source_link" id="M000011-show-link"><a href="#" onclick="toggle('M000011-source'); toggleText('M000011-link'); return false;" id="M000011-link">Show source...</a></p><div class="source" id="M000011-source"><pre> <span class="ruby-comment cmt"># File lib/locale.rb, line 176</span>
819
+ 176: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">current</span>
820
+ 177: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-identifier">:current_languages</span>]
821
+ 178: <span class="ruby-identifier">loc</span> = <span class="ruby-identifier">driver_module</span>.<span class="ruby-identifier">locales</span>
822
+ 179: <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-identifier">:current_languages</span>] = <span class="ruby-identifier">loc</span> <span class="ruby-value">? </span><span class="ruby-identifier">loc</span> <span class="ruby-operator">:</span> <span class="ruby-constant">Locale</span><span class="ruby-operator">::</span><span class="ruby-constant">TagList</span>.<span class="ruby-identifier">new</span>([<span class="ruby-identifier">default</span>])
823
+ 180: <span class="ruby-keyword kw">end</span>
824
+ 181: <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-identifier">:current_languages</span>]
825
+ 182: <span class="ruby-keyword kw">end</span></pre></div>
826
+ </div>
827
+
828
+ <a class="small" name="M000010"><br/></a>
829
+ <div class="method_block"><h3>
830
+ <a href='#M000010'>
831
+
832
+
833
+ current=
834
+
835
+ (tag)
836
+
837
+ </a>
838
+ </h3>
839
+ <p>
840
+ Sets a <a href="Locale.html#M000011">current</a> locale. This is a single
841
+ argument version of <a href="Locale.html#M000009">Locale.set_current</a>.
842
+ </p>
843
+ <ul>
844
+ <li>tag: the language tag such as &quot;ja-JP&quot;
845
+
846
+ </li>
847
+ <li>Returns: an Array of the <a href="Locale.html#M000011">current</a> locale
848
+ (<a href="Locale/Tag.html">Locale::Tag</a>&#8216;s class).
849
+
850
+ <pre>
851
+ Locale.current = &quot;ja-JP&quot;
852
+ Locale.current = &quot;ja_JP.eucJP&quot;
853
+ </pre>
854
+ </li>
855
+ </ul>
856
+
857
+ <p class="source_link" id="M000010-show-link"><a href="#" onclick="toggle('M000010-source'); toggleText('M000010-link'); return false;" id="M000010-link">Show source...</a></p><div class="source" id="M000010-source"><pre> <span class="ruby-comment cmt"># File lib/locale.rb, line 163</span>
858
+ 163: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">current=</span>(<span class="ruby-identifier">tag</span>)
859
+ 164: <span class="ruby-identifier">set_current</span>(<span class="ruby-identifier">tag</span>)
860
+ 165: <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-identifier">:current_languages</span>]
861
+ 166: <span class="ruby-keyword kw">end</span></pre></div>
862
+ </div>
863
+
864
+ <a class="small" name="M000008"><br/></a>
865
+ <div class="method_block"><h3>
866
+ <a href='#M000008'>
867
+
868
+
869
+ default
870
+
871
+ ()
872
+
873
+ </a>
874
+ </h3>
875
+ <p>
876
+ Gets the <a href="Locale.html#M000008">default</a> locale(language tag).
877
+ </p>
878
+ <p>
879
+ If the <a href="Locale.html#M000008">default</a> language tag is not set,
880
+ this returns nil.
881
+ </p>
882
+ <ul>
883
+ <li>Returns: the <a href="Locale.html#M000008">default</a> locale (<a
884
+ href="Locale/Tag.html">Locale::Tag</a>&#8216;s class).
885
+
886
+ </li>
887
+ </ul>
888
+
889
+ <p class="source_link" id="M000008-show-link"><a href="#" onclick="toggle('M000008-source'); toggleText('M000008-link'); return false;" id="M000008-link">Show source...</a></p><div class="source" id="M000008-source"><pre> <span class="ruby-comment cmt"># File lib/locale.rb, line 125</span>
890
+ 125: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">default</span>
891
+ 126: <span class="ruby-ivar">@@default_tag</span> <span class="ruby-operator">||</span> <span class="ruby-constant">DEFAULT_LANGUAGE_TAG</span>
892
+ 127: <span class="ruby-keyword kw">end</span></pre></div>
893
+ </div>
894
+
895
+ <a class="small" name="M000007"><br/></a>
896
+ <div class="method_block"><h3>
897
+ <a href='#M000007'>
898
+
899
+
900
+ default=
901
+
902
+ (tag)
903
+
904
+ </a>
905
+ </h3>
906
+ <p>
907
+ Same as <a href="Locale.html#M000006">Locale.set_default</a>.
908
+ </p>
909
+ <ul>
910
+ <li>locale: the <a href="Locale.html#M000008">default</a> locale (<a
911
+ href="Locale/Tag.html">Locale::Tag</a>&#8216;s class) or a String such as
912
+ &quot;ja-JP&quot;.
913
+
914
+ </li>
915
+ <li>Returns: locale.
916
+
917
+ </li>
918
+ </ul>
919
+
920
+ <p class="source_link" id="M000007-show-link"><a href="#" onclick="toggle('M000007-source'); toggleText('M000007-link'); return false;" id="M000007-link">Show source...</a></p><div class="source" id="M000007-source"><pre> <span class="ruby-comment cmt"># File lib/locale.rb, line 115</span>
921
+ 115: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">default=</span>(<span class="ruby-identifier">tag</span>)
922
+ 116: <span class="ruby-identifier">set_default</span>(<span class="ruby-identifier">tag</span>)
923
+ 117: <span class="ruby-ivar">@@default_tag</span>
924
+ 118: <span class="ruby-keyword kw">end</span></pre></div>
925
+ </div>
926
+
927
+ <a class="small" name="M000005"><br/></a>
928
+ <div class="method_block"><h3>
929
+ <a href='#M000005'>
930
+
931
+
932
+ driver_module
933
+
934
+ ()
935
+
936
+ </a>
937
+ </h3>
938
+ <p>
939
+ Gets the driver module.
940
+ </p>
941
+ <p>
942
+ Usually you don&#8216;t need to call this method.
943
+ </p>
944
+ <ul>
945
+ <li>Returns: the driver module.
946
+
947
+ </li>
948
+ </ul>
949
+
950
+ <p class="source_link" id="M000005-show-link"><a href="#" onclick="toggle('M000005-source'); toggleText('M000005-link'); return false;" id="M000005-link">Show source...</a></p><div class="source" id="M000005-source"><pre> <span class="ruby-comment cmt"># File lib/locale.rb, line 88</span>
951
+ 88: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">driver_module</span>
952
+ 89: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@@locale_driver_module</span>
953
+ 90: <span class="ruby-constant">Locale</span>.<span class="ruby-identifier">init</span>
954
+ 91: <span class="ruby-keyword kw">end</span>
955
+ 92: <span class="ruby-ivar">@@locale_driver_module</span>
956
+ 93: <span class="ruby-keyword kw">end</span></pre></div>
957
+ </div>
958
+
959
+ <a class="small" name="M000004"><br/></a>
960
+ <div class="method_block"><h3>
961
+ <a href='#M000004'>
962
+
963
+
964
+ init
965
+
966
+ (opts = {})
967
+
968
+ </a>
969
+ </h3>
970
+ <p>
971
+ Initialize <a href="Locale.html">Locale</a> library. Usually, you
972
+ don&#8216;t need to call this directly, because this is called when <a
973
+ href="Locale.html">Locale</a>&#8216;s methods are called.
974
+ </p>
975
+ <p>
976
+ If you use this library with CGI or the kind of CGI. You need to call <a
977
+ href="Locale.html#M000004">Locale.init</a>(:driver =&gt; :cgi).
978
+ </p>
979
+ <h4>For Framework designers/programers:</h4>
980
+ <p>
981
+ If your framework is for WWW, call this once like: <a
982
+ href="Locale.html#M000004">Locale.init</a>(:driver =&gt; :cgi).
983
+ </p>
984
+ <h4>To Application programers:</h4>
985
+ <p>
986
+ If your framework doesn&#8216;t use ruby-locale and the application is for
987
+ WWW, call this once like: <a
988
+ href="Locale.html#M000004">Locale.init</a>(:driver =&gt; :cgi).
989
+ </p>
990
+ <h4>To Library authors:</h4>
991
+ <p>
992
+ Don&#8216;t call this, even if your application is only for WWW.
993
+ </p>
994
+ <ul>
995
+ <li>opts: Options as a Hash.
996
+
997
+ <ul>
998
+ <li>:driver - The driver. :cgi if you use <a href="Locale.html">Locale</a>
999
+ module with CGI, nil if you use system locale.
1000
+
1001
+ <pre>
1002
+ (ex) Locale.init(:driver =&gt; :cgi)
1003
+ </pre>
1004
+ </li>
1005
+ </ul>
1006
+ </li>
1007
+ </ul>
1008
+
1009
+ <p class="source_link" id="M000004-show-link"><a href="#" onclick="toggle('M000004-source'); toggleText('M000004-link'); return false;" id="M000004-link">Show source...</a></p><div class="source" id="M000004-source"><pre> <span class="ruby-comment cmt"># File lib/locale.rb, line 69</span>
1010
+ 69: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init</span>(<span class="ruby-identifier">opts</span> = {})
1011
+ 70: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:driver</span>]
1012
+ 71: <span class="ruby-identifier">require_driver</span> <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:driver</span>]
1013
+ 72: <span class="ruby-keyword kw">else</span>
1014
+ 73: <span class="ruby-keyword kw">if</span> <span class="ruby-regexp re">/cygwin|mingw|win32/</span> <span class="ruby-operator">=~</span> <span class="ruby-constant">RUBY_PLATFORM</span>
1015
+ 74: <span class="ruby-identifier">require_driver</span> <span class="ruby-value str">'win32'</span>
1016
+ 75: <span class="ruby-keyword kw">elsif</span> <span class="ruby-regexp re">/java/</span> <span class="ruby-operator">=~</span> <span class="ruby-constant">RUBY_PLATFORM</span>
1017
+ 76: <span class="ruby-identifier">require_driver</span> <span class="ruby-value str">'jruby'</span>
1018
+ 77: <span class="ruby-keyword kw">else</span>
1019
+ 78: <span class="ruby-identifier">require_driver</span> <span class="ruby-value str">'posix'</span>
1020
+ 79: <span class="ruby-keyword kw">end</span>
1021
+ 80: <span class="ruby-keyword kw">end</span>
1022
+ 81: <span class="ruby-keyword kw">end</span></pre></div>
1023
+ </div>
1024
+
1025
+ <a class="small" name="M000016"><br/></a>
1026
+ <div class="method_block"><h3>
1027
+ <a href='#M000016'>
1028
+
1029
+
1030
+ set_app_language_tags
1031
+
1032
+ (*tags)
1033
+
1034
+ </a>
1035
+ </h3>
1036
+ <p>
1037
+ Set the language tags which is supported by the Application. This value is
1038
+ same with supported_language_tags in <a
1039
+ href="Locale.html#M000012">Locale.candidates</a> to restrict the result but
1040
+ is the global setting. If you set a language tag, the application works as
1041
+ the single locale application.
1042
+ </p>
1043
+ <p>
1044
+ If the <a href="Locale.html#M000011">current</a> locale is not included in
1045
+ <a href="Locale.html#M000017">app_language_tags</a>, <a
1046
+ href="Locale.html#M000008">Locale.default</a> value is used. Use <a
1047
+ href="Locale.html#M000006">Locale.set_default</a>() to set correct language
1048
+ if &quot;en&quot; is not included in the language tags.
1049
+ </p>
1050
+ <p>
1051
+ Set nil if <a href="Locale.html#M000014">clear</a> the value.
1052
+ </p>
1053
+ <p>
1054
+ Note that the libraries/plugins shouldn&#8216;t set this value.
1055
+ </p>
1056
+ <pre>
1057
+ (e.g.) Locale.set_app_language_tags(&quot;fr_FR&quot;, &quot;en-GB&quot;, &quot;en_US&quot;, ...)
1058
+ </pre>
1059
+
1060
+ <p class="source_link" id="M000016-show-link"><a href="#" onclick="toggle('M000016-source'); toggleText('M000016-link'); return false;" id="M000016-link">Show source...</a></p><div class="source" id="M000016-source"><pre> <span class="ruby-comment cmt"># File lib/locale.rb, line 313</span>
1061
+ 313: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_app_language_tags</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">tags</span>)
1062
+ 314: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tags</span>[<span class="ruby-value">0</span>]
1063
+ 315: <span class="ruby-ivar">@@app_language_tags</span> = <span class="ruby-identifier">tags</span>.<span class="ruby-identifier">collect</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-constant">Locale</span><span class="ruby-operator">::</span><span class="ruby-constant">Tag</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">v</span>)}
1064
+ 316: <span class="ruby-keyword kw">else</span>
1065
+ 317: <span class="ruby-ivar">@@app_language_tags</span> = <span class="ruby-keyword kw">nil</span>
1066
+ 318: <span class="ruby-keyword kw">end</span>
1067
+ 319:
1068
+ 320: <span class="ruby-identifier">clear_all</span>
1069
+ 321: <span class="ruby-keyword kw">self</span>
1070
+ 322: <span class="ruby-keyword kw">end</span></pre></div>
1071
+ </div>
1072
+
1073
+ <a class="small" name="M000002"><br/></a>
1074
+ <div class="method_block"><h3>
1075
+ <a href='#M000002'>
1076
+
1077
+
1078
+ set_cgi
1079
+
1080
+ (cgi)
1081
+
1082
+ </a>
1083
+ </h3>
1084
+ <p>
1085
+ Sets a CGI object. This is the convenient function of <a
1086
+ href="Locale.html#M000001">set_request</a>().
1087
+ </p>
1088
+ <p>
1089
+ This method is appeared when <a
1090
+ href="Locale.html#M000004">Locale.init</a>(:driver =&gt; :cgi) is called.
1091
+ </p>
1092
+ <ul>
1093
+ <li>cgi: CGI object
1094
+
1095
+ </li>
1096
+ <li>Returns: self
1097
+
1098
+ </li>
1099
+ </ul>
1100
+
1101
+ <p class="source_link" id="M000002-show-link"><a href="#" onclick="toggle('M000002-source'); toggleText('M000002-link'); return false;" id="M000002-link">Show source...</a></p><div class="source" id="M000002-source"><pre> <span class="ruby-comment cmt"># File lib/locale/driver/cgi.rb, line 120</span>
1102
+ 120: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_cgi</span>(<span class="ruby-identifier">cgi</span>)
1103
+ 121: <span class="ruby-identifier">set_request</span>(<span class="ruby-identifier">cgi</span>.<span class="ruby-identifier">params</span>[<span class="ruby-value str">&quot;lang&quot;</span>], <span class="ruby-identifier">cgi</span>.<span class="ruby-identifier">cookies</span>[<span class="ruby-value str">&quot;lang&quot;</span>],
1104
+ 122: <span class="ruby-identifier">cgi</span>.<span class="ruby-identifier">accept_language</span>, <span class="ruby-identifier">cgi</span>.<span class="ruby-identifier">accept_charset</span>)
1105
+ 123: <span class="ruby-keyword kw">self</span>
1106
+ 124: <span class="ruby-keyword kw">end</span></pre></div>
1107
+ </div>
1108
+
1109
+ <a class="small" name="M000009"><br/></a>
1110
+ <div class="method_block"><h3>
1111
+ <a href='#M000009'>
1112
+
1113
+
1114
+ set_current
1115
+
1116
+ (*tags)
1117
+
1118
+ </a>
1119
+ </h3>
1120
+ <p>
1121
+ Sets the locales of the <a href="Locale.html#M000011">current</a> thread
1122
+ order by the priority. Each thread has a <a
1123
+ href="Locale.html#M000011">current</a> locales. The system locale/default
1124
+ locale is used if the thread doesn&#8216;t have <a
1125
+ href="Locale.html#M000011">current</a> locales.
1126
+ </p>
1127
+ <ul>
1128
+ <li>tag: Locale::Language::Tag&#8216;s class or the language tag as a String.
1129
+ nil if you need to <a href="Locale.html#M000014">clear</a> <a
1130
+ href="Locale.html#M000011">current</a> locales.
1131
+
1132
+ </li>
1133
+ <li><a href="Locale.html#M000013">charset</a>: the <a
1134
+ href="Locale.html#M000013">charset</a> (override the <a
1135
+ href="Locale.html#M000013">charset</a> even if the locale name has <a
1136
+ href="Locale.html#M000013">charset</a>) or nil.
1137
+
1138
+ </li>
1139
+ <li>Returns: self
1140
+
1141
+ </li>
1142
+ </ul>
1143
+ <p>
1144
+ (e.g.)
1145
+ </p>
1146
+ <pre>
1147
+ Locale.set_current(&quot;ja_JP.eucJP&quot;)
1148
+ Locale.set_current(&quot;ja-JP&quot;)
1149
+ Locale.set_current(&quot;en_AU&quot;, &quot;en_US&quot;, ...)
1150
+ Locale.set_current(Locale::Tag::Simple.new(&quot;ja&quot;, &quot;JP&quot;), ...)
1151
+ </pre>
1152
+
1153
+ <p class="source_link" id="M000009-show-link"><a href="#" onclick="toggle('M000009-source'); toggleText('M000009-link'); return false;" id="M000009-link">Show source...</a></p><div class="source" id="M000009-source"><pre> <span class="ruby-comment cmt"># File lib/locale.rb, line 143</span>
1154
+ 143: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_current</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">tags</span>)
1155
+ 144: <span class="ruby-identifier">languages</span> = <span class="ruby-keyword kw">nil</span>
1156
+ 145: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tags</span>[<span class="ruby-value">0</span>]
1157
+ 146: <span class="ruby-identifier">languages</span> = <span class="ruby-constant">Locale</span><span class="ruby-operator">::</span><span class="ruby-constant">TagList</span>.<span class="ruby-identifier">new</span>
1158
+ 147: <span class="ruby-identifier">tags</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">tag</span><span class="ruby-operator">|</span>
1159
+ 148: <span class="ruby-identifier">languages</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">create_language_tag</span>(<span class="ruby-identifier">tag</span>)
1160
+ 149: <span class="ruby-keyword kw">end</span>
1161
+ 150: <span class="ruby-keyword kw">end</span>
1162
+ 151: <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-identifier">:current_languages</span>] = <span class="ruby-identifier">languages</span>
1163
+ 152: <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-identifier">:candidates_caches</span>] = <span class="ruby-keyword kw">nil</span>
1164
+ 153: <span class="ruby-keyword kw">self</span>
1165
+ 154: <span class="ruby-keyword kw">end</span></pre></div>
1166
+ </div>
1167
+
1168
+ <a class="small" name="M000006"><br/></a>
1169
+ <div class="method_block"><h3>
1170
+ <a href='#M000006'>
1171
+
1172
+
1173
+ set_default
1174
+
1175
+ (tag)
1176
+
1177
+ </a>
1178
+ </h3>
1179
+ <p>
1180
+ Sets the <a href="Locale.html#M000008">default</a> locale as the language
1181
+ tag (<a href="Locale/Tag.html">Locale::Tag</a>&#8216;s class or String(such
1182
+ as &quot;ja_JP&quot;)).
1183
+ </p>
1184
+ <ul>
1185
+ <li>tag: the <a href="Locale.html#M000008">default</a> language_tag
1186
+
1187
+ </li>
1188
+ <li>Returns: self.
1189
+
1190
+ </li>
1191
+ </ul>
1192
+
1193
+ <p class="source_link" id="M000006-show-link"><a href="#" onclick="toggle('M000006-source'); toggleText('M000006-link'); return false;" id="M000006-link">Show source...</a></p><div class="source" id="M000006-source"><pre> <span class="ruby-comment cmt"># File lib/locale.rb, line 102</span>
1194
+ 102: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_default</span>(<span class="ruby-identifier">tag</span>)
1195
+ 103: <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">thread</span><span class="ruby-operator">|</span>
1196
+ 104: <span class="ruby-identifier">thread</span>[<span class="ruby-identifier">:current_languages</span>] = <span class="ruby-keyword kw">nil</span>
1197
+ 105: <span class="ruby-identifier">thread</span>[<span class="ruby-identifier">:candidates_caches</span>] = <span class="ruby-keyword kw">nil</span>
1198
+ 106: <span class="ruby-keyword kw">end</span>
1199
+ 107: <span class="ruby-ivar">@@default_tag</span> = <span class="ruby-identifier">create_language_tag</span>(<span class="ruby-identifier">tag</span>)
1200
+ 108: <span class="ruby-keyword kw">self</span>
1201
+ 109: <span class="ruby-keyword kw">end</span></pre></div>
1202
+ </div>
1203
+
1204
+ <a class="small" name="M000001"><br/></a>
1205
+ <div class="method_block"><h3>
1206
+ <a href='#M000001'>
1207
+
1208
+
1209
+ set_request
1210
+
1211
+ (query_langs, cookie_langs, accept_language, accept_charset)
1212
+
1213
+ </a>
1214
+ </h3>
1215
+ <p>
1216
+ Sets a request values for lang/charset.
1217
+ </p>
1218
+ <ul>
1219
+ <li>query_langs: An Array of QUERY_STRING value &quot;lang&quot;.
1220
+
1221
+ </li>
1222
+ <li>cookie_langs: An Array of cookie value &quot;lang&quot;.
1223
+
1224
+ </li>
1225
+ <li>accept_language: The value of HTTP_ACCEPT_LANGUAGE
1226
+
1227
+ </li>
1228
+ <li>accept_charset: The value of HTTP_ACCEPT_CHARSET
1229
+
1230
+ </li>
1231
+ </ul>
1232
+
1233
+ <p class="source_link" id="M000001-show-link"><a href="#" onclick="toggle('M000001-source'); toggleText('M000001-link'); return false;" id="M000001-link">Show source...</a></p><div class="source" id="M000001-source"><pre> <span class="ruby-comment cmt"># File lib/locale/driver/cgi.rb, line 109</span>
1234
+ 109: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_request</span>(<span class="ruby-identifier">query_langs</span>, <span class="ruby-identifier">cookie_langs</span>, <span class="ruby-identifier">accept_language</span>, <span class="ruby-identifier">accept_charset</span>)
1235
+ 110: <span class="ruby-ivar">@@locale_driver_module</span>.<span class="ruby-identifier">set_request</span>(<span class="ruby-identifier">query_langs</span>, <span class="ruby-identifier">cookie_langs</span>, <span class="ruby-identifier">accept_language</span>, <span class="ruby-identifier">accept_charset</span>)
1236
+ 111: <span class="ruby-keyword kw">self</span>
1237
+ 112: <span class="ruby-keyword kw">end</span></pre></div>
1238
+ </div>
1239
+
1240
+
1241
+
1242
+
1243
+
1244
+ </div><div class="clear" id="footer">Generated on May 9, 2009 / Allison 2 &copy; 2007 <a href="http://cloudbur.st">Cloudburst, LLC</a></div></div></body></html>