module LANGScript
Constants
- LNG_BEGIN
- LNG_END
- LNG_TAGS
- MAJOR
- MINOR
- TAG_BEGIN
- TAG_LINE
- TAG_NAME
- TAG_TEXT
Public Instance Methods
load(tag, lang)
click to toggle source
# File lang-script.rb, line 67 def load(tag, lang) load_files unless LANGUAGES.keys.include? lang if LANGUAGES[lang] if LANGUAGES[lang][tag] return LANGUAGES[lang][tag] else puts "Failed to load tag '#{tag}': Could not find tag" end else puts "Failed to load tag '#{tag}': Could not find language" end return '' end
load_files()
click to toggle source
# File lang-script.rb, line 16 def load_files Dir.entries(FOLDER).each do |entry| next unless FileTest.file?(FOLDER + '/' + entry) txt = File.open(FOLDER + '/' + entry, 'rb') {|f| f.read} major = txt[0].unpack('U').first minor = txt[1].unpack('U').first if major > MAJOR || (major >= MAJOR && minor > MINOR) puts "LANG Script version not compatible" return '' end enc = txt[2].unpack('U').first > 1 txt = txt[3..-1] txt.split(LNG_END).each do |l| langname = enc ? decrypt(l[LNG_BEGIN.size...l.index(LNG_TAGS)]) : l[LNG_BEGIN.size...l.index(LNG_TAGS)] unless l[0...LNG_BEGIN.size] == LNG_BEGIN puts "Invalid language file" return '' end l[(l.index(LNG_TAGS) + LNG_TAGS.size)..-1].split("\n").each do |t| unless t[0...TAG_BEGIN.size] == TAG_BEGIN puts "Invalid language file" return '' end unless t[TAG_BEGIN.size..(TAG_NAME.size+1)] == TAG_NAME puts "Invalid language file" return '' end i = t.index(TAG_TEXT) unless i puts "Invalid language file" return '' end name = enc ? decrypt(t[(TAG_BEGIN.size + TAG_NAME.size)...i]) : t[(TAG_BEGIN.size + TAG_NAME.size)...i].force_encoding('UTF-8') text = enc ? decrypt(t[(i+TAG_TEXT.size)...t.size]) : t[(i+TAG_TEXT.size)...t.size].force_encoding('UTF-8') begin LANGUAGES[langname] ||= {} LANGUAGES[langname][name] = text.gsub(TAG_LINE.force_encoding('UTF-8'), "\n") rescue puts "Invalid language file" return '' end end end end end