Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Übersetzung von Fabriknamen bei Szenarios
#1
Zuerst gefunden in : simutrans nightly r7336 pakset beliebig(alle)

Nutzt man im Szenario Ordner die Übersetzungs-Datei z.B. da.tab um einen im Szenario geänderten Fabriknamen (unter Sprachwahl C-English) zu übersetzen, so wird dieser in den anderen Fabriken unter Zulieferer und Verbraucher bei entsprechender Sprachwahl richtig übersetzt. Die Fabrik mit dem geänderten Namen hingegen (unter C-English) wird beim öffnen des Fabrikfensters nicht übersetzt.

Siehe Anhang: Die Übersetzung "Mein neuer Name" erscheint nicht als übersetzter Name der Kohlezeche, aber im Fenster des Kohlekraftwerks wird der Name richtig übersetzt.


Angehängte Dateien Bild(er)
   
Zitieren
#2
Nochmal:
Du hast eine Fabrik umbenannt "My coal mine"
Du hast dann eine Übersetzung namens "My coal mine"->"Kohleschacht" (oder was immer)
Diesse wird dann nicht angezeigt?
Zitieren
#3
Ablauf:

  1. erstelle eine Fabrikkette (Lieferant und Abnehmer)
  2. benenne den Produzenten um zB "My coal mine", nutze dabei Sprache C-English
  3. erstelle ein simples Szenario oder kopiere vorhandenes Szenario mit eigener Sprachdatei.
  4. kopiere das Savegame in das Szenario
  5. erweitre in der Sprachdatei z.B. "de.tab" die beiden Zeilen "My coal mine" und "Kohleschacht" als Übersetzung
  6. lade das Szenario mit der Zielsprache, hier Deutsch

Nun wird die Übersetzung beim Abnehmer in Anzeigefenster unter Lieferanten ordnungsgemäß angezeigt.
Beim Lieferanten hingegen wird das Anzeigefenster noch im C-English Namen angezeigt.

Folgt für mich: Es fehlt NUR für die Anzeige im Fensternamen und Namensfeld der Fabriken die Übersetzung und nicht für die restlichen Informationen im Fall das ein Szenario geladen wird, im anderen Fall ohne Szenario stimmt die Anzeige.
Zitieren
#4
Eigentlich sollten veränderte Namen überhaupt nicht übersetzt werden. Schließlich soll ja Bahnhof xyz nicht bei anderen Spielern abc heissen. D.h, das Feld, dass den geänderten Namen anzeigt, sollte nur Übersetzen, wenn es tatsächlich geändert wurde. Das betriff z.B: auch Fahrzeuge etc.

In dem Fall eines Szenarios ist das allerdings kontraproduktive, das verstehe ich schon. Denn wenn der Name beim Öffnen des Fensters in die aktuelle Sprache übersetzt werden würde, dann würde er beim Speichern ja auch wieder so gespeichert werden. Sprich einen weiteren Sprachwechsel würde es nicht überleben. Sowieso Bahnhöfsgrundnamen wie Konvois bleiben immer auf der Erstellungssprache festgehalten, damit bei Netzwerkspielen alle denselben Namen sehen (sonst gingen Absprachen ja kaum wenn einer Deutsch und einer English hat und Berlin Hauptbahnhof und Berlin Central bei beiden dasselbe sein sollte.)

Evt. muss beim Schließen die Übersetzung nochmal geprüft werden, ob sie verändert wurde und nur dann speichern. Allerdings will man ja, dass andere Sachen (Convois) nicht übersetzt werden.
Zitieren
#5
Also, wenn mich nicht alles täuscht, dann gibt es den tollen Effekt das man auch Standard C-English Fabriknamen durch die Sprachdatei übersetzen lassen kann (also quasi Wunschname). Das klappt wunderbar und war wohl auch so in der Simutrans Programmierung gedacht!

Es geht hier letztlich nur um die Anzeige des Namens im Fenster, nicht der internen Ansprache oder der Ansprache im Script.

Was Netzwerk Spiele angeht, die Szenario Script Befehle haben schon jetzt Ausschlusskriterien / Verbote für ein Netzwerkspiel.

edit:
Habe gerade die Funktion factory_x.get_name() kontrolliert. Gemäß Anleitung soll diese "Get (untranslated) name of factory" zurückgeben. Die liefert aber den übersetzen Namen. Auch hier scheint mir gibt es Unterschiede zwischen dem Namen zur Anzeige und dem C_English Namen, was dann auch die Scriptbezeichnung wäre. Und nur mit dem C_English Namen lässt sich im Scriptbereich vernünftig arbeiten.
Zitieren
#6
Ehrlich gesagt ich habe keine Ahnung, was die Skripte für Namen verwenden; es sollte aber besser der interne Pakname sein, den die Namen in Übersetzungen könnten sich jederzeit ändern. Deswegen sollte ja ein manuell neu vergebenern Namen nicht übersetzt werden. Ich schau mir das mal genauer an.

Also in normalen Spielen habe ich nur dann ein Problem, wenn als Name in dem Spiel zufällig der bereits übersetze eingegeben wird. Dann wird der Name auf Leer zurückgesetzt. Ansonsten funktionierte alles, wie es sollte.

Die Funktion get_name liefert etweder einen übersetzten Namen oder den Spezialnamen zurück. Die Anzeiger der Verbindungen ist dagegen falsch. Hier darf nichts mehr übersetzt werden. Danke, ich habe es korrigiert in r7339.
Zitieren
#7
Scripte verwenden den internen Paknamen, meist jedoch nur eine Ansprache via coord3d um das Objekt anzusprechen.

Zitat: Die Anzeiger der Verbindungen ist dagegen falsch. Hier darf nichts mehr übersetzt werden. Danke, ich habe es korrigiert in r7339.
Getestet in r7340. Das ist zwar jetzt im Gesamten wieder logisch, hebt aber leider die Übersetzungen im Script Bereich auf. Diese machen nun dort (bei Verbindungen und Fabriknamen) und somit auch in den Texten keinen Sinn mehr. Ein Szenario Missionsziel Text wurde und wird mit allen Wörtern vom Menschen übersetzt. So auch die Bezeichnungen der Fabriken.
Auch ist eine manuelle Umbenennung einer Fabrik vom Script Entwickler in der Entwicklungsphase nun zwar möglich, aber erlaubt keine Übersetzung mehr.

Vorschlag:
Ist es möglich diese beiden Bereiche (Anzeige der Verbindungen und Fabriknamen) nur im Scriptbereich zu übersetzen, falls der öffentliche Spieler gesperrt ist ? Dann sollte ein nachträgliches Ändern nicht zufällig stattfinden und es kann nicht zu den gesagten Problemen kommen. Des weiteren wäre so die Übersetzung im Scriptbereich wieder sinnvoll und logisch.
Zitieren
#8
Man koennte umbenenn der Fabriken verhindern, wenn das Spiel gesperrt ist. Aber vergebene Namen sollten besser nicht mehr uebersetzt werden. Ein Extrabehandlung fuer Skripte ist eigentlich nicht moeglich (die entsprechenden Uebersetzungen gelten auch beim Laden anderer Spiele).

Ich dachte es werden die Links auf Positionen verwendet. Die koennen sich (im Gegensatz zu Namen) eh niemals aendern.
Zitieren
#9
Wenn das Spiel gesperrt ist, ist das Umbenennen der Fabriken sowieso nur mit Kennwort des öffentlichen Spielers möglich. In diesem Fall sollte dann eine Übersetzung eines vergebenen Namens nicht mehr die Probleme machen.

Via script Sprachdateien *.tab und script Befehlen lässt sich fast jede Übersetzung neu definieren und damit für Städte, Spielernamen, Fabriken, Waren, Häuser und auch Fenstertexte an das Szenario für die jeweilige Sprache anpassen. Bei neu vergebenen Fabriknamen und Marker-Texten klappt das nicht, was eine Lücke in der Übersetzung zur Folge hat.

Eine weitere Variante wäre, wenn man via Scriptbefehl beim Spielstart ein Fabriknamen einzelner Fabriken ändern könnte, als ob dies ein Name aus dem pakset sei. Damit entfällt die manuelle Änderung im Spiel und es wären auch keine anderen Spiele/Spielstände betroffen. Dies ist weniger elegant als die obrige Methode, würde aber eine lückenlose Übersetzung erlauben.
Zitieren
#10
Städte sollten eigentlich nicht übersetzt werden. Falls da passiert, ist es ein eher ein Fehler.

Man könnte im Szenario ja beim Laden die Fabrik passend übersetzen. Ein anderes Anzeigen mit und ohne Szenario ist aber sehr schwierig.
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste