Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 28

Thema: [TAC] Textvariablen für Nationenbezeichnungen

  1. #1
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376

    [TAC] Textvariablen für Nationenbezeichnungen

    Ich habe jetzt alle Eventtexte durchgesehen und redigiert bzw. umgeschrieben. Dazu habe ich jetzt eine Bitte. Ich suche nämlich einen Freiwilligen ...

    In den Eventtexten werden für die Bezeichnung von Nationen Formeln benutzt. Das heißt, wenn man z.B. die Engländer spielt und man erhält den Eventtext ...
    Ein Feuer hat ein Waldstück nahe der englischen Stadt Jamestown verwüstet.
    ... dann heißt in der zugrundeliegenden Datei CIV4GameText_Colonization_Events.xml dieser Text eigentlich ...
    PHP-Code:
    Ein Feuer hat ein Waldstück nahe der %s1:2_civ_adjective Stadt %s2_city verwüstet
    Theoretisch gibt es für jede Nationenbezeichnung, egal ob als Substantiv oder Adjektiv, immer für jede grammatische Situation eine passende Formel. Trägt man im Text die richtige Formel ein, wird aus einer anderen Textdatei das damit verknüpfte deutsche Wort in der entsprechenden Deklination aufgerufen.

    Praktisch funktioniert das aber nicht. Es funktionierte bei Civ4 nicht. Es funktioniert bei CivCol nicht. Und es funktioniert bei TAC natürlich auch nicht. Die deutschen Übersetzer haben es einfach nicht auf die Reihe gekriegt, die grammatischen Formen korrekt zu deklinieren und zuzuweisen. Deshalb findet man leider verdammt oft Texte wie z.B. "Der englisch König grüßt Euch."

    Wir bräuchten einen Freiwilligen, der folgendes macht ...
    * ... er sollte die zugrundeliegende(n) Textdateien(n) finden,
    * ... durch Trial And Error herausfinden, welche Formel für welche Deklination steht
    * ... dann die richtigen Deklinationen eintragen
    * ... und sie abschließend in einer kleinen Liste dokumentieren, so dass wir beim Texteschreiben einen komfortablen Setzkasten haben.

    In diesem Setzkasten würde dann z.B. stehen:
    Nation als Adjektiv, 3. Person Singular: [Formel]
    Falls es einen Freiwilligen gibt, der sich die oben skizzierte "große" Lösung nicht zutraut, gäbe es noch eine "kleine" Lösung. Man könnte die Ereignisse auslösen (gegebenenfalls dadurch, dass man die Eintrittswahrscheinlichkeiten extrem hochstellt) und sich dann Text für Text anschauen. Gibt es einen Text, bei dem die Nationenbezeichnung grammatisch falsch ist, bastelt man probeweise eine andere Formel rein und probiert's erneut. Dabei könnte man sich vielleicht dadurch helfen, dass man mal sämtliche Formeln, die man findet, die einen einzigen Text kopiert und den im Spiel anzeigen lässt. Dann hätte man mal die verschiedenen Deklinationen auf einen Blick. Mit etwas Glück & Geduld könnte man auf diese Weise schon mal die aktuellen Ereignisse durchkorrigieren.

    Bis dahin habe ich mir in den Eventtexten (und zuvor auch schon in den Diplomatietexten) provisorisch dadurch geholfen, dass ich diese Formeln einfach rausgestrichen habe. Das ist aber leider nicht immer möglich.
    Geändert von Writing Bull (16. Mai 2010 um 11:51 Uhr)

  2. #2
    Ad Astra Avatar von Ronnar
    Registriert seit
    27.10.08
    Beiträge
    3.258
    Die Textdatei ist: CIV4GameTextInfos_Original.xml

    Die gesuchten Informationen kommen ab Zeile 17.553

    Beispiel <Tag>TXT_KEY_CIV_ENGLAND_ADJECTIVE</Tag>

    PHP-Code:
      <German>
       <
    Text>Englisch:englischen:englische</Text>
       <
    Gender>Neuter:Neuter:Neuter</Gender>
       <
    Plural>0:0:0</Plural>
      </
    German
    Da sehe ich eigentlich schon einen Fehler: "englischen" sollte doch auch die Plural-Form sein, oder? Eine Plural-Form ist aber im Deutschen gar nicht gesetzt (in anderen Sprachen schon).

    Aber zurück zum Beispiel. Wir wollen folgende Anzeige:

    Der englische König bietet Euch Rohstoffe an

    "englische" ist der 3. Parameter, daher brauchen wir:

    Der %s1:3_civ_adjective König bietet Euch Rohstoffe an

    Wenn jetzt noch sichergestellt ist, dass bei allen Nationen die Formen in der gleichen Reihenfolge stehen, dann wäre diese Variable korrekt.

    Ein Feuer hat ein Waldst&#252;ck nahe der %s1:2_civ_adjective Stadt %s2_city verw&#252;stet.

    => Das sollte uns die Ausgabe geben:

    Ein Feuer hat ein Waldst&#252;ck nahe der englischen Stadt XYZ verw&#252;stet.

  3. #3
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376
    Zitat Zitat von Ronnar Beitrag anzeigen
    Die Textdatei ist: CIV4GameTextInfos_Original.xml

    Die gesuchten Informationen kommen ab Zeile 17.553
    Super!
    Zitat Zitat von Ronnar Beitrag anzeigen
    Achtung Spoiler:
    Beispiel <Tag>TXT_KEY_CIV_ENGLAND_ADJECTIVE</Tag>

    PHP-Code:
      <German>
       <
    Text>Englisch:englischen:englische</Text>
       <
    Gender>Neuter:Neuter:Neuter</Gender>
       <
    Plural>0:0:0</Plural>
      </
    German
    Da sehe ich eigentlich schon einen Fehler: "englischen" sollte doch auch die Plural-Form sein, oder? Eine Plural-Form ist aber im Deutschen gar nicht gesetzt (in anderen Sprachen schon).

    Zitat Zitat von Ronnar Beitrag anzeigen
    Aber zurück zum Beispiel.
    Achtung Spoiler:
    Wir wollen folgende Anzeige:
    Der englische König bietet Euch Rohstoffe an
    "englische" ist der 3. Parameter, daher brauchen wir:
    Der %s1:3_civ_adjective König bietet Euch Rohstoffe an
    Wenn jetzt noch sichergestellt ist, dass bei allen Nationen die Formen in der gleichen Reihenfolge stehen, dann wäre diese Variable korrekt.

    Ein Feuer hat ein Waldstück nahe der %s1:2_civ_adjective Stadt %s2_city verwüstet.

    => Das sollte uns die Ausgabe geben:

    Ein Feuer hat ein Waldstück nahe der englischen Stadt XYZ verwüstet.
    Klingt plausibel!

    Ergänzend: Nationenadjektive werden im Deutschen ja nicht wie im Englischen groß geschrieben. Das heißt, es lautet z.B. nicht "Französisch", sondern "französisch".

  4. #4
    Ad Astra Avatar von Ronnar
    Registriert seit
    27.10.08
    Beiträge
    3.258
    Oh, einige andere sind in CIV4GameText_Colonization_Objects.xml und natürlich auch welche in CIV4GameText_TAC.xml.

    Viel Spaß damit Ich würde sie ja alle in einer Datei zusammenführen, an 3 Stellen ist ungeschickt.

  5. #5
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376
    Zitat Zitat von Ronnar Beitrag anzeigen
    Ich würde sie ja alle in einer Datei zusammenführen, an 3 Stellen ist ungeschickt.
    Klingt plausibel! Wer kann das machen?

  6. #6
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376
    Ronnar, entschuldige, dass ich auf deine PN hier antworte. Ich finde das übersichtlicher.
    Außerdem habe ich immer noch die Hoffnung, dass sich vielleicht noch ein Dritter des Themas annehmen mag.
    Zitat Zitat von Ronnar
    sehe ich es richtig, dass du die Adjektive für die Nationen alle in CIV4GameText_TAC.xml verschoben hast?
    Ja, genau.
    Zitat Zitat von Ronnar
    Hast du auch bereits Änderungen vorgenommen, die wir noch nicht in der Testversion haben?
    Ja. Ich hänge die aktuelle Datei mal an. Ich habe lediglich vier Sachen gemacht:

    * Ich habe alle Definitionen in die CIV4GameText_TAC.xml verschoben.

    * Ich habe bei den Einträgen TXT_KEY_CIV_xxx_ADJECTIVE zu Ureinwohnern dann, wenn als Adjektiv lediglich die Wiederholung des Nationennamens eingetragen wurde, ein Trennungszeichen hinten drangehängt. Bsp.: Statt "Tupi" heißt das Adjektiv jetzt "Tupi-".

    * Ich habe zudem aus dem Adjektiv "Inkaisch" gemacht: "Inka-"

    * Ich habe in den Diplomatietexten, in denen mitunter der Eintrag TXT_KEY_CIV_xxx_ADJECTIVE fälschlicherweise als Nationenbezeichnung zweckentfremdet wurde, diese Formel gestrichen und einfach manuell durch den Stammesname ergänzt. Bsp.: Statt "Ich, Kazike der TXT_KEY_CIV_TUPI_ADJECTIVE, ..." heißt es jetzt: "Ich, Kazike der Tupi, ..."
    Zitat Zitat von Ronnar
    Mir ist aufgefallen, dass uns die männliche Form fehlt. Wir haben

    <German>englisch:englischen:englische</German>

    => englischer fehlt

    Ergänzt du die männliche Form als 4.? Dann könnte ich bei meinen künftigen Textvorschlägen schon den passenden Platzhalter einsetzen.
    Zu mehr komme ich leider im Moment nicht. Sitze trotz vorgerückter Stunde immer noch primär am PC, um meine Brötchen zu verdienen.
    Geändert von Writing Bull (10. Juni 2011 um 08:54 Uhr)

  7. #7
    Ad Astra Avatar von Ronnar
    Registriert seit
    27.10.08
    Beiträge
    3.258
    Ich habe die männliche Form als 4. Eintrag bei allen deutschen TXT_KEY_CIV_XXX_ADJECTIVE Schlüsseln ergänzt.

    Damit müssten dann alle benötigten Formen für die Platzhalter zur Verfügung stehen.

    Sonst habe ich keine Änderungen vorgenommen.
    Angehängte Dateien Angehängte Dateien

  8. #8
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376
    Danke!

  9. #9
    Registrierter Benutzer Avatar von Akropolis
    Registriert seit
    14.09.08
    Ort
    Naturschutzgebiet Mark Brandenburg
    Beiträge
    4.430
    Als kleine Frage (mir fällt auch kein passender Thread ein). Mich stört, dass die Adjektive der einzelnen Länder unschön abgehackt werden. Z.B. steht immer ... die spanisch Mission ... also ohne das e für spanische. Ich hab auch schon rausgefunden, dass in den Textdateien die einzelnen deklinierten Adjektive unterschiedliche Bezeichnungen haben. Was ich aber noch nicht gefunden habe, in welcher Textdatei diese "Übersetzung" geregelt wird. In welcher Datei werden die Adjektive übersetzt?

  10. #10
    Col-Modder Avatar von raystuttgart
    Registriert seit
    19.03.10
    Ort
    Stuttgart
    Beiträge
    4.585
    Zitat Zitat von Akropolis Beitrag anzeigen
    In welcher Datei werden die Adjektive übersetzt?
    Ich glaube du sprichst hier von der DLL.
    (Die baut das zusammen.)

    Im XML definierst du folgendes:

    1. "Geschlecht" Mission -> weiblich
    2. Adjektive "männlich" für Nation Spanien -> "spanisch"
    3. Adjektive "weiblich" für Nation Spanien -> "spanische"

    Alternativ gibt es natürlich auch die Möglichkeit in Texten direkt auf die passende Form des Adjektives zu verweisen:

    %s2:3_civ_adjective

    Im Unterschied dazu wird aber oft einfach nur auf das Adjektiv verwiesen:

    %s2_civ_adjective

    Sind diese Dinge richtig gemacht, sollte die DLL auch richtig den Text "... spanische Mission ..." zusammenbasteln.
    Geändert von raystuttgart (30. Januar 2012 um 22:53 Uhr)
    Teammitgleid dieses Projekt für Colonization:
    [Mod] We The People
    (Nachfolgerprojekt von Religion and Revolution)

    Davor Teammitgleid dieses Projekt für Colonization:
    [Mod] Religion and Revolution

    Vor-Vorheriges Projekt für Colonization:
    [ModMod] ray's Wunschliste

    Und wiederum davor Teammitglied von:
    [Mod] The Authentic Colonization (TAC)

  11. #11
    Registrierter Benutzer Avatar von Akropolis
    Registriert seit
    14.09.08
    Ort
    Naturschutzgebiet Mark Brandenburg
    Beiträge
    4.430
    Nö, glaub ich nicht. Die verschiedenen deklinierten Formen der Adjektive (also Endung e oder en) haben in den XML-Dateien unterschiedliche Namen. Daher denke ich, dass sie irgendwo definiert werden. Das sind dieselben Namen, wie sie auch Civ benutzt und dort steht ja auch korrekt "spanische".

  12. #12
    Col-Modder Avatar von raystuttgart
    Registriert seit
    19.03.10
    Ort
    Stuttgart
    Beiträge
    4.585
    Zitat Zitat von Akropolis Beitrag anzeigen
    Nö, glaub ich nicht. Die verschiedenen deklinierten Formen der Adjektive (also Endung e oder en) haben in den XML-Dateien unterschiedliche Namen. Daher denke ich, dass sie irgendwo definiert werden. Das sind dieselben Namen, wie sie auch Civ benutzt und dort steht ja auch korrekt "spanische".
    Ich hab oben gerade noch was ergänzt.
    (Du warst zu schnell. )
    Teammitgleid dieses Projekt für Colonization:
    [Mod] We The People
    (Nachfolgerprojekt von Religion and Revolution)

    Davor Teammitgleid dieses Projekt für Colonization:
    [Mod] Religion and Revolution

    Vor-Vorheriges Projekt für Colonization:
    [ModMod] ray's Wunschliste

    Und wiederum davor Teammitglied von:
    [Mod] The Authentic Colonization (TAC)

  13. #13
    Registrierter Benutzer Avatar von Akropolis
    Registriert seit
    14.09.08
    Ort
    Naturschutzgebiet Mark Brandenburg
    Beiträge
    4.430
    Genau deinen editierten Teil mein ich. Wo steht die Übersetzung, was %s2:3_civ_adjective bedeutet.

  14. #14
    Col-Modder Avatar von raystuttgart
    Registriert seit
    19.03.10
    Ort
    Stuttgart
    Beiträge
    4.585
    Zitat Zitat von Akropolis Beitrag anzeigen
    Genau deinen editierten Teil mein ich. Wo steht die Übersetzung, was %s2:3_civ_adjective bedeutet.
    Such mal nach TXT_KEY_CIV_ENGLAND_ADJECTIVE.

    Dann sollte das klar werden.
    Wie die DLL grundsätzlich solche "Replace-Anweisungen" interpretiert, hab ich ja glaub ich schonmal erklärt.

    Ich versuche es aber nochmal.

    Die wichtigen Teile markiere ich mal:

    %s2:3_civ_adjective --> Für einen bestimmten Wert aus einem String-Array.
    %s2_civ_adjective --> Für einen String.

    Du könntest genausogut:

    %s2:3_hutzibutzi
    %s2_hutzibutzi

    oder auch nur

    %s2:3
    %s2

    verwenden.

    Das hätte den selben Effekt.

    Das "_civ_adjective" ist nur dafür da, damit der XML-Modder versteht, was da rein soll, ohne in der DLL nachzusehen.

    Es gibt also 2 Fälle:

    1. Die DLL erstellt "Objekttexte".
    Da sind die Definitonen (Singular/Plural, Male/Female/Neutral) wichtig.

    Ähliches gilt für solche "Num"-Definitionen:
    [NUM2:Un:Una:Unos:Unas] <-- Bezieht sich auf Geschlecht und Anzahl von "Objekt 2" in der Message-Methode,
    das im Text als %s2_... gekennzeichnet wäre.

    Damit das dann nachher passt, muss Geschlecht und Anzahl am TXT_KEY für Objekt 2 sauber definiert sein.

    2. Die DLL ersetzt in Texten die Platzhalter durch Strings und Stringarrays.
    Dann muss man die Strings an die richtige Stelle setzen und bei Strinarrays sagen, welcher Teil des Arrays zu verwenden ist.

    ----------------

    Fazit:

    Was die DLL für einen bestimmten Text als "Platzhaltersetzung" jeweils zur Verfügung stellt, kann im XML nicht beeinflusst werden.

    Diese Entscheidung wurde in der DLL bereits getroffen.
    (Die DLL bestimmt die Logik, nicht das XML.)

    Ohne das in der DLL zu programmieren, wirst du also in einem Text nie den Namen des Anführers stehen haben,
    wenn da normalerweise der Name der Nation drin steht.

    %s1_Nation oder %s1_Leader oder %s1_interessiert_die_DLL_einfach_nicht hat einfach keine Auswirkung,
    solange in der DLL in String1 der Name der Nation reingestopft wird.

    Diese Entscheidungen trifft nur die DLL.

    Du hast für jeden Text einfach nur die Auswahl, welchen der verfügbaren Strings du wo im Text platzierst, ob du ihn als Zahl oder String verwenden willst
    und falls es sich um einen String-Array (wie bei Adjektiven oft der Fall) handelt, welches Element davon angezeigt werden soll.

    ----------------

    Ich hoffe das war einigermaßen verständlich.
    Geändert von raystuttgart (31. Januar 2012 um 00:12 Uhr)
    Teammitgleid dieses Projekt für Colonization:
    [Mod] We The People
    (Nachfolgerprojekt von Religion and Revolution)

    Davor Teammitgleid dieses Projekt für Colonization:
    [Mod] Religion and Revolution

    Vor-Vorheriges Projekt für Colonization:
    [ModMod] ray's Wunschliste

    Und wiederum davor Teammitglied von:
    [Mod] The Authentic Colonization (TAC)

  15. #15
    Registrierter Benutzer Avatar von Akropolis
    Registriert seit
    14.09.08
    Ort
    Naturschutzgebiet Mark Brandenburg
    Beiträge
    4.430
    Ich will doch lediglich das richtige Adjektiv gegen die deklinierte Version (also einen anderen Wert aus einem String-Array) in manchen Texten einsetzen. In der XML-Datei ist der Wert erstmal richtig drinn.

    Also muss ich mir den entsprechenden Text anschauen, welcher Wert dort abgerufen wird.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •