strings.lua - mehrsprachig und mehrere Konstruktionen in einer Modifikation

Willkommen in der Transport Fever Community

Welcome to the fan community of Transport Fever and Train Fever, the economic simulators of Urban Games. The community is free for you to share and inform yourself about the game. We cultivate a friendly and objective interaction with each other and our team will be happy to answer any questions you may have.

 

Registration and use is of course free for you.

 

We wish you a lot of fun and hope for active participation.

The Team of the 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...

Share