module Locale::Driver::Env

Locale::Driver::Env module. Detect the user locales and the charset. All drivers(except CGI) refer environment variables first and use it as the locale if it's defined. This is a low-level module. Application shouldn't use this directly.

Public Instance Methods

locale() click to toggle source

Gets the locale from environment variable. (LC_ALL > LC_CTYPES > LANG) Returns: the locale as Locale::Tag::Posix.

# File lib/locale/driver/env.rb, line 38
def locale
  # At least one environment valiables should be set on *nix system.
  [ENV["LC_ALL"], ENV["LC_CTYPES"], ENV["LANG"]].each do |loc|
    if loc != nil and loc.size > 0
      return Locale::Tag::Posix.parse(loc)
    end
  end
  nil
end
locales() click to toggle source

Gets the locales from environment variables. (LANGUAGE > LC_ALL > LC_CTYPES > LANG)

# File lib/locale/driver/env.rb, line 50
def locales
  locales = ENV["LANGUAGE"]
  if (locales != nil and locales.size > 0)
    locs = locales.split(%r:/).collect{|v| Locale::Tag::Posix.parse(v)}.compact
    if locs.size > 0
      return Locale::TagList.new(locs)
    end
  elsif (loc = locale)
    return Locale::TagList.new([loc])
  end
  nil
end