From fc7463d7e7c10cf6b892163733070b92847d5553 Mon Sep 17 00:00:00 2001 From: tdixon Date: Fri, 31 Mar 2017 12:46:03 -0300 Subject: [PATCH] Expand localization to Pictures and other message types --- scripts/Credits_Message.rb | 1 + scripts/Desktop_Message.rb | 1 + scripts/Doc_Message.rb | 1 + scripts/Ed_Message.rb | 1 + scripts/FastTravel.rb | 1 + scripts/Game_Picture.rb | 10 +++++++++- scripts/Window_Help.rb | 18 ++++++++---------- scripts/Window_InputNumber.rb | 1 + scripts/Window_Item.rb | 3 ++- scripts/Window_MainMenu.rb | 1 + scripts/Window_Message.rb | 1 + scripts/i18n_Language.rb | 20 +++++++++++--------- 12 files changed, 38 insertions(+), 21 deletions(-) diff --git a/scripts/Credits_Message.rb b/scripts/Credits_Message.rb index 0a57751..c529714 100644 --- a/scripts/Credits_Message.rb +++ b/scripts/Credits_Message.rb @@ -17,6 +17,7 @@ class Credits_Message end @sprite_text = Sprite.new(@viewport) @contents = Bitmap.new(320, 240) + Language.register_text_sprite(self.class.name + "_contents", @contents) @contents.font.size = 16 @sprite_text.bitmap = @contents @sprite_bg.z = 0 diff --git a/scripts/Desktop_Message.rb b/scripts/Desktop_Message.rb index a5cda1f..adf2f6b 100644 --- a/scripts/Desktop_Message.rb +++ b/scripts/Desktop_Message.rb @@ -14,6 +14,7 @@ class Desktop_Message @sprite_bg.zoom_x = @sprite_bg.zoom_y = 2 @sprite_text = Sprite.new(@viewport) @contents = Bitmap.new(640, HEIGHT) + Language.register_text_sprite(self.class.name + "_contents", @contents) @sprite_text.bitmap = @contents @sprite_text.y = (480 - HEIGHT) / 2 @sprite_bg.z = 0 diff --git a/scripts/Doc_Message.rb b/scripts/Doc_Message.rb index 392db9b..26fd329 100644 --- a/scripts/Doc_Message.rb +++ b/scripts/Doc_Message.rb @@ -20,6 +20,7 @@ class Doc_Message #@sprite_bg.bitmap.fill_rect(0, 0, 640, 480, Color.new(0, 0, 0, 128)) @sprite_text = Sprite.new(@viewport) @contents = Bitmap.new(200, 216) + Language.register_text_sprite(self.class.name + "_contents", @contents) @contents.font.size = 16 @sprite_text.bitmap = @contents @sprite_text.x = 120 diff --git a/scripts/Ed_Message.rb b/scripts/Ed_Message.rb index 24baf4d..0dfd669 100644 --- a/scripts/Ed_Message.rb +++ b/scripts/Ed_Message.rb @@ -11,6 +11,7 @@ class Ed_Message @sprite_bg.bitmap.fill_rect(0, 0, 640, 480, Color.new(0, 0, 0, 128)) @sprite_text = Sprite.new(@viewport) @contents = Bitmap.new(640, HEIGHT) + Language.register_text_sprite(self.class.name + "_contents", @contents) @sprite_text.bitmap = @contents @sprite_text.y = (480 - HEIGHT) / 2 @sprite_bg.z = 0 diff --git a/scripts/FastTravel.rb b/scripts/FastTravel.rb index a3ff8ff..c1490ce 100644 --- a/scripts/FastTravel.rb +++ b/scripts/FastTravel.rb @@ -11,6 +11,7 @@ class FastTravel @bg.bitmap = Bitmap.new(640, 480) @bg.bitmap.fill_rect(0, 0, 640, 480, Color.new(0, 0, 0, 128)) @title = Sprite.new(@viewport) + Language.register_text_sprite(self.class.name + "_title", @title) @title.bitmap = Bitmap.new(320, TITLE_MARGIN) @title.bitmap.font.size = 40 @title.y = TITLE_TOP_MARGIN diff --git a/scripts/Game_Picture.rb b/scripts/Game_Picture.rb index 266c011..a8acc80 100644 --- a/scripts/Game_Picture.rb +++ b/scripts/Game_Picture.rb @@ -58,7 +58,15 @@ class Game_Picture # blend_type : blend method #-------------------------------------------------------------------------- def show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type) - @name = name + # Localization: check if this picture exists + # in the appropriate language folder, else + # default to the base graphics folder + translation_name = "#{$persistent.langcode}/#{name}" + if File.exists?("Graphics/Pictures/#{translation_name}.png") + @name = translation_name + else + @name = name + end @origin = origin @x = x.to_f @y = y.to_f diff --git a/scripts/Window_Help.rb b/scripts/Window_Help.rb index 78b9ebc..f09c558 100644 --- a/scripts/Window_Help.rb +++ b/scripts/Window_Help.rb @@ -11,6 +11,7 @@ class Window_Help < Window_Base def initialize super(16, 16, 608, 64) self.contents = Bitmap.new(width - 32, height - 32) + Language.register_text_sprite(self.class.name + "_contents", self.contents) self.visible = false self.back_opacity = 230 self.z = 9998 @@ -21,15 +22,12 @@ class Window_Help < Window_Base # align : alignment (0..flush left, 1..center, 2..flush right) #-------------------------------------------------------------------------- def set_text(text, align = 0) - # If at least one part of text and alignment differ from last time - if text != @text or align != @align - # Redraw text - self.contents.clear - self.contents.font.color = normal_color - self.contents.draw_text(4, 0, self.width - 40, 32, text, align) - @text = text - @align = align - @actor = nil - end + # Redraw text + self.contents.clear + self.contents.font.color = normal_color + self.contents.draw_text(4, 0, self.width - 40, 32, text, align) + @text = text + @align = align + @actor = nil end end diff --git a/scripts/Window_InputNumber.rb b/scripts/Window_InputNumber.rb index 4c144e4..b6661fe 100644 --- a/scripts/Window_InputNumber.rb +++ b/scripts/Window_InputNumber.rb @@ -19,6 +19,7 @@ class Window_InputNumber < Window_Base dummy_bitmap.dispose super(0, 0, @cursor_width * @digits_max + 32, 64) self.contents = Bitmap.new(width - 32, height - 32) + Language.register_text_sprite(self.class.name + "_contents", self.contents) self.z += 9999 self.opacity = 0 @index = 0 diff --git a/scripts/Window_Item.rb b/scripts/Window_Item.rb index 5131087..a516763 100644 --- a/scripts/Window_Item.rb +++ b/scripts/Window_Item.rb @@ -197,8 +197,9 @@ class Window_Item < Window_Selectable # * Open #-------------------------------------------------------------------------- def open + update_help refresh - + # Search for selected item and auto-select if $game_variables[1] > 0 @data.each_with_index do |item, i| diff --git a/scripts/Window_MainMenu.rb b/scripts/Window_MainMenu.rb index 9d87f8d..9baf79b 100644 --- a/scripts/Window_MainMenu.rb +++ b/scripts/Window_MainMenu.rb @@ -20,6 +20,7 @@ class Window_MainMenu < Window_Selectable # Render menu self.contents = Bitmap.new(width - 32, 32) + Language.register_text_sprite(self.class.name + "_contents", self.contents) for i in 0...@item_max draw_item(i, normal_color) end diff --git a/scripts/Window_Message.rb b/scripts/Window_Message.rb index 1d4a813..e40f316 100644 --- a/scripts/Window_Message.rb +++ b/scripts/Window_Message.rb @@ -12,6 +12,7 @@ class Window_Message < Window_Selectable def initialize super(16, 336, 608, 128) self.contents = Bitmap.new(width - 32, height - 32) + Language.register_text_sprite(self.class.name + "_contents", self.contents) self.visible = false self.z = 9999 self.back_opacity = 210 diff --git a/scripts/i18n_Language.rb b/scripts/i18n_Language.rb index e01a34d..8fbe31d 100644 --- a/scripts/i18n_Language.rb +++ b/scripts/i18n_Language.rb @@ -3,7 +3,7 @@ # Translator class: translate text to another language # for debug REMOVE BEFORE COMMITTING -require "zlib" +# require "zlib" class Language FONT_WESTERN = 'Terminus (TTF)' @@ -67,13 +67,13 @@ class Language end def dbg_print(str) - dbg = IO.new(STDERR.fileno) - if str.nil? - dbg.write("null\n") - else - dbg.write(str.to_s + "\n") - end - dbg.close() + # dbg = IO.new(STDERR.fileno) + # if str.nil? + # dbg.write("null\n") + # else + # dbg.write(str.to_s + "\n") + # end + # dbg.close() end def register_text_sprite(key, spr) @@ -94,7 +94,9 @@ class Language elsif sprites.kind_of?(Hash) sprites.each_value do |spr| if spr.kind_of?(Sprite) - spr.bitmap.font.name = Font.default_name + spr.bitmap.font.name = Font.default_name + elsif spr.kind_of?(Bitmap) + spr.font.name = Font.default_name end end elsif sprites.kind_of?(Sprite)