module Translating

A way to produce translated text in a ruby-program. Translations are read from a file “translations” in the program folder.

Public Class Methods

language() click to toggle source

find the current language-setting and return it.

# File lib/translating.rb, line 59
def self.language()
  if @@lang == nil
    r = ENV['LANG']
    if(r)
      @@lang = r[0, 2]
    elsif( !File_Checking::file_check(@@lang_file, [:exist?, :readable?]) && File::size(@@lang_file) >= 2)
      File::open(@@lang_file, 'r') {|f| @@lang = f.readline}
      @@lang.chomp!.downcase! if @@lang
    end
  end
  @@lang = 'en' if !@@lang
end
trl(t, *args) click to toggle source

Translate a string to the currently set langage. The args parameter may contain replacement-text which will appear at the positions indicated by wildcard-characters in the original string.

TODO: Come on! sprintf-syntax is far better than the awkward 'wildcard'. Just remove this crap.

# File lib/translating.rb, line 79
def self.trl(t, *args)
  
@@log.debug('@tr is ' << @@tr.to_s) 
  Translating::language()
  lt = @@tr[t]
  if(lt)
    lt = lt[@@lang]
  else
    # File.open('/tmp/mtf', 'a+') {|f| f << t << "\n"}
    puts "\nTRANSLATION MISSING: \"" << t << "\""
  end
  lt ||= t
  if(args && !args.empty?)
    i = -1 
    lt = lt.gsub(@@awild) do |a| 
      i += 1
      args.flatten[i]
    end
    lt += args[i + 1, args.length].join
  end
  return lt
end

Public Instance Methods

trl(t, *args ) click to toggle source

Translate a string to the currently set langage. The args parameter may contain replacement-text which will appear at the positions indicated by wildcard-characters in the original string.

# File lib/translating.rb, line 106
def trl(t, *args )
  Translating::trl(t, args)
end