So, das war es dann aber erstmal. Muss dieses Wochenende auch arbeiten und will mal weg vom PC

Code:
module Vocab
  # Whenever the language is changed ingame, call:
  # Vocab.change_vocab()
  
  # Language Selection Constants
  LDT_LANG = ["Deutsch","English"]
  # Number of the language switch
  LDT_SWITCH = 101
  #language siwtch off , language switch on
  #example ["Beenden","Back to title"] # Zum Titelmenü
  LDT_BASIC = [
      ["",""], # Level/Stufe
      ["",""], #  Level/Stufe (kurz)
      ["",""], #  HP/LP
      ["",""], #  HP/LP (kurz)
      ["",""], #  MP
      ["",""], #  MP (kurz)
      ["",""], #  TP
      ["",""]] #  TP (kurz)
  LDT_COMMAND = [
      ["",""], #  Kampf
      ["",""], #  Fliegen
      ["",""], #  Angriff
      ["",""], #  Verteidigen
      ["",""], #  Gegenstände
      ["",""], #  Fähigkeiten
      ["",""], #  Ausrüstung
      ["",""], #  Status
      ["",""], #  Formation ändern
      ["",""], #  Speichern
      ["",""], #  Spiel beenden
      ["",""], #  
      ["",""], #  Waffen
      ["",""], #  Rüstungen
      ["",""], #  Wichtige Objekte
      ["",""], #  Ausrüstung wechseln
      ["",""], #  Beste Ausrüstung
      ["",""], #  Alles entfernen
      ["",""], #  Neues Spiel
      ["",""], #  Fortsetzen
      ["",""], #  Programm beenden
      ["",""], #  Zum Titelmenü
      ["",""]] #  Abbrechen
  # Skill ID => [Language switch off][Language siwtch on]
  # Skills which are not maintained here will be read from database
  LDT_SKILL = {
      1=>["",""],
      2=>["",""],
      4=>["Doppelter Hieb","Double Attack"]
      }
  # Item ID => [Language switch off][Language siwtch on]
  # Items which are not maintained here will be read from database
  LDT_ITEM = {
      1=>["Trank","Potion"],
      2=>["",""],
      4=>["",""]
      }    
  def self.change_vocab()
    Vocab::ShopBuy.replace !$game_switches[LDT_SWITCH] ? "Kaufen" : "Kaufen"
    Vocab::ShopSell.replace !$game_switches[LDT_SWITCH] ? "Verkaufen" : "Verkaufen"
    Vocab::ShopCancel.replace !$game_switches[LDT_SWITCH] ? "Abbrechen" : "Abbrechen"
    Vocab::Possession.replace !$game_switches[LDT_SWITCH] ? "Im Besitz" : "Im Besitz"

    # Status-Menübildschirm
    Vocab::ExpTotal.replace !$game_switches[LDT_SWITCH] ? "Aktuelle Exp" : "Aktuelle Exp"
    Vocab::ExpNext.replace !$game_switches[LDT_SWITCH] ? "Bis zum nächsten %s" : "Bis zum nächsten %s"

    # Speichern/Laden-Menübildschirm
    Vocab::SaveMessage.replace !$game_switches[LDT_SWITCH] ? "In welchen Stand speichern" : "In welchen Stand speichern"
    Vocab::LoadMessage.replace !$game_switches[LDT_SWITCH] ? "Welchen Stand laden" : "Welchen Stand laden"
    Vocab::File.replace !$game_switches[LDT_SWITCH] ? "Spielstand" : "Spielstand"

    # Anzeige, wenn es mehrere Gruppenmitglieder gibt
    Vocab::PartyName.replace !$game_switches[LDT_SWITCH] ? "%s's Gruppe" : "%s's Gruppe"

    # Basis-Nachrichten im Kampf
    Vocab::Emerge.replace !$game_switches[LDT_SWITCH] ? "%s erscheint!" : "%s erscheint!"
    Vocab::Preemptive.replace !$game_switches[LDT_SWITCH] ? "%s ist im Vorteil!" : "%s ist im Vorteil!"
    Vocab::Surprise.replace !$game_switches[LDT_SWITCH] ? "%s wurde überrascht!" : "%s wurde überrascht!"
    Vocab::EscapeStart.replace !$game_switches[LDT_SWITCH] ? "%s versucht zu fliehen!" : "%s versucht zu fliehen!"
    Vocab::EscapeFailure.replace !$game_switches[LDT_SWITCH] ? "War nicht in der Lage zu fliehen!" : "War nicht in der Lage zu fliehen!"

    # Nachrichten bei Kampfende
    Vocab::Victory.replace !$game_switches[LDT_SWITCH] ? "%s war siegreich!" : "%s war siegreich!"
    Vocab::Defeat.replace !$game_switches[LDT_SWITCH] ? "%s wurde besiegt." : "%s wurde besiegt."
    Vocab::ObtainExp.replace !$game_switches[LDT_SWITCH] ? "%s EXP erhalten!" : "%s EXP erhalten!"
    Vocab::ObtainGold.replace !$game_switches[LDT_SWITCH] ? "%s\\G gefunden!" : "%s\\G gefunden!"
    Vocab::ObtainItem.replace !$game_switches[LDT_SWITCH] ? "%s gefunden!" : "%s gefunden!"
    Vocab::LevelUp.replace !$game_switches[LDT_SWITCH] ? "%s ist nun %s %s!" : "%s ist nun %s %s!"
    Vocab::ObtainSkill.replace !$game_switches[LDT_SWITCH] ? "%s erlernt!" : "%s erlernt!"

    # Benutzung von Gegenständen
    Vocab::UseItem.replace !$game_switches[LDT_SWITCH] ? "%s nutzt %s!" : "%s nutzt %s!"

    # Kritischer Treffer
    Vocab::CriticalToEnemy.replace !$game_switches[LDT_SWITCH] ? "Kritischer Treffer!!" : "Kritischer Treffer!!"
    Vocab::CriticalToActor.replace !$game_switches[LDT_SWITCH] ? "Wurde schwer getroffen!!" : "Wurde schwer getroffen!!"

    # Ergebnis für Aktionen, welche die Helden betreffen
    Vocab::ActorDamage.replace !$game_switches[LDT_SWITCH] ? "%s nimmt %s Schaden!" : "%s nimmt %s Schaden!"
    Vocab::ActorRecovery.replace !$game_switches[LDT_SWITCH] ? "%s heilt %s %s!" : "%s heilt %s %s!"
    Vocab::ActorGain.replace !$game_switches[LDT_SWITCH] ? "%s bekommt %s %s!" : "%s bekommt %s %s!"
    Vocab::ActorLoss.replace !$game_switches[LDT_SWITCH] ? "%s verliert %s %s!" : "%s verliert %s %s!"
    Vocab::ActorDrain.replace !$game_switches[LDT_SWITCH] ? "%s wurde %s %s entzogen!" : "%s wurde %s %s entzogen!"
    Vocab::ActorNoDamage.replace !$game_switches[LDT_SWITCH] ? "%s hat keinen Schaden eritten!" : "%s hat keinen Schaden eritten!"
    Vocab::ActorNoHit.replace !$game_switches[LDT_SWITCH] ? "Verfehlt! %s wurde nicht getroffen!" : "Verfehlt! %s wurde nicht getroffen!"

    # Ergebnis für Aktionen, welche die Gegner betreffen
    Vocab::EnemyDamage.replace !$game_switches[LDT_SWITCH] ? "%s erleidet %s Schaden!" : "%s erleidet %s Schaden!"
    Vocab::EnemyRecovery.replace !$game_switches[LDT_SWITCH] ? "%s heilt %s %s!" : "%s heilt %s %s!"
    Vocab::EnemyGain.replace !$game_switches[LDT_SWITCH] ? "%s bekommt %s %s!" : "%s bekommt %s %s!"
    Vocab::EnemyLoss.replace !$game_switches[LDT_SWITCH] ? "%s verliert %s %s!" : "%s verliert %s %s!"
    Vocab::EnemyDrain.replace !$game_switches[LDT_SWITCH] ? "Entzieht %s %s von %s!" : "Entzieht %s %s von %s!"
    Vocab::EnemyNoDamage.replace !$game_switches[LDT_SWITCH] ? "%s hat keinen Schaden erlitten!" : "%s hat keinen Schaden erlitten!"
    Vocab::EnemyNoHit.replace !$game_switches[LDT_SWITCH] ? "Verfehlt! %s wurde nicht getroffen!" : "Verfehlt! %s wurde nicht getroffen!"

    # Ausweichen/Zurückwerfen
    Vocab::Evasion.replace !$game_switches[LDT_SWITCH] ? "%s weicht dem Angriff aus!" : "%s weicht dem Angriff aus!"
    Vocab::MagicEvasion.replace !$game_switches[LDT_SWITCH] ? "%s wehrt die Magie ab!" : "%s wehrt die Magie ab!"
    Vocab::MagicReflection.replace !$game_switches[LDT_SWITCH] ? "%s reflektiert die Magie!" : "%s reflektiert die Magie!"
    Vocab::CounterAttack.replace !$game_switches[LDT_SWITCH] ? "%s startet einen Gegenangriff!" : "%s startet einen Gegenangriff!"
    Vocab::Substitute.replace !$game_switches[LDT_SWITCH] ? "%s verteidigt %s!" : "%s verteidigt %s!"

    # Buff/Debuff
    Vocab::BuffAdd.replace !$game_switches[LDT_SWITCH] ? "%s's %s wird verstärkt!" : "%s's %s wird verstärkt!"
    Vocab::DebuffAdd.replace !$game_switches[LDT_SWITCH] ? "%s's %s wird geschwächt!" : "%s's %s wird geschwächt!"
    Vocab::BuffRemove.replace !$game_switches[LDT_SWITCH] ? "%s's %s ist wieder normal." : "%s's %s ist wieder normal."

    # Fähigkeit oder Gegenstand hatte keinen Effekt
    Vocab::ActionFailure.replace !$game_switches[LDT_SWITCH] ? "Hat keine Auswirkung auf %s!" : "Hat keine Auswirkung auf %s!"

    # Fehler-Meldungen
    Vocab::PlayerPosError.replace !$game_switches[LDT_SWITCH] ? "Spieler-Startpoistion wurde nicht gesetzt" : "Spieler-Startpoistion wurde nicht gesetzt"
    Vocab::EventOverflow.replace !$game_switches[LDT_SWITCH] ? "Zuviele gleichzeitige Aufrufe Gemeinsamer Events"  : "Zuviele gleichzeitige Aufrufe Gemeinsamer Events"
  end
  
  # Basis-Status
  def self.basic(basic_id)
    return LDT_BASIC[basic_id][$game_switches[LDT_SWITCH] ? 1 : 0]
  end
  
   # Befehle
  def self.command(command_id)
    return LDT_COMMAND[command_id][$game_switches[LDT_SWITCH] ? 1 : 0]
  end 
  
  def self.get_item_text(item)
    if(item.is_a?(RPG::Skill))
      return get_skill_name(item)
    elsif(item.is_a?(RPG::Item))
      return get_item_name(item)
    else
      return item.name
    end
  end
  
  def self.get_skill_name(item)
    if(LDT_SKILL.has_key?(item.id))
      return LDT_SKILL[item.id][$game_switches[LDT_SWITCH] ? 1 : 0]
    else
      return item.name
    end
  end
  
  def self.get_item_name(item)
    if(LDT_ITEM.has_key?(item.id))
      return LDT_ITEM[item.id][$game_switches[LDT_SWITCH] ? 1 : 0]
    else
      return item.name
    end
  end
