Language tag class for RFC4646(BCP47).
# File lib/locale/tag/rfc.rb, line 61 61: def initialize(language, script = nil, region = nil, variants = [], 62: extensions = [], privateuse = nil) 63: @extensions, @privateuse = extensions, privateuse 64: super(language, script, region, variants) 65: end
Parse the language tag and return the new Locale::Tag::Rfc.
# File lib/locale/tag/rfc.rb, line 32 32: def parse(tag) 33: if tag =~ /\APOSIX\Z/ # This is the special case of POSIX locale but match this regexp. 34: nil 35: elsif tag =~ TAG_RE 36: lang, script, region, subtag = $1, $2, $3, $4 37: extensions = [] 38: variants = [] 39: if subtag =~ /#{PRIVATEUSE}/ 40: subtag, privateuse = $`, $1 41: # Private use for CLDR. 42: if /x-ldml(.*)/ =~ privateuse 43: p_subtag = $1 44: extensions = p_subtag.scan(/(^|-)#{EXTENSION}/).collect{|v| p_subtag.sub!(v[1], ""); v[1]} 45: variants = p_subtag.scan(/(^|-)#{VARIANT}(?=(-|$))/).collect{|v| v[1]} 46: end 47: end 48: extensions += subtag.scan(/(^|-)#{EXTENSION}/).collect{|v| subtag.sub!(v[1], ""); v[1]} 49: variants += subtag.scan(/(^|-)#{VARIANT}(?=(-|$))/).collect{|v| v[1]} 50: 51: ret = self.new(lang, script, region, variants, extensions, privateuse) 52: ret.tag = tag 53: ret 54: else 55: nil 56: end 57: end
# File lib/locale/tag/rfc.rb, line 80 80: def convert_to(klass) 81: if klass == Rfc 82: klass.new(language, script, region, variants, extensions, privateuse) 83: elsif klass == Cldr 84: exts = {} 85: extensions.sort.each do |v| 86: if v =~ /^k-(#{ALPHANUM}{2,})-(.*)$/ 87: exts[$1] = $2 88: end 89: end 90: klass.new(language, script, region, variants, exts) 91: else 92: super 93: end 94: end
Returns the language tag
<language>-<Script>-<REGION>-<variants>-<extensions>-<PRIVATEUSE> (e.g.) "ja-Hira-JP-variant"
This is used in internal only. Use to_s instead.
# File lib/locale/tag/rfc.rb, line 101 101: def to_string 102: s = super.gsub(/_/, "-") 103: @extensions.sort.each do |v| 104: s << "-#{v}" 105: end 106: s << "-#{@privateuse}" if @privateuse 107: s 108: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.