/[js_locale]/trunk/locale.js
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /trunk/locale.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2 - (hide annotations)
Sun Oct 24 20:01:27 2004 UTC (19 years, 6 months ago) by dpavlin
File MIME type: application/javascript
File size: 1739 byte(s)
extracted locale support to separate locale.js file

1 dpavlin 1
2     // locale in which to sort (basically a alphabet in correct dictionary sort order)
3     var _lc_locale = '_0123456789aAáÁãÃâÂäı¡bBcCçÇèÈæÆdDïÏðÐeEéÉìÌëËêÊfFgGhHiIíÍîÎjJkKlLåŵ¥³£mMnNñÑòÒoOóÓôÔöÖõÕpPqQrRàÀøØsS¶¦ºªß¹©tT»«þÞuUúÚùÙüÜûÛvVwWxXyYýÝzZ¼¬¿¯¾®';
4    
5     // produce equivavlent of alphabet in native JavaScript sort order
6     var _lc_native = _lc_locale.split("").sort().join("");
7    
8     function lc_debug(msg) {
9     // comment out to disable debug
10     //return;
11     document.write('<div style="color: gray; font-size: small;">'+msg+'</div>');
12     }
13    
14     // create character remapping array
15     var _lc_l2n_arr = new Array();
16     var r = 0;
17     for (var i=0; i < _lc_locale.length; i++) {
18     if (_lc_locale.charAt(i) != _lc_native.charAt(i)) {
19     _lc_l2n_arr[_lc_locale.charAt(i)] = _lc_native.charAt(i);
20     r++;
21     }
22     }
23    
24     lc_debug(
25     "_lc_native:"+_lc_native+"<br>"+
26     "_lc_locale:"+_lc_locale+"<br>"+
27     "remapped "+r+" characters from table of "+_lc_locale.length+"/"+_lc_native.length+" locale/native characters<br>"
28     );
29    
30     // comment out following line to disable caching of locale terms
31     var _lc_cache = new Array();
32    
33     // convert string to correct sort order according to locale
34     function _lc(str) {
35     if (_lc_cache && _lc_cache[str]) {
36     return _lc_cache[str];
37     } else {
38     var out = '';
39     for (var i=0; i <= str.length; i++) {
40     var c = str.charAt(i);
41     if (_lc_l2n_arr[c]) {
42     out += _lc_l2n_arr[c];
43     } else {
44     out += c;
45     }
46     }
47     if (_lc_cache) _lc_cache[str] = out;
48     return out;
49     }
50     }
51    
52     // sort function with locale support
53     function _lc_sort(a,b) {
54     var a_l = _lc(a);
55     var b_l = _lc(b);
56    
57     lc_debug(a+' '+( a_l < b_l ? '<' : ( a_l == b_l ? '==' : '>' ) )+' '+b+' [ '+a_l+' '+b_l+' ]');
58    
59     if (a_l < b_l) {
60     return -1;
61     } else if (a_l == b_l) {
62     return 0;
63     } else {
64     return 1;
65     }
66     }
67    

  ViewVC Help
Powered by ViewVC 1.1.26