end

class Window_Base
  def draw_item_name(item, x, y, enabled = true, width = 172)
    return unless item
    draw_icon(item.icon_index, x, y, enabled)
    change_color(normal_color, enabled)
    draw_text(x + 24, y, width, line_height, Vocab.get_item_text(item))
  end
end
class Window_BattleLog
  def display_use_item(subject, item)
    if item.is_a?(RPG::Skill)
      add_text(subject.name + item.message1)
      unless item.message2.empty?
        wait
        add_text(item.message2)
      end
    else
      add_text(sprintf(Vocab::UseItem, subject.name, Vocab.get_item_text(item)))
    end
  end
end
## Scene Title changes + new window
class Window_LanguageCommand < Window_Command
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0)
    update_placement
    self.openness = 0
    open
  end
  #--------------------------------------------------------------------------
  # * Get Window Width
  #--------------------------------------------------------------------------
  def window_width
    return 160
  end
  #--------------------------------------------------------------------------
  # * Update Window Position
  #--------------------------------------------------------------------------
  def update_placement
    self.x = (Graphics.width - width) / 2
    self.y = (Graphics.height * 1.6 - height) / 2
  end
  #--------------------------------------------------------------------------
  # * Create Command List
  #--------------------------------------------------------------------------
  def make_command_list
    p("test")
    add_command(Vocab::LDT_LANG[0], :lang1)
    add_command(Vocab::LDT_LANG[1], :lang2)
  end
  #--------------------------------------------------------------------------
  # * Get Activation State of Continue
  #--------------------------------------------------------------------------
  def continue_enabled
    DataManager.save_file_exists?
  end
