Module: Translating

Included in:
Configuration
Defined in:
lib/translating.rb

Overview

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

Constant Summary collapse

@@awild =

There are better ways to extend a translated string, but I keep the 'wild-card' for historical reasons.

'XX'
@@lang =
nil
@@lang_file =
format("%s%s", RD, 'LANG')
@@tr =
YAML::load_file("#{RD}translations")

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.languageObject

find the current language-setting and return it.



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/translating.rb', line 36

def self.language()
  if @@lang == nil
    r = ENV['LANG']
    if(r)
      @@lang = r[0, 2]
    else
      error = nil 
      [:exist?, :readable?].each do |cond|
        if(! File.send(cond, @@lang_File))
          error = cond.to_s.split('?')[0]
        end
      end
      if(!error && File::size(@@lang_file) >= 2)
        File::open(@@lang_file, 'r') {|f| @@lang = f.readline}
        @@lang.chomp!.downcase! if @@lang
      else
        warn 'Cannot use ' << @@lang_file << '; file unuseable'
        info 'Language will be English'
      end
    end
  end
  @@lang = 'en' if !@@lang
end

.trl(t, *args) ⇒ Object

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.



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/translating.rb', line 64

def self.trl(t, *args)
	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

Instance Method Details

#trl(t, *args) ⇒ Object

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.



89
90
91
# File 'lib/translating.rb', line 89

def trl(t, *args )
	Translating::trl(t, args)
end