Invité Posté : 26 août 2017 Bonjour a vous, Skripteurs curieux de connaître ma technique pour traduire les skripts en n'importe quelle langue avec une simplicité extrêmement aisé ! Commençons par le commencement : Tout d'abord, il faut que vous sachiez que le skript utilise une function et des expressions de "Skript" et "skelett"! Chaque étape seront expliqués une par une ! 1) Pour envoyer un message vous devrez définir pour qui le code sera envoyé (all) pour tout les joueurs et (votre argument) pour un joueur spécifique qui lui nécessite des %% dans l'argument (voir l'explication) : Code pour tout les joueurs : Translate("all", "action-bar", "FRANCAIS", "ANGLAIS") Ici le message "FRANCAIS" ou "ANGLAIS" (selon la traduction) sera envoyé a TOUT les joueurs dans leur action bar Code pour un joueur spécifique: par exemple avec la commande: command /test-message <player>: trigger: Translate("%player%", "action-bar", "Bonjour %player%", "Hello %player%") Translate("%arg-1%", "action-bar", "Bonjour %arg-1%", "Hello %arg-1%") Ici le message "Bonjour %player%"ou "Hello %player%" (selon la traduction) sera envoyé au joueur qui a fait la commande et "Bonjour %arg-1%"ou "Hello %arg-1%" (selon la traduction) sera envoyé a l'argument player Vous pouvez entrer n'importe quel argument de joueur, %player%, %arg%, %{var}%, %loop-player% etc, tant que l'argument est bien défini sur un joueur ! 2) Ensuite il faut définir un mode de message parmis 4 inclu dans la function "send" (envoi un message au joueur dans le chat), "broadcast" (envoi un message a tout les joueurs dans le chat), "action-bar" (envoi un message au joueur dans l'action bar, "center" (envoi un message centré dans le chat du joueur) Comme ceci : Translate("%player%", "action-bar", "FRANCAIS", "ANGLAIS") Translate("%player%", "send", "FRANCAIS", "ANGLAIS") Translate("%player%", "broadcast", "FRANCAIS", "ANGLAIS") Translate("%player%", "center", "FRANCAIS", "ANGLAIS") 3) Puis inscrivez vos messages dans les 2 derniers arguments le premier désignera le Français et le second l'anglais (possibilité de modifier !) Par exemple Translate("%player%", "action-bar", "Bonjour %player%", "Hello %player%") Maintenant passons on code (je montrerais a la fin pour ajouter des langages ! LE CODE : La function est toute simple function Translate(public: text, mode: text, msg-fr: text, msg-en: text): if {_public} is "all": loop all players: set {_p} to loop-player else: set {_p} to {_public} parsed as player if {_mode} is "send": send "%colored {_msg-%{language.%{_p}%}%}%" to {_p} if {_mode} is "broadcast": broadcast "%colored {_msg-%{language.%{_p}%}%}%" if {_mode} is "action-bar": show an action bar from "%colored {_msg-%{language.%{_p}%}%}%" to {_p} if {_mode} is "center": message centered "%colored {_msg-%{language.%{_p}%}%}%" to {_p} J'explique : if {_public} is "all": On détecte l'argument qui défini a qui sera envoyé le message "all" (pour tout les joueurs) ou "autre" pour les autres arguments send "%colored {_msg-%{language.%{_p}%}%}%" to {_p} selon la langue on envoi le bon message (quand {language.%{_p}%} Est sur "fr", cela veut dire Français, et quand il est sur "en" cela veut dire Anglais !) (la langue se défini graçe aux arguments de la function "msg-fr ou msg-en" Pour ajouter un language ajouter un argument a la function par exemple pour Espagnol : function Translate(public: text, mode: text, msg-fr: text, msg-en: text, msg-es: text): Respecter bien le formatage ! si vous mettez msg-es (et non msg-ES) vous utiliserez "msg-es" (sans maj) dans votre variable de langue ! Puis dans vos messages de votre code ça sera par exemple: Translate("%player%", "action-bar", "Bonjour %player%", "Hello %player%", "Hola %player%") Selon votre variable de langue, vous recevrez le bon message traduit ! La ç'est bien beau le Skript traduit les phrases, mais vous allez me dire comment le joueur défini son langage ? Attendez !! j'y viens ! Par défaut aucun langage n'est défini au joueur, on va y remédier de suite avec un : on join: if {language.%player%} is not set: set {language.%player%} to "fr" Pour définir un langage on joue juste avec les variables, je vous montre un petit code facile, après a vous d'adapter a votre situation : command /langage <text>: trigger: if {language.%player%} is not set: set {language.%player%} to "fr" if arg 1 is "fr": set {language.%player%} to "fr" if arg 1 is "en": set {language.%player%} to "en" if arg 1 is "es": set {language.%player%} to "es" Translate("%player%", "send", "&aVous avez changer votre langage sur Fr", "You have change your language on En", "Usted tiene cambiar su lenguaje sobre Es") La variable de langue "{language.%player%}" doit être définie sur le même texte que dans la déclaration de function ! (attention aux majuscules) Voila Voila j'éspère que ce tuto vous aidera, n'hésitez pas a likez ❤ et a commentez si vous avez des problèmes/questions :D Partager ce message Lien à poster Partager sur d’autres sites
Inerska 107 Répondu : 26 août 2017 Un tuto à la Mikioul, merci du tuto. PS: Le titre contient une faute grave o: "Traduire ces Skripts" au lieu de "Traduire ses Skripts" Partager ce message Lien à poster Partager sur d’autres sites
LavaPower 149 Répondu : 26 août 2017 Euh, y'a pas de fautes car si il parle de possession, le déterminant est bon Partager ce message Lien à poster Partager sur d’autres sites
Olyno 196 Répondu : 26 août 2017 Bonjour a vous, Skripteurs curieux de connaître ma technique pour traduire les skripts en n'importe quelle langue avec une simplicité extrêmement aisé ! Commençons par le commencement : Tout d'abord, il faut que vous sachiez que le skript utilise une function et des expressions de "Skript" et "skelett"! Chaque étape seront expliqués une par une ! 1) Pour envoyer un message vous devrez définir pour qui le code sera envoyé (all) pour tout les joueurs et (votre argument) pour un joueur spécifique qui lui nécessite des %% dans l'argument (voir l'explication) : Code pour tout les joueurs : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Ici le message "FRANCAIS" ou "ANGLAIS" (selon la traduction) sera envoyé a TOUT les joueurs Code pour un joueur spécifique: par exemple avec la commande: Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Ici le message "Bonjour %player%"ou "Bonjour %player%" (selon la traduction) sera envoyé au joueur qui a fait la commande et "Bonjour %arg-1%"ou "Bonjour %arg-1%" (selon la traduction) sera envoyé a l'argument player Vous pouvez entrer n'importe quel argument de joueur, %player%, %arg%, %{var}%, %loop-player% etc, tant que l'argument est bien défini sur un joueur ! 2) Ensuite il faut définir un mode de message parmis 4 inclu dans la function "send" (envoi un message au joueur dans le chat), "broadcast" (envoi un message a tout les joueurs dans le chat), "action-bar" (envoi un message au joueur dans l'action bar, "center" (envoi un message centré dans le chat du joueur) Comme ceci : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. 3) Puis inscrivez vos messages dans les 2 derniers arguments le premier désignera le Français et le second l'anglais (possibilité de modifier !) Par exemple Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Maintenant passons on code (je montrerais a la fin pour ajouter des langages ! LE CODE : La function est tout simple Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. J'explique : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. On détecte l'argument qui défini a qui sera envoyé le message "all" (pour tout les joueurs) ou "autre" pour les autres arguments Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. selon la langue on envoi le bon message (quand {language.%{_p}%} n'est pas set, cela veut dire Français, et quand il est sur "en" cela veut dire Anglais !) Pour ajouter un language ajouter un argument a la function par exemple pour Espagnol : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. puis ajouter dans chaque détection de type de message de la function une condition avec votre nouveau langage ici c'est : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Puis dans vos messages de votre code ça sera par exemple: Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. La ç'est bien beau le Skript traduit les phrases, mais vous allez me dire comment le joueur défini son langage ? Attendez !! j'y viens ! Pour définir un langage on joue juste avec les variables, je vous montre un petit code facile, après a vous d'adapter a votre situation : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Voila Voila j'éspère que ce tuto vous aidera, n'hésitez pas a likez ❤ et a commentez si vous avez des problèmes/questions :D Intéressant mais tu aurais pu utiliser une des fonctions déjà existante : https://skript-mc.fr/forum/threads/fichier-de-traduction.12166/ Partager ce message Lien à poster Partager sur d’autres sites
Invité Répondu : 26 août 2017 Intéressant mais tu aurais pu utiliser une des fonctions déjà existante : https://skript-mc.fr/forum/threads/fichier-de-traduction.12166/ Merci, je t'avoue que j'avais pas fait de recherche avant de poster, Hier je cherchait un nouveau système pour traduire mes skripts plus facilement, et j'ai développé cette function. Après c'est une technique comme une autre que j'ai voulu vous partager Partager ce message Lien à poster Partager sur d’autres sites
angelus76 222 Répondu : 27 août 2017 Salut Tu pourais presque determiner plus facilement la langue a utiliser avec Tuske Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. EDIT: j'alais oublier de dire bravo pour le tuto ;) Partager ce message Lien à poster Partager sur d’autres sites
Invité Répondu : 27 août 2017 Merci Je vais aller me renseigner sur le système de tuske Partager ce message Lien à poster Partager sur d’autres sites
Invité Répondu : 27 août 2017 Update de la function, plus simple d'utilisation ! (cependant respectez bien le format de vos variables et déclaration de function ! ) Partager ce message Lien à poster Partager sur d’autres sites
angelus76 222 Répondu : 27 août 2017 tu as modifier quoi ? Partager ce message Lien à poster Partager sur d’autres sites
Invité Répondu : 27 août 2017 tu as modifier quoi ? Avant on devais faire une condition pour chaque langage if {_mode} is "send": if {language.%{_p}%} is not set: send "%colored {_msg-fr}%" to {_p} else: send "%colored {_msg-en}%" to {_p} Et ça pouvais devenir long, si tu a 40 langages . .. Du coup maintenant c'est comme ça if {_mode} is "send": send "%colored {_msg-%{language.%{_p}%}%}%" to {_p} Mais nécessite que la variable {language.%{_p}%} soit définie exactement pareil que le "en"(par exemple) de la déclaration de function function SendTranslate(public: text, mode: text, msg-fr: text, msg-en: text): donc msg-en .. vu que je passe par {_msg-%{language.%{_p}%}%}%} :D Partager ce message Lien à poster Partager sur d’autres sites
angelus76 222 Répondu : 27 août 2017 ha ok, pas mal ;) mais pense a définir une langue par default au cas ou Partager ce message Lien à poster Partager sur d’autres sites
Invité Répondu : 27 août 2017 yep j'ajoute, je l'avais mis dans la commande pour changer de langage, je rajoute un on join merci :3 Partager ce message Lien à poster Partager sur d’autres sites
FromFX 19 Répondu : 28 août 2017 Très bon tutoriel ! Merci :) Partager ce message Lien à poster Partager sur d’autres sites
Invité Répondu : 18 septembre 2017 Très bon tutoriel ! Merci :) Merci :3 Partager ce message Lien à poster Partager sur d’autres sites