Invité Posté(e) le 26 août 2017 Posté(e) le 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
Inerska Posté(e) le 26 août 2017 Posté(e) le 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"
LavaPower Posté(e) le 26 août 2017 Posté(e) le 26 août 2017 Euh, y'a pas de fautes car si il parle de possession, le déterminant est bon
Olyno Posté(e) le 26 août 2017 Posté(e) le 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 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 "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 : 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 tout 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": if {language.%{_p}%} is "fr": send "%colored {_msg-fr}%" to {_p} if {language.%{_p}%} is "en": send "%colored {_msg-en}%" to {_p} if {_mode} is "broadcast": if {language.%{_p}%} is "fr": broadcast "%colored {_msg-fr}%" if {language.%{_p}%} is "en": broadcast "%colored {_msg-en}%" if {_mode} is "action-bar": if {language.%{_p}%} is "fr": show an action bar from "%colored {_msg-fr}%" to {_p} if {language.%{_p}%} is "en": show an action bar from "%colored {_msg-en}%" to {_p} if {_mode} is "center": if {language.%{_p}%} is "fr": message centered "%colored {_msg-fr}%" to {_p} if {language.%{_p}%} is "en": message centered "%colored {_msg-en}%" 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 if {_mode} is "send": if {language.%{_p}%} is "fr": send "%colored {_msg-fr}%" to {_p} if {language.%{_p}%} is "en": send "%colored {_msg-en}%" to {_p} 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 : function Translate(public: text, mode: text, msg-fr: text, msg-en: text, msg-es: text): puis ajouter dans chaque détection de type de message de la function une condition avec votre nouveau langage ici c'est : if {_mode} is "send": if {language.%{_p}%} is "fr": send "%colored {_msg-fr}%" to {_p} if {language.%{_p}%} is "en": send "%colored {_msg-en}%" to {_p} if {language.%{_p}%} is "es": send "%colored {_msg-es}%" to {_p} Puis dans vos messages de votre code ça sera par exemple: Translate("%player%", "action-bar", "Bonjour %player%", "Hello %player%", "Hola %player%") 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 : 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 Français", "You have change your language on French", "Usted tiene cambiar su lenguaje sobre francés") 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/
Invité Posté(e) le 26 août 2017 Posté(e) le 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
angelus76 Posté(e) le 27 août 2017 Posté(e) le 27 août 2017 Salut Tu pourais presque determiner plus facilement la langue a utiliser avec Tuske http://skunity.com/search?search=Language EDIT: j'alais oublier de dire bravo pour le tuto ;)
Invité Posté(e) le 27 août 2017 Posté(e) le 27 août 2017 Merci Je vais aller me renseigner sur le système de tuske
Invité Posté(e) le 27 août 2017 Posté(e) le 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 ! )
Invité Posté(e) le 27 août 2017 Posté(e) le 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
angelus76 Posté(e) le 27 août 2017 Posté(e) le 27 août 2017 ha ok, pas mal ;) mais pense a définir une langue par default au cas ou
Invité Posté(e) le 27 août 2017 Posté(e) le 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
Invité Posté(e) le 18 septembre 2017 Posté(e) le 18 septembre 2017 Très bon tutoriel ! Merci :) Merci :3
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant