locale 0.9.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 (87) hide show
  1. data/COPYING +55 -0
  2. data/ChangeLog +113 -0
  3. data/README +100 -0
  4. data/Rakefile +77 -0
  5. data/doc/classes/Locale/Driver.html +375 -0
  6. data/doc/classes/Locale/Driver/CGI.html +502 -0
  7. data/doc/classes/Locale/Driver/Env.html +440 -0
  8. data/doc/classes/Locale/Driver/JRuby.html +390 -0
  9. data/doc/classes/Locale/Driver/Posix.html +431 -0
  10. data/doc/classes/Locale/Driver/Win32.html +398 -0
  11. data/doc/classes/Locale/Driver/Win32Table.html +356 -0
  12. data/doc/classes/Locale/Info.html +586 -0
  13. data/doc/classes/Locale/Info/Language.html +764 -0
  14. data/doc/classes/Locale/Info/Region.html +470 -0
  15. data/doc/classes/Locale/Tag/Cldr.html +547 -0
  16. data/doc/classes/Locale/Tag/Common.html +655 -0
  17. data/doc/classes/Locale/Tag/Illegular.html +424 -0
  18. data/doc/classes/Locale/Tag/Posix.html +612 -0
  19. data/doc/classes/Locale/Tag/Rfc.html +610 -0
  20. data/doc/classes/Locale/Tag/Simple.html +684 -0
  21. data/doc/classes/Locale/TagList.html +783 -0
  22. data/doc/classes/Locale/Util.html +476 -0
  23. data/doc/classes/Locale/Util/Memoizable.html +356 -0
  24. data/doc/created.rid +1 -0
  25. data/doc/files/ChangeLog.html +497 -0
  26. data/doc/files/README.html +525 -0
  27. data/doc/files/lib/locale/driver/cgi_rb.html +342 -0
  28. data/doc/files/lib/locale/driver/env_rb.html +354 -0
  29. data/doc/files/lib/locale/driver/jruby_rb.html +359 -0
  30. data/doc/files/lib/locale/driver/posix_rb.html +349 -0
  31. data/doc/files/lib/locale/driver/win32_rb.html +359 -0
  32. data/doc/files/lib/locale/driver/win32_table_rb.html +342 -0
  33. data/doc/files/lib/locale/info/language_rb.html +353 -0
  34. data/doc/files/lib/locale/info/region_rb.html +353 -0
  35. data/doc/files/lib/locale/info_rb.html +354 -0
  36. data/doc/files/lib/locale/tag/cldr_rb.html +342 -0
  37. data/doc/files/lib/locale/tag/common_rb.html +342 -0
  38. data/doc/files/lib/locale/tag/illegular_rb.html +349 -0
  39. data/doc/files/lib/locale/tag/posix_rb.html +342 -0
  40. data/doc/files/lib/locale/tag/rfc_rb.html +342 -0
  41. data/doc/files/lib/locale/tag/simple_rb.html +349 -0
  42. data/doc/files/lib/locale/tag_rb.html +374 -0
  43. data/doc/files/lib/locale/taglist_rb.html +342 -0
  44. data/doc/files/lib/locale/util/memoizable_rb.html +360 -0
  45. data/doc/files/lib/locale/version_rb.html +342 -0
  46. data/doc/files/lib/locale_rb.html +379 -0
  47. data/doc/fr_class_index.html +20 -0
  48. data/doc/fr_file_index.html +23 -0
  49. data/doc/fr_method_index.html +80 -0
  50. data/doc/index.html +1 -0
  51. data/doc/rdoc-style.css +320 -0
  52. data/lib/locale.rb +248 -0
  53. data/lib/locale/data/languages.tab.gz +0 -0
  54. data/lib/locale/data/regions.tab.gz +0 -0
  55. data/lib/locale/driver/cgi.rb +132 -0
  56. data/lib/locale/driver/env.rb +64 -0
  57. data/lib/locale/driver/jruby.rb +53 -0
  58. data/lib/locale/driver/posix.rb +49 -0
  59. data/lib/locale/driver/win32.rb +61 -0
  60. data/lib/locale/driver/win32_table.rb +298 -0
  61. data/lib/locale/info.rb +12 -0
  62. data/lib/locale/info/language.rb +134 -0
  63. data/lib/locale/info/region.rb +74 -0
  64. data/lib/locale/tag.rb +36 -0
  65. data/lib/locale/tag/cldr.rb +93 -0
  66. data/lib/locale/tag/common.rb +122 -0
  67. data/lib/locale/tag/illegular.rb +38 -0
  68. data/lib/locale/tag/posix.rb +97 -0
  69. data/lib/locale/tag/rfc.rb +106 -0
  70. data/lib/locale/tag/simple.rb +145 -0
  71. data/lib/locale/taglist.rb +93 -0
  72. data/lib/locale/util/memoizable.rb +76 -0
  73. data/lib/locale/version.rb +12 -0
  74. data/samples/cgi/README +20 -0
  75. data/samples/cgi/cookie.cgi +62 -0
  76. data/samples/cgi/http.rb +52 -0
  77. data/samples/cgi/index.cgi +90 -0
  78. data/samples/cgi/locale.css +115 -0
  79. data/samples/sample_1.rb +25 -0
  80. data/samples/sample_info.rb +6 -0
  81. data/setup.rb +1585 -0
  82. data/test/test_detect_cgi.rb +179 -0
  83. data/test/test_detect_general.rb +159 -0
  84. data/test/test_info.rb +28 -0
  85. data/test/test_tag.rb +1183 -0
  86. data/test/test_thread.rb +37 -0
  87. metadata +162 -0
