Module: Locale::SystemCGI

Defined in:
lib/gettext/locale_cgi.rb

Overview

Locale::System module for CGI. This is a low-level class. Application shouldn’t use this directly.

Constant Summary collapse

@@default_locale =
Locale::Object.new("en", nil, "UTF-8")
@@cgi =
nil

Class Method Summary collapse

Class Method Details

.cgiObject

Gets the CGI object. If it is nil, returns new CGI object.

  • Returns: the CGI object



71
72
73
74
# File 'lib/gettext/locale_cgi.rb', line 71

def cgi
  @@cgi = CGI.new unless @@cgi
  @@cgi
end

.cgi=(cgi_) ⇒ Object

Sets a CGI object.

  • cgi_: CGI object

  • Returns: cgi_



64
65
66
67
# File 'lib/gettext/locale_cgi.rb', line 64

def cgi=(cgi_)
  set_cgi(cgi_)
  cgi_
end

.default_localeObject

Gets the default Locale::Object.

  • Returns: the default locale



95
96
97
# File 'lib/gettext/locale_cgi.rb', line 95

def default_locale
  @@default_locale
end

.default_locale=(locale) ⇒ Object

Sets a default locale. en.UTF-8 is the default value if not set.

  • locale: Locale::Object

  • Returns: locale



88
89
90
91
# File 'lib/gettext/locale_cgi.rb', line 88

def default_locale=(locale)
  set_default_locale(locale)
  locale
end

.get_charset(locale) ⇒ Object

Gets the charset of the locale.

  • locale: Locale::Object

  • Returns: the charset of the locale



49
50
51
# File 'lib/gettext/locale_cgi.rb', line 49

def get_charset(locale)
  locale.charset ? locale.charset : @@default_locale.charset
end

.set_cgi(cgi_) ⇒ Object

Sets a CGI object.

  • cgi_: CGI object

  • Returns: self



56
57
58
59
# File 'lib/gettext/locale_cgi.rb', line 56

def set_cgi(cgi_)
  @@cgi = cgi_
  self
end

.set_default_locale(locale) ⇒ Object

Sets a default locale. en.UTF-8 is the default value if not set.

  • locale: Locale::Object object. You can’t set nil.

  • Returns: self



79
80
81
82
83
# File 'lib/gettext/locale_cgi.rb', line 79

def set_default_locale(locale)
  raise "Wrong parameter: #{locale}" if locale.nil?
  @@default_locale = locale
  self
end

.systemObject

Gets the default locale using setlocale and nl_langinfo.

  • Returns the system locale (Locale::Object).



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/gettext/locale_cgi.rb', line 23

def system
  return @@default_locale unless @@cgi
  cgi_ = cgi
  if ret = cgi_["lang"] and ret.size > 0
  elsif ret = cgi_.cookies["lang"][0]
  elsif lang = cgi_.accept_language and lang.size > 0
  num = lang.index(/;|,/)
  ret = num ? lang[0, num] : lang
  else
  ret = @@default_locale.to_str
  end
 
  codesets = cgi_.accept_charset
  if codesets and codesets.size > 0
  num = codesets.index(',')
  codeset = num ? codesets[0, num] : codesets
  codeset = @@default_locale.charset if codeset == "*"
  else
  codeset = @@default_locale.charset
  end
  Locale::Object.new(ret, nil, codeset)
end