locale 2.0.3 → 2.0.4
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.
- data/ChangeLog +6 -0
- data/Rakefile +82 -80
- data/lib/locale/driver/jruby.rb +4 -10
- data/lib/locale/driver/win32.rb +25 -6
- data/lib/locale/tag/irregular.rb +1 -1
- data/lib/locale/version.rb +1 -1
- data/test/test_driver_jruby.rb +43 -0
- data/test/test_driver_win32.rb +65 -0
- data/test/test_tag.rb +181 -120
- metadata +4 -76
- data/benchmark/benchmark.rb +0 -34
- data/benchmark/benchmark_2.0.1.txt +0 -7
- data/doc/classes/Locale.html +0 -1244
- data/doc/classes/Locale/Driver.html +0 -374
- data/doc/classes/Locale/Driver/CGI.html +0 -536
- data/doc/classes/Locale/Driver/Env.html +0 -439
- data/doc/classes/Locale/Driver/JRuby.html +0 -389
- data/doc/classes/Locale/Driver/Posix.html +0 -430
- data/doc/classes/Locale/Driver/Win32.html +0 -398
- data/doc/classes/Locale/Driver/Win32Table.html +0 -355
- data/doc/classes/Locale/Info.html +0 -585
- data/doc/classes/Locale/Info/Language.html +0 -763
- data/doc/classes/Locale/Info/Region.html +0 -470
- data/doc/classes/Locale/Tag.html +0 -433
- data/doc/classes/Locale/Tag/Cldr.html +0 -523
- data/doc/classes/Locale/Tag/Common.html +0 -624
- data/doc/classes/Locale/Tag/Irregular.html +0 -423
- data/doc/classes/Locale/Tag/Posix.html +0 -612
- data/doc/classes/Locale/Tag/Rfc.html +0 -581
- data/doc/classes/Locale/Tag/Simple.html +0 -721
- data/doc/classes/Locale/TagList.html +0 -826
- data/doc/classes/Locale/Util.html +0 -506
- data/doc/classes/Locale/Util/Memoizable.html +0 -355
- data/doc/created.rid +0 -1
- data/doc/files/ChangeLog.html +0 -537
- data/doc/files/README_rdoc.html +0 -565
- data/doc/files/lib/locale/driver/cgi_rb.html +0 -341
- data/doc/files/lib/locale/driver/env_rb.html +0 -353
- data/doc/files/lib/locale/driver/jruby_rb.html +0 -353
- data/doc/files/lib/locale/driver/posix_rb.html +0 -341
- data/doc/files/lib/locale/driver/win32_rb.html +0 -348
- data/doc/files/lib/locale/driver/win32_table_rb.html +0 -341
- data/doc/files/lib/locale/info/language_rb.html +0 -352
- data/doc/files/lib/locale/info/region_rb.html +0 -352
- data/doc/files/lib/locale/info_rb.html +0 -353
- data/doc/files/lib/locale/tag/cldr_rb.html +0 -348
- data/doc/files/lib/locale/tag/common_rb.html +0 -348
- data/doc/files/lib/locale/tag/irregular_rb.html +0 -348
- data/doc/files/lib/locale/tag/posix_rb.html +0 -341
- data/doc/files/lib/locale/tag/rfc_rb.html +0 -348
- data/doc/files/lib/locale/tag/simple_rb.html +0 -348
- data/doc/files/lib/locale/tag_rb.html +0 -378
- data/doc/files/lib/locale/taglist_rb.html +0 -348
- data/doc/files/lib/locale/util/memoizable_rb.html +0 -359
- data/doc/files/lib/locale/version_rb.html +0 -341
- data/doc/files/lib/locale_rb.html +0 -363
- data/doc/fr_class_index.html +0 -22
- data/doc/fr_file_index.html +0 -23
- data/doc/fr_method_index.html +0 -99
- data/doc/index.html +0 -1
- data/doc/rdoc-style.css +0 -320
- data/lib/locale/util/memoizable.rb.20090328 +0 -96
- data/lib/locale/util/memoizable.rb.old +0 -91
- data/replace.rb +0 -21
- data/test.rb +0 -28
- data/test/test.rb +0 -7
- data/test/tmp.txt +0 -20
- data/test2.rb +0 -14
- data/test3.rb +0 -12
data/ChangeLog
CHANGED
data/Rakefile
CHANGED
@@ -1,80 +1,82 @@
|
|
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/version'
|
10
|
-
|
11
|
-
#desc "Default Task"
|
12
|
-
#task :default => [ :test ]
|
13
|
-
|
14
|
-
PKG_VERSION = Locale::VERSION
|
15
|
-
|
16
|
-
# Run the unit tests
|
17
|
-
task :test do
|
18
|
-
Dir.glob("test/test_*.rb").each do |v|
|
19
|
-
ruby "-Ilib #{v}"
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
Rake::RDocTask.new { |rdoc|
|
24
|
-
begin
|
25
|
-
allison = `allison --path`.chop
|
26
|
-
rescue Exception
|
27
|
-
allison = ""
|
28
|
-
end
|
29
|
-
rdoc.rdoc_dir = 'doc'
|
30
|
-
rdoc.title = "Ruby-Locale library"
|
31
|
-
rdoc.options << "--line-numbers" << "--inline-source" <<
|
32
|
-
"--accessor" << "cattr_accessor=object" << "--charset" << "utf-8"
|
33
|
-
rdoc.rdoc_files.include('README.rdoc')
|
34
|
-
rdoc.rdoc_files.include('ChangeLog')
|
35
|
-
rdoc.rdoc_files.add('lib')
|
36
|
-
rdoc.template = allison if allison.size > 0
|
37
|
-
}
|
38
|
-
|
39
|
-
desc "Create gem and tar.gz"
|
40
|
-
spec = Gem::Specification.new do |s|
|
41
|
-
s.name = 'locale'
|
42
|
-
s.version = PKG_VERSION
|
43
|
-
s.summary = 'Ruby-Locale is the pure ruby library which provides basic APIs for localization.'
|
44
|
-
s.author = 'Masao Mutoh'
|
45
|
-
s.email = 'mutomasa at gmail.com'
|
46
|
-
s.homepage = 'http://locale.rubyforge.org/'
|
47
|
-
s.rubyforge_project = "locale"
|
48
|
-
s.files = FileList['**/*'].to_a.select{|v| v !~ /pkg|CVS/}
|
49
|
-
s.require_path = 'lib'
|
50
|
-
s.bindir = 'bin'
|
51
|
-
s.has_rdoc = true
|
52
|
-
s.description = <<-EOF
|
53
|
-
Ruby-Locale is the pure ruby library which provides basic APIs for localization.
|
54
|
-
EOF
|
55
|
-
end
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
p.
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
rubyforge
|
74
|
-
|
75
|
-
rubyforge.
|
76
|
-
rubyforge.
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
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/version'
|
10
|
+
|
11
|
+
#desc "Default Task"
|
12
|
+
#task :default => [ :test ]
|
13
|
+
|
14
|
+
PKG_VERSION = Locale::VERSION
|
15
|
+
|
16
|
+
# Run the unit tests
|
17
|
+
task :test do
|
18
|
+
Dir.glob("test/test_*.rb").each do |v|
|
19
|
+
ruby "-Ilib #{v}"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
Rake::RDocTask.new { |rdoc|
|
24
|
+
begin
|
25
|
+
allison = `allison --path`.chop
|
26
|
+
rescue Exception
|
27
|
+
allison = ""
|
28
|
+
end
|
29
|
+
rdoc.rdoc_dir = 'doc'
|
30
|
+
rdoc.title = "Ruby-Locale library"
|
31
|
+
rdoc.options << "--line-numbers" << "--inline-source" <<
|
32
|
+
"--accessor" << "cattr_accessor=object" << "--charset" << "utf-8"
|
33
|
+
rdoc.rdoc_files.include('README.rdoc')
|
34
|
+
rdoc.rdoc_files.include('ChangeLog')
|
35
|
+
rdoc.rdoc_files.add('lib')
|
36
|
+
rdoc.template = allison if allison.size > 0
|
37
|
+
}
|
38
|
+
|
39
|
+
desc "Create gem and tar.gz"
|
40
|
+
spec = Gem::Specification.new do |s|
|
41
|
+
s.name = 'locale'
|
42
|
+
s.version = PKG_VERSION
|
43
|
+
s.summary = 'Ruby-Locale is the pure ruby library which provides basic APIs for localization.'
|
44
|
+
s.author = 'Masao Mutoh'
|
45
|
+
s.email = 'mutomasa at gmail.com'
|
46
|
+
s.homepage = 'http://locale.rubyforge.org/'
|
47
|
+
s.rubyforge_project = "locale"
|
48
|
+
s.files = FileList['**/*'].to_a.select{|v| v !~ /pkg|CVS/}
|
49
|
+
s.require_path = 'lib'
|
50
|
+
s.bindir = 'bin'
|
51
|
+
s.has_rdoc = true
|
52
|
+
s.description = <<-EOF
|
53
|
+
Ruby-Locale is the pure ruby library which provides basic APIs for localization.
|
54
|
+
EOF
|
55
|
+
end
|
56
|
+
|
57
|
+
unless RUBY_PLATFORM =~ /win32/
|
58
|
+
Rake::PackageTask.new("ruby-locale", PKG_VERSION) do |o|
|
59
|
+
o.package_files = FileList['**/*'].to_a.select{|v| v !~ /pkg|CVS/}
|
60
|
+
o.need_tar_gz = true
|
61
|
+
o.need_zip = false
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
Rake::GemPackageTask.new(spec) do |p|
|
66
|
+
p.gem_spec = spec
|
67
|
+
p.need_tar_gz = false
|
68
|
+
p.need_zip = false
|
69
|
+
end
|
70
|
+
|
71
|
+
desc "Publish the release files to RubyForge."
|
72
|
+
task :release => [ :package ] do
|
73
|
+
require 'rubyforge'
|
74
|
+
|
75
|
+
rubyforge = RubyForge.new
|
76
|
+
rubyforge.configure
|
77
|
+
rubyforge.login
|
78
|
+
rubyforge.add_release("locale", "locale",
|
79
|
+
PKG_VERSION,
|
80
|
+
"pkg/locale-#{PKG_VERSION}.gem",
|
81
|
+
"pkg/ruby-locale-#{PKG_VERSION}.tar.gz")
|
82
|
+
end
|
data/lib/locale/driver/jruby.rb
CHANGED
@@ -22,21 +22,15 @@ module Locale
|
|
22
22
|
module JRuby
|
23
23
|
$stderr.puts self.name + " is loaded." if $DEBUG
|
24
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
25
|
module_function
|
32
26
|
def locales #:nodoc:
|
33
27
|
locales = ::Locale::Driver::Env.locales
|
34
28
|
unless locales
|
35
29
|
locale = java.util.Locale.getDefault
|
36
|
-
variant =
|
30
|
+
variant = locale.getVariant
|
37
31
|
variants = []
|
38
|
-
if
|
39
|
-
|
32
|
+
if variant != nil and variant.size > 0
|
33
|
+
variants = [variant]
|
40
34
|
end
|
41
35
|
locales = TagList.new([Locale::Tag::Common.new(locale.getLanguage, nil,
|
42
36
|
locale.getCountry,
|
@@ -45,7 +39,7 @@ module Locale
|
|
45
39
|
locales
|
46
40
|
end
|
47
41
|
|
48
|
-
def charset
|
42
|
+
def charset #:nodoc:
|
49
43
|
charset = ::Locale::Driver::Env.charset
|
50
44
|
unless charset
|
51
45
|
charset = java.nio.charset.Charset.defaultCharset.name
|
data/lib/locale/driver/win32.rb
CHANGED
@@ -26,7 +26,8 @@ module Locale
|
|
26
26
|
|
27
27
|
$stderr.puts self.name + " is loaded." if $DEBUG
|
28
28
|
|
29
|
-
@@win32 =
|
29
|
+
@@win32 = nil
|
30
|
+
@@current_locale_id = nil
|
30
31
|
|
31
32
|
module_function
|
32
33
|
|
@@ -34,18 +35,36 @@ module Locale
|
|
34
35
|
def charset
|
35
36
|
charset = ::Locale::Driver::Env.charset
|
36
37
|
unless charset
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
38
|
+
if locales
|
39
|
+
tag = locales[0].to_rfc.to_s
|
40
|
+
loc = LocaleTable.find{|v| v[1] == tag}
|
41
|
+
loc = LocaleTable.find{|v| v[1] =~ /^#{locales[0].language}/} unless loc
|
42
|
+
charset = loc ? loc[2] : nil
|
43
|
+
else
|
44
|
+
charset = "CP1252"
|
45
|
+
end
|
41
46
|
end
|
42
47
|
charset
|
43
48
|
end
|
44
49
|
|
50
|
+
def thread_locale_id #:nodoc:
|
51
|
+
if @@current_locale_id
|
52
|
+
@@current_locale_id
|
53
|
+
else
|
54
|
+
@@win32 ||= Win32API.new("kernel32.dll", "GetThreadLocale", nil, "i")
|
55
|
+
@@win32.call
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def set_thread_locale_id(lcid) #:nodoc:
|
60
|
+
# for testing.
|
61
|
+
@@current_locale_id = lcid
|
62
|
+
end
|
63
|
+
|
45
64
|
def locales #:nodoc:
|
46
65
|
locales = ::Locale::Driver::Env.locales
|
47
66
|
unless locales
|
48
|
-
lang = LocaleTable.assoc(
|
67
|
+
lang = LocaleTable.assoc(thread_locale_id)
|
49
68
|
if lang
|
50
69
|
ret = Locale::Tag::Common.parse(lang[1])
|
51
70
|
locales = Locale::TagList.new([ret])
|
data/lib/locale/tag/irregular.rb
CHANGED
data/lib/locale/version.rb
CHANGED
@@ -0,0 +1,43 @@
|
|
1
|
+
|
2
|
+
begin
|
3
|
+
require 'locale/driver/jruby'
|
4
|
+
require 'test/unit'
|
5
|
+
class TestDiverJRuby < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
ENV["LC_ALL"] = nil
|
9
|
+
ENV["LC_MESSAGES"] = nil
|
10
|
+
ENV["LANG"] = nil
|
11
|
+
ENV["LANGUAGE"] = nil
|
12
|
+
end
|
13
|
+
|
14
|
+
def set_locale(tag)
|
15
|
+
java.util.Locale.setDefault(java.util.Locale.new(tag.language, tag.region, tag.variants.to_s))
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_charset
|
19
|
+
# Depends on system value when jvm is started.
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_locales
|
23
|
+
tag = Locale::Tag::Common.parse("ja-JP")
|
24
|
+
set_locale(tag)
|
25
|
+
assert_equal [tag], Locale::Driver::JRuby.locales
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_locales_with_env
|
29
|
+
ENV["LC_ALL"] = "ja_JP.EUC-JP"
|
30
|
+
assert_equal Locale::Tag::Posix.parse("ja_JP.EUC-JP"), Locale::Driver::JRuby.locales[0]
|
31
|
+
assert_equal "EUC-JP", Locale::Driver::JRuby.charset
|
32
|
+
|
33
|
+
ENV["LC_ALL"] = "ja_JP"
|
34
|
+
assert_equal Locale::Tag::Posix.parse("ja_JP"), Locale::Driver::JRuby.locales[0]
|
35
|
+
|
36
|
+
ENV["LC_ALL"] = "C"
|
37
|
+
assert_equal Locale::Tag::Posix.parse("C"), Locale::Driver::JRuby.locales[0]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
rescue LoadError
|
42
|
+
puts "jruby test was skipped."
|
43
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
begin
|
2
|
+
require 'locale/driver/win32'
|
3
|
+
require 'test/unit'
|
4
|
+
|
5
|
+
class TestDiverWin32 < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
ENV["LC_ALL"] = nil
|
9
|
+
ENV["LC_MESSAGES"] = nil
|
10
|
+
ENV["LANG"] = nil
|
11
|
+
ENV["LANGUAGE"] = nil
|
12
|
+
Locale::Driver::Win32.set_thread_locale_id(nil)
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_charset
|
16
|
+
Locale::Driver::Win32.set_thread_locale_id(0x0404)
|
17
|
+
assert_equal "CP950", Locale::Driver::Win32.charset
|
18
|
+
|
19
|
+
Locale::Driver::Win32.set_thread_locale_id(0x0411)
|
20
|
+
assert_equal "CP932", Locale::Driver::Win32.charset
|
21
|
+
|
22
|
+
Locale::Driver::Win32.set_thread_locale_id(0x201A)
|
23
|
+
assert_equal "CP1251", Locale::Driver::Win32.charset
|
24
|
+
|
25
|
+
Locale::Driver::Win32.set_thread_locale_id(0x0465)
|
26
|
+
assert_equal "UNICODE", Locale::Driver::Win32.charset
|
27
|
+
|
28
|
+
Locale::Driver::Win32.set_thread_locale_id(0x2222) # invalid
|
29
|
+
assert_equal "CP1252", Locale::Driver::Win32.charset
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_locales
|
33
|
+
Locale::Driver::Win32.set_thread_locale_id(0x0404)
|
34
|
+
assert_equal Locale::Tag::Common.parse("zh-TW"), Locale::Driver::Win32.locales[0]
|
35
|
+
|
36
|
+
Locale::Driver::Win32.set_thread_locale_id(0x0411)
|
37
|
+
assert_equal Locale::Tag::Common.parse("ja-JP"), Locale::Driver::Win32.locales[0]
|
38
|
+
|
39
|
+
Locale::Driver::Win32.set_thread_locale_id(0x201A)
|
40
|
+
assert_equal Locale::Tag::Common.parse("bs-Cyrl-BA"), Locale::Driver::Win32.locales[0]
|
41
|
+
|
42
|
+
Locale::Driver::Win32.set_thread_locale_id(0x0465)
|
43
|
+
assert_equal Locale::Tag::Common.parse("div-MV"), Locale::Driver::Win32.locales[0]
|
44
|
+
|
45
|
+
Locale::Driver::Win32.set_thread_locale_id(0x2222) # invalid
|
46
|
+
assert_equal nil, Locale::Driver::Win32.locales
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_locales_with_env
|
50
|
+
ENV["LC_ALL"] = "ja_JP.UTF-8"
|
51
|
+
assert_equal Locale::Tag::Posix.parse("ja_JP.UTF-8"), Locale::Driver::Win32.locales[0]
|
52
|
+
assert_equal "UTF-8", Locale::Driver::Win32.charset
|
53
|
+
|
54
|
+
ENV["LC_ALL"] = "ja_JP"
|
55
|
+
assert_equal Locale::Tag::Posix.parse("ja_JP"), Locale::Driver::Win32.locales[0]
|
56
|
+
assert_equal "CP932", Locale::Driver::Win32.charset
|
57
|
+
|
58
|
+
ENV["LC_ALL"] = "C"
|
59
|
+
assert_equal Locale::Tag::Posix.parse("C"), Locale::Driver::Win32.locales[0]
|
60
|
+
assert_equal "CP1252", Locale::Driver::Win32.charset
|
61
|
+
end
|
62
|
+
end
|
63
|
+
rescue LoadError
|
64
|
+
puts "win32 test was skipped."
|
65
|
+
end
|
data/test/test_tag.rb
CHANGED
@@ -3,7 +3,7 @@ require 'test/unit'
|
|
3
3
|
|
4
4
|
class TagTest < Test::Unit::TestCase
|
5
5
|
|
6
|
-
def
|
6
|
+
def test_simple_lang
|
7
7
|
#ja-JP, ja-392
|
8
8
|
lang = Locale::Tag.parse("ja")
|
9
9
|
assert_equal Locale::Tag::Simple, lang.class
|
@@ -23,14 +23,16 @@ class TagTest < Test::Unit::TestCase
|
|
23
23
|
assert_equal "kok", lang.language
|
24
24
|
assert_equal nil, lang.region
|
25
25
|
assert_equal [Locale::Tag::Simple.parse("kok"),
|
26
|
-
|
27
|
-
|
26
|
+
Locale::Tag::Simple.parse("kok")], lang.candidates
|
27
|
+
|
28
28
|
assert_equal Locale::Tag::Simple.parse("kok"), lang.to_simple
|
29
29
|
assert_equal Locale::Tag::Common.parse("kok"), lang.to_common
|
30
30
|
assert_equal Locale::Tag::Rfc.parse("kok"), lang.to_rfc
|
31
31
|
assert_equal Locale::Tag::Cldr.parse("kok"), lang.to_cldr
|
32
32
|
assert_equal Locale::Tag::Posix.parse("kok"), lang.to_posix
|
33
|
+
end
|
33
34
|
|
35
|
+
def test_simple_lang_region
|
34
36
|
lang = Locale::Tag.parse("ja-JP")
|
35
37
|
assert_equal Locale::Tag::Simple, lang.class
|
36
38
|
assert_equal "ja", lang.language
|
@@ -56,7 +58,9 @@ class TagTest < Test::Unit::TestCase
|
|
56
58
|
assert_equal Locale::Tag::Rfc.parse("ja-JP"), lang.to_rfc
|
57
59
|
assert_equal Locale::Tag::Cldr.parse("ja-JP"), lang.to_cldr
|
58
60
|
assert_equal Locale::Tag::Posix.parse("ja_JP"), lang.to_posix
|
61
|
+
end
|
59
62
|
|
63
|
+
def test_simple_unm49
|
60
64
|
# UN_M.49(Country code)
|
61
65
|
lang = Locale::Tag.parse("ja-392")
|
62
66
|
assert_equal Locale::Tag::Simple, lang.class
|
@@ -70,7 +74,7 @@ class TagTest < Test::Unit::TestCase
|
|
70
74
|
assert_equal Locale::Tag::Rfc.parse("ja-392"), lang.to_rfc
|
71
75
|
assert_equal Locale::Tag::Cldr.parse("ja-392"), lang.to_cldr
|
72
76
|
assert_equal Locale::Tag::Posix.parse("ja_392"), lang.to_posix
|
73
|
-
|
77
|
+
|
74
78
|
lang = Locale::Tag.parse("jpn-392")
|
75
79
|
assert_equal Locale::Tag::Simple, lang.class
|
76
80
|
assert_equal "jpn", lang.language
|
@@ -119,9 +123,8 @@ class TagTest < Test::Unit::TestCase
|
|
119
123
|
|
120
124
|
end
|
121
125
|
|
122
|
-
|
123
|
-
|
124
|
-
|
126
|
+
#lang, region, script, variants
|
127
|
+
def test_common_lang_script
|
125
128
|
lang = Locale::Tag.parse("az_Arab")
|
126
129
|
assert_equal Locale::Tag::Common, lang.class
|
127
130
|
assert_equal "az", lang.language
|
@@ -143,26 +146,6 @@ class TagTest < Test::Unit::TestCase
|
|
143
146
|
assert_equal Locale::Tag::Cldr.parse("az_Arab"), lang.to_cldr
|
144
147
|
assert_equal Locale::Tag::Posix.parse("az"), lang.to_posix
|
145
148
|
|
146
|
-
lang = Locale::Tag.parse("en_Latn_US_NYNORSK")
|
147
|
-
assert_equal Locale::Tag::Common, lang.class
|
148
|
-
assert_equal "en", lang.language
|
149
|
-
assert_equal "US", lang.region
|
150
|
-
assert_equal ["NYNORSK"], lang.variants
|
151
|
-
assert_equal [Locale::Tag::Common.parse("en_Latn_US_NYNORSK"),
|
152
|
-
Locale::Tag::Common.parse("en_Latn_US"),
|
153
|
-
Locale::Tag::Common.parse("en_US_NYNORSK"),
|
154
|
-
Locale::Tag::Common.parse("en_US"),
|
155
|
-
Locale::Tag::Common.parse("en_Latn_NYNORSK"),
|
156
|
-
Locale::Tag::Common.parse("en_Latn"),
|
157
|
-
Locale::Tag::Common.parse("en_NYNORSK"),
|
158
|
-
Locale::Tag::Common.parse("en")], lang.candidates
|
159
|
-
|
160
|
-
|
161
|
-
assert_equal Locale::Tag::Simple.parse("en-US"), lang.to_simple
|
162
|
-
assert_equal Locale::Tag::Common.parse("en_Latn_US_NYNORSK"), lang.to_common
|
163
|
-
assert_equal Locale::Tag::Rfc.parse("en-Latn-US-NYNORSK"), lang.to_rfc
|
164
|
-
assert_equal Locale::Tag::Cldr.parse("en_Latn_US_NYNORSK"), lang.to_cldr
|
165
|
-
assert_equal Locale::Tag::Posix.parse("en_US@NYNORSK"), lang.to_posix
|
166
149
|
|
167
150
|
lang = Locale::Tag.parse("uz-Cyrl")
|
168
151
|
assert_equal Locale::Tag::Common, lang.class
|
@@ -184,7 +167,9 @@ class TagTest < Test::Unit::TestCase
|
|
184
167
|
assert_equal Locale::Tag::Rfc.parse("uz-Cyrl"), lang.to_rfc
|
185
168
|
assert_equal Locale::Tag::Cldr.parse("uz_Cyrl"), lang.to_cldr
|
186
169
|
assert_equal Locale::Tag::Posix.parse("uz"), lang.to_posix
|
170
|
+
end
|
187
171
|
|
172
|
+
def test_common_lang_script_region
|
188
173
|
lang = Locale::Tag.parse("ja-Kana-JP")
|
189
174
|
assert_equal Locale::Tag::Common, lang.class
|
190
175
|
assert_equal "ja", lang.language
|
@@ -205,7 +190,7 @@ class TagTest < Test::Unit::TestCase
|
|
205
190
|
assert_equal Locale::Tag::Cldr.parse("ja_Kana_JP"), lang.to_cldr
|
206
191
|
assert_equal Locale::Tag::Posix.parse("ja_JP"), lang.to_posix
|
207
192
|
|
208
|
-
|
193
|
+
# 3 char language
|
209
194
|
lang = Locale::Tag.parse("jpn-Hira-JP")
|
210
195
|
assert_equal Locale::Tag::Common, lang.class
|
211
196
|
assert_equal "jpn", lang.language
|
@@ -225,7 +210,9 @@ class TagTest < Test::Unit::TestCase
|
|
225
210
|
assert_equal Locale::Tag::Rfc.parse("jpn-Hira-JP"), lang.to_rfc
|
226
211
|
assert_equal Locale::Tag::Cldr.parse("jpn_Hira_JP"), lang.to_cldr
|
227
212
|
assert_equal Locale::Tag::Posix.parse("jpn_JP"), lang.to_posix
|
213
|
+
end
|
228
214
|
|
215
|
+
def test_common_lang_script_unm49
|
229
216
|
lang = Locale::Tag.parse("jpn-Hira-392")
|
230
217
|
assert_equal Locale::Tag::Common, lang.class
|
231
218
|
assert_equal "jpn", lang.language
|
@@ -246,8 +233,33 @@ class TagTest < Test::Unit::TestCase
|
|
246
233
|
assert_equal Locale::Tag::Rfc.parse("jpn-Hira-392"), lang.to_rfc
|
247
234
|
assert_equal Locale::Tag::Cldr.parse("jpn_Hira_392"), lang.to_cldr
|
248
235
|
assert_equal Locale::Tag::Posix.parse("jpn_392"), lang.to_posix
|
236
|
+
end
|
237
|
+
|
238
|
+
def test_common_lang_script_region_variants
|
239
|
+
lang = Locale::Tag.parse("en_Latn_US_NYNORSK")
|
240
|
+
assert_equal Locale::Tag::Common, lang.class
|
241
|
+
assert_equal "en", lang.language
|
242
|
+
assert_equal "US", lang.region
|
243
|
+
assert_equal ["NYNORSK"], lang.variants
|
244
|
+
assert_equal [Locale::Tag::Common.parse("en_Latn_US_NYNORSK"),
|
245
|
+
Locale::Tag::Common.parse("en_Latn_US"),
|
246
|
+
Locale::Tag::Common.parse("en_US_NYNORSK"),
|
247
|
+
Locale::Tag::Common.parse("en_US"),
|
248
|
+
Locale::Tag::Common.parse("en_Latn_NYNORSK"),
|
249
|
+
Locale::Tag::Common.parse("en_Latn"),
|
250
|
+
Locale::Tag::Common.parse("en_NYNORSK"),
|
251
|
+
Locale::Tag::Common.parse("en")], lang.candidates
|
249
252
|
|
250
|
-
|
253
|
+
|
254
|
+
assert_equal Locale::Tag::Simple.parse("en-US"), lang.to_simple
|
255
|
+
assert_equal Locale::Tag::Common.parse("en_Latn_US_NYNORSK"), lang.to_common
|
256
|
+
assert_equal Locale::Tag::Rfc.parse("en-Latn-US-NYNORSK"), lang.to_rfc
|
257
|
+
assert_equal Locale::Tag::Cldr.parse("en_Latn_US_NYNORSK"), lang.to_cldr
|
258
|
+
assert_equal Locale::Tag::Posix.parse("en_US@NYNORSK"), lang.to_posix
|
259
|
+
end
|
260
|
+
|
261
|
+
|
262
|
+
def test_common_lang_variants
|
251
263
|
lang = Locale::Tag.parse("ja-osaka")
|
252
264
|
assert_equal Locale::Tag::Common, lang.class
|
253
265
|
assert_equal "ja", lang.language
|
@@ -270,8 +282,9 @@ class TagTest < Test::Unit::TestCase
|
|
270
282
|
assert_equal Locale::Tag::Rfc.parse("ja-osaka"), lang.to_rfc
|
271
283
|
assert_equal Locale::Tag::Cldr.parse("ja_OSAKA"), lang.to_cldr
|
272
284
|
assert_equal Locale::Tag::Posix.parse("ja@osaka"), lang.to_posix
|
285
|
+
end
|
273
286
|
|
274
|
-
|
287
|
+
def test_common_lang_region_variants
|
275
288
|
lang = Locale::Tag.parse("ja-JP-osaka")
|
276
289
|
assert_equal Locale::Tag::Common, lang.class
|
277
290
|
assert_equal "ja", lang.language
|
@@ -294,8 +307,9 @@ class TagTest < Test::Unit::TestCase
|
|
294
307
|
assert_equal Locale::Tag::Rfc.parse("ja-JP-osaka"), lang.to_rfc
|
295
308
|
assert_equal Locale::Tag::Cldr.parse("ja_JP_OSAKA"), lang.to_cldr
|
296
309
|
assert_equal Locale::Tag::Posix.parse("ja_JP@osaka"), lang.to_posix
|
310
|
+
end
|
297
311
|
|
298
|
-
|
312
|
+
def test_common_lang_script_region_5length_variants
|
299
313
|
lang = Locale::Tag.parse("ja-Kana-JP-osaka")
|
300
314
|
assert_equal Locale::Tag::Common, lang.class
|
301
315
|
assert_equal "ja", lang.language
|
@@ -318,7 +332,9 @@ class TagTest < Test::Unit::TestCase
|
|
318
332
|
assert_equal Locale::Tag::Rfc.parse("ja-Kana-JP-osaka"), lang.to_rfc
|
319
333
|
assert_equal Locale::Tag::Cldr.parse("ja_Kana_JP_OSAKA"), lang.to_cldr
|
320
334
|
assert_equal Locale::Tag::Posix.parse("ja_JP@osaka"), lang.to_posix
|
335
|
+
end
|
321
336
|
|
337
|
+
def test_common_lang_script_region_mid_length_variants
|
322
338
|
#middle length
|
323
339
|
lang = Locale::Tag.parse("ja-Kana-JP-aomori")
|
324
340
|
assert_equal Locale::Tag::Common, lang.class
|
@@ -343,6 +359,9 @@ class TagTest < Test::Unit::TestCase
|
|
343
359
|
assert_equal Locale::Tag::Cldr.parse("ja_Kana_JP_AOMORI"), lang.to_cldr
|
344
360
|
assert_equal Locale::Tag::Posix.parse("ja_JP@aomori"), lang.to_posix
|
345
361
|
|
362
|
+
end
|
363
|
+
|
364
|
+
def test_common_lang_script_region_8length_variants
|
346
365
|
#8 length
|
347
366
|
lang = Locale::Tag.parse("ja-Kana-JP-hokuriku")
|
348
367
|
assert_equal Locale::Tag::Common, lang.class
|
@@ -366,7 +385,9 @@ class TagTest < Test::Unit::TestCase
|
|
366
385
|
assert_equal Locale::Tag::Rfc.parse("ja-Kana-JP-hokuriku"), lang.to_rfc
|
367
386
|
assert_equal Locale::Tag::Cldr.parse("ja_Kana_JP_HOKURIKU"), lang.to_cldr
|
368
387
|
assert_equal Locale::Tag::Posix.parse("ja_JP@hokuriku"), lang.to_posix
|
388
|
+
end
|
369
389
|
|
390
|
+
def test_common_lang_script_region_special_variants
|
370
391
|
#1 digit and 3 alpha
|
371
392
|
lang = Locale::Tag.parse("ja-Kana-JP-0abc")
|
372
393
|
assert_equal Locale::Tag::Common, lang.class
|
@@ -390,7 +411,9 @@ class TagTest < Test::Unit::TestCase
|
|
390
411
|
assert_equal Locale::Tag::Rfc.parse("ja-Kana-JP-0abc"), lang.to_rfc
|
391
412
|
assert_equal Locale::Tag::Cldr.parse("ja_Kana_JP_0ABC"), lang.to_cldr
|
392
413
|
assert_equal Locale::Tag::Posix.parse("ja_JP@0abc"), lang.to_posix
|
414
|
+
end
|
393
415
|
|
416
|
+
def test_common_lang_region_4digits_variants
|
394
417
|
#4 digits
|
395
418
|
lang = Locale::Tag.parse("de-CH-1996")
|
396
419
|
assert_equal Locale::Tag::Common, lang.class
|
@@ -413,7 +436,9 @@ class TagTest < Test::Unit::TestCase
|
|
413
436
|
assert_equal Locale::Tag::Rfc.parse("de-CH-1996"), lang.to_rfc
|
414
437
|
assert_equal Locale::Tag::Cldr.parse("de_CH_1996"), lang.to_cldr
|
415
438
|
assert_equal Locale::Tag::Posix.parse("de_CH@1996"), lang.to_posix
|
439
|
+
end
|
416
440
|
|
441
|
+
def test_common_lang_region_plural_variants
|
417
442
|
#Plural
|
418
443
|
lang = Locale::Tag.parse("ja-Kana-JP-hokuriku-aomori")
|
419
444
|
assert_equal Locale::Tag::Common, lang.class
|
@@ -437,7 +462,9 @@ class TagTest < Test::Unit::TestCase
|
|
437
462
|
assert_equal Locale::Tag::Rfc.parse("ja-Kana-JP-hokuriku-aomori"), lang.to_rfc
|
438
463
|
assert_equal Locale::Tag::Cldr.parse("ja-Kana-JP_HOKURIKU_AOMORI"), lang.to_cldr
|
439
464
|
assert_equal Locale::Tag::Posix.parse("ja_JP@hokuriku-aomori"), lang.to_posix
|
465
|
+
end
|
440
466
|
|
467
|
+
def test_common_cases
|
441
468
|
#cases
|
442
469
|
lang = Locale::Tag.parse("mn-Cyrl-MN")
|
443
470
|
assert_equal Locale::Tag::Common, lang.class
|
@@ -507,12 +534,15 @@ class TagTest < Test::Unit::TestCase
|
|
507
534
|
assert_equal Locale::Tag::Rfc.parse("zh-Latn-CN-variant1"), lang.to_rfc
|
508
535
|
assert_equal Locale::Tag::Cldr.parse("zh-Latn-CN_VARIANT1"), lang.to_cldr
|
509
536
|
assert_equal Locale::Tag::Posix.parse("zh_CN@variant1"), lang.to_posix
|
537
|
+
end
|
510
538
|
|
539
|
+
def test_common_lang_region_variants_rfc3066
|
511
540
|
# RFC3066 compatible
|
512
541
|
lang = Locale::Tag.parse("ja-jp-mac")
|
513
542
|
assert_equal Locale::Tag::Common, lang.class
|
514
543
|
assert_equal "ja", lang.language
|
515
544
|
assert_equal "JP", lang.region
|
545
|
+
assert_equal ["mac"], lang.variants
|
516
546
|
assert_equal nil, lang.script
|
517
547
|
assert_equal [Locale::Tag::Common.parse("ja_JP_mac"),
|
518
548
|
Locale::Tag::Common.parse("ja_JP"),
|
@@ -549,8 +579,34 @@ class TagTest < Test::Unit::TestCase
|
|
549
579
|
|
550
580
|
end
|
551
581
|
|
552
|
-
def
|
553
|
-
|
582
|
+
def test_rfc_lang_script_region_variant_extension
|
583
|
+
lang = Locale::Tag.parse("zh-Latn-CN-variant1-a-extend1")
|
584
|
+
assert_equal Locale::Tag::Rfc, lang.class
|
585
|
+
assert_equal "zh", lang.language
|
586
|
+
assert_equal "CN", lang.region
|
587
|
+
assert_equal "Latn", lang.script
|
588
|
+
assert_equal ["variant1"], lang.variants
|
589
|
+
assert_equal ["a-extend1"], lang.extensions
|
590
|
+
assert_equal nil, lang.privateuse
|
591
|
+
|
592
|
+
assert_equal [Locale::Tag::Rfc.parse("zh-Latn-CN-variant1"),
|
593
|
+
Locale::Tag::Rfc.parse("zh-Latn-CN"),
|
594
|
+
Locale::Tag::Rfc.parse("zh-CN-variant1"),
|
595
|
+
Locale::Tag::Rfc.parse("zh-CN"),
|
596
|
+
Locale::Tag::Rfc.parse("zh-Latn-variant1"),
|
597
|
+
Locale::Tag::Rfc.parse("zh-Latn"),
|
598
|
+
Locale::Tag::Rfc.parse("zh-variant1"),
|
599
|
+
Locale::Tag::Rfc.parse("zh"),
|
600
|
+
], lang.candidates
|
601
|
+
|
602
|
+
assert_equal Locale::Tag::Simple.parse("zh_CN"), lang.to_simple
|
603
|
+
assert_equal Locale::Tag::Common.parse("zh-Latn-CN_variant1"), lang.to_common
|
604
|
+
assert_equal Locale::Tag::Rfc.parse("zh-Latn-CN-variant1-a-extend1"), lang.to_rfc
|
605
|
+
assert_equal Locale::Tag::Cldr.parse("zh_Latn_CN_VARIANT1"), lang.to_cldr
|
606
|
+
assert_equal Locale::Tag::Posix.parse("zh_CN@variant1"), lang.to_posix
|
607
|
+
end
|
608
|
+
|
609
|
+
def test_rfc_lang_script_region_extensions
|
554
610
|
lang = Locale::Tag.parse("ja-Kana-JP-0abc-y-aa-z-bbccdd-b-nnnnnnnn")
|
555
611
|
assert_equal Locale::Tag::Rfc, lang.class
|
556
612
|
assert_equal "ja", lang.language
|
@@ -574,7 +630,9 @@ class TagTest < Test::Unit::TestCase
|
|
574
630
|
assert_equal Locale::Tag::Rfc.parse("ja-Kana-JP-0abc-y-aa-z-bbccdd-b-nnnnnnnn"), lang.to_rfc
|
575
631
|
assert_equal Locale::Tag::Cldr.parse("ja_Kana_JP_0abc"), lang.to_cldr
|
576
632
|
assert_equal Locale::Tag::Posix.parse("ja_JP@0abc"), lang.to_posix
|
633
|
+
end
|
577
634
|
|
635
|
+
def test_rfc_lang_region_variants_extensions
|
578
636
|
lang = Locale::Tag.parse("ja-JP-0abc-y-aa-z-bbccdd-b-xxxnnnnn")
|
579
637
|
assert_equal Locale::Tag::Rfc, lang.class
|
580
638
|
assert_equal "ja", lang.language
|
@@ -599,6 +657,9 @@ class TagTest < Test::Unit::TestCase
|
|
599
657
|
assert_equal Locale::Tag::Cldr.parse("ja_JP_0abc"), lang.to_cldr
|
600
658
|
assert_equal Locale::Tag::Posix.parse("ja_JP@0abc"), lang.to_posix
|
601
659
|
|
660
|
+
end
|
661
|
+
|
662
|
+
def test_rfc_lang_extensions
|
602
663
|
lang = Locale::Tag.parse("ja-y-aa-z-bbccdd-b-xxnnnnn")
|
603
664
|
assert_equal Locale::Tag::Rfc, lang.class
|
604
665
|
assert_equal "ja", lang.language
|
@@ -622,33 +683,10 @@ class TagTest < Test::Unit::TestCase
|
|
622
683
|
assert_equal Locale::Tag::Rfc.parse("ja-y-aa-z-bbccdd-b-xxnnnnn"), lang.to_rfc
|
623
684
|
assert_equal Locale::Tag::Cldr.parse("ja"), lang.to_cldr
|
624
685
|
assert_equal Locale::Tag::Posix.parse("ja"), lang.to_posix
|
686
|
+
end
|
625
687
|
|
626
|
-
|
627
|
-
|
628
|
-
assert_equal "zh", lang.language
|
629
|
-
assert_equal "CN", lang.region
|
630
|
-
assert_equal "Latn", lang.script
|
631
|
-
assert_equal ["variant1"], lang.variants
|
632
|
-
assert_equal ["a-extend1"], lang.extensions
|
633
|
-
assert_equal nil, lang.privateuse
|
634
|
-
|
635
|
-
assert_equal [Locale::Tag::Rfc.parse("zh-Latn-CN-variant1"),
|
636
|
-
Locale::Tag::Rfc.parse("zh-Latn-CN"),
|
637
|
-
Locale::Tag::Rfc.parse("zh-CN-variant1"),
|
638
|
-
Locale::Tag::Rfc.parse("zh-CN"),
|
639
|
-
Locale::Tag::Rfc.parse("zh-Latn-variant1"),
|
640
|
-
Locale::Tag::Rfc.parse("zh-Latn"),
|
641
|
-
Locale::Tag::Rfc.parse("zh-variant1"),
|
642
|
-
Locale::Tag::Rfc.parse("zh"),
|
643
|
-
], lang.candidates
|
644
|
-
|
645
|
-
assert_equal Locale::Tag::Simple.parse("zh_CN"), lang.to_simple
|
646
|
-
assert_equal Locale::Tag::Common.parse("zh-Latn-CN_variant1"), lang.to_common
|
647
|
-
assert_equal Locale::Tag::Rfc.parse("zh-Latn-CN-variant1-a-extend1"), lang.to_rfc
|
648
|
-
assert_equal Locale::Tag::Cldr.parse("zh_Latn_CN_VARIANT1"), lang.to_cldr
|
649
|
-
assert_equal Locale::Tag::Posix.parse("zh_CN@variant1"), lang.to_posix
|
650
|
-
|
651
|
-
#Privateuse
|
688
|
+
def test_rfc_privateuse
|
689
|
+
#Privateuse
|
652
690
|
lang = Locale::Tag.parse("zh-Latn-CN-variant1-a-extend1-x-wadegile-private1")
|
653
691
|
assert_equal Locale::Tag::Rfc, lang.class
|
654
692
|
assert_equal "zh", lang.language
|
@@ -673,7 +711,9 @@ class TagTest < Test::Unit::TestCase
|
|
673
711
|
assert_equal Locale::Tag::Rfc.parse("zh-Latn-CN-variant1-a-extend1-x-wadegile-private1"), lang.to_rfc
|
674
712
|
assert_equal Locale::Tag::Cldr.parse("zh_Latn_CN_VARIANT1"), lang.to_cldr
|
675
713
|
assert_equal Locale::Tag::Posix.parse("zh_CN@variant1"), lang.to_posix
|
714
|
+
end
|
676
715
|
|
716
|
+
def test_rfc_cldr_conversion
|
677
717
|
#Privateuse with x-ldml (CLDR conversion)
|
678
718
|
lang = Locale::Tag.parse("en-US-x-ldml-POSIX-k-calendar-islamic-k-collatio-traditio-k-colStren-secondar")
|
679
719
|
assert_equal Locale::Tag::Rfc, lang.class
|
@@ -739,7 +779,7 @@ class TagTest < Test::Unit::TestCase
|
|
739
779
|
lang.privateuse = "x-foooo"
|
740
780
|
assert_equal "ja-Hira-JP-variant2-b-extend2-x-foooo", lang.to_s
|
741
781
|
|
742
|
-
|
782
|
+
assert_equal [Locale::Tag::Rfc.parse("ja-Hira-JP-variant2"),
|
743
783
|
Locale::Tag::Rfc.parse("ja-Hira-JP"),
|
744
784
|
Locale::Tag::Rfc.parse("ja-JP-variant2"),
|
745
785
|
Locale::Tag::Rfc.parse("ja-JP"),
|
@@ -750,7 +790,7 @@ class TagTest < Test::Unit::TestCase
|
|
750
790
|
], lang.candidates
|
751
791
|
end
|
752
792
|
|
753
|
-
def
|
793
|
+
def test_cldr_lang_extensions
|
754
794
|
lang = Locale::Tag.parse("de@collation=phonebook")
|
755
795
|
assert_equal Locale::Tag::Cldr, lang.class
|
756
796
|
assert_equal "de", lang.language
|
@@ -772,7 +812,9 @@ class TagTest < Test::Unit::TestCase
|
|
772
812
|
assert_equal Locale::Tag::Rfc.parse("de-k-collatio-phoneboo"), lang.to_rfc
|
773
813
|
assert_equal Locale::Tag::Cldr.parse("de@collation=phonebook"), lang.to_cldr
|
774
814
|
assert_equal Locale::Tag::Posix.parse("de"), lang.to_posix
|
815
|
+
end
|
775
816
|
|
817
|
+
def test_cldr_lang_script_extension
|
776
818
|
lang = Locale::Tag.parse("az_Arab@collation=phonebook")
|
777
819
|
assert_equal Locale::Tag::Cldr, lang.class
|
778
820
|
assert_equal "az", lang.language
|
@@ -796,6 +838,9 @@ class TagTest < Test::Unit::TestCase
|
|
796
838
|
assert_equal Locale::Tag::Cldr.parse("az_Arab@collation=phonebook"), lang.to_cldr
|
797
839
|
assert_equal Locale::Tag::Posix.parse("az"), lang.to_posix
|
798
840
|
|
841
|
+
end
|
842
|
+
|
843
|
+
def test_cldr_lang_region_extensions
|
799
844
|
lang = Locale::Tag.parse("de_DE@collation=phonebook;currency=DDM")
|
800
845
|
assert_equal Locale::Tag::Cldr, lang.class
|
801
846
|
assert_equal "de", lang.language
|
@@ -819,56 +864,58 @@ class TagTest < Test::Unit::TestCase
|
|
819
864
|
assert_equal Locale::Tag::Cldr.parse("de_DE@collation=phonebook;currency=DDM"), lang.to_cldr
|
820
865
|
assert_equal Locale::Tag::Posix.parse("de_DE"), lang.to_posix
|
821
866
|
|
822
|
-
lang = Locale::Tag.parse("
|
867
|
+
lang = Locale::Tag.parse("en_US@calendar=islamic;collation=traditional;colStrength=secondary")
|
823
868
|
assert_equal Locale::Tag::Cldr, lang.class
|
824
869
|
assert_equal "en", lang.language
|
825
870
|
assert_equal "US", lang.region
|
826
|
-
assert_equal [
|
871
|
+
assert_equal [], lang.variants
|
827
872
|
assert_equal "islamic", lang.extensions["calendar"]
|
828
873
|
assert_equal "traditional", lang.extensions["collation"]
|
829
874
|
assert_equal "secondary", lang.extensions["colStrength"]
|
830
875
|
|
831
|
-
assert_equal [Locale::Tag::Cldr.parse("
|
876
|
+
assert_equal [Locale::Tag::Cldr.parse("en_US"),
|
877
|
+
Locale::Tag::Cldr.parse("en_US"),
|
832
878
|
Locale::Tag::Cldr.parse("en_US"),
|
833
|
-
Locale::Tag::Cldr.parse("en_US_POSIX"),
|
834
879
|
Locale::Tag::Cldr.parse("en_US"),
|
835
|
-
Locale::Tag::Cldr.parse("en_POSIX"),
|
836
880
|
Locale::Tag::Cldr.parse("en"),
|
837
|
-
Locale::Tag::Cldr.parse("
|
881
|
+
Locale::Tag::Cldr.parse("en"),
|
882
|
+
Locale::Tag::Cldr.parse("en"),
|
838
883
|
Locale::Tag::Cldr.parse("en"),
|
839
884
|
], lang.candidates
|
840
885
|
|
841
886
|
assert_equal Locale::Tag::Simple.parse("en_US"), lang.to_simple
|
842
|
-
assert_equal Locale::Tag::Common.parse("
|
843
|
-
assert_equal Locale::Tag::Rfc.parse("en-US-
|
844
|
-
assert_equal Locale::Tag::Cldr.parse("
|
845
|
-
assert_equal Locale::Tag::Posix.parse("en_US
|
887
|
+
assert_equal Locale::Tag::Common.parse("en_US"), lang.to_common
|
888
|
+
assert_equal Locale::Tag::Rfc.parse("en-US-k-calendar-islamic-k-collatio-traditio-k-colStren-secondar"), lang.to_rfc
|
889
|
+
assert_equal Locale::Tag::Cldr.parse("en_US@calendar=islamic;collation=traditional;colStrength=secondary"), lang.to_cldr
|
890
|
+
assert_equal Locale::Tag::Posix.parse("en_US"), lang.to_posix
|
846
891
|
|
847
|
-
|
892
|
+
end
|
893
|
+
|
894
|
+
def test_cldr_lang_region_variants_extensions
|
895
|
+
lang = Locale::Tag.parse("en_US_POSIX@calendar=islamic;collation=traditional;colStrength=secondary")
|
848
896
|
assert_equal Locale::Tag::Cldr, lang.class
|
849
897
|
assert_equal "en", lang.language
|
850
898
|
assert_equal "US", lang.region
|
851
|
-
assert_equal [], lang.variants
|
899
|
+
assert_equal ["POSIX"], lang.variants
|
852
900
|
assert_equal "islamic", lang.extensions["calendar"]
|
853
901
|
assert_equal "traditional", lang.extensions["collation"]
|
854
902
|
assert_equal "secondary", lang.extensions["colStrength"]
|
855
903
|
|
856
|
-
assert_equal [Locale::Tag::Cldr.parse("
|
857
|
-
Locale::Tag::Cldr.parse("en_US"),
|
904
|
+
assert_equal [Locale::Tag::Cldr.parse("en_US_POSIX"),
|
858
905
|
Locale::Tag::Cldr.parse("en_US"),
|
906
|
+
Locale::Tag::Cldr.parse("en_US_POSIX"),
|
859
907
|
Locale::Tag::Cldr.parse("en_US"),
|
908
|
+
Locale::Tag::Cldr.parse("en_POSIX"),
|
860
909
|
Locale::Tag::Cldr.parse("en"),
|
861
|
-
Locale::Tag::Cldr.parse("
|
862
|
-
Locale::Tag::Cldr.parse("en"),
|
910
|
+
Locale::Tag::Cldr.parse("en_POSIX"),
|
863
911
|
Locale::Tag::Cldr.parse("en"),
|
864
912
|
], lang.candidates
|
865
913
|
|
866
914
|
assert_equal Locale::Tag::Simple.parse("en_US"), lang.to_simple
|
867
|
-
assert_equal Locale::Tag::Common.parse("
|
868
|
-
assert_equal Locale::Tag::Rfc.parse("en-US-k-calendar-islamic-k-collatio-traditio-k-colStren-secondar"), lang.to_rfc
|
869
|
-
assert_equal Locale::Tag::Cldr.parse("
|
870
|
-
assert_equal Locale::Tag::Posix.parse("en_US"), lang.to_posix
|
871
|
-
|
915
|
+
assert_equal Locale::Tag::Common.parse("en_US_POSIX"), lang.to_common
|
916
|
+
assert_equal Locale::Tag::Rfc.parse("en-US-POSIX-k-calendar-islamic-k-collatio-traditio-k-colStren-secondar"), lang.to_rfc
|
917
|
+
assert_equal Locale::Tag::Cldr.parse("en_US_POSIX@calendar=islamic;collation=traditional;colStrength=secondary"), lang.to_cldr
|
918
|
+
assert_equal Locale::Tag::Posix.parse("en_US@POSIX"), lang.to_posix
|
872
919
|
end
|
873
920
|
|
874
921
|
def test_cldr_writer
|
@@ -895,7 +942,7 @@ class TagTest < Test::Unit::TestCase
|
|
895
942
|
], lang.candidates
|
896
943
|
end
|
897
944
|
|
898
|
-
def
|
945
|
+
def test_posix_c_and_posix
|
899
946
|
lang = Locale::Tag.parse("C")
|
900
947
|
assert_equal Locale::Tag::Posix, lang.class
|
901
948
|
assert_equal "en", lang.language
|
@@ -939,7 +986,9 @@ class TagTest < Test::Unit::TestCase
|
|
939
986
|
assert_equal Locale::Tag::Rfc.parse("en-US"), lang.to_rfc
|
940
987
|
assert_equal Locale::Tag::Cldr.parse("en_US"), lang.to_cldr
|
941
988
|
assert_equal Locale::Tag::Posix.parse("en_US"), lang.to_posix
|
989
|
+
end
|
942
990
|
|
991
|
+
def test_posix_irregular_format
|
943
992
|
lang = Locale::Tag.parse("japanese.euc")
|
944
993
|
assert_equal Locale::Tag::Posix, lang.class
|
945
994
|
assert_equal "japanese", lang.language
|
@@ -956,6 +1005,24 @@ class TagTest < Test::Unit::TestCase
|
|
956
1005
|
Locale::Tag::Posix.parse("japanese"),
|
957
1006
|
], lang.candidates
|
958
1007
|
|
1008
|
+
lang = Locale::Tag.parse("univ.utf8")
|
1009
|
+
assert_equal Locale::Tag::Posix, lang.class
|
1010
|
+
assert_equal "univ", lang.language
|
1011
|
+
assert_equal nil, lang.region
|
1012
|
+
assert_equal "utf8", lang.charset
|
1013
|
+
|
1014
|
+
assert_equal [Locale::Tag::Posix.parse("univ.utf8"),
|
1015
|
+
Locale::Tag::Posix.parse("univ.utf8"),
|
1016
|
+
Locale::Tag::Posix.parse("univ"),
|
1017
|
+
Locale::Tag::Posix.parse("univ"),
|
1018
|
+
Locale::Tag::Posix.parse("univ.utf8"),
|
1019
|
+
Locale::Tag::Posix.parse("univ.utf8"),
|
1020
|
+
Locale::Tag::Posix.parse("univ"),
|
1021
|
+
Locale::Tag::Posix.parse("univ"),
|
1022
|
+
], lang.candidates
|
1023
|
+
end
|
1024
|
+
|
1025
|
+
def test_posix_lang_charset
|
959
1026
|
lang = Locale::Tag.parse("es.iso885915")
|
960
1027
|
assert_equal Locale::Tag::Posix, lang.class
|
961
1028
|
assert_equal "es", lang.language
|
@@ -978,7 +1045,9 @@ class TagTest < Test::Unit::TestCase
|
|
978
1045
|
assert_equal Locale::Tag::Rfc.parse("es"), lang.to_rfc
|
979
1046
|
assert_equal Locale::Tag::Cldr.parse("es"), lang.to_cldr
|
980
1047
|
assert_equal Locale::Tag::Posix.parse("es.iso885915"), lang.to_posix
|
1048
|
+
end
|
981
1049
|
|
1050
|
+
def test_posix_lang_region_charset
|
982
1051
|
lang = Locale::Tag.parse("es_ES.iso885915")
|
983
1052
|
assert_equal Locale::Tag::Posix, lang.class
|
984
1053
|
assert_equal "es", lang.language
|
@@ -1002,6 +1071,30 @@ class TagTest < Test::Unit::TestCase
|
|
1002
1071
|
assert_equal Locale::Tag::Cldr.parse("es_ES"), lang.to_cldr
|
1003
1072
|
assert_equal Locale::Tag::Posix.parse("es_ES.iso885915"), lang.to_posix
|
1004
1073
|
|
1074
|
+
lang = Locale::Tag.parse("ja_JP.UTF-8")
|
1075
|
+
assert_equal Locale::Tag::Posix, lang.class
|
1076
|
+
assert_equal "ja", lang.language
|
1077
|
+
assert_equal "JP", lang.region
|
1078
|
+
assert_equal "UTF-8", lang.charset
|
1079
|
+
|
1080
|
+
assert_equal [Locale::Tag::Posix.parse("ja_JP.UTF-8"),
|
1081
|
+
Locale::Tag::Posix.parse("ja_JP.UTF-8"),
|
1082
|
+
Locale::Tag::Posix.parse("ja_JP"),
|
1083
|
+
Locale::Tag::Posix.parse("ja_JP"),
|
1084
|
+
Locale::Tag::Posix.parse("ja.UTF-8"),
|
1085
|
+
Locale::Tag::Posix.parse("ja.UTF-8"),
|
1086
|
+
Locale::Tag::Posix.parse("ja"),
|
1087
|
+
Locale::Tag::Posix.parse("ja"),
|
1088
|
+
], lang.candidates
|
1089
|
+
|
1090
|
+
assert_equal Locale::Tag::Simple.parse("ja_JP"), lang.to_simple
|
1091
|
+
assert_equal Locale::Tag::Common.parse("ja_JP"), lang.to_common
|
1092
|
+
assert_equal Locale::Tag::Rfc.parse("ja-JP"), lang.to_rfc
|
1093
|
+
assert_equal Locale::Tag::Cldr.parse("ja_JP"), lang.to_cldr
|
1094
|
+
assert_equal Locale::Tag::Posix.parse("ja_JP.UTF-8"), lang.to_posix
|
1095
|
+
end
|
1096
|
+
|
1097
|
+
def test_posix_lang_modifier
|
1005
1098
|
lang = Locale::Tag.parse("es@euro")
|
1006
1099
|
assert_equal Locale::Tag::Posix, lang.class
|
1007
1100
|
assert_equal "es", lang.language
|
@@ -1026,7 +1119,9 @@ class TagTest < Test::Unit::TestCase
|
|
1026
1119
|
assert_equal Locale::Tag::Rfc.new("es", nil, nil, ["euro"]), lang.to_rfc
|
1027
1120
|
assert_equal Locale::Tag::Cldr.new("es", nil, nil, ["euro"]), lang.to_cldr
|
1028
1121
|
assert_equal Locale::Tag::Posix.parse("es@euro"), lang.to_posix
|
1122
|
+
end
|
1029
1123
|
|
1124
|
+
def test_posix_lang_region_modifier
|
1030
1125
|
lang = Locale::Tag.parse("es_ES@euro")
|
1031
1126
|
assert_equal Locale::Tag::Posix, lang.class
|
1032
1127
|
assert_equal "es", lang.language
|
@@ -1050,6 +1145,9 @@ class TagTest < Test::Unit::TestCase
|
|
1050
1145
|
assert_equal Locale::Tag::Cldr.new("es", nil, "ES", ["EURO"]), lang.to_cldr
|
1051
1146
|
assert_equal Locale::Tag::Posix.parse("es_ES@euro"), lang.to_posix
|
1052
1147
|
|
1148
|
+
end
|
1149
|
+
|
1150
|
+
def test_posix_lang_region_charset_modifier
|
1053
1151
|
lang = Locale::Tag.parse("es_ES.iso885915@euro")
|
1054
1152
|
assert_equal Locale::Tag::Posix, lang.class
|
1055
1153
|
assert_equal "es", lang.language
|
@@ -1073,43 +1171,6 @@ class TagTest < Test::Unit::TestCase
|
|
1073
1171
|
assert_equal Locale::Tag::Cldr.new("es", nil, "ES", ["EURO"]), lang.to_cldr
|
1074
1172
|
assert_equal Locale::Tag::Posix.parse("es_ES.iso885915@euro"), lang.to_posix
|
1075
1173
|
|
1076
|
-
lang = Locale::Tag.parse("univ.utf8")
|
1077
|
-
assert_equal Locale::Tag::Posix, lang.class
|
1078
|
-
assert_equal "univ", lang.language
|
1079
|
-
assert_equal nil, lang.region
|
1080
|
-
assert_equal "utf8", lang.charset
|
1081
|
-
|
1082
|
-
assert_equal [Locale::Tag::Posix.parse("univ.utf8"),
|
1083
|
-
Locale::Tag::Posix.parse("univ.utf8"),
|
1084
|
-
Locale::Tag::Posix.parse("univ"),
|
1085
|
-
Locale::Tag::Posix.parse("univ"),
|
1086
|
-
Locale::Tag::Posix.parse("univ.utf8"),
|
1087
|
-
Locale::Tag::Posix.parse("univ.utf8"),
|
1088
|
-
Locale::Tag::Posix.parse("univ"),
|
1089
|
-
Locale::Tag::Posix.parse("univ"),
|
1090
|
-
], lang.candidates
|
1091
|
-
|
1092
|
-
lang = Locale::Tag.parse("ja_JP.UTF-8")
|
1093
|
-
assert_equal Locale::Tag::Posix, lang.class
|
1094
|
-
assert_equal "ja", lang.language
|
1095
|
-
assert_equal "JP", lang.region
|
1096
|
-
assert_equal "UTF-8", lang.charset
|
1097
|
-
|
1098
|
-
assert_equal [Locale::Tag::Posix.parse("ja_JP.UTF-8"),
|
1099
|
-
Locale::Tag::Posix.parse("ja_JP.UTF-8"),
|
1100
|
-
Locale::Tag::Posix.parse("ja_JP"),
|
1101
|
-
Locale::Tag::Posix.parse("ja_JP"),
|
1102
|
-
Locale::Tag::Posix.parse("ja.UTF-8"),
|
1103
|
-
Locale::Tag::Posix.parse("ja.UTF-8"),
|
1104
|
-
Locale::Tag::Posix.parse("ja"),
|
1105
|
-
Locale::Tag::Posix.parse("ja"),
|
1106
|
-
], lang.candidates
|
1107
|
-
|
1108
|
-
assert_equal Locale::Tag::Simple.parse("ja_JP"), lang.to_simple
|
1109
|
-
assert_equal Locale::Tag::Common.parse("ja_JP"), lang.to_common
|
1110
|
-
assert_equal Locale::Tag::Rfc.parse("ja-JP"), lang.to_rfc
|
1111
|
-
assert_equal Locale::Tag::Cldr.parse("ja_JP"), lang.to_cldr
|
1112
|
-
assert_equal Locale::Tag::Posix.parse("ja_JP.UTF-8"), lang.to_posix
|
1113
1174
|
end
|
1114
1175
|
|
1115
1176
|
def test_posix_writer
|