Résolu Traduction avec variables formatés côté serveur
-
Salut, après avoir fait un post un peu rapidement, j’ai une nouvelle question,
J’ai réussi à faire mon message traduit avec plusieurs variables :
message.police=§b[Gendarme]§1 [x: %s§1,y: %s§1, z: %s§1]§2 %s§r: %s
Seulement j’aimerais appliquer un formatage aux variables (qui sont en blancs, par défaut malgré le formatage que j’essaye de lui appliqué), je connais la classe ChatStyle pour éditer le formatage des IChatComponent mais puisque je veux que le formatage des variables soit écrit dans le fichier .lang, cette classe ChatStyle est inutile.
Il y a t-il moyen de mettre un formatage sur des variables à partir d’un fichier .lang ?
De plus je n’utilise pas les %d puisque je souhaite formater (même les nombres convertient alors en String), SCAREX “tu ne peux formater que les String, si tu veux afficher un float avec un certain nombre de virgules tu devras utiliser String.format.”
Merci d’avance,
PS: Code qui appelle ma traduction
new ChatComponentTranslation("message.police", x, y, z, thePlayer.getDisplayName(), message.getText()
x, y, z étant des int
-
le formatage doit être appliqué avant le texte dont tu veux changer la couleur : “I’m white§0I’m black§rAnd now I’m white again”
Donc ici ton texte va devenir (pour x, y, et z = -1, nom du joueur=patrick, et le message texte=bonjour) :
§b[Gendarme]§1 [x:-1§1,y:-1§1,z:-1§1]§2 patrick§r:bonjour
Soit sans les couleurs :
[Gendarme] [x:-1,y:-1,z:-1] patrick:bonjour -
@‘SCAREX’:
le formatage doit être appliqué avant le texte dont tu veux changer la couleur : “I’m white§0I’m black§rAnd now I’m white again”
Donc ici ton texte va devenir (pour x, y, et z = -1, nom du joueur=patrick, et le message texte=bonjour) :
§b[Gendarme]§1 [x:-1§1,y:-1§1,z:-1§1]§2 patrick§r:bonjour
Soit sans les couleurs :
[Gendarme] [x:-1,y:-1,z:-1] patrick:bonjourDans le fichier .lang :
message.police=§b[Gendarme]§1 [x: %s§1,y: %s§1, z: %s§1]§2 %s§r: %s
Je sais que §1Bleu et Rien§1
Le problème c’est que lorsque je fais §1 %s ça ne fonctionne pas alors que §1 Patrick fonctionne, c’est ça mon problème. -
Oui j’avais le même problème, le formatage est fait avant l’insertion de données (en tout cas j’ai l’impression), donc j’avais fait le formatage dans le code genre :
new ChatComponentTranslation("message.police",EnumChatFormatting.BLUE + x,EnumChatFormatting.RED + y, z, thePlayer.getDisplayName(), message.getText()); //etc …
-
@‘BrokenSwing’:
Oui j’avais le même problème, le formatage est fait avant l’insertion de données (en tout cas j’ai l’impression), donc j’avais fait le formatage dans le code genre :
new ChatComponentTranslation("message.police",EnumChatFormatting.BLUE + x,EnumChatFormatting.RED + y, z, thePlayer.getDisplayName(), message.getText()); //etc …
Merci mais c’est ça le problème je n’ai pas envie de faire comme ça …
EDIT: Aucun autre moyen, par exemple l’utilisation d’une classe qui gère mieux que le système de base ou je ne sais pas mais j’aimerais avoir le formatage dans le fichier .lang sinon ce n’est pas grave.
-
tu n’as pas les bonnes valeurs déjà : http://minecraft.gamepedia.com/Formatting_codes
-
@‘SCAREX’:
tu n’as pas les bonnes valeurs déjà : http://minecraft.gamepedia.com/Formatting_codes
Ta réponse est pour BrokenSwing ?
-
Après avoir regardé le code que ne crois pas que tu puisse faire autrement, le %s sont transformés en ChatComponentText et on leur applique le style du parent qui est blanc si tu n’as pas modifié ce dernier
-
Je ferai sans merci, une nouvelle limite du code de Minecraft a aujourd’hui été découverte x)
EDIT: Je tiens à préciser que mon problème arrive côté serveur, côté client il n’y a pas de problème en utilisant
I18n.format("");