locale 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/COPYING +55 -0
- data/ChangeLog +113 -0
- data/README +100 -0
- data/Rakefile +77 -0
- data/doc/classes/Locale/Driver.html +375 -0
- data/doc/classes/Locale/Driver/CGI.html +502 -0
- data/doc/classes/Locale/Driver/Env.html +440 -0
- data/doc/classes/Locale/Driver/JRuby.html +390 -0
- data/doc/classes/Locale/Driver/Posix.html +431 -0
- data/doc/classes/Locale/Driver/Win32.html +398 -0
- data/doc/classes/Locale/Driver/Win32Table.html +356 -0
- data/doc/classes/Locale/Info.html +586 -0
- data/doc/classes/Locale/Info/Language.html +764 -0
- data/doc/classes/Locale/Info/Region.html +470 -0
- data/doc/classes/Locale/Tag/Cldr.html +547 -0
- data/doc/classes/Locale/Tag/Common.html +655 -0
- data/doc/classes/Locale/Tag/Illegular.html +424 -0
- data/doc/classes/Locale/Tag/Posix.html +612 -0
- data/doc/classes/Locale/Tag/Rfc.html +610 -0
- data/doc/classes/Locale/Tag/Simple.html +684 -0
- data/doc/classes/Locale/TagList.html +783 -0
- data/doc/classes/Locale/Util.html +476 -0
- data/doc/classes/Locale/Util/Memoizable.html +356 -0
- data/doc/created.rid +1 -0
- data/doc/files/ChangeLog.html +497 -0
- data/doc/files/README.html +525 -0
- data/doc/files/lib/locale/driver/cgi_rb.html +342 -0
- data/doc/files/lib/locale/driver/env_rb.html +354 -0
- data/doc/files/lib/locale/driver/jruby_rb.html +359 -0
- data/doc/files/lib/locale/driver/posix_rb.html +349 -0
- data/doc/files/lib/locale/driver/win32_rb.html +359 -0
- data/doc/files/lib/locale/driver/win32_table_rb.html +342 -0
- data/doc/files/lib/locale/info/language_rb.html +353 -0
- data/doc/files/lib/locale/info/region_rb.html +353 -0
- data/doc/files/lib/locale/info_rb.html +354 -0
- data/doc/files/lib/locale/tag/cldr_rb.html +342 -0
- data/doc/files/lib/locale/tag/common_rb.html +342 -0
- data/doc/files/lib/locale/tag/illegular_rb.html +349 -0
- data/doc/files/lib/locale/tag/posix_rb.html +342 -0
- data/doc/files/lib/locale/tag/rfc_rb.html +342 -0
- data/doc/files/lib/locale/tag/simple_rb.html +349 -0
- data/doc/files/lib/locale/tag_rb.html +374 -0
- data/doc/files/lib/locale/taglist_rb.html +342 -0
- data/doc/files/lib/locale/util/memoizable_rb.html +360 -0
- data/doc/files/lib/locale/version_rb.html +342 -0
- data/doc/files/lib/locale_rb.html +379 -0
- data/doc/fr_class_index.html +20 -0
- data/doc/fr_file_index.html +23 -0
- data/doc/fr_method_index.html +80 -0
- data/doc/index.html +1 -0
- data/doc/rdoc-style.css +320 -0
- data/lib/locale.rb +248 -0
- data/lib/locale/data/languages.tab.gz +0 -0
- data/lib/locale/data/regions.tab.gz +0 -0
- data/lib/locale/driver/cgi.rb +132 -0
- data/lib/locale/driver/env.rb +64 -0
- data/lib/locale/driver/jruby.rb +53 -0
- data/lib/locale/driver/posix.rb +49 -0
- data/lib/locale/driver/win32.rb +61 -0
- data/lib/locale/driver/win32_table.rb +298 -0
- data/lib/locale/info.rb +12 -0
- data/lib/locale/info/language.rb +134 -0
- data/lib/locale/info/region.rb +74 -0
- data/lib/locale/tag.rb +36 -0
- data/lib/locale/tag/cldr.rb +93 -0
- data/lib/locale/tag/common.rb +122 -0
- data/lib/locale/tag/illegular.rb +38 -0
- data/lib/locale/tag/posix.rb +97 -0
- data/lib/locale/tag/rfc.rb +106 -0
- data/lib/locale/tag/simple.rb +145 -0
- data/lib/locale/taglist.rb +93 -0
- data/lib/locale/util/memoizable.rb +76 -0
- data/lib/locale/version.rb +12 -0
- data/samples/cgi/README +20 -0
- data/samples/cgi/cookie.cgi +62 -0
- data/samples/cgi/http.rb +52 -0
- data/samples/cgi/index.cgi +90 -0
- data/samples/cgi/locale.css +115 -0
- data/samples/sample_1.rb +25 -0
- data/samples/sample_info.rb +6 -0
- data/setup.rb +1585 -0
- data/test/test_detect_cgi.rb +179 -0
- data/test/test_detect_general.rb +159 -0
- data/test/test_info.rb +28 -0
- data/test/test_tag.rb +1183 -0
- data/test/test_thread.rb +37 -0
- metadata +162 -0
@@ -0,0 +1,38 @@
|
|
1
|
+
=begin
|
2
|
+
locale/tag/illegular.rb - Locale::Tag::Illegular
|
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
|
+
$Id: illegular.rb 27 2008-12-03 15:06:50Z mutoh $
|
10
|
+
=end
|
11
|
+
|
12
|
+
require 'locale/tag/simple'
|
13
|
+
|
14
|
+
module Locale
|
15
|
+
|
16
|
+
module Tag
|
17
|
+
# Broken tag class.
|
18
|
+
class Illegular < Simple
|
19
|
+
|
20
|
+
def initialize(tag)
|
21
|
+
tag = "en" if tag == nil || tag.empty?
|
22
|
+
@language = tag
|
23
|
+
@tag = tag
|
24
|
+
end
|
25
|
+
|
26
|
+
# Returns an Array of tag-candidates order by priority.
|
27
|
+
def candidates
|
28
|
+
[Illegular.new(tag)]
|
29
|
+
end
|
30
|
+
|
31
|
+
# Conver to the klass(the class of Language::Tag)
|
32
|
+
private
|
33
|
+
def convert_to(klass)
|
34
|
+
klass.new(tag)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
=begin
|
2
|
+
locale/tag/posix.rb - Locale::Tag::Posix
|
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
|
+
$Id: posix.rb 27 2008-12-03 15:06:50Z mutoh $
|
10
|
+
=end
|
11
|
+
|
12
|
+
module Locale #:nodoc:
|
13
|
+
module Tag #:nodoc:
|
14
|
+
|
15
|
+
# Locale tag class for POSIX locale
|
16
|
+
# * ja
|
17
|
+
# * ja_JP
|
18
|
+
# * ja_JP.UTF-8
|
19
|
+
# * ja_JP.UTF-8@Osaka
|
20
|
+
# * C/POSIX (-> en_US)
|
21
|
+
class Posix < Simple
|
22
|
+
LANGUAGE = "([a-z]{2,})"
|
23
|
+
TAG_RE = /\A#{LANGUAGE}(?:_#{REGION})?(?:\.([^@]+))?(?:@(.*))?\Z/i
|
24
|
+
|
25
|
+
attr_reader :charset, :modifier
|
26
|
+
|
27
|
+
def initialize(language, region = nil, charset = nil, modifier = nil)
|
28
|
+
@charset, @modifier = charset, modifier
|
29
|
+
super(language, region)
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.parse(tag)
|
33
|
+
if tag =~ /^(C|POSIX)$/
|
34
|
+
ret = self.new("en", "US")
|
35
|
+
ret.tag = tag
|
36
|
+
ret
|
37
|
+
elsif tag =~ TAG_RE
|
38
|
+
ret = self.new($1, $2, $3, $4)
|
39
|
+
ret.tag = tag
|
40
|
+
ret
|
41
|
+
else
|
42
|
+
nil
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# Returns the language tag.
|
47
|
+
# <language>_<COUNTRY>.<CHARSET>@<MODIFIER>
|
48
|
+
# (e.g.) "ja_JP.EUC-JP@Modifier"
|
49
|
+
def to_s
|
50
|
+
s = @language.dup
|
51
|
+
s << "_#{@region}" if @region
|
52
|
+
s << ".#{@charset}" if @charset
|
53
|
+
s << "@#{@modifier}" if @modifier
|
54
|
+
s
|
55
|
+
end
|
56
|
+
|
57
|
+
# Set the charset.
|
58
|
+
def charset=(val)
|
59
|
+
clear
|
60
|
+
@charset = val
|
61
|
+
end
|
62
|
+
|
63
|
+
# Set the modifier.
|
64
|
+
def modifier=(val)
|
65
|
+
clear
|
66
|
+
@modifier = val
|
67
|
+
end
|
68
|
+
|
69
|
+
# Returns an Array of tag-candidates order by priority.
|
70
|
+
# Use Locale.candidates instead of this method.
|
71
|
+
def candidates
|
72
|
+
[self.class.new(language, region, charset, modifier), #ja_JP.UTF-8@Modifier
|
73
|
+
self.class.new(language, region, charset), #ja_JP.UTF-8
|
74
|
+
self.class.new(language, region, nil, modifier), #ja_JP@Modifier
|
75
|
+
self.class.new(language, region, nil, nil), #ja_JP@Modifier
|
76
|
+
self.class.new(language, nil, charset, modifier), #ja.UTF-8@Modifier
|
77
|
+
self.class.new(language, nil, charset), #ja.UTF-8
|
78
|
+
self.class.new(language, nil, nil, modifier), #ja@Modifier
|
79
|
+
self.class.new(language)] #ja
|
80
|
+
end
|
81
|
+
|
82
|
+
# A modifier is converted to a variant.
|
83
|
+
# If the modifier is less than 5 characters, it is not canonical value.
|
84
|
+
private
|
85
|
+
def convert_to(klass)
|
86
|
+
if klass == Simple
|
87
|
+
super
|
88
|
+
elsif klass == Posix
|
89
|
+
klass.new(language, region, charset, modifier)
|
90
|
+
else
|
91
|
+
klass.new(language, nil, region, modifier ? [modifier] : [])
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
@@ -0,0 +1,106 @@
|
|
1
|
+
=begin
|
2
|
+
locale/tag/rfc.rb - Locale::Tag::Rfc
|
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
|
+
$Id: rfc.rb 27 2008-12-03 15:06:50Z mutoh $
|
10
|
+
=end
|
11
|
+
|
12
|
+
module Locale #:nodoc:
|
13
|
+
module Tag #:nodoc:
|
14
|
+
|
15
|
+
# Language tag class for RFC4646(BCP47).
|
16
|
+
class Rfc < Common
|
17
|
+
SINGLETON = '[a-wyz0-9]'
|
18
|
+
VARIANT = "(#{ALPHANUM}{5,8}|#{DIGIT}#{ALPHANUM}{3})"
|
19
|
+
EXTENSION = "(#{SINGLETON}(?:-#{ALPHANUM}{2,8})+)"
|
20
|
+
PRIVATEUSE = "(x(?:-#{ALPHANUM}{1,8})+)"
|
21
|
+
GRANDFATHERED = "#{ALPHA}{1,3}(?:-#{ALPHANUM}{2,8}){1,2}"
|
22
|
+
|
23
|
+
TAG_RE = /\A#{LANGUAGE}(?:-#{SCRIPT})?
|
24
|
+
(?:-#{REGION})?((?:-#{VARIANT})*
|
25
|
+
(?:-#{EXTENSION})*(?:-#{PRIVATEUSE})?)\Z/ix
|
26
|
+
|
27
|
+
attr_reader :extensions, :privateuse
|
28
|
+
|
29
|
+
def initialize(language, script = nil, region = nil, variants = [],
|
30
|
+
extensions = [], privateuse = nil)
|
31
|
+
@extensions, @privateuse = extensions, privateuse
|
32
|
+
super(language, script, region, variants)
|
33
|
+
end
|
34
|
+
|
35
|
+
# Parse the language tag and return the new Locale::Tag::Common.
|
36
|
+
def self.parse(tag)
|
37
|
+
if tag =~ /\APOSIX\Z/ # This is the special case of POSIX locale but match this regexp.
|
38
|
+
nil
|
39
|
+
elsif tag =~ TAG_RE
|
40
|
+
lang, script, region, subtag = $1, $2, $3, $4
|
41
|
+
extensions = []
|
42
|
+
variants = []
|
43
|
+
if subtag =~ /#{PRIVATEUSE}/
|
44
|
+
subtag, privateuse = $`, $1
|
45
|
+
# Private use for CLDR.
|
46
|
+
if /x-ldml(.*)/ =~ privateuse
|
47
|
+
p_subtag = $1
|
48
|
+
extensions = p_subtag.scan(/(^|-)#{EXTENSION}/i).collect{|v| p_subtag.sub!(v[1], ""); v[1]}
|
49
|
+
variants = p_subtag.scan(/(^|-)#{VARIANT}(?=(-|$))/i).collect{|v| v[1]}
|
50
|
+
end
|
51
|
+
end
|
52
|
+
extensions += subtag.scan(/(^|-)#{EXTENSION}/i).collect{|v| subtag.sub!(v[1], ""); v[1]}
|
53
|
+
variants += subtag.scan(/(^|-)#{VARIANT}(?=(-|$))/i).collect{|v| v[1]}
|
54
|
+
|
55
|
+
ret = self.new(lang, script, region, variants, extensions, privateuse)
|
56
|
+
ret.tag = tag
|
57
|
+
ret
|
58
|
+
else
|
59
|
+
nil
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
# Returns the language tag
|
64
|
+
# <language>-<Script>-<REGION>-<variants>-<extensions>-<PRIVATEUSE>
|
65
|
+
# (e.g.) "ja-Hira-JP-variant"
|
66
|
+
def to_s
|
67
|
+
s = super.to_s.gsub(/_/, "-")
|
68
|
+
@extensions.each do |v|
|
69
|
+
s << "-#{v}"
|
70
|
+
end
|
71
|
+
s << "-#{@privateuse}" if @privateuse
|
72
|
+
s
|
73
|
+
end
|
74
|
+
|
75
|
+
# Sets the extensions.
|
76
|
+
def extensions=(val)
|
77
|
+
clear
|
78
|
+
@extensions = val
|
79
|
+
end
|
80
|
+
|
81
|
+
# Sets the extensions.
|
82
|
+
def privateuse=(val)
|
83
|
+
clear
|
84
|
+
@privateuse = val
|
85
|
+
end
|
86
|
+
|
87
|
+
private
|
88
|
+
def convert_to(klass)
|
89
|
+
if klass == Rfc
|
90
|
+
klass.new(language, script, region, variants, extensions, privateuse)
|
91
|
+
elsif klass == Cldr
|
92
|
+
exts = {}
|
93
|
+
extensions.each do |v|
|
94
|
+
if v =~ /^k-(#{ALPHANUM}{2,})-(.*)$/i
|
95
|
+
exts[$1] = $2
|
96
|
+
end
|
97
|
+
end
|
98
|
+
klass.new(language, script, region, variants, exts)
|
99
|
+
else
|
100
|
+
super
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
@@ -0,0 +1,145 @@
|
|
1
|
+
=begin
|
2
|
+
locale/tag/simple.rb - Locale::Tag::Simple
|
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
|
+
$Id: simple.rb 27 2008-12-03 15:06:50Z mutoh $
|
10
|
+
=end
|
11
|
+
|
12
|
+
require 'locale/util/memoizable'
|
13
|
+
|
14
|
+
module Locale
|
15
|
+
module Tag
|
16
|
+
# Abstract language tag class.
|
17
|
+
# This class has <language>, <region> which
|
18
|
+
# all of language tag specifications have.
|
19
|
+
#
|
20
|
+
# * ja (language: ISO 639 (2 or 3 alpha))
|
21
|
+
# * ja_JP (country: RFC4646 (ISO3166/UN M.49) (2 alpha or 3 digit)
|
22
|
+
# * ja-JP
|
23
|
+
# * ja-392
|
24
|
+
class Simple
|
25
|
+
ALPHA = '[a-z]'
|
26
|
+
DIGIT = '[0-9]'
|
27
|
+
ALPHANUM = "[a-zA-Z0-9]"
|
28
|
+
|
29
|
+
LANGUAGE = "(#{ALPHA}{2,3})" # ISO 639
|
30
|
+
REGION = "(#{ALPHA}{2}|#{DIGIT}{3})" # RFC4646 (ISO3166/UN M.49)
|
31
|
+
|
32
|
+
TAG_RE = /\A#{LANGUAGE}(?:[_-]#{REGION})?\Z/i
|
33
|
+
|
34
|
+
include Util::Memoizable
|
35
|
+
|
36
|
+
attr_reader :language, :region
|
37
|
+
|
38
|
+
# tag is set when .parse method is called.
|
39
|
+
# This value is used when the program want to know the original
|
40
|
+
# String.
|
41
|
+
attr_accessor :tag
|
42
|
+
|
43
|
+
# Parse the language tag and return the new Locale::Tag::Simple.
|
44
|
+
def self.parse(tag)
|
45
|
+
if tag =~ TAG_RE
|
46
|
+
ret = self.new($1, $2)
|
47
|
+
ret.tag = tag
|
48
|
+
ret
|
49
|
+
else
|
50
|
+
nil
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# call-seq:
|
55
|
+
# to_common
|
56
|
+
# to_posix
|
57
|
+
# to_rfc
|
58
|
+
# to_cldr
|
59
|
+
#
|
60
|
+
# Convert to each tag classes.
|
61
|
+
[:simple, :common, :posix, :rfc, :cldr].each do |name|
|
62
|
+
class_eval <<-EOS
|
63
|
+
def to_#{name}
|
64
|
+
convert_to(#{name.to_s.capitalize})
|
65
|
+
end
|
66
|
+
memoize :to_#{name}
|
67
|
+
EOS
|
68
|
+
end
|
69
|
+
|
70
|
+
# Create a Locale::Tag::Simple
|
71
|
+
def initialize(language, region = nil)
|
72
|
+
raise "language can't be nil." unless language
|
73
|
+
@language, @region = language, region
|
74
|
+
@language.downcase! if @language
|
75
|
+
@region.upcase! if @region
|
76
|
+
end
|
77
|
+
|
78
|
+
# Returns the language tag as the String.
|
79
|
+
# <language>_<REGION>
|
80
|
+
# (e.g.) "ja_JP"
|
81
|
+
def to_s
|
82
|
+
s = @language.dup
|
83
|
+
s << "_" << @region if @region
|
84
|
+
s
|
85
|
+
end
|
86
|
+
|
87
|
+
def to_str #:nodoc:
|
88
|
+
to_s
|
89
|
+
end
|
90
|
+
|
91
|
+
def ==(other) #:nodoc:
|
92
|
+
other != nil and hash == other.hash
|
93
|
+
end
|
94
|
+
|
95
|
+
def eql?(other) #:nodoc:
|
96
|
+
self.==(other)
|
97
|
+
end
|
98
|
+
|
99
|
+
def hash #:nodoc:
|
100
|
+
"#{self.class}:#{to_s}".hash
|
101
|
+
end
|
102
|
+
|
103
|
+
def inspect #:nodoc:
|
104
|
+
%Q[#<#{self.class}: #{to_s}>]
|
105
|
+
end
|
106
|
+
|
107
|
+
# For backward compatibility.
|
108
|
+
def country; region end
|
109
|
+
|
110
|
+
# Set the language (with downcase)
|
111
|
+
def language=(val)
|
112
|
+
clear
|
113
|
+
@language = val
|
114
|
+
@language.downcase! if @language
|
115
|
+
@language
|
116
|
+
end
|
117
|
+
|
118
|
+
# Set the region (with upcase)
|
119
|
+
def region=(val)
|
120
|
+
clear
|
121
|
+
@region = val
|
122
|
+
@region.upcase! if @region
|
123
|
+
@region
|
124
|
+
end
|
125
|
+
|
126
|
+
# Returns an Array of tag-candidates order by priority.
|
127
|
+
# Use Locale.candidates instead of this method.
|
128
|
+
def candidates
|
129
|
+
[self.class.new(language, region), self.class.new(language)]
|
130
|
+
end
|
131
|
+
|
132
|
+
memoize :to_s, :to_str, :hash, :inspect, :candidates
|
133
|
+
|
134
|
+
# Conver to the klass(the class of Language::Tag)
|
135
|
+
private
|
136
|
+
def convert_to(klass)
|
137
|
+
if klass == Simple || klass == Posix
|
138
|
+
klass.new(language, region)
|
139
|
+
else
|
140
|
+
klass.new(language, nil, region)
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
=begin
|
2
|
+
taglist.rb - Locale module
|
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
|
+
$Id: taglist.rb 27 2008-12-03 15:06:50Z mutoh $
|
10
|
+
=end
|
11
|
+
|
12
|
+
module Locale
|
13
|
+
# This provides the subclass of Array which behaves like
|
14
|
+
# the first(top priority) Locale::Tag object.
|
15
|
+
# "Locale.current.language" is same with "Locale.current[0].language".
|
16
|
+
#
|
17
|
+
# Locale.current returns an Array of Tag(s) now.
|
18
|
+
# But the old Locale.current(Ruby-GetText) and Locale.get
|
19
|
+
# returns Locale::Object (similier with Locale::Tag::Posix).
|
20
|
+
# This is the class for backward compatibility.
|
21
|
+
#
|
22
|
+
# It is recommanded to use Locale.current[0] or
|
23
|
+
# Locale.candidates to find the current locale instead
|
24
|
+
# of this function.
|
25
|
+
#
|
26
|
+
class TagList < Array
|
27
|
+
# Returns the top priority language. (simple)
|
28
|
+
def language
|
29
|
+
self[0].language
|
30
|
+
end
|
31
|
+
# Returns the top priority region/country. (simple)
|
32
|
+
def country
|
33
|
+
self[0].region
|
34
|
+
end
|
35
|
+
# Returns the top priority region/country. (simple)
|
36
|
+
def region
|
37
|
+
self[0].region
|
38
|
+
end
|
39
|
+
# Returns the top priority script. (common)
|
40
|
+
def script
|
41
|
+
self[0].script
|
42
|
+
end
|
43
|
+
# Returns the top priority charset. (posix)
|
44
|
+
def charset
|
45
|
+
if self[0].respond_to? :charset
|
46
|
+
self[0].charset
|
47
|
+
else
|
48
|
+
::Locale.driver_module.charset
|
49
|
+
end
|
50
|
+
end
|
51
|
+
# Returns the top priority modifier. (posix)
|
52
|
+
def modifier
|
53
|
+
(self[0].respond_to? :modifier) ? self[0].modifier : nil
|
54
|
+
end
|
55
|
+
# Returns the top priority extensions.(common, rfc, cldr)
|
56
|
+
def extensions
|
57
|
+
(self[0].respond_to? :extensions) ? self[0].extensions : nil
|
58
|
+
end
|
59
|
+
# Returns the top priority privateuse(rfc)
|
60
|
+
def privateuse
|
61
|
+
(self[0].respond_to? :privateuse) ? self[0].privateuse : nil
|
62
|
+
end
|
63
|
+
|
64
|
+
def to_str
|
65
|
+
self[0].to_str
|
66
|
+
end
|
67
|
+
|
68
|
+
def to_s
|
69
|
+
self[0].to_s
|
70
|
+
end
|
71
|
+
|
72
|
+
def to_common
|
73
|
+
self[0].to_common
|
74
|
+
end
|
75
|
+
|
76
|
+
def to_simple
|
77
|
+
self[0].to_simple
|
78
|
+
end
|
79
|
+
|
80
|
+
def to_rfc
|
81
|
+
self[0].to_rfc
|
82
|
+
end
|
83
|
+
|
84
|
+
def to_cldr
|
85
|
+
self[0].to_cldr
|
86
|
+
end
|
87
|
+
|
88
|
+
def to_posix
|
89
|
+
self[0].to_posix
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
93
|
+
end
|