Module: Locale::Driver::CGI
- Defined in:
- lib/locale/driver/cgi.rb
Constant Summary collapse
Class Method Summary collapse
-
.cgi ⇒ Object
:nodoc:.
-
.charset ⇒ Object
Gets the charset from CGI parameters.
-
.locales ⇒ Object
Gets required locales from CGI parameters.
-
.set_cgi(cgi_) ⇒ Object
Sets a CGI object.
Class Method Details
.cgi ⇒ Object
:nodoc:
93 94 95 |
# File 'lib/locale/driver/cgi.rb', line 93 def cgi #:nodoc: Thread.current[:current_cgi] end |
.charset ⇒ Object
Gets the charset from CGI parameters. (Based on RFC2616)
* Returns: the charset (HTTP_ACCEPT_CHARSET > "UTF-8").
72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/locale/driver/cgi.rb', line 72 def charset cgi_ = cgi charsets = cgi_.accept_charset if charsets and charsets.size > 0 num = charsets.index(',') charset = num ? charsets[0, num] : charsets charset = @@default_charset if charset == "*" else charset = @@default_charset end charset end |
.locales ⇒ Object
Gets required locales from CGI parameters. (Based on RFC2616)
Returns: An Array of Locale::Tag’s subclasses
(QUERY_STRING "lang" > COOKIE "lang" > HTTP_ACCEPT_LANGUAGE > "en")
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/locale/driver/cgi.rb', line 31 def locales return Locale::TagList.new([@@default_locale]) unless cgi cgi_ = cgi locales = Locale::TagList.new # QUERY_STRING "lang" if cgi_.has_key?("lang") langs = cgi_.params["lang"] if langs langs.each do |lang| locales << Locale::Tag.parse(lang) end end end unless locales.size > 0 # COOKIE "lang" langs = cgi_.["lang"] if langs langs.each do |lang| locales << Locale::Tag.parse(lang) if lang.size > 0 end end end unless locales.size > 0 # HTTP_ACCEPT_LANGUAGE if lang = cgi_.accept_language and lang.size > 0 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])} end end unless locales.size > 0 locales << @@default_locale end Locale::TagList.new(locales.uniq) end |
.set_cgi(cgi_) ⇒ Object
Sets a CGI object.
-
cgi_: CGI object
-
Returns: self
88 89 90 91 |
# File 'lib/locale/driver/cgi.rb', line 88 def set_cgi(cgi_) Thread.current[:current_cgi] = cgi_ self end |