def system
return @@default_locale unless @@cgi
cgi_ = cgi
if cgi_.has_key?("lang") and 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