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:bonjour

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


  • Rédacteurs

    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 ?


  • Rédacteurs

    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("");
    

Log in to reply