Worldedit
  Worldedit
Le site sur l'éditeur de warcraft 3 !
 
  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs   medals.php?sid=810c79473061e2676ba969d2380f9c11Médailles   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 
  FAQFAQ World Editor   UploadUploader une map ou une image    UploadAjouter sa map à l'annuaire   UploadConsulter l'annuaire

Internationnalisez vos cartes (multi-langues)
Aller à la page 1, 2, 3, 4, 5  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Tutoriels
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2009
Sujets: 49

Médailles: 2 (En savoir plus...)
Ayane (Quantité : 1) Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 02/07/08 19:31    Sujet du message: Internationnalisez vos cartes (multi-langues) Citer

Ce tutoriel vous explique comment mettre vos cartes en plusieurs langues de façon transparente pour l'utilisateur.


Explications théoriques

Après avoir étudié le format d'archivage mopaq utilisé par warcraft3 qui sert également pour ses cartes, je me suis rendu compte que les fichiers sont identifiés et pour les retrouver il utilise une table de hashage pour le nom du fichier, et qu'avec cela on a les données de langue (anglais, français, ...), et de plate-forme (Windows, Mac).

Qu'est-ce que cela veut dire?
Cela veut dire qu'un même fichier peut avoir plusieurs noms différends, ou deux fichiers peuvent avoir le même nom pourvu qu'ils aient la langue ou la plateforme qui ne soit pas pareil.

A quoi cela sert-il?
Warcraft charge en priorité le fichier de votre langue, sinon il prend celui de la langue par défaut. Vous pouvez avoir un fichier de même nom pour chaque langue.


Objectif du tutorial
Les cartes sont composées d'un fichier de texte externe qui se nomme war3map.wts
On va donc se servir de ces propriétés pour avoir deux (ou plus) fichiers war3map.wts pour chaque langue, on va mettre par défaut en anglais et on va en définir un pour le français.


tutorial

Traduction des textes
- Ouvrez votre carte avec WinMPQ et extrayez war3map.wts.
- Traduisez-le en anglais

Maintenant on va spécifier que notre fichier originale est en français
- dans WinMPQ clic-droit sur war3map.wts et "Change locale id'
Il vous propose d'entrer un entier, il s'agit tout simplement de l'id de la langue suivant le LANGID de Windows. Vous pouvez retrouvez la liste ici.
On y voie French 040c, c'est de l'hexadécimale on utilise donc notre calculatrice windows pour convertir en décimales et on trouve 1036.
Spécifiez donc 1036 à WinMPQ et validez, dans la liste des fichiers vous devriez voir à droite de war3map.wts 1036.

Ajoutez le fichier traduit à votre archive, par défaut cela lui attribue le locale id 0 ce qui nous convient très bien: ce fichier sera utilisé pour toutes les versions non françaises.

Supprimez le fichier (attributes).



Voilà vous possédez maintenant une carte multi-langue, sans demander à l'utilisateur et sans s'embêter avec des déclencheurs.




Tutorial mis en images:











Liste des codes locales:
Anglais (US) = 1033
Anglais (UK) = 2057
Français= 1036
Allemand = 1031
Espagnol = 1034
Italien = 1040
Tchèque = 1029
Russe = 1046
Pologne = 1045
Portugais (Brazilian) = 1046
Portugais (Portugal) = 2070
Turque = 1055
Japon = 1041
Korée = 1042
Chinois (Traditionnel) = 1028
Chinois (Simplifié) = 2052
Thaïlande = 1054

Pour tester avec différentes langues vous pouvez modifiez le champ LANGID du fichier config.txt qui se trouve dans war3.mpq.
_________________


Dernière édition par Ayane le 04/07/11 14:15; édité 3 fois
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Rommstein60
MODÉRATEUR À LA RETRAITE


Inscrit le: 23 Aoû 2007
Messages: 4766
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 02/07/08 19:33    Sujet du message: Citer

Omfg ça a l'air de roxxer O_O
Finis-le vite ! Surprised

_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2009
Sujets: 49

Médailles: 2 (En savoir plus...)
Ayane (Quantité : 1) Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 02/07/08 19:35    Sujet du message: Citer

