Module: Translating

Included in:
SheetInterface
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.



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.



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

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.



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

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