module Webgen::LanguageManager

Used for managing human languages.

Public Class Methods

find_language(text) click to toggle source

Return an array of Language objects whose description match the given text.

# File lib/webgen/languages.rb, line 75
def self.find_language(text)
  languages.values.find_all {|lang| /.*#{Regexp.escape(text)}.*/i =~ lang.description}.uniq.sort
end
language_for_code(code) click to toggle source

Return a Language object for the given language code or nil if no such object exists.

# File lib/webgen/languages.rb, line 70
def self.language_for_code(code)
  languages[code]
end
languages() click to toggle source

Return all available languages as a Hash. The keys are the language codes and the values are the Language objects for them.

# File lib/webgen/languages.rb, line 81
def self.languages
  unless defined?(@@languages)
    @@languages = {}
    started = nil
    data = File.readlines(__FILE__).each do |l|
      next if !started && (started = (l == '__END__'))
      data = l.chomp.split('|').collect {|f| f.empty? ? nil : f}
      lang = Language.new(data[0..2], data[3])
      @@languages[lang.code2chars] ||= lang unless lang.code2chars.nil?
      @@languages[lang.code3chars] ||= lang unless lang.code3chars.nil?
      @@languages[lang.code3chars_alternative] ||= lang unless lang.code3chars_alternative.nil?
    end
    @@languages.freeze
  end
  @@languages
end