iPhone App Directory
RPG Maker VX
 
Gallery Members Search Calendar Help


Welcome Guest ( Log In | Register )

Collapse

>Announcement

The 2nd Quarter Contest has arrived! Go check it out in the Community Announcements now!
 
Reply to this topicStart new topic
> Arabic TEXT in RPG maker VX, big thanks to bulletxt & kunio-kun
Eternal Sorrow
post Jul 12 2009, 03:04 PM
Post #1



Group Icon


Type: Artist






Hello Everyone, in this topic i'm here to show you a good method for writing arabic text
in message box in RMVX:


first step: INSTALLATION

1- downloading a translation software :

click here
direct download : click here

2- setting scripts
you need to put this code in the main in RMVX:
CODE
#==============================================================================
# ** Main
#------------------------------------------------------------------------------
#  After defining each class, actual processing begins here.
#==============================================================================

begin
  Font.default_name = "Tahoma"  
  Font.default_shadow = true
  Font.default_bold = nil
  Graphics.freeze
  $kcode = "UTF-8"
  $encodings = "UTF-8"
  $scene = Scene_Title.new
  $scene.main while $scene != nil
  Graphics.transition(30)
rescue Errno::ENOENT
  filename = $!.message.sub("No such file or directory - ", "")
  print("Unable to find file #{filename}.")
end


also copy this script above main in RMVX:

more info : click here

CODE
=begin
                        Arabic Reading Right to left

Author: Bulletxt
Version: 0.5
Date: 12/07/2009
=end

# this is an id switch, if ON it will reverse the letters of a word.
# example: "Hello World" will be "olleH dlroW"
REVERSE_LETTERS_OF_WORD = 1

# this is an id switch, if ON it will reverse the words of a sentance including
# the letters of the word.
# example: "Hello World" will be "dlroW olleH"
REVERSE_WORDS_OF_SENTANCE_INCLUDING_LETTERS = 2


# NOTE:
# if REVERSE_LETTERS_OF_WORD and REVERSE_WORDS_OF_SENTANCE_INCLUDING_LETTERS
# switches are both on, the result will be a revert of the words in a sentance
# without reverting the letters of the word.
# example: "Hello World" will be "World Hello"

############################## END CONFIGURATION ###############################

class Window_Message < Window_Selectable

  #--------------------------------------------------------------------------
  # * Start Message
  #--------------------------------------------------------------------------
  def start_message
    @text = ""
    for i in 0...$game_message.texts.size
      @text += "    " if i >= $game_message.choice_start
      m = $game_message.texts.shift


      m = m.split(//u).reverse.join

      #"Hello World" will be "olleH dlroW"
      m = m.split(/ /).map { |w| w.split(//u).reverse.join}.join(' ') if $game_switches[REVERSE_LETTERS_OF_WORD]

      #"Hello World" will be "dlroW olleH"
      m = m.split(//u).reverse.join if $game_switches[REVERSE_WORDS_OF_SENTANCE_INCLUDING_LETTERS]


      #debug sentance
      #p sprintf (m)
      @text += m + "\x00"

    end
    @item_max = $game_message.choice_max
    convert_special_characters
    reset_window
    new_page
  end

  #--------------------------------------------------------------------------
  # * New Page
  #--------------------------------------------------------------------------
  def new_page
    contents.clear
    if $game_message.face_name.empty?
      @contents_x = 512
    else
      name = $game_message.face_name
      index = $game_message.face_index
      draw_face(name, index, 416, 0)
      @contents_x = 406
    end
    @contents_y = 0
    @line_count = 0
    @show_fast = false
    @line_show_fast = false
    @pause_skip = false
    contents.font.color = text_color(0)
  end
  #--------------------------------------------------------------------------
  # * New Line
  #--------------------------------------------------------------------------
  def new_line
    if $game_message.face_name.empty?
      @contents_x = 512
    else
      @contents_x = 406
    end
    @contents_y += WLH
    @line_count += 1
    @line_show_fast = false
  end

  #--------------------------------------------------------------------------
  # * Update Message
  #--------------------------------------------------------------------------
  def update_message
    loop do
      c = @text.slice!(/./m)            # Get next text character
      case c
      when nil                          # There is no text that must be drawn
        finish_message                  # Finish update
        break
      when "\x00"                       # New line
        new_line
        if @line_count >= MAX_LINE      # If line count is maximum
          unless @text.empty?           # If there is more
            self.pause = true           # Insert number input
            break
          end
        end
      when "\x01"                       # \C[n]  (text character color change)
        @text.sub!(/\[([0-9]+)\]/, "")
        contents.font.color = text_color($1.to_i)
        next
      when "\x02"                       # \G  (gold display)
        @gold_window.refresh
        @gold_window.open
      when "\x03"                       # \.  (wait 1/4 second)
        @wait_count = 15
        break
      when "\x04"                       # \|  (wait 1 second)
        @wait_count = 60
        break
      when "\x05"                       # \!  (Wait for input)
        self.pause = true
        break
      when "\x06"                       # \>  (Fast display ON)
        @line_show_fast = true
      when "\x07"                       # \<  (Fast display OFF)
        @line_show_fast = false
      when "\x08"                       # \^  (No wait for input)
        @pause_skip = true
      else                              # Normal text character
        c_width = contents.text_size(c).width

          @contents_x -= c_width

        contents.draw_text(@contents_x, @contents_y, 40, WLH, c)

      end
      break unless @show_fast or @line_show_fast
    end
  end

end


SECOND STEP: Writing in Arabic


after you downloaded the translation software and already set the 2 scripts in RMVX, now I will show you
how to use the translation software for writing in arabic.



1- turn the translation software ON, than write the arabic text you want.
2- after you wrote what you want, press the transform (تحˆŠ„) button.
3- copy the sentence to paste it in RMVX message box.




4- here you paste your text in message box event after step 3, directly.



5- you must be informed that, the right to left script will not work well with arabic text, so you must make a switch
to make the script compatible with the translation software, the switch is number 2 (depend on Bulletxt script you can modify the number)
than make an event to turn this switch ON


Congratulation your arabic TEXT now is showed in the game.

EXAMPLE : download


CREDIT:


bulletxt for the script
kunio-kun the founder of the translation software.


please i won't anyone to credit me, if you like my topic u can thank me, but all things here
are from bulletxt and kunio-kun.

and sorry for my horrible English

This post has been edited by Eternal Sorrow: Jul 12 2009, 06:09 PM


--------------------
Go to the top of the page
 
+Quote Post
   
bulletxt
post Jul 12 2009, 03:41 PM
Post #2


bullet inside me
Group Icon


Type: Coder
Alignment: Unaligned




Good thread wink.gif Please provide a link to my Arabic Reading script thread in case someone needs help/info about it.


--------------------
Working on the following games: Lodestone2d , World Truck Racing
Go to the top of the page
 
+Quote Post
   
Eternal Sorrow
post Jul 12 2009, 06:09 PM
Post #3



Group Icon


Type: Artist




thanks bulletxt ^^
already updated the thread


--------------------
Go to the top of the page
 
+Quote Post
   
gus
post Nov 27 2010, 11:26 PM
Post #4



Group Icon


Type: Designer




HI
i have find a probleme the arabic letters is like this ا ه ل ا and like this اهلا how can i fixe it
Go to the top of the page
 
+Quote Post
   

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Lo-Fi Version Time is now: 19th April 2014 - 06:00 AM

RPGMakerVX.net is an Privacy Policy, Legal.