Class: AMS::Translate

Inherits:
Object
  • Object
show all
Defined in:
translate.rb

Overview

Based on langhadler.rb and AE::Translate in ae_LaunchUp by Andreas Eisenbarth.

Instance Method Summary (collapse)

Constructor Details

- (Translate) initialize(toolname = nil, dir = nil)

Load translation strings.

Parameters:

  • toolname (String) (defaults to: nil)

    A name to identify the translation file (plugin name).

  • dir (String) (defaults to: nil)

    An optional directory path where to search, otherwise in this file's directory.

Since:

  • 2.0.0



11
12
13
14
15
16
# File 'translate.rb', line 11

def initialize(toolname = nil, dir = nil)
  @strings = {}
  locale = Sketchup.get_locale
  parse_strings(toolname, "en", dir) if locale!="en" # as basis
  parse_strings(toolname, locale, dir)
end

Instance Method Details

- (String) get(key, *si) Also known as: []

Get a single translation.

Parameters:

  • key (String)

    Original string in ruby script; % characters escaped by %%.

  • si (*String)

    s0-sn: optional strings for substitution of %0 … %sn.

Returns:

  • (String)

    translated string

Raises:

  • (ArgumentError)

Since:

  • 2.0.0



91
92
93
94
95
96
97
98
99
100
101
# File 'translate.rb', line 91

def get(key, *si)
  raise(ArgumentError, "Argument 'key' must be a String or an Array of Strings.") unless key.is_a?(String) || key.nil? || key.is_a?(Array) && key.grep(String).length == key.length
  return key.map{|k| self.[](k, *si)} if key.is_a?(Array) # Allow batch translation of strings
  value = (@strings[key] || key).to_s.clone
  # Substitution of additional strings.
  si.compact.each_with_index{|s, i|
    value.gsub!(/\%#{i}/, s.to_s)
  }
  value.gsub!(/\%\%/,"%")
  return value.chomp
end

- (Hash) get_all

Get all translations as hash.

Returns:

  • (Hash)

    key/value pairs of original and translated strings.

Since:

  • 2.0.0



109
110
111
# File 'translate.rb', line 109

def get_all
  return @strings
end