Aller en bas
Terral
Terral
Membre

Nombre de messages : 160
Age : 30
Localisation : Dans la Matrice
Distinction : aucune
Date d'inscription : 15/09/2012

[script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^ Empty [script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^

Dim 16 Sep 2012 - 20:15
Salut suite à un prob qui m'est arriver dans la journée et pas de solucion arrivants, j'ai décider de bidouiller concevoir mon propre script.

Je plante le décors, RPG Maker VX Ace version japonaise de base traduite avec un patch français, pour le moment tout va bien mais au moment crucial où il y à moyen de changer le nom d'un personnage il faut entrer la variable "Entrer un nom" dans l'event, puis on test et là, horreur et damnation !! l'event est en japonais.

Exemple parfais (oui je sais ça sent le vécu ce screen *sifflote*)
[script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^ 247032Sanstitre


Mais tontont Terral est là et à réussi à trouver une solution bancale fait maison et le voila (pitier scripteur n'en voulez pas à un aprentis qui ne sais même pas scripter et ne me tuer pas)

Code:
#==============================================================================
# ** Window_NameInput
#------------------------------------------------------------------------------
# This window is used to select text characters on the name input screen.
#==============================================================================

class Window_NameInput < Window_Selectable
#--------------------------------------------------------------------------
# * Character Tables (Latin)
#--------------------------------------------------------------------------
LATIN1 = [ 'A','B','C','D','E', 'a','b','c','d','e',
'F','G','H','I','J', 'f','g','h','i','j',
'K','L','M','N','O', 'k','l','m','n','o',
'P','Q','R','S','T', 'p','q','r','s','t',
'U','V','W','X','Y', 'u','v','w','x','y',
'Z','[',']','^','_', 'z','{','}','|','~',
'0','1','2','3','4', '!','#','$','%','&',
'5','6','7','8','9', '(',')','*','+','-',
'/','=','@','<','>', ':',';',' ','Page','OK']
LATIN2 = [ 'Á','É','Í','Ó','Ú', 'á','é','í','ó','ú',
'À','È','Ì','Ò','Ù', 'à','è','ì','ò','ù',
'Â','Ê','Î','Ô','Û', 'â','ê','î','ô','û',
'Ä','Ë','Ï','Ö','Ü', 'ä','ë','ï','ö','ü',
'Ā','Ē','Ī','Ō','Ū', 'ā','ē','ī','ō','ū',
'Ã','Å','Æ','Ç','Ð', 'ã','å','æ','ç','ð',
'Ñ','Õ','Ø','Š','Ŵ', 'ñ','õ','ø','š','ŵ',
'Ý','Ŷ','Ÿ','Ž','Þ', 'ý','ÿ','ŷ','ž','þ',
'IJ','Œ','ij','œ','ß', '«','»',' ','Page','OK']
#--------------------------------------------------------------------------
# * Character Tables (Japanese)
#--------------------------------------------------------------------------
JAPAN1 = [ 'A','B','C','D','E', 'a','b','c','d','e',
'F','G','H','I','J', 'f','g','h','i','j',
'K','L','M','N','O', 'k','l','m','n','o',
'P','Q','R','S','T', 'p','q','r','s','t',
'U','V','W','X','Y', 'u','v','w','x','y',
'Z','[',']','^','_', 'z','{','}','|','~',
'0','1','2','3','4', '!','#','$','%','&',
'5','6','7','8','9', '(',')','*','+','-',
'/','=','@','<','>', ':',';',' ','Page','OK']
JAPAN2 = [ 'Á','É','Í','Ó','Ú', 'á','é','í','ó','ú',
'À','È','Ì','Ò','Ù', 'à','è','ì','ò','ù',
'Â','Ê','Î','Ô','Û', 'â','ê','î','ô','û',
'Ä','Ë','Ï','Ö','Ü', 'ä','ë','ï','ö','ü',
'Ā','Ē','Ī','Ō','Ū', 'ā','ē','ī','ō','ū',
'Ã','Å','Æ','Ç','Ð', 'ã','å','æ','ç','ð',
'Ñ','Õ','Ø','Š','Ŵ', 'ñ','õ','ø','š','ŵ',
'Ý','Ŷ','Ÿ','Ž','Þ', 'ý','ÿ','ŷ','ž','þ',
'IJ','Œ','ij','œ','ß', '«','»',' ','Page','OK']
JAPAN3 = [ 'A','B','C','D','E', 'a','b','c','d','e',
'F','G','H','I','J', 'f','g','h','i','j',
'K','L','M','N','O', 'k','l','m','n','o',
'P','Q','R','S','T', 'p','q','r','s','t',
'U','V','W','X','Y', 'u','v','w','x','y',
'Z','[',']','^','_', 'z','{','}','|','~',
'0','1','2','3','4', '!','#','$','%','&',
'5','6','7','8','9', '(',')','*','+','-',
'/','=','@','<','>', ':',';',' ','Page','OK']
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(edit_window)
super(edit_window.x, edit_window.y + edit_window.height + 8,
edit_window.width, fitting_height(9))
@edit_window = edit_window
@page = 0
@index = 0
refresh
update_cursor
activate
end
#--------------------------------------------------------------------------
# * Get Text Table
#--------------------------------------------------------------------------
def table
return [JAPAN1, JAPAN2, JAPAN3] if $game_system.japanese?
return [LATIN1, LATIN2]
end
#--------------------------------------------------------------------------
# * Get Text Character
#--------------------------------------------------------------------------
def character
@index < 88 ? table[@page][@index] : ""
end
#--------------------------------------------------------------------------
# * Determining if Page Changed and Cursor Location
#--------------------------------------------------------------------------
def is_page_change?
@index == 88
end
#--------------------------------------------------------------------------
# * Determine Cursor Location: Confirmation
#--------------------------------------------------------------------------
def is_ok?
@index == 89
end
#--------------------------------------------------------------------------
# * Get Rectangle for Displaying Item
#--------------------------------------------------------------------------
def item_rect(index)
rect = Rect.new
rect.x = index % 10 * 32 + index % 10 / 5 * 16
rect.y = index / 10 * line_height
rect.width = 32
rect.height = line_height
rect
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
contents.clear
change_color(normal_color)
90.times {|i| draw_text(item_rect(i), table[@page][i], 1) }
end
#--------------------------------------------------------------------------
# * Update Cursor
#--------------------------------------------------------------------------
def update_cursor
cursor_rect.set(item_rect(@index))
end
#--------------------------------------------------------------------------
# * Determine if Cursor is Moveable
#--------------------------------------------------------------------------
def cursor_movable?
active
end
#--------------------------------------------------------------------------
# * Move Cursor Down
# wrap : Wraparound allowed
#--------------------------------------------------------------------------
def cursor_down(wrap)
if @index < 80 or wrap
@index = (index + 10) % 90
end
end
#--------------------------------------------------------------------------
# * Move Cursor Up
# wrap : Wraparound allowed
#--------------------------------------------------------------------------
def cursor_up(wrap)
if @index >= 10 or wrap
@index = (index + 80) % 90
end
end
#--------------------------------------------------------------------------
# * Move Cursor Right
# wrap : Wraparound allowed
#--------------------------------------------------------------------------
def cursor_right(wrap)
if @index % 10 < 9
@index += 1
elsif wrap
@index -= 9
end
end
#--------------------------------------------------------------------------
# * Move Cursor Left
# wrap : Wraparound allowed
#--------------------------------------------------------------------------
def cursor_left(wrap)
if @index % 10 > 0
@index -= 1
elsif wrap
@index += 9
end
end
#--------------------------------------------------------------------------
# * Move to Next Page
#--------------------------------------------------------------------------
def cursor_pagedown
@page = (@page + 1) % table.size
refresh
end
#--------------------------------------------------------------------------
# * Move to Previous Page
#--------------------------------------------------------------------------
def cursor_pageup
@page = (@page + table.size - 1) % table.size
refresh
end
#--------------------------------------------------------------------------
# * Cursor Movement Processing
#--------------------------------------------------------------------------
def process_cursor_move
last_page = @page
super
update_cursor
Sound.play_cursor if @page != last_page
end
#--------------------------------------------------------------------------
# * Handling Processing for OK and Cancel Etc.
#--------------------------------------------------------------------------
def process_handling
return unless open? && active
process_jump if Input.trigger?(:A)
process_back if Input.repeat?(:B)
process_ok if Input.trigger?(:C)
end
#--------------------------------------------------------------------------
# * Jump to OK
#--------------------------------------------------------------------------
def process_jump
if @index != 89
@index = 89
Sound.play_cursor
end
end
#--------------------------------------------------------------------------
# * Go Back One Character
#--------------------------------------------------------------------------
def process_back
Sound.play_cancel if @edit_window.back
end
#--------------------------------------------------------------------------
# * Processing When OK Button Is Pressed
#--------------------------------------------------------------------------
def process_ok
if !character.empty?
on_name_add
elsif is_page_change?
Sound.play_ok
cursor_pagedown
elsif is_ok?
on_name_ok
end
end
#--------------------------------------------------------------------------
# * Add Text to Name
#--------------------------------------------------------------------------
def on_name_add
if @edit_window.add(character)
Sound.play_ok
else
Sound.play_buzzer
end
end
#--------------------------------------------------------------------------
# * Decide Name
#--------------------------------------------------------------------------
def on_name_ok
if @edit_window.name.empty?
if @edit_window.restore_default
Sound.play_ok
else
Sound.play_buzzer
end
else
Sound.play_ok
call_ok_handler
end
end
end

Voila j'esper que ça peut être utile en quoi que ce soit ^^


Dernière édition par Terral le Mer 24 Oct 2012 - 16:04, édité 1 fois
Terral
Terral
Membre

Nombre de messages : 160
Age : 30
Localisation : Dans la Matrice
Distinction : aucune
Date d'inscription : 15/09/2012

[script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^ Empty Re: [script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^

Mer 24 Oct 2012 - 16:02
Un petit up en double-post pour demander si ce serais possible de déplacer mon post dans la section "script RGSS3" et enssuite d'effacer mon horrible double poste ? Svioupler admin [script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^ 418140

Merci d'avance ^^
tonyryu
tonyryu
Membre

Nombre de messages : 902
Age : 43
Localisation : Près de Nantes
Distinction : aucune
Date d'inscription : 27/05/2010
http://www.tonyryudev.com

[script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^ Empty Re: [script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^

Mer 24 Oct 2012 - 16:05
ou juste ça, ça devrait suffire ^_^

Code:
def table
return [LATIN1, LATIN2]
end
Terral
Terral
Membre

Nombre de messages : 160
Age : 30
Localisation : Dans la Matrice
Distinction : aucune
Date d'inscription : 15/09/2012

[script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^ Empty Re: [script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^

Mer 24 Oct 2012 - 16:26
Bin en fait n'y connaissant en ruby que le nom j'ai bidouiller un script d'origine de RPg Maker donc vala ^^"

Mais merci du conseil ^^
tonyryu
tonyryu
Membre

Nombre de messages : 902
Age : 43
Localisation : Près de Nantes
Distinction : aucune
Date d'inscription : 27/05/2010
http://www.tonyryudev.com

[script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^ Empty Re: [script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^

Mer 24 Oct 2012 - 18:23
Pour expliquer rapidement, le script propose à la fois les caractères japonnais et latins, la fonction table, permet de récupérer les tables de langue à utiliser. Hors la fonction table par défaut retourne les tables de caractères japonnais si la données $data_system.japanese vaut true.

Du coup suffit juste de virer la ligne correspondant pour ne gérer que les tables de caractères latin :
Code:

def table
  return [JAPAN1, JAPAN2, JAPAN3] if $game_system.japanese? # ligne à supprimer
  return [LATIN1, LATIN2]
end
Terral
Terral
Membre

Nombre de messages : 160
Age : 30
Localisation : Dans la Matrice
Distinction : aucune
Date d'inscription : 15/09/2012

[script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^ Empty Re: [script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^

Mer 24 Oct 2012 - 19:23
Cool un mini cours RGSS3 merci *w*
Hymmitjah
Hymmitjah
Membre

Nombre de messages : 283
Age : 33
Localisation : Quelque part
Distinction : aucune
Date d'inscription : 13/08/2012
http://hymmitjahtrucs.tumblr.com

[script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^ Empty Re: [script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^

Jeu 22 Nov 2012 - 17:29
Merci Terral et tonyryu, je me posais également la question il y a quelques mois quand j'ai testé la fonction et comme jsuis nulle en script, je préfèrais ne rien toucher jusqu'à temps d'être sûre de modifier le bon détail [script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^ 522164
Contenu sponsorisé

[script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^ Empty Re: [script] Script de traduction pour l'evenement "afficher texte" de l'hiragana au latin ^^

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum