Aller au contenu

Skripts MultiLanguages(∞) & Config [2]| Difficulté: ★★★ (complexe)


Messages recommandés

Posté(e)

Introduction:

Bonjour à tous.

Aujourd'hui je fait mon premier tutoriel donc soyez indulgent svp.

Ce tutoriel vous permettra de faire que vos skripts puissent gérer un nombre de langages illimités et en plus d'utiliser un fichier config.

Il sera divisé en plusieurs parties (parce qu’il est long).

PS: Dans ce tuto, les codes seront basés sur ceux de mon skript TnTRun que je suis en train de coder.

 

Sommaire:

Partie 1: cliquer ici (Je vous conseille de la voir si vous ne l'avez pas vue)

Partie 2: ici

Partie 3: Bientôt!

 

Partie 2:

Alors on se retrouve pour la partie 2! Dernièrement, j'ai eu des remarques faîtes sur la partie 1. Les personnes les ayants posés ne semblait pas avoir compris la chose et ceux à quoi servait le skript. C'est surement de ma faute vu que je n'ai pas abordé le sujet dans la partie 1.

Donc commençons. Dernièrement nous venons de définir notre variable prefix. Celle ci est commune à touts les langages c'est pour ça quelle est dans le fichier config.yml, mais nous nous voulons des langues. Pour cela, il nous faut déjà savoir quels sont les langages donc les fichier dans le répertoire /plugins/TnTRun/languages/.

Pour cela il nous faut un petit code:

   set {tntrun.langs::*} to file in "plugins/TnTRun/languages" #on défini la variable

Rien de plus simple.

Maintenant nous allons créer nos premiers fichiers de langages soit fr_FR.yml et en_EN.yml et les mettres dans notre dossier.

Maintenant quelles valeur allons nous mettre dans notre fichier? Celle qui appariait juste quand un fait la commande. L'aide/help index. Mais n'allons pas trop vite. Qui as t'il en haut de l'help. Exact. Une barre. Nous allons donc écrire dans nos fichier .yml la première valeur.

#Dans fr_FR.yml:
AboveHelp: '&e-------- %prefix% &e-------'

#Dans en_EN.yml
AboveHelp: '&e-------- %prefix% &e-------'

Oui je sais c'est la même chose.

Maintenant nous devons récupérer la valeur AboveHelp dans le code pour chaque langage. Comme nos fichiers sont enregistrés dans la variable {tntrun.langs::*} nous devons d'abord loop cette variable. Ensuite, nous récupérerons la valeur AboveHelp par rapport à la loop-value actuelle. notre l'enregistrerons dans une variable. Et on mettre un petit logo avant pour rendre le code plus lisible.

   loop {tntrun.langs::*}: #on loop-la variable
       #|-----------|#
       #| AboveHelp |#
       #|-----------|#
       clear {tntrun.lang.%loop-value%.abovehelp} #on éfface la varibale
      set {tntrun.lang.%loop-value%.abovehelp} to value "AboveHelp" get of "plugins/TnTRun/languages/%loop-value%" #on défini la variable

Voilà. Dans la partie 1, j'avais expliqué pourquoi clear la variable. Mais ensuite je la ré-écrivait dans le fichier config.yml, ce que je ne peut pas faire là. Pourquoi? Parce que, dans le fichier config, les variables sont communes à touts les langues, alors qu'ici non: on ne va pas écrire une valeur en anglais dans un fichier de langage coréen. Il nous faut donc pourtant remédier à cette cause expliqué dans la partie 1. Pour cela, il nous faut tout simplement employer la même vérification que dans la partie 1, pour ensuite désactiver le langage. Pour cela nous ajouteront le langage dans une variable temporaire. Nous nous occuperont de cette variable dans la partie 3. Allez, en code:

       if {tntrun.lang.%loop-value%.abovehelp} is not set: #on regarde si la variable est nulle
           add loop-value to {_langtodisable::*} #on ajoute le langage à une variable temporaire

Mais bon, ça ne suffit pas. Il faut déjà remarquer que le langage n'est pas activer, puis ensuite chercher la ligne manquante dans le fichier... Nous voulons rendre ça plus simple. Pour cela nous allons créer un fichier error.txt qui servira à expliquer l'erreur... Ca donne ça:

           if file "plugins/TnTRun/error.txt" doesn't exists: #on regarde si le fichier n'existe pas
               create file "plugins/TnTRun/error.txt" #si c'est le cas on  le crée
           write file "[%now%] Language Error (%loop-value%): value ""AboveHelp"" not set." to "plugins/TnTRun/error.txt" #on écrit dedans l'erreur

Mais un petit détail. Si une personne ne règle pas le problème tout de suite, l’erreur va continuer de s'écrire, ect. Il nous faut donc juste supprimer le fichier au tout début (en même temps que la création des fichiers).

   if file "plugins/TnTRun/error.txt" exists: #on vérifie si le fichier existe
       delete file "plugins/TnTRun/error.txt" #si c'est le cas on l'éfface

Et voilà! C'est la fin de la partie 2! Dîtes moi si vous avez aimé (ou pas) si j'ai fait des erreurs dans les codes (ça arrive toujours), des fautes d'ortho (je croi qyan a) ou des suggestions pour la partie 2. Je met juste après le code en entier.

Cordialement,

remy29.

 

on load: #Notre fameux événement
   #===* Folders *===#
   if folder "plugins/TnTRun" doesn't exists: #On vérifie si le dossier n'existe pas
       create folder "plugins/TnTRun" #Si c'est le cas, on créer ce dossier
  if folder "plugins/TnTRun/languages" doesn't exists: #On vérifie si le dossier n'existe pas
       create folder "plugins/TnTRun/languages" #Si c'est le cas, on créer ce dossier
   if file "plugins/TnTRun/error.txt" exists: #on vérifie si le fichier existe
       delete file "plugins/TnTRun/error.txt" #si c'est le cas on l'éfface
   #===* Config *===#
   if file "plugins/TnTRun/config.yml" doesn't exists: #on regarde si le fichier n'existe pas
       create file "plugins/TnTRun/config.yml" #si c'est le cas on le crée
       wait 1 tick #On attend un tick
       #Puis on écrit le logo
       write file "##---------------------##" to "plugins/TnTRun/config.yml"
       write file "##|                   |##" to "plugins/TnTRun/config.yml"
       write file "##|      TnT Run      |##" to "plugins/TnTRun/config.yml"
       write file "##|     by remy29     |##" to "plugins/TnTRun/config.yml"
       write file "##|                   |##" to "plugins/TnTRun/config.yml"
       write file "##---------------------##" to "plugins/TnTRun/config.yml"
       write file "" to "plugins/TnTRun/config.yml"
       write file "##Fichier de configuration." to "plugins/TnTRun/config.yml"
       write file "" to "plugins/TnTRun/config.yml"
       write file "" to "plugins/TnTRun/config.yml"
   #|--------|#
   #| Prefix |#
   #|--------|#
 clear {tntrun.config.prefix} #On éfface la variable
  set {tntrun.config.prefix} to value "Prefix" get of "plugins/TnTRun/config.yml" #On récupère la valeur
   if {tntrun.config.prefix} is not set: #On regarde si la variable n'est pas défini
       write file "Prefix: '&8[&9TnTRun&8]'" to "plugins/TnTRun/config.yml" #Si c'est le cas on écrit le réglage dans le fichier
       set {tntrun.config.prefix} to value "Prefix" get of "plugins/TnTRun/config.yml" #Et on redéfini la variable avec la nouvelle valeur
   replace all "&" with "§" in {tntrun.config.prefix} #Prise en compte des colors codes.
   #===* Langs *===#
   set {tntrun.langs::*} to file in "plugins/TnTRun/languages" #on défini la variable
   loop {tntrun.langs::*}: #on loop-la variable
       #|-----------|#
       #| AboveHelp |#
       #|-----------|#
       clear {tntrun.lang.%loop-value%.abovehelp} #on éfface la varibale
      set {tntrun.lang.%loop-value%.abovehelp} to value "AboveHelp" get of "plugins/TnTRun/languages/%loop-value%" #on défini la variable
       if {tntrun.lang.%loop-value%.abovehelp} is not set: #on regarde si la variable est nulle
           add loop-value to {_langtodisable::*} #on ajoute le langage à une variable temporaire
           if file "plugins/TnTRun/error.txt" doesn't exists: #on regarde si le fichier n'existe pas
               create file "plugins/TnTRun/error.txt" #si c'est le cas on  le crée
           write file "[%now%] Language Error (%loop-value%): value ""AboveHelp"" not set." to "plugins/TnTRun/error.txt" #on écrit dedans l'erreur

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.