Item-Name in seiner Sprache

A new update (0.9.2) is available now!
Latest Hotfix: 0.9.2.1 (2026-05-13)
  • Hi red51 ,


    gäbe es auch auch die Möglichkeit, den Namen des Items in der Spielersprache zu erhalten?

    Das z.B. aus "pickaxe" > "Spitzhacke" wird? Im Crafting-Menü werden doch auch die Namen in der richtigen Sprache angezeigt.

    Oder kann man da nicht ohne weiteres drauf zugreifen? Englisch habe ich ja schon durch die API. Aber leider nicht Deutsch und für alles eine eigene Sprachdatei zu machen.... :dizzy:

  • Hey, leider ist das derzeit nicht möglich... die lokalisierung ist nur clientseitig verfügbar, daher hat der Server keinen Zugriff darauf (selbst beim englischen Namen handelt es sich nicht um den lokalisierten Namen, sondern nur um den internen Namen - die sind zwar meist ähnlich bis identisch, enthalten aber i.d.R. keine Leerzeichen o.ä).


    Ich schaue mal, ob ich das evtl. ändern kann, sodass die Lokalisierung auch serverseitig verfügbar wird :thinking:

  • Ich habe mir das mal genauer angeschaut: Ein kleines Problemchen ist, dass das Spiel die Übersetzung natürlich abhängig von der beim Spieler eingestellten Sprache wählt, damit zB der String "item.pickaxe.name" (entsprechend des Aufbaus in der json Datei) bei einem deutschen Spieler "Spitzhacke" und bei einem englischen Spieler "Pickaxe" zurückgibt.


    Im Falle des Servers wäre es so, dass hier automatisch die Serversprache verwendet werden würde (also die Systemsprache). Ich könnte sonst aber auch anbieten, dass man beim Auslesen des lokalisierten Strings auch die Sprache angeben kann. Würde das helfen?


    Wäre schon nice, ich habe hier gerade den fall das ich für ein bett genau wie für eine Piratenkiste nur objectkit angezeigt bekomme :D

    In dem Fall würde die Lokalisierung leider nicht helfen... "objectkit" ist der interne Name des Items, welches Objekte repräsentiert. Der lokalisierte String für dieses Item ist "Object kit" (Englisch) oder "Objekt-Kit" (Deutsch), also nicht das, was du suchst ^^

    Bei diesem Item müsstest du hingegen "ObjectItem" verwenden (welches von "Item" abgeleitet ist). Die enthält eine getObjectDefinition() Methode, mit welcher du die ObjectDefinition erhälst (die wiederum als "name" den internen Objektnamen zurückgibt, zB "workbench", "chest1" etc). Oder alternativ auch getObjectName(). Der Code wäre dann quasi so:


    Java
    Item item = ...;
    //Check if item represents an object
    if (item instanceof Item.ObjectItem object) {
    String name = object.getObjectName();
    }
  • Ah okay, das werde ich mir mal ansehen. Und ja eine Methode bei der man die Sprache übergibt ist ausreichend, ich habe meine Plugins auch ja auch immer übersetzt mit Sprachdateien und da nutze ich auch immer die player language.

Participate now!

Don’t have an account yet? Create a new account now and be part of our community!