# #--------------------------------------------------------------- # # # # Langscore CoreScript "Unison" # # Version 0.9.3 # # Written by BreezeSinfonia 來奈津 # # # # 注意:このスクリプトは自動生成されました。編集は非推奨です。 # #--------------------------------------------------------------- # module Langscore # SUPPORT_LANGUAGE = ["ja","zh-cn"] # DEFAULT_LANGUAGE = "ja" # LS_FONT = { # "ja" => {:name => "VL Gothic", :size => 22}, # "zh-cn" => {:name => "Source Han Sans CN Regular", :size => 22}, # } # TRANSLATE_FOLDER = "Data/Translate" # $langscore_current_language = Langscore::DEFAULT_LANGUAGE # #ハッシュそのものからハッシュを格納するハッシュに変更。 # #イベント中にマップ移動が行われた場合、翻訳内容がクリアされる問題への対応のため。 # $ls_current_map = {} # $ls_graphic_cache = {} # end # #----------------------------------------------------- # String.class_eval <<-eval # def lstrans(line_info, *args) # text = Langscore.translate_for_script(line_info) # return sprintf(text, *args) # end # eval # #==========LSCSV========== # class LsDumpData # attr_accessor :data # end # class LSCSV # $lscsv_resource_locker = Mutex::new # def self.to_hash(file_name) # $lscsv_resource_locker.lock # file = open(Langscore::TRANSLATE_FOLDER + "/" + file_name) # $lscsv_resource_locker.unlock # return {} if file == nil # header = fetch_header(file) # rows = parse_col(header, parse_row(file)) # varidate(file_name, header, rows) # row_index = [*1..header.size].select! do |i| # Langscore::SUPPORT_LANGUAGE.include?(header[i]) # end # #To Hash # result = {} # rows[1...rows.size].each do |r| # origin = r[0] # trans = r[1...header.size] # transhash = {} # row_index.each do |i| # transhash[header[i]] = r[i] # end # result[origin] = transhash # end # result # end # def self.to_array_without_origin(file_name) # hash = to_hash(file_name) # return hash.values # end # def self.varidate(file_name, header, rows) # raise "Invalid CSV Data" if header.nil? # size = rows[0].size # mismatch_cells = rows.select{ |r| r.size != size } # if mismatch_cells.empty? == false # p "Error! : Missmatch Num Cells : #{mismatch_cells.first}" # p "File : #{file_name}, Header size : #{size}, Languages : #{rows[0]}" # raise "Error! : Missmatch Num Cells : #{mismatch_cells.first}" # end # end # def self.open(name) # result = nil # begin # file_name = name+".rvdata2" # trans_file = load_data(file_name) # if trans_file.class == LsDumpData # p "load_data #{file_name}" # result = trans_file.data # end # rescue => e # begin # file_name = name+".csv" # trans_file = File.open(file_name, "rb:utf-8:utf-8") # p "open #{file_name}" # result = trans_file.read # rescue # p "Warning : Not Found Transcript File #{file_name}" # end # end # return result # end # def self.fetch_header(csv_text) # if !csv_text.nil? && 0 e # $ls_graphic_cache[filename] = false # end # end # if $ls_graphic_cache[filename] # filename = new_filename # end # end # ls_base_load_bitmap(folder_name, filename, hue) # end # #ロード時の変換処理も必須 # eval # module Langscore # SYSTEM1 = "現在選択中の言語が表示されます。" # $langscore_system = { # SYSTEM1 => { # "ja" => "現在選択中の言語が表示されます。", # "zh-cn" => "显示当前选择的语言。", # } # } # SYSTEM2 = { # "ja" => "日本語", # "zh-cn" => "中文(簡体)", # } # module UI # class Window_Langscore < Window_Command # attr_accessor :recreate # def initialize # super(0,0) # self.x = (Graphics.width - self.window_width ) / 2 # self.y = (Graphics.height - self.window_height) / 2 # @_recreate = false # SUPPORT_LANGUAGE.each.with_index do |l, i| # select(i) if $langscore_current_language == l # end # open # end # def window_width # return 210 # end # def make_command_list # SUPPORT_LANGUAGE.each.with_index do |l, i| # add_command(SYSTEM2[l], l.to_sym) # end # end # def cursor_up(wrap = false) # super wrap # call_handler(:ls_update) # end # def cursor_down(wrap = false) # super wrap # call_handler(:ls_update) # end # end # class Window_Langscore_OKCancel < Window_HorzCommand # def initialize(y) # @gray_color = $game_system.window_tone # @gray_color.gray = 255 # @def_color = $game_system.window_tone # super((Graphics.width - self.window_width ) / 2, y) # select(1) # deactivate # open # end # def make_command_list # add_command("OK", :ok) # add_command("Reselect", :select) # add_command("Cancel", :cancel) # end # def window_width # return 380 # end # def col_max # return 3 # end # def activate # self.tone.set(@def_color) # super # end # def deactivate # self.tone.set(@gray_color) # super # end # end # class Scene_Language < Scene_MenuBase # def start # super # @before_lang = $langscore_current_language # create_help_window # create_lsmain_window # create_ok_cancel_window # @okcancel_window.deactivate # end # def terminate # super # @command_window.dispose # Langscore.changeLanguage($langscore_current_language) # LSSetting.save() # end # def create_lsmain_window # @command_window.dispose unless @command_window.nil? # @command_window = Window_Langscore.new # @command_window.viewport = @viewport # @command_window.set_handler(:ok, method(:to_okcancel)) # @command_window.set_handler(:ls_update, method(:select_lang)) # @command_window.set_handler(:cancel, method(:return_scene)) # @help_window.set_text(Langscore.translate(SYSTEM1, $langscore_system)) # end # def update_basic # super # if @command_window != nil && @command_window.recreate # @help_window.dispose unless @help_window.nil? # create_help_window # create_lsmain_window # end # end # def select_lang # return if @command_window.index == -1 # $langscore_current_language = SUPPORT_LANGUAGE[@command_window.index] # @help_window.set_text(Langscore.translate(SYSTEM1, $langscore_system)) # if Langscore.updateFont($langscore_current_language) # @command_window.recreate = true # end # end # def to_okcancel # @command_window.deactivate # @okcancel_window.activate # end # def create_ok_cancel_window # @okcancel_window.dispose unless @okcancel_window.nil? # y_pos = @command_window.y + @command_window.height + 8 # @okcancel_window = Window_Langscore_OKCancel.new(y_pos) # @okcancel_window.viewport = @viewport # @okcancel_window.set_handler(:select, method(:reselect)) # @okcancel_window.set_handler(:ok, method(:accept)) # @okcancel_window.set_handler(:cancel, method(:reject)) # end # def reselect # @command_window.activate # @okcancel_window.deactivate # end # def accept # self.return_scene # end # def reject # $langscore_current_language = @before_lang # self.return_scene # end # end # end #module UI # class LSSetting # GetPrivateProfileString = Win32API.new('kernel32', 'GetPrivateProfileString', %w(p p p p l p), 'L') # WritePrivateProfileString = Win32API.new('kernel32', 'WritePrivateProfileString', %w(p p p p), 'i') # BufferSize = 16+1 # def self.load # result = ' ' * BufferSize # r = GetPrivateProfileString.call("Langscore", "Lang", "ja", result, BufferSize, "./Game.ini") # if r == BufferSize-2 # $langscore_current_language = "ja" # else # $langscore_current_language = result.slice(0...r) # p "Langscore Load ini : #{$langscore_current_language}" # end # end # def self.save # WritePrivateProfileString.call("Langscore", "Lang", $langscore_current_language, "./Game.ini") # end # end # LSSetting.load() # def self.saveIni # LSSetting.save() # end # def self.loadIni # LSSetting.load() # end # end # module Langscore