@@ -0,0 +1,132 @@
1
+ =begin
2
+ locale/driver/cgi.rb
3
+
4
+ Copyright (C) 2002-2008 Masao Mutoh
5
+
6
+ You may redistribute it and/or modify it under the same
7
+ license terms as Ruby.
8
+
9
+ Original: Ruby-GetText-Package-1.92.0.
10
+
11
+ $Id: cgi.rb 27 2008-12-03 15:06:50Z mutoh $
12
+ =end
13
+
14
+ module Locale
15
+ # Locale::Driver module for CGI.
16
+ # Detect the user locales and the charset from CGI parameters.
17
+ # This is a low-level class. Application shouldn't use this directly.
18
+ module Driver
19
+ module CGI
20
+ $stderr.puts self.name + " is loaded." if $DEBUG
21
+
22
+ @@default_locale = Locale::Tag::Simple.new("en")
23
+ @@default_charset = "UTF-8"
24
+
25
+ module_function
26
+ # Gets required locales from CGI parameters. (Based on RFC2616)
27
+ #
28
+ # Returns: An Array of Locale::Tag's subclasses
29
+ # (QUERY_STRING "lang" > COOKIE "lang" > HTTP_ACCEPT_LANGUAGE > "en")
30
+ #
31
+ def locales
32
+ return Locale::TagList.new([@@default_locale]) unless cgi
33
+ cgi_ = cgi
34
+
35
+ locales = Locale::TagList.new
36
+
37
+ # QUERY_STRING "lang"
38
+ if cgi_.has_key?("lang")
39
+ langs = cgi_.params["lang"]
40
+ if langs
41
+ langs.each do |lang|
42
+ locales << Locale::Tag.parse(lang)
43
+ end
44
+ end
45
+ end
46
+
47
+ unless locales.size > 0
48
+ # COOKIE "lang"
49
+ langs = cgi_.cookies["lang"]
50
+ if langs
51
+ langs.each do |lang|
52
+ locales << Locale::Tag.parse(lang) if lang.size > 0
53
+ end
54
+ end
55
+ end
56
+
57
+ unless locales.size > 0
58
+ # HTTP_ACCEPT_LANGUAGE
59
+ if lang = cgi_.accept_language and lang.size > 0
60
+ locales += lang.gsub(/\s/, "").split(/,/).map{|v| v.split(";q=")}.map{|j| [j[0], j[1] ? j[1].to_f : 1.0]}.sort{|a,b| -(a[1] <=> b[1])}.map{|v| Locale::Tag.parse(v[0])}
61
+ end
62
+ end
63
+
64
+ unless locales.size > 0
65
+ locales << @@default_locale
66
+ end
67
+ Locale::TagList.new(locales.uniq)
68
+ end
69
+
70
+ # Gets the charset from CGI parameters. (Based on RFC2616)
71
+ # * Returns: the charset (HTTP_ACCEPT_CHARSET > "UTF-8").
72
+ def charset
73
+ cgi_ = cgi
74
+ charsets = cgi_.accept_charset
75
+ if charsets and charsets.size > 0
76
+ num = charsets.index(',')
77
+ charset = num ? charsets[0, num] : charsets
78
+ charset = @@default_charset if charset == "*"
79
+ else
80
+ charset = @@default_charset
81
+ end
82
+ charset
83
+ end
84
+
85
+ # Sets a CGI object.
86
+ # * cgi_: CGI object
87
+ # * Returns: self
88
+ def set_cgi(cgi_)
89
+ Thread.current[:current_cgi] = cgi_
90
+ self
91
+ end
92
+
93
+ def cgi #:nodoc:
94
+ Thread.current[:current_cgi]
95
+ end
96
+ end
97
+ end
98
+
99
+ @@locale_driver_module = Driver::CGI
100
+
101
+ module_function
102
+ # Sets a CGI object.
103
+ #
104
+ # Call Locale.init(:driver => :cgi) first.
105
+ #
106
+ # * cgi_: CGI object
107
+ # * Returns: self
108
+ def set_cgi(cgi_)
109
+ @@locale_driver_module.set_cgi(cgi_)
110
+ self
111
+ end
112
+
113
+ # Sets a CGI object.
114
+ #
115
+ # Call Locale.init(:driver => :cgi) first.
116
+ #
117
+ # * cgi_: CGI object
118
+ # * Returns: cgi_
119
+ def cgi=(cgi_)
120
+ set_cgi(cgi_)
121
+ cgi_
122
+ end
123
+
124
+ # Gets the CGI object. If it is nil, returns new CGI object.
125
+ #
126
+ # Call Locale.init(:driver => :cgi) first.
127
+ #
128
+ # * Returns: the CGI object
129
+ def cgi
130
+ @@locale_driver_module.cgi
131
+ end
132
+ end
@@ -0,0 +1,64 @@
1
+ =begin
2
+ locale/env.rb
3
+
4
+ Copyright (C) 2008 Masao Mutoh
5
+
6
+ You may redistribute it and/or modify it under the same
7
+ license terms as Ruby.
8
+
9
+ Original: Ruby-GetText-Package-1.92.0.
10
+
11
+ $Id: env.rb 27 2008-12-03 15:06:50Z mutoh $
12
+ =end
13
+
14
+ require 'locale/tag'
15
+ require 'locale/taglist'
16
+
17
+ module Locale
18
+ module Driver
19
+ # Locale::Driver::Env module.
20
+ # Detect the user locales and the charset.
21
+ # All drivers(except CGI) refer environment variables first and use it
22
+ # as the locale if it's defined.
23
+ # This is a low-level module. Application shouldn't use this directly.
24
+ module Env
25
+ module_function
26
+
27
+ # Gets the locale from environment variable. (LC_ALL > LC_MESSAGES > LANG)
28
+ # Returns: the locale as Locale::Tag::Posix.
29
+ def locale
30
+ # At least one environment valiables should be set on *nix system.
31
+ [ENV["LC_ALL"], ENV["LC_MESSAGES"], ENV["LANG"]].each do |loc|
32
+ if loc != nil and loc.size > 0
33
+ return Locale::Tag::Posix.parse(loc)
34
+ end
35
+ end
36
+ nil
37
+ end
38
+
39
+ # Gets the locales from environment variables. (LANGUAGE > LC_ALL > LC_MESSAGES > LANG)
40
+ # * Returns: an Array of the locale as Locale::Tag::Posix or nil.
41
+ def locales
42
+ if (locales = ENV["LANGUAGE"])
43
+ Locale::TagList.new(locales.split(/:/).collect{|v| Locale::Tag::Posix.parse(v)})
44
+ elsif (loc = locale)
45
+ Locale::TagList.new([loc])
46
+ else
47
+ nil
48
+ end
49
+ end
50
+
51
+ # Gets the charset from environment variable or return nil.
52
+ # * Returns: the system charset.
53
+ def charset # :nodoc:
54
+ if loc = locale
55
+ loc.charset
56
+ else
57
+ nil
58
+ end
59
+ end
60
+
61
+ end
62
+ end
63
+ end
64
+
@@ -0,0 +1,53 @@
1
+ =begin
2
+ locale/driver/jruby.rb
3
+
4
+ Copyright (C) 2007,2008 Masao Mutoh
5
+
6
+ You may redistribute it and/or modify it under the same
7
+ license terms as Ruby.
8
+
9
+ Original: Ruby-GetText-Package-1.92.0.
10
+
11
+ $Id: jruby.rb 27 2008-12-03 15:06:50Z mutoh $
12
+ =end
13
+
14
+ require 'locale/driver/env'
15
+ require 'java'
16
+
17
+ module Locale
18
+ module Driver
19
+ # Locale::Driver::JRuby module for JRuby
20
+ # Detect the user locales and the charset.
21
+ # This is a low-level class. Application shouldn't use this directly.
22
+ module JRuby
23
+ $stderr.puts self.name + " is loaded." if $DEBUG
24
+
25
+ if java.lang.System.getProperties['os.name'].downcase =~ /windows/
26
+ require 'locale/driver/win32_table'
27
+
28
+ extend ::Locale::Driver::Win32Table
29
+ end
30
+
31
+ module_function
32
+ def locales #:nodoc:
33
+ locales = ::Locale::Driver::Env.locales
34
+ unless locales
35
+ locale = java.util.Locale.getDefault
36
+ locales = TagList.new([Locale::Tag::Common.new(locale.getLanguage, nil,
37
+ locale.getCountry,
38
+ [locale.getVariant])])
39
+ end
40
+ locales
41
+ end
42
+
43
+ def charset
44
+ charset = ::Locale::Driver::Env.charset
45
+ unless charset
46
+ charset = java.nio.charset.Charset.defaultCharset.name
47
+ end
48
+ charset
49
+ end
50
+ end
51
+ end
52
+ @@locale_driver_module = Driver::JRuby
53
+ end
@@ -0,0 +1,49 @@
1
+ =begin
2
+ locale/posix.rb
3
+
4
+ Copyright (C) 2002-2008 Masao Mutoh
5
+
6
+ You may redistribute it and/or modify it under the same
7
+ license terms as Ruby.
8
+
9
+ Original: Ruby-GetText-Package-1.92.0.
10
+
11
+ $Id: posix.rb 27 2008-12-03 15:06:50Z mutoh $
12
+ =end
13
+
14
+ require 'locale/driver/env'
15
+
16
+ module Locale
17
+ # Locale::Driver::Posix module for Posix OS (Unix)
18
+ # Detect the user locales and the charset.
19
+ # This is a low-level class. Application shouldn't use this directly.
20
+ module Driver
21
+ module Posix
22
+ $stderr.puts self.name + " is loaded." if $DEBUG
23
+
24
+ module_function
25
+ # Gets the locales from environment variables. (LANGUAGE > LC_ALL > LC_MESSAGES > LANG)
26
+ # Only LANGUAGE accept plural languages such as "nl_BE;
27
+ # * Returns: an Array of the locale as Locale::Tag::Posix or nil.
28
+ def locales
29
+ ::Locale::Driver::Env.locales
30
+ end
31
+
32
+ # Gets the charset from environment variable or the result of
33
+ # "locale charmap".
34
+ # * Returns: the system charset.
35
+ def charset
36
+ charset = ::Locale::Driver::Env.charset
37
+ unless charset
38
+ charset = `locale charmap`.strip
39
+ unless $? && $?.success?
40
+ charset = "UTF-8"
41
+ end
42
+ end
43
+ charset
44
+ end
45
+ end
46
+ end
47
+ @@locale_driver_module = Driver::Posix
48
+ end
49
+
@@ -0,0 +1,61 @@
1
+ =begin
2
+ locale/win32.rb
3
+
4
+ Copyright (C) 2002-2008 Masao Mutoh
5
+
6
+ You may redistribute it and/or modify it under the same
7
+ license terms as Ruby.
8
+
9
+ Original: Ruby-GetText-Package-1.92.0.
10
+
11
+ $Id: win32.rb 27 2008-12-03 15:06:50Z mutoh $
12
+ =end
13
+
14
+ require 'locale/driver/env'
15
+ require 'locale/driver/win32_table'
16
+ require 'dl/win32'
17
+
18
+
19
+ module Locale
20
+ # Locale::Driver::Win32 module for win32.
21
+ # Detect the user locales and the charset.
22
+ # This is a low-level class. Application shouldn't use this directly.
23
+ module Driver
24
+ module Win32
25
+ include Win32Table
26
+
27
+ $stderr.puts self.name + " is loaded." if $DEBUG
28
+
29
+ @@win32 = Win32API.new("kernel32.dll", "GetUserDefaultLangID", nil, "i")
30
+
31
+ module_function
32
+
33
+ # Gets the Win32 charset of the locale.
34
+ def charset
35
+ charset = ::Locale::Driver::Env.charset
36
+ unless charset
37
+ loc = LocaleTable.find{|v| v[1] =locale.to_general}
38
+ loc = LocaleTable.find{|v| v[1] =~ /^#{locale.language}-/} unless loc
39
+ charset = loc ? loc[2] : "CP1252"
40
+ end
41
+ charset
42
+ end
43
+
44
+ def locales #:nodoc:
45
+ locales = ::Locale::Driver::Env.locales
46
+ unless locales
47
+ lang = LocaleTable.assoc(@@win32.call)
48
+ if lang
49
+ ret = Locale::Tag::Common.parse(lang[1])
50
+ else
51
+ ret = Locale::Tag::Common.new("en")
52
+ end
53
+ locales = Locale::TagList.new([ret])
54
+ end
55
+ locales
56
+ end
57
+ end
58
+ end
59
+ @@locale_driver_module = Driver::Win32
60
+ end
61
+
@@ -0,0 +1,298 @@
1
+ =begin
2
+ win32_table.rb - Locale table for win32
3
+
4
+ Copyright (C) 2008 Masao Mutoh <mutoh@highway.ne.jp>
5
+
6
+ You may redistribute it and/or modify it under the same
7
+ license terms as Ruby.
8
+
9
+ Original: Ruby-GetText-Package-1.92.0.
10
+
11
+ $Id: win32_table.rb 27 2008-12-03 15:06:50Z mutoh $
12
+ =end
13
+
14
+ module Locale
15
+ module Driver
16
+ module Win32Table
17
+
18
+ #http://msdn.microsoft.com/ja-jp/goglobal/bb896001(en-us).aspx
19
+
20
+ #LangID, locale name, code page
21
+ LocaleTable = [
22
+ [0x0036,"af","CP1252"],
23
+ [0x0436,"af-ZA","CP1252"],
24
+ [0x001C,"sq","CP1250"],
25
+ [0x041C,"sq-AL","CP1250"],
26
+ [0x0484,"gsw-FR","CP1252"],
27
+ [0x045E,"am-ET","UNICODE"],
28
+ [0x0001,"ar","CP1256"],
29
+ [0x1401,"ar-DZ","CP1256"],
30
+ [0x3C01,"ar-BH","CP1256"],
31
+ [0x0C01,"ar-EG","CP1256"],
32
+ [0x0801,"ar-IQ","CP1256"],
33
+ [0x2C01,"ar-JO","CP1256"],
34
+ [0x3401,"ar-KW","CP1256"],
35
+ [0x3001,"ar-LB","CP1256"],
36
+ [0x1001,"ar-LY","CP1256"],
37
+ [0x1801,"ar-MA","CP1256"],
38
+ [0x2001,"ar-OM","CP1256"],
39
+ [0x4001,"ar-QA","CP1256"],
40
+ [0x0401,"ar-SA","CP1256"],
41
+ [0x2801,"ar-SY","CP1256"],
42
+ [0x1C01,"ar-TN","CP1256"],
43
+ [0x3801,"ar-AE","CP1256"],
44
+ [0x2401,"ar-YE","CP1256"],
45
+ [0x002B,"hy","UNICODE"],
46
+ [0x042B,"hy-AM","UNICODE"],
47
+ [0x044D,"as-IN","UNICODE"],
48
+ [0x002C,"az","CP1254"],
49
+ [0x082C,"az-Cyrl-AZ","CP1251"],
50
+ [0x042C,"az-Latn-AZ","CP1254"],
51
+ [0x046D,"ba-RU","CP1251"],
52
+ [0x002D,"eu","CP1252"],
53
+ [0x042D,"eu-ES","CP1252"],
54
+ [0x0023,"be","CP1251"],
55
+ [0x0423,"be-BY","CP1251"],
56
+ [0x0845,"bn-BD","UNICODE"],
57
+ [0x0445,"bn-IN","UNICODE"],
58
+ [0x201A,"bs-Cyrl-BA","CP1251"],
59
+ [0x141A,"bs-Latn-BA","CP1250"],
60
+ [0x047E,"br-FR","CP1252"],
61
+ [0x0002,"bg","CP1251"],
62
+ [0x0402,"bg-BG","CP1251"],
63
+ [0x0003,"ca","CP1252"],
64
+ [0x0403,"ca-ES","CP1252"],
65
+ [0x0C04,"zh-HK","CP950"],
66
+ [0x1404,"zh-MO","CP950"],
67
+ [0x0804,"zh-CN","CP936"],
68
+ [0x0004,"zh-Hans","CP936"],
69
+ [0x1004,"zh-SG","CP936"],
70
+ [0x0404,"zh-TW","CP950"],
71
+ [0x7C04,"zh-Hant","CP950"],
72
+ [0x0483,"co-FR","CP1252"],
73
+ [0x001A,"hr","CP1250"],
74
+ [0x041A,"hr-HR","CP1250"],
75
+ [0x101A,"hr-BA","CP1250"],
76
+ [0x0005,"cs","CP1250"],
77
+ [0x0405,"cs-CZ","CP1250"],
78
+ [0x0006,"da","CP1252"],
79
+ [0x0406,"da-DK","CP1252"],
80
+ [0x048C,"prs-AF","CP1256"],
81
+ [0x0065,"div","UNICODE"],
82
+ [0x0465,"div-MV","UNICODE"],
83
+ [0x0013,"nl","CP1252"],
84
+ [0x0813,"nl-BE","CP1252"],
85
+ [0x0413,"nl-NL","CP1252"],
86
+ [0x0009,"en","CP1252"],
87
+ [0x0C09,"en-AU","CP1252"],
88
+ [0x2809,"en-BZ","CP1252"],
89
+ [0x1009,"en-CA","CP1252"],
90
+ [0x2409,"en-029","CP1252"],
91
+ [0x4009,"en-IN","CP1252"],
92
+ [0x1809,"en-IE","CP1252"],
93
+ [0x2009,"en-JM","CP1252"],
94
+ [0x4409,"en-MY","CP1252"],
95
+ [0x1409,"en-NZ","CP1252"],
96
+ [0x3409,"en-PH","CP1252"],
97
+ [0x4809,"en-SG","CP1252"],
98
+ [0x1C09,"en-ZA","CP1252"],
99
+ [0x2C09,"en-TT","CP1252"],
100
+ [0x0809,"en-GB","CP1252"],
101
+ [0x0409,"en-US","CP1252"],
102
+ [0x3009,"en-ZW","CP1252"],
103
+ [0x0025,"et","CP1257"],
104
+ [0x0425,"et-EE","CP1257"],
105
+ [0x0038,"fo","CP1252"],
106
+ [0x0438,"fo-FO","CP1252"],
107
+ [0x0464,"fil-PH","CP1252"],
108
+ [0x000B,"fi","CP1252"],
109
+ [0x040B,"fi-FI","CP1252"],
110
+ [0x000C,"fr","CP1252"],
111
+ [0x080C,"fr-BE","CP1252"],
112
+ [0x0C0C,"fr-CA","CP1252"],
113
+ [0x040C,"fr-FR","CP1252"],
114
+ [0x140C,"fr-LU","CP1252"],
115
+ [0x180C,"fr-MC","CP1252"],
116
+ [0x100C,"fr-CH","CP1252"],
117
+ [0x0462,"fy-NL","CP1252"],
118
+ [0x0056,"gl","CP1252"],
119
+ [0x0456,"gl-ES","CP1252"],
120
+ [0x0037,"ka","UNICODE"],
121
+ [0x0437,"ka-GE","UNICODE"],
122
+ [0x0007,"de","CP1252"],
123
+ [0x0C07,"de-AT","CP1252"],
124
+ [0x0407,"de-DE","CP1252"],
125
+ [0x1407,"de-LI","CP1252"],
126
+ [0x1007,"de-LU","CP1252"],
127
+ [0x0807,"de-CH","CP1252"],
128
+ [0x0008,"el","CP1253"],
129
+ [0x0408,"el-GR","CP1253"],
130
+ [0x046F,"kl-GL","CP1252"],
131
+ [0x0047,"gu","UNICODE"],
132
+ [0x0447,"gu-IN","UNICODE"],
133
+ [0x0468,"ha-Latn-NG","CP1252"],
134
+ [0x000D,"he","CP1255"],
135
+ [0x040D,"he-IL","CP1255"],
136
+ [0x0039,"hi","UNICODE"],
137
+ [0x0439,"hi-IN","UNICODE"],
138
+ [0x000E,"hu","CP1250"],
139
+ [0x040E,"hu-HU","CP1250"],
140
+ [0x000F,"is","CP1252"],
141
+ [0x040F,"is-IS","CP1252"],
142
+ [0x0470,"ig-NG","CP1252"],
143
+ [0x0021,"id","CP1252"],
144
+ [0x0421,"id-ID","CP1252"],
145
+ [0x085D,"iu-Latn-CA","CP1252"],
146
+ [0x045D,"iu-Cans-CA","UNICODE"],
147
+ [0x083C,"ga-IE","CP1252"],
148
+ [0x0434,"xh-ZA","CP1252"],
149
+ [0x0435,"zu-ZA","CP1252"],
150
+ [0x0010,"it","CP1252"],
151
+ [0x0410,"it-IT","CP1252"],
152
+ [0x0810,"it-CH","CP1252"],
153
+ [0x0011,"ja","CP932"],
154
+ [0x0411,"ja-JP","CP932"],
155
+ [0x004B,"kn","UNICODE"],
156
+ [0x044B,"kn-IN","UNICODE"],
157
+ [0x003F,"kk","CP1251"],
158
+ [0x043F,"kk-KZ","CP1251"],
159
+ [0x0453,"km-KH","UNICODE"],
160
+ [0x0486,"qut-GT","CP1252"],
161
+ [0x0487,"rw-RW","CP1252"],
162
+ [0x0041,"sw","CP1252"],
163
+ [0x0441,"sw-KE","CP1252"],
164
+ [0x0057,"kok","UNICODE"],
165
+ [0x0457,"kok-IN","UNICODE"],
166
+ [0x0012,"ko","CP949"],
167
+ [0x0412,"ko-KR","CP949"],
168
+ [0x0040,"ky","CP1251"],
169
+ [0x0440,"ky-KG","CP1251"],
170
+ [0x0454,"lo-LA","UNICODE"],
171
+ [0x0026,"lv","CP1257"],
172
+ [0x0426,"lv-LV","CP1257"],
173
+ [0x0027,"lt","CP1257"],
174
+ [0x0427,"lt-LT","CP1257"],
175
+ [0x082E,"wee-DE","CP1252"],
176
+ [0x046E,"lb-LU","CP1252"],
177
+ [0x002F,"mk","CP1251"],
178
+ [0x042F,"mk-MK","CP1251"],
179
+ [0x003E,"ms","CP1252"],
180
+ [0x083E,"ms-BN","CP1252"],
181
+ [0x043E,"ms-MY","CP1252"],
182
+ [0x044C,"ml-IN","UNICODE"],
183
+ [0x043A,"mt-MT","UNICODE"],
184
+ [0x0481,"mi-NZ","UNICODE"],
185
+ [0x047A,"arn-CL","CP1252"],
186
+ [0x004E,"mr","UNICODE"],
187
+ [0x044E,"mr-IN","UNICODE"],
188
+ [0x047C,"moh-CA","CP1252"],
189
+ [0x0050,"mn","CP1251"],
190
+ [0x0450,"mn-MN","CP1251"],
191
+ [0x0850,"mn-Mong-CN","UNICODE"],
192
+ [0x0461,"ne-NP","UNICODE"],
193
+ [0x0014,"no","CP1252"],
194
+ [0x0414,"nb-NO","CP1252"],
195
+ [0x0814,"nn-NO","CP1252"],
196
+ [0x0482,"oc-FR","CP1252"],
197
+ [0x0448,"or-IN","UNICODE"],
198
+ [0x0463,"ps-AF","UNICODE"],
199
+ [0x0029,"fa","CP1256"],
200
+ [0x0429,"fa-IR","CP1256"],
201
+ [0x0015,"pl","CP1250"],
202
+ [0x0415,"pl-PL","CP1250"],
203
+ [0x0016,"pt","CP1252"],
204
+ [0x0416,"pt-BR","CP1252"],
205
+ [0x0816,"pt-PT","CP1252"],
206
+ [0x0046,"pa","UNICODE"],
207
+ [0x0446,"pa-IN","UNICODE"],
208
+ [0x046B,"quz-BO","CP1252"],
209
+ [0x086B,"quz-EC","CP1252"],
210
+ [0x0C6B,"quz-PE","CP1252"],
211
+ [0x0018,"ro","CP1250"],
212
+ [0x0418,"ro-RO","CP1250"],
213
+ [0x0417,"rm-CH","CP1252"],
214
+ [0x0019,"ru","CP1251"],
215
+ [0x0419,"ru-RU","CP1251"],
216
+ [0x243B,"smn-FI","CP1252"],
217
+ [0x103B,"smj-NO","CP1252"],
218
+ [0x143B,"smj-SE","CP1252"],
219
+ [0x0C3B,"se-FI","CP1252"],
220
+ [0x043B,"se-NO","CP1252"],
221
+ [0x083B,"se-SE","CP1252"],
222
+ [0x203B,"sms-FI","CP1252"],
223
+ [0x183B,"sma-NO","CP1252"],
224
+ [0x1C3B,"sma-SE","CP1252"],
225
+ [0x004F,"sa","UNICODE"],
226
+ [0x044F,"sa-IN","UNICODE"],
227
+ [0x7C1A,"sr","CP1251"],
228
+ [0x1C1A,"sr-Cyrl-BA","CP1251"],
229
+ [0x0C1A,"sr-Cyrl-SP","CP1251"],
230
+ [0x181A,"sr-Latn-BA","CP1250"],
231
+ [0x081A,"sr-Latn-SP","CP1250"],
232
+ [0x046C,"nso-ZA","CP1252"],
233
+ [0x0432,"tn-ZA","CP1252"],
234
+ [0x045B,"si-LK","UNICODE"],
235
+ [0x001B,"sk","CP1250"],
236
+ [0x041B,"sk-SK","CP1250"],
237
+ [0x0024,"sl","CP1250"],
238
+ [0x0424,"sl-SI","CP1250"],
239
+ [0x000A,"es","CP1252"],
240
+ [0x2C0A,"es-AR","CP1252"],
241
+ [0x400A,"es-BO","CP1252"],
242
+ [0x340A,"es-CL","CP1252"],
243
+ [0x240A,"es-CO","CP1252"],
244
+ [0x140A,"es-CR","CP1252"],
245
+ [0x1C0A,"es-DO","CP1252"],
246
+ [0x300A,"es-EC","CP1252"],
247
+ [0x440A,"es-SV","CP1252"],
248
+ [0x100A,"es-GT","CP1252"],
249
+ [0x480A,"es-HN","CP1252"],
250
+ [0x080A,"es-MX","CP1252"],
251
+ [0x4C0A,"es-NI","CP1252"],
252
+ [0x180A,"es-PA","CP1252"],
253
+ [0x3C0A,"es-PY","CP1252"],
254
+ [0x280A,"es-PE","CP1252"],
255
+ [0x500A,"es-PR","CP1252"],
256
+ [0x0C0A,"es-ES","CP1252"],
257
+ [0x540A,"es-US","CP1252"],
258
+ [0x380A,"es-UY","CP1252"],
259
+ [0x200A,"es-VE","CP1252"],
260
+ [0x001D,"sv","CP1252"],
261
+ [0x081D,"sv-FI","CP1252"],
262
+ [0x041D,"sv-SE","CP1252"],
263
+ [0x005A,"syr","UNICODE"],
264
+ [0x045A,"syr-SY","UNICODE"],
265
+ [0x0428,"tg-Cyrl-TJ","CP1251"],
266
+ [0x085F,"tmz-Latn-DZ","CP1252"],
267
+ [0x0049,"ta","UNICODE"],
268
+ [0x0449,"ta-IN","UNICODE"],
269
+ [0x0044,"tt","CP1251"],
270
+ [0x0444,"tt-RU","CP1251"],
271
+ [0x004A,"te","UNICODE"],
272
+ [0x044A,"te-IN","UNICODE"],
273
+ [0x001E,"th","CP874"],
274
+ [0x041E,"th-TH","CP874"],
275
+ [0x0451,"bo-CN","UNICODE"],
276
+ [0x001F,"tr","CP1254"],
277
+ [0x041F,"tr-TR","CP1254"],
278
+ [0x0442,"tk-TM","CP1250"],
279
+ [0x0480,"ug-CN","CP1256"],
280
+ [0x0022,"uk","CP1251"],
281
+ [0x0422,"uk-UA","CP1251"],
282
+ [0x042E,"wen-DE","CP1252"],
283
+ [0x0020,"ur","CP1256"],
284
+ [0x0420,"ur-PK","CP1256"],
285
+ [0x0043,"uz","CP1254"],
286
+ [0x0843,"uz-Cyrl-UZ","CP1251"],
287
+ [0x0443,"uz-Latn-UZ","CP1254"],
288
+ [0x002A,"vi","CP1258"],
289
+ [0x042A,"vi-VN","CP1258"],
290
+ [0x0452,"cy-GB","CP1252"],
291
+ [0x0488,"wo-SN","CP1252"],
292
+ [0x0485,"sah-RU","CP1251"],
293
+ [0x0478,"ii-CN","UNICODE"],
294
+ [0x046A,"yo-NG","CP1252"],
295
+ ]
296
+ end
297
+ end
298
+ end