end
class Scene_Title < Scene_Base
  def start
    super
    SceneManager.clear
    Graphics.freeze
    create_background
    create_foreground    
    create_language_window
    play_title_music
  end
  
  def create_language_window
    @language_window = Window_LanguageCommand.new
    @language_window.set_handler(:lang1, method(:command_lang1))
    @language_window.set_handler(:lang2, method(:command_lang2))
    @language_window.visible = true
    @language_window.active = true
  end
  
  def command_lang1()
    $game_switches[Vocab::LDT_SWITCH] = false
    language_selected()
  end
  
  def command_lang2()
    $game_switches[Vocab::LDT_SWITCH] = true
    language_selected()
  end
  
  def language_selected()
    @language_window.visible = false
    @language_window.active = false
    create_command_window
  end
end
module DataManager
  class <<self; alias ldt_vocab_load_game load_game end
  def self.load_game(index)
    tlang = $game_switches[Vocab::LDT_SWITCH]
    treturn = ldt_vocab_load_game(index)
    Vocab.change_vocab()
    $game_switches[Vocab::LDT_SWITCH] = tlang
    return treturn
  end
  
  class <<self; alias ldt_vocab_new_game setup_new_game end
  def self.setup_new_game
    tlang = $game_switches[Vocab::LDT_SWITCH]
    treturn = ldt_vocab_new_game
    Vocab.change_vocab()
    $game_switches[Vocab::LDT_SWITCH] = tlang
    return treturn
  end
end