module Core::Trans

Constants

SUB

Public Class Methods

dialogue(sym, replace=nil) click to toggle source
# File lib/translate.rb, line 358
def self.dialogue(sym, replace=nil)
  return safe(@@dialogues, sym, replace)
end
enemy(sym) click to toggle source
# File lib/translate.rb, line 361
def self.enemy(sym)
  return safe(@@enemies, sym)
end
handle_failed(type) click to toggle source
# File lib/translate.rb, line 319
def self.handle_failed(type)
  puts("FATAL: No #{type} translations for selected language (#{Core.config[:language]}) found!")
  if Core.config[:language] != "de"
    Core.config[:language] = "de"
    puts("INFO: Changed language to 'de' (German), try restarting")
    Core.exit(1)
  else
    puts("INFO: Even the default language is not working, the install seems to be broken.\nTry redownloading the application.")
    Core.exit(1)
  end
end
item(sym) click to toggle source
# File lib/translate.rb, line 346
def self.item(sym)
  return safe(@@items, sym)
end
menu(sym, replace=nil) click to toggle source
parse_dialogues() click to toggle source
# File lib/translate.rb, line 237
def self.parse_dialogues
  Dir.new("#{Core::LIBRARY_PATH}/def/#{Core.config[:language]}/dialogues/").each { |f|
    begin
      if File.directory?("#{Core::LIBRARY_PATH}/#{f}") or File.extname("#{Core::LIBRARY_PATH}/#{f}") != ".dlg"
        next
      end
      file = File.new("#{Core::LIBRARY_PATH}/def/#{Core.config[:language]}/dialogues/#{f}")
      block = false
      msg = ""
      sym = nil
      file.each_line { |line|
        line.gsub!("\n", "")
        if line.start_with?("#") or line.length == 0
          if line == "#EOF"
            break
          end
          next
        end
        line.lstrip!
        if block
          if line.include?("}")
            block = false
            @@dialogues[Core.config[:language]].store(sym, msg)
            msg = ""
            sym = nil
            next
          end
          msg += "#{line}\n"
        else
          if line.include?("{")
            block = true
            sym = line.gsub(/\s?\{/, "").to_sym
          end
        end
      }
      file.close
    rescue Errno::ENOENT
    end
  }
end
parse_enemies() click to toggle source
# File lib/translate.rb, line 278
def self.parse_enemies
  begin
    file = File.open("#{Core::LIBRARY_PATH}/def/#{Core.config[:language]}/enemies.trans", "r")
    block = false
    name = desc = ""
    enemy = nil
    file.each_line { |line|
      line.gsub!("\n", "")
      if line.start_with?("#") or line.length == 0
        if line == "#EOF"
          break
        end
        next
      end
      if line[0] == "{"
        block = true
      end
      if line[0] == "}"
        block = false
        @@enemies[Core.config[:language]].store(enemy.name, name)
        @@enemies[Core.config[:language]].store("#{enemy.name}_desc", desc)
        next
      end
      if block
        if line.start_with?("name")
          line.gsub!(/name *= */, "")
          name = line.gsub("\"", "")
        elsif line.start_with?("desc")
          line.gsub!(/desc *= */, "")
          desc = line.gsub("\"", "")
        end
      else
        enemy = Core::Game.find_enemy(line.to_sym)
      end
    }
    file.close
  rescue Errno::ENOENT
    self.handle_failed("skill")
  end
end
parse_items() click to toggle source
# File lib/translate.rb, line 114
def self.parse_items
  begin
    file = File.open("#{Core::LIBRARY_PATH}/def/#{Core.config[:language]}/items.trans", "r")
    block = false
    name = desc = ""
    item = nil
    file.each_line { |line|
      line.gsub!("\n", "")
      if line.start_with?("#") or line.length == 0
        if line == "#EOF"
          break
        end
        next
      end
      if line[0] == "{"
        block = true
      end
      if line[0] == "}"
        block = false
        @@items[Core.config[:language]].store(item.name, name)
        @@items[Core.config[:language]].store("#{item.name}_desc", desc)
        next
      end
      if block
        if line.start_with?("name")
          line.gsub!(/name *= */, "")
          name = line.gsub("\"", "")
        elsif line.start_with?("desc")
          line.gsub!(/desc *= */, "")
          desc = line.gsub("\"", "")
        end
      else
        item = Core::Game.find_item(line.to_sym)
      end
    }
    file.close
  rescue Errno::ENOENT
    self.handle_failed("item")
  end
end
parse_skills() click to toggle source
# File lib/translate.rb, line 196
def self.parse_skills
  begin
    file = File.open("#{Core::LIBRARY_PATH}/def/#{Core.config[:language]}/skills.trans", "r")
    block = false
    name = desc = ""
    skill = nil
    file.each_line { |line|
      line.gsub!("\n", "")
      if line.start_with?("#") or line.length == 0
        if line == "#EOF"
          break
        end
        next
      end
      if line[0] == "{"
        block = true
      end
      if line[0] == "}"
        block = false
        @@skills[Core.config[:language]].store(skill.name, name)
        @@skills[Core.config[:language]].store("#{skill.name}_desc", desc)
        next
      end
      if block
        if line.start_with?("name")
          line.gsub!(/name *= */, "")
          name = line.gsub("\"", "")
        elsif line.start_with?("desc")
          line.gsub!(/desc *= */, "")
          desc = line.gsub("\"", "")
        end
      else
        skill = Core::Game.find_skill(line.to_sym)
      end
    }
    file.close
  rescue Errno::ENOENT
    self.handle_failed("skill")
  end
end
parse_spells() click to toggle source
# File lib/translate.rb, line 155
def self.parse_spells
  begin
    file = File.open("#{Core::LIBRARY_PATH}/def/#{Core.config[:language]}/spells.trans", "r")
    block = false
    name = desc = ""
    spell = nil
    file.each_line { |line|
      line.gsub!("\n", "")
      if line.start_with?("#") or line.length == 0
        if line == "#EOF"
          break
        end
        next
      end
      if line[0] == "{"
        block = true
      end
      if line[0] == "}"
        block = false
        @@spells[Core.config[:language]].store(spell.name, name)
        @@spells[Core.config[:language]].store("#{spell.name}_desc".to_sym, desc)
        next
      end
      if block
        if line.start_with?("name")
          line.gsub!(/name *= */, "")
          name = line.gsub("\"", "")
        elsif line.start_with?("desc")
          line.gsub!(/desc *= */, "")
          desc = line.gsub("\"", "")
        end
      else
        spell = Core::Game.find_spell(line.to_sym)
      end
    }
    file.close
  rescue Errno::ENOENT
    self.handle_failed("spell")
  end
end
safe(hash, sym, replace=nil) click to toggle source
# File lib/translate.rb, line 331
def self.safe(hash, sym, replace=nil)
  if !hash.has_key?(Core.config[:language])
    warn("ERROR: Selected language (#{Core.config[:language]}) not available")
    return ""
  elsif !hash[Core.config[:language]].has_key?(sym)
    warn("ERROR: Missing translation for #{sym} for language #{Core.config[:language]}")
    return ""
  end
  if replace && !replace.empty?
    return hash[Core.config[:language]][sym].gsub(SUB, replace)
  else
    return hash[Core.config[:language]][sym]
  end
end
skill(sym) click to toggle source
# File lib/translate.rb, line 349
def self.skill(sym)
  return safe(@@skills, sym)
end
spell(sym) click to toggle source
# File lib/translate.rb, line 352
def self.spell(sym)
  return safe(@@spells, sym)
end
weapon(sym) click to toggle source
# File lib/translate.rb, line 364
def self.weapon(sym)
  return safe(@@weapons, sym)
end