Module: Translating

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. TODO: GET RID OF THIS CRAP

'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.



44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/translating.rb', line 44

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) ⇒ 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 (DARN). This is for historical reasons. The format() function is much better suited to extend plaintext messages.



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

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.



87
88
89
# File 'lib/translating.rb', line 87

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