Eh bien tu suis les instructions et cela fonctionne.
Il manque juste de mises en formes et peut être quelques captures d'écrans.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Upcios
Membre actif


Inscrit le: 24 Juin 2008
Messages: 151
Sujets: 6



MessagePosté le: 02/07/08 19:39    Sujet du message: Citer

Très très intéressant ça va me faire gagner pas mal de temps pour quand je transposerais ma série en anglais Wink
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7143
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 02/07/08 19:49    Sujet du message: Citer

En effet c'est très intéressant.

Dommage que le gui génère des strings extérieurs de façon "anarchique".
A chaque string, une nouvelle variable, ca suck.

Mais je me demandais y'a moyen de le faire aussi pour le war3map.j ?
Evidemment les seules différences seraient les valeurs des strings.

Et idem pour les données textes personnalisés de l'éditeur d'objet (.txt aprés avoir widgetisé la map).
Là je suppose que oui.

Par contre je doute fortement pour le script de la map.
_________________


Dernière édition par Troll-Brain le 02/07/08 20:04; édité 1 fois
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Rommstein60
MODÉRATEUR À LA RETRAITE


Inscrit le: 23 Aoû 2007
Messages: 4766
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 02/07/08 19:53    Sujet du message: Citer

Ayane a écrit:
Eh bien tu suis les instructions et cela fonctionne.
Il manque juste de mises en formes et peut être quelques captures d'écrans.

Oui ce serait bien si possible Wink
_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2009
Sujets: 49

Médailles: 2 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1) Ayane (Quantité : 1)

MessagePosté le: 02/07/08 20:34    Sujet du message: Citer

@Troll-Brain: Cela fonctionne pour tous les fichiers, Storm ne fait pas de différences normalement, mais cela n'a pas grand intérêt pour le script vu qu'il y a justement war3map.wts qui est fait pour stocker tes textes.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7143
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 02/07/08 20:43    Sujet du message: Citer

Ayane a écrit:
@Troll-Brain: Cela fonctionne pour tous les fichiers, Storm ne fait pas de différences normalement, mais cela n'a pas grand intérêt vu qu'il y a justement war3map.wts qui est fait pour stocker tes textes.


Pour l'éditeur d'objet l'intérêt est assez évident, les strings que l'on personnalise dans l'éditeur d'objet ne sont tout simplement pas dans le fichier war3map.wts.

Ils sont inaccessibles car compressés avec les données personnalisées proprement dites dans un fichier illisible (me rappelle plus le nom exact mais ca se retrouve facilement) pour un pauvre humain tant que l'on ne "widgetize" pas la map.
Mais bien sûr tu le sais déjà.
Par contre il faudrait que tu évoques ce sujet dans ton tuto.

Pour le script c'est une question de préférence.
Car j'ai horreur d'utiliser des variables strings (pour un simple affichage de texte bien sûr), je trouves cela franchement illisible.
Si c'est une map avec peu de script je préférerais changer manuellement la valeur des strings, et ca éviterait l'utilisation des fonctions GetLocalizedHotkey et GetLocalizedString, mais surtout des strings extérieurs.

C'est à dire un gain de temps de chargement de la map au minimum.

Au mieux un peu de gain de performance, certes très probablement négligeable et au dépit d'un poids accru de la map.

Mais surtout je me demandes vraiment si ca fonctionnerait et ne désynchroniserait pas.
Théoriquement ca devrait fonctionner si l'on ne fait pas n'importe quoi mais c'est un terrain assez hasardeux.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2009
Sujets: 49

Médailles: 2 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1) Ayane (Quantité : 1)

MessagePosté le: 02/07/08 21:08    Sujet du message: Citer

Les textes extérieurs sont chargés en mémoire vive au lancement de la carte, les textes dans le script à chaque fois qu'on l'utilise vérifie si cela existe déjà dans la liste (une demande d'allocation mémoire de string).
Donc en effet cela rend un peu plus long le chargement puisqu'au lieu que les textes soient chargé au cours de la carte, ils sont chargés au chargement. Mais bon ce chargement n'est que l'affaire de quelques microsecondes.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7143
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 02/07/08 21:14    Sujet du message: Citer

Hmm ce n'est pas ce que j'ai lu, à ce qui parait on peut gagner jusqu'à 30 s, voir plus.
Quoi que peut être que ce fameux temps de chargement diminué est aussi grandement influencé par la transformation en .slk et .txt des données personnalisées de l'éditeur d'objet.

Mais honnêtement ce n'est pas mon réel souci c'est juste que ce genre de trigger, voilà quoi ...

Gui:
Trigger:
Partie - Display to (All players) the text: (hello)
Partie - Display to (All players) the text: (world)


Jass:
call DisplayTextToForce( GetPlayersAll(), "TRIGSTR_002" )
call DisplayTextToForce( GetPlayersAll(), "TRIGSTR_003" )


Ou faudrait réaliser un petit soft qui transforme les strings "monString" en strings extérieurs.

Du moins à partir d'un fichier texte, le script de la map war3map.j, qu'il créé 2 autres fichiers textes.

Un war3map.j modifié avec que des strings extérieurs et un autre .txt avec la valeur de ces strings.
Nul besoin de gérer l'archivage mopaq et d'automatiser totalement la tâche, ou alors challenge personnel ^^
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Darkfeyt
Floodeur prématuré


Inscrit le: 22 Nov 2007
Messages: 677
Sujets: 27
Spécialité en worldedit: Jamais sortir ses projets ?


MessagePosté le: 02/07/08 22:58    Sujet du message: Citer

Tout simplement GENIAL comme technique , Merci.

Même si il y a des chance que se ne soit pas toi qui l'est découvert , elle rox trop. Razz

Seul défaut: Vu le temps que sa mettra de traduire nos map en multi-langue , sa reduit encore nos chance d'un jour sortir une map pour certain. Crying or Very sad xD

Sinon se serait bien si tu pourrait listé les code des langue ou alors expliqué comment les trouver. Wink
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
 profet
Instanton Gravitationnel Singulier


Inscrit le: 21 Aoû 2007
Messages: 1633
Sujets: 53
Spécialité en worldedit: Pain d'épice multitâche (terrain, scripts, textures, modèles...)
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Profet (Quantité : 1)

MessagePosté le: 02/07/08 23:01    Sujet du message: Citer

Darkfeyt a écrit:
Même si il y a des chance que se ne soit pas toi qui l'est découvert , elle rox trop. Razz
Comme quoi la chance ne fait pas tout ? Razz
_________________

Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70%
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2009
Sujets: 49

Médailles: 2 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1) Ayane (Quantité : 1)

MessagePosté le: 02/07/08 23:35    Sujet du message: Citer

Comme je l'ais dit, j'ai pensé l'appliquer au fichier war3map.wts en lisant les spécifications du format d'archivage de warcraft3 que tu peux trouver à l'adresse suivante:
http://zezula.net

Après il y en a peut-être qui y ont pensé avant moi, je n'ai pas été vérifié et de toute façon ce n'est pas brevetable, néanmoins je pense que les américains ne trouvent pas cela comme étant très intéressants.

Pour les codes de langue le lien se trouve déjà dans le tutoriel.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Rommstein60
MODÉRATEUR À LA RETRAITE


Inscrit le: 23 Aoû 2007
Messages: 4766
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 03/07/08 07:42    Sujet du message: Citer

Darkfeyt a écrit:
Sinon se serait bien si tu pourrait listé les code des langue ou alors expliqué comment les trouver. Wink

Mdr c'est quoi ça Shocked XD !
On va dire que c'est sur le coup de l'émotion hein xD !

_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2009
Sujets: 49

Médailles: 2 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1) Ayane (Quantité : 1)

MessagePosté le: 03/07/08 09:52    Sujet du message: Citer

Au pire tu en as pour quelques heures à traduire, ce qui est peu. On ne peut pas vraiment dire que ce soit un frein.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Tutoriels Toutes les heures sont au format GMT + 1 Heure
Aller à la page 1, 2, 3, 4, 5  Suivante
Page 1 sur 5

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com