strings.lua - mehrsprachig und mehrere Konstruktionen in einer Modifikation

Willkommen in der Transport Fever Community

Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.

 

Die Registrierung und Nutzung ist selbstverständlich kostenlos.

 

Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.

Das Team der Transport-Fever Community


  • Mods korrekt mit Beschreibungen in mehreren Sprachen versehen.

    Wie man Mods mit mehreren Konstruktionen und entsprechend unterschiedlichen Beschreibungen korrekt in mehreren Sprachen ausstattet, möchte ich anhand des RInglokschuppen mit Drehscheibe zeigen, der zusätzlich noch ein paar Assets enthält.


    Im Zentrum steht dabei die Datei "strings.lua" im Hauptverzeichnis einer Modifikation mit folgendem Aufbau:


    Die data()-Funktion der "strings.lua" gibt eine Auflistung der von der Modifikation unterstützten Sprachen zurück, wobei jede Sprache wiederum aus einer Auflistung von Schlüssel-Wert-Paaren besteht. Über den Schlüssel und der Spracheinstellung des Spiels wird der anzuzeigenden Wert in der UI von Transport Fever ermittelt.


    Manche Modder benutzen für den Schlüssel der Text-Resourcen lua-Variablen, andere wiederum - so auch ich - Zeichenfolgen. Die Benutzung von Zeichenfolgen ist vorzuziehen, da sie unkritisch gegenüber Änderungen seitens UG sind - wie der "Usability"-Patch zeigte.


    Anfangen tue ich mit dem generellen Namen und der generellen Beschreibung der Modifikation, die im Ingame-Mod-Manager von Transport Fever und im Steam-Workshop angezeigt wird. Daran beteiligt sind die Dateien "strings.lua" und "mod.lua" im Hauptverzeichnis der Modifikation. Hier soll außer der Bezeichnung der Modifikation eine mehr oder weniger umfangreiche Beschreibung der selbigen angezeigt werden. Dazu lege ich für den Namen den Schlüssel name und für die Beschreibung den Schlüssel desc (Description) fest. Zeichenfolgen, die als Schlüssel für Text-Resourcen in der "strings.lua" dienen sollen, müssen in runden Klammern geschrieben werden und mit einem Unterstrich beginnen. Siehe Zeile 7 und 8:

    Code: mod.lua
    function data()
    return {
      info = {
        minorVersion = 0,                                
        severityAdd = "NONE",                        
        severityRemove = "CRITICAL",                   
        name = _("name"),                               
        description = _("desc"),                        
        authors = {  
        ...

    So sehen alle meine "mod.lua"-Dateien bezüglich Namen und Beschreibung aus. Die Zeichenfolgen-Schlüssel sind für jede Modifikation lokal, d.h. Modifikationen können die selben Schlüssel verwenden, ohne sich gegenseitig zu beeinflussen.


    Hier nun ein Auszug aus der "strings.lua" mit den korrespondierenden Texten:

    Und so sieht es im Ingame-Mod-Manager aus:

    Analog wird die Beschreibung in der entsprechenden Sprache im Steam-Workshop angezeigt.


    Belässt man es jetzt dabei, dann würde diese Beschreibung auch in einem entsprechend großen Popup-Fenster im Bau-Menü von Transport Fever gezeigt. Dies empfinde ich als störend!
    Deshalb bekommt eine jede Konstruktion der Modifikation ihren eigenen Namen und Beschreibung. Hier der entsprechende Ausschnitt der con-Datei des Lokschuppens:

    An den Namens- und Beschreibungs-Schlüssel aus der "mod.lua" hänge ich einfach einen passenden Begriff an, hier "depot". Die "strings.lua" sieht dann so aus:

    Im Spiel sieht es dann so aus:


    Zum Abschluss die vollständige "strings.lua" mit den Einträgen für die Assets und Texten für UI-Parameter, die im Spiel in englisch geschrieben sind und somit in der "strings.lua" nur Einträge für die deutsche Übersetzung benötigen:

    Weitere Information zur "mod.lua" und "strings.lua" könnt ihr hier mod.lua und strings.lua - Erklärung und Inhalt von @Xanos finden...

Teilen