Aller au contenu
Invité

Traduire ses Skripts

Messages recommandés

Invité

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 :

  1. 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

  2. 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
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 :

  1. 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

  2. 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é
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

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é

Merci Je vais aller me renseigner sur le système de tuske

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité

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
Invité
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
Invité

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
Invité
Très bon tutoriel ! Merci :)

Merci :3

Partager ce message


Lien à poster
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.