Traduction avec variables côté Serveur



  • Salut à tous !

    Après quelques heures de tests je m'en remet à vous,

    J'essayes de faire mon mod le plus modulaire, j'aimerais donc faire des traductions avec dedans des variables, pour l'instant j'ai réussi à faire ceci :

    new ChatComponentTranslation("message.test", x)
    

    Fichier .lang : message.test=Test is: %d

    Et ça fonctionne (Ca marque Test is: %Valeur de la variable x%) ! Mais je n'arrive pas à mettre plus d'une variable, par exemple :

    new ChatComponentTranslation("message.test", x, y)
    

    Fichier .lang : message.test=Test is: %d %e

    Ne fonctionne pas 😕 Je ne comprends pas puisque ChatComponentTranslation peut prendre comme argument Object[]

    Le tout étant côté serveur !

    (Il n'y a aucun problème a utilisé une autre classe que ChatComponentTranslation, mais il ne faut pas oublier que je veux exécuter mon code côté serveur ;))

    Merci d'avance à tous 🙂

    EDIT: Il n'y a qu'a mettre dans Fichier .lang : message.test=Test is: %d %d

    • Je trouve ça quand même dommage qu'on ne puisse pas appeler les variables dans le Fichier .lang %coordX … mais bon ça fonctionne, c'est ce qui compte !

  • Administrateurs

    Salut,
    Je crois que je t'ai mit le badge java un peu trop vite …
    C'est %s pour un string, %d pour un nombre.
    Si tu veux mettre plusieurs string :
    message.test=blabla %s %s dans le lang, new ChatComponentTranslation("message.test", string1, string2)

    S'il y a besoin de changer l'ordre, dans le fichier lang :
    message.test=blabla %2$s %1$s



  • String.format() Et tu rajoute autant de variables que tu veux

    Edit: le message de robin au dessus doit être la solution x)



  • Petite précision : dû à minecraft et son joli code 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 Mojang 😉