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
75 def self.find_language(text)
76   languages.values.find_all {|lang| /.*#{Regexp.escape(text)}.*/i =~ lang.description}.uniq.sort
77 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
70 def self.language_for_code(code)
71   languages[code]
72 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
81 def self.languages
82   unless defined?(@@languages)
83     @@languages = {}
84     started = nil
85     data = File.readlines(__FILE__).each do |l|
86       next unless (started ||= (l == "aar||aa|Afar|afar\n"))
87       data = l.chomp.split('|').collect {|f| f.empty? ? nil : f}
88       lang = Language.new(data[0..2], data[3])
89       @@languages[lang] = lang
90       @@languages[lang.code2chars] ||= lang unless lang.code2chars.nil?
91       @@languages[lang.code3chars] ||= lang unless lang.code3chars.nil?
92       @@languages[lang.code3chars_alternative] ||= lang unless lang.code3chars_alternative.nil?
93     end
94     @@languages.freeze
95   end
96   @@languages
97 end