lib/knj/locales.rb in knjrbfw-0.0.85 vs lib/knj/locales.rb in knjrbfw-0.0.86

- old
+ new

@@ -1,13 +1,22 @@ #This module can be used to handel various language-stuff. module Knj::Locales + LANG_CONVERTIONS = { + "en" => "en_GB" + } + #Returns the primary locale, secondary locale and the two put together. #===Examples # Knj::Locales.lang #=> {"first" => "en", "second" => "GB", "full" => "en_GB"} def self.lang - match = self.locale.to_s.match(/^([a-z]{2})_([A-Z]{2})/) - raise "Could not understand language: #{self.locale}." if !match + locale_str = self.locale.to_s + + #Sometimes language can be 'en'. Convert that to 'en_GB' if that is so. + locale_str = Knj::Locales::LANG_CONVERTIONS[locale_str] if Knj::Locales::LANG_CONVERTIONS.key?(locale_str) + + match = locale_str.match(/^([a-z]{2})_([A-Z]{2})/) + raise "Could not understand language: '#{locale_str}'." if !match return { "first" => match[1], "second" => match[2], "full" => "#{match[1]}_#{match[2]}" @@ -49,9 +58,11 @@ #Returns the given number as a formatted string according to the current locale. #===Examples # Knj::Locales.number_out(123456.68) #=> "123,456.68" def self.number_out(num_str, dec = 2) lc = Knj::Locales.localeconv + + require "php4r" return Php4r.number_format(num_str, dec, lc["decimal_point"], lc["thousands_sep"]) end #Returns the current locale for the current environment (_session[:locale] or Thread.current[:locale]). #===Examples \ No newline at end of file