Autor Thema: GUI-Problem in der Übersetzung  (Gelesen 4138 mal)

mukk

  • kleiner Tentakel
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
    • Profil anzeigen
GUI-Problem in der Übersetzung
« am: 06. April 2011, 11:43:38 »
Ich arbeite grad an der Übersetzung meiner neuen Epi und grübel grad, was ich mit dem GUI anfange.

Das Problem is, dass ich das normale GUI im Laufe des Spiels öfter ein und ausschalte. Das englische GUI hat aber ne neue ID.
Gibt es ne möglichkeit, die ID zu ändern oder irgendwas zu skripten, dass das Spiel bei
Zitat
if (IsTranlationAvalable()==1)
bei allen zugriffen auf GUI 1 stattdessen GUI x benutzt?

Wie habt ihr das denn gelöst, wenn ihr ne Übersetzung gemacht habt?
Each year, vegetarians bully animals,
cheat in relationships, watch porno and cause pollution.
So join the fight now and stop the vegetarians.

Bòógieman

  • International anerkannter Superheld
  • Globaler Moderator
  • alter Tentakel
  • *****
  • Beiträge: 2675
  • Geschlecht: Männlich
  • Grün Tentakel = Running Sushi!
    • Profil anzeigen
Re: GUI-Problem in der Übersetzung
« Antwort #1 am: 06. April 2011, 12:08:24 »
wird das nicht schon im starterpack gehandhabt  ???
im endeffekt wird im game_start einfach die passende grafik ins gui geladen, anstatt ein anderes gui einzublenden  ;)
Schlachtaman Vibrations, UHYEAH!!!
_________________________________

>>>> Ende der Kommunikation <<<<

mukk

  • kleiner Tentakel
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
    • Profil anzeigen
Re: GUI-Problem in der Übersetzung
« Antwort #2 am: 06. April 2011, 12:23:40 »
oh man...gut, dass ich meine Fragen immer so gut durchdenke  :-\

jetz hab ich aber n echtes Problem....und zwar steht nur beim engl. GUI bei der Give-Grafik im Spiel die ganze Zeit ein hervorgehobenes Close, und wenn ich mit der Maus drüber gehe, steht da Ziehe (beides als Grafik) ... wie komm ich denn an die ganzen Funktionen vom Gui ran? Könnte auch n kompatibilitätsproblem sein weil das Starterpack noch von anno tobak is und ich AGS 3.1.2 benutze... jedenfalls ist unter Events nirgends was eingetragen.

Dazu kommt noch, das nix ne auswirkung hat...also egal was ich im Gui anklicke, es bleibt bei Go to -.-

Muss dazu sagen, dass ich noch nie was mit GUIs gemacht hab...
« Letzte Änderung: 06. April 2011, 12:26:18 von mukk »
Each year, vegetarians bully animals,
cheat in relationships, watch porno and cause pollution.
So join the fight now and stop the vegetarians.

Endres

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1264
  • Geschlecht: Männlich
  • En|dres, der
    • ICQ Messenger - 230191486
    • MSN Messenger - enni_puschner@hotmail.de
    • Profil anzeigen
    • e7p.de
    • E-Mail
Re: GUI-Problem in der Übersetzung
« Antwort #3 am: 06. April 2011, 12:36:54 »
Ich schätze mal du verwendest AGS? Wenn, dann müsstest du einfach mal durch die Translationfile schauen, irgendwo stehen die ganzen Aktionen übersetzt. Im GlobalScript wird nämlich einfach ein String für jede GUI-Aktion aufgesplittet und Strings werden (mit GetTranslation(string); ) übersetzt. Das wäre auch die Lösung für ein verschiedene GUIs in verschiedenen Übersetzungen. ;)


Domi:"irc hab ich mir viren geholt.. icq hab ich nimmer"

mukk

  • kleiner Tentakel
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
    • Profil anzeigen
Re: GUI-Problem in der Übersetzung
« Antwort #4 am: 06. April 2011, 12:43:24 »
Ja tu ich.

Meinst du in etwa das hier?
Zitat
Gehe zu %s
Go to %s
Schau an %s
Look at %s
Rede mit %s
Talk to %s
Gib !s an %s
Give !s to %s
Gib %s
Give %s

Wenn das so richtig ist, hab ich das alles schon übersetzt. Das Problem is auch nich, dass die Übersetzung fehlt, sondern dass die Aktionen im Spiel nicht ausgeführt werden....plus die falsche Grafik in der Give-Schaltfläche
Each year, vegetarians bully animals,
cheat in relationships, watch porno and cause pollution.
So join the fight now and stop the vegetarians.

Endres

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1264
  • Geschlecht: Männlich
  • En|dres, der
    • ICQ Messenger - 230191486
    • MSN Messenger - enni_puschner@hotmail.de
    • Profil anzeigen
    • e7p.de
    • E-Mail
Re: GUI-Problem in der Übersetzung
« Antwort #5 am: 06. April 2011, 12:49:18 »
Öhm nee, irgendwo müssten die auch noch als Buttondefinitionen sein. Habe gerade leider keinen vernünftigen PC, sonst würde ich eben selbst nachschauen. Die Grafiken werden doch durch eine Liste von Zahlen übersetzt.

Ich gehe mal davon aus dass die Buttons ohne Übersetzung funktionieren.


Domi:"irc hab ich mir viren geholt.. icq hab ich nimmer"

Bòógieman

  • International anerkannter Superheld
  • Globaler Moderator
  • alter Tentakel
  • *****
  • Beiträge: 2675
  • Geschlecht: Männlich
  • Grün Tentakel = Running Sushi!
    • Profil anzeigen
Re: GUI-Problem in der Übersetzung
« Antwort #6 am: 06. April 2011, 12:52:06 »
kann mich erinnern, dass ich exakt dasselbe problem hatte
wenn es bis heute abend nicht gelöst ist, kann ich ja mal in meine sourcen reinschauen, was ich genau gemacht habe, damit das dann ging

EDIT: aber es liegt auf jeden fall an der übersetzung der von Endres erwähnten zeilen
ist irgend ein string der durch leerzeichen getrennt einige zahlen und buchstaben enthält...
eine dieser spalten steht für die gui-grafik die geladen werden soll

EDIT: ok, hier die lösung
suche im global script nach "function AdjustLanguage ()"
die sieht bei mir so aus
function AdjustLanguage (){
  // --- translate yes/no-keys ---
  string yes_no;
  StrCopy (yes_no, GetTranslation ("JjNn"));
  key_u_yes = StrGetCharAt (yes_no, 0);
  key_l_yes = StrGetCharAt (yes_no, 1);
  key_u_no = StrGetCharAt (yes_no, 2);
  key_l_no = StrGetCharAt (yes_no, 3);
  // --- translate GUI action buttons ---
  SetActionButtons (A_GIVE_TO, "a_button_give 5 802 803 Dd");
  SetActionButtons (A_PICK_UP, "a_button_pick_up 2 800 801 Ee");
  SetActionButtons (A_USE,     "a_button_use 1 794 795 Ww");
  SetActionButtons (A_OPEN,    "a_button_open 3 790 791 Aa");
  SetActionButtons (A_LOOK_AT, "a_button_look_at 0 788 789 Qq");
  SetActionButtons (A_PUSH,    "a_button_push 7 798 799 Xx");
  SetActionButtons (A_CLOSE,   "a_button_close 4 796 797 Ss");
  SetActionButtons (A_TALK_TO, "a_button_talk_to 8 804 805 Cc");
  SetActionButtons (A_PULL,    "a_button_pull 6 792 793 Yy");
  // --- load font corresponding to language and screen width ---
  string font_info;
  if (system.screen_width == 320)      StrCopy (font_info, GetTranslation ("font_320: 1  0  0  0  0  0  0  0  0  0  0  0  0  0  0 
3  3  3  3  3  0"));
  else if (system.screen_width == 640) StrCopy (font_info, GetTranslation ("font_640: 13 14 14 14 14 14 14 14 14 14 14 14 14 14 13
13 13 13 13 13 14"));
  clearToSpace (font_info);

  SetSpeechFont (getInteger (font_info));         // Speech
  SetLabelFont (0, 0, getInteger (font_info));    // Status-Line
  SetLabelFont (3, 4, getInteger (font_info));    // Save/Load-GUI Label
  /*
  SetLabelFont (3, 5, getInteger (font_info));    // Save-Button of Save/Load-GUI
  SetLabelFont (3, 6, getInteger (font_info));    // Load-Button of Save/Load-GUI
  SetLabelFont (3, 7, getInteger (font_info));    // Play-Button of Save/Load-GUI
  SetLabelFont (3, 8, getInteger (font_info));    // Quit-Button of Save/Load-GUI
  */
  SetLabelFont (5, 0, getInteger (font_info));    // Pause-GUI Label
  SetLabelFont (6, 0, getInteger (font_info));    // Restore-GUI Label
  /*SetLabelFont (6, 5, getInteger (font_info));    // Cancel-Button of Load-GUI
  */
  SetLabelFont (7, 0, getInteger (font_info));    // Save-GUI Label
  // SetLabelFont (7, 6, getInteger (font_info));    // OK-Button of Save-GUI
  // SetLabelFont (7, 7, getInteger (font_info));    // Cancel-Button of Save-GUI
  SetLabelFont (9, 0, getInteger (font_info));    // Quit-GUI Label
  SetLabelFont (16, 0, getInteger (font_info));   // Restart-GUI Label

}
wobei der block ab "// --- translate GUI action buttons ---" für dich interessant sein drüfte

in meiner translation-datei für englisch sehen die entsprechenden zeilen so aus
a_button_give 5 802 803 Dd
a_button_give 0 1 2 Qq
a_button_pick_up 2 800 801 Ee
a_button_pick_up 1 7 8 Ww
a_button_use 1 794 795 Ww
a_button_use 2 13 14 Ee
a_button_open 3 790 791 Aa
a_button_open 3 3 4 Aa
a_button_look_at 0 788 789 Qq
a_button_look_at 4 9 10 Ss
a_button_push 7 798 799 Xx
a_button_push 5 15 28 Dd
a_button_close 4 796 797 Ss
a_button_close 6 5 6 Zz
a_button_talk_to 8 804 805 Cc
a_button_talk_to 7 11 12 Xx
a_button_pull 6 792 793 Yy
a_button_pull 8 29 30 Cc
« Letzte Änderung: 06. April 2011, 18:55:32 von Bòógieman »
Schlachtaman Vibrations, UHYEAH!!!
_________________________________

>>>> Ende der Kommunikation <<<<

mukk

  • kleiner Tentakel
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
    • Profil anzeigen
Re: GUI-Problem in der Übersetzung
« Antwort #7 am: 06. April 2011, 20:27:57 »
hat leider nich geholfen...

es is auch nich so, dass die Befehle garnicht funktionieren. Rechtsklick auf hotspots oder Gegenstände bringt bspw. den Look at-Befehl, der auch in der Aktionsleiste dann so steht. Bloß das GUI reagiert halt überhaupt nich. Abgesehen von dem falsch zugeordneten Gebe-Befehl ist es noch so, dass bei nem Klick auf ein Verb nix passiert, weder in der Aktionsleiste, noch im Spiel. Was klappt is das highlighten der Verben über die man grad mitm Mauszeiger fährt.

Zitat
function AdjustLanguage (){
  // --- translate yes/no-keys ---
  string yes_no;
  StrCopy (yes_no, GetTranslation ("JjNn"));
  key_u_yes = StrGetCharAt (yes_no, 0);
  key_l_yes = StrGetCharAt (yes_no, 1);
  key_u_no = StrGetCharAt (yes_no, 2);
  key_l_no = StrGetCharAt (yes_no, 3);
  // --- translate GUI action buttons ---
  SetActionButtons (A_GIVE_TO, "a_button_give 5 802 803 Dd");
  SetActionButtons (A_PICK_UP, "a_button_pick_up 2 800 801 Ee");
  SetActionButtons (A_USE,     "a_button_use 1 794 795 Ww");
  SetActionButtons (A_OPEN,    "a_button_open 3 790 791 Aa");
  SetActionButtons (A_LOOK_AT, "a_button_look_at 0 788 789 Qq");
  SetActionButtons (A_PUSH,    "a_button_push 7 798 799 Xx");
  SetActionButtons (A_CLOSE,   "a_button_close 4 796 797 Ss");
  SetActionButtons (A_TALK_TO, "a_button_talk_to 8 804 805 Cc");
  SetActionButtons (A_PULL,    "a_button_pull 6 792 793 Zz");
  // --- load font corresponding to language and screen width ---
  string font_info;
  if (system.screen_width == 320)      StrCopy (font_info, GetTranslation ("font_320: 1  0  0  0  0  0  0  0  0  0  0  0  0  0  3  3  3  3  3  3  0"));
  else if (system.screen_width == 640) StrCopy (font_info, GetTranslation ("font_640: 13 14 14 14 14 14 14 14 14 14 14 14 14 14 13 13 13 13 13 13 14"));
  clearToSpace (font_info);

  SetSpeechFont (getInteger (font_info));         // Speech
  SetLabelFont (0, 0, getInteger (font_info));    // Status-Line
/*  SetLabelFont (3, 4, getInteger (font_info));    // Save/Load-GUI Label
  SetLabelFont (3, 5, getInteger (font_info));    // Save-Button of Save/Load-GUI
  SetLabelFont (3, 6, getInteger (font_info));    // Load-Button of Save/Load-GUI
  SetLabelFont (3, 7, getInteger (font_info));    // Play-Button of Save/Load-GUI
  SetLabelFont (3, 8, getInteger (font_info));    // Quit-Button of Save/Load-GUI
  SetLabelFont (5, 0, getInteger (font_info));    // Pause-GUI Label
  SetLabelFont (6, 0, getInteger (font_info));    // Restore-GUI Label
  SetLabelFont (6, 5, getInteger (font_info));    // Cancel-Button of Load-GUI
  SetLabelFont (7, 0, getInteger (font_info));    // Save-GUI Label
  SetLabelFont (7, 6, getInteger (font_info));    // OK-Button of Save-GUI
  SetLabelFont (7, 7, getInteger (font_info));    // Cancel-Button of Save-GUI
  SetLabelFont (9, 0, getInteger (font_info));    // Quit-GUI Label
  SetLabelFont (16, 0, getInteger (font_info));   // Restart-GUI Label */
}
  

aus dem Script

Zitat
a_button_give 5 802 803 Dd
a_button_give 0 1 2 Qq
a_button_pick_up 2 800 801 Ee
a_button_pick_up 1 7 8 Ww
a_button_use 1 794 795 Ww
a_button_use 2 13 14 Ee
a_button_open 3 790 791 Aa
a_button_open 3 3 4 Aa
a_button_look_at 0 788 789 Qq
a_button_look_at 4 9 10 Ss
a_button_push 7 798 799 Xx
a_button_push 5 15 28 Dd
a_button_close 4 796 797 Ss
a_button_close 6 5 6 Zz
a_button_talk_to 8 804 805 Cc
a_button_talk_to 7 11 12 Xx
a_button_pull 6 792 793 Zz
a_button_pull 8 29 30 Cc
font_320: 1  0  0  0  0  0  0  0  0  0  0  0  0  0  3  3  3  3  3  3  0

font_640: 13 14 14 14 14 14 14 14 14 14 14 14 14 14 13 13 13 13 13 13 14

aus der .trs
« Letzte Änderung: 06. April 2011, 20:38:20 von mukk »
Each year, vegetarians bully animals,
cheat in relationships, watch porno and cause pollution.
So join the fight now and stop the vegetarians.

Endres

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1264
  • Geschlecht: Männlich
  • En|dres, der
    • ICQ Messenger - 230191486
    • MSN Messenger - enni_puschner@hotmail.de
    • Profil anzeigen
    • e7p.de
    • E-Mail
Re: GUI-Problem in der Übersetzung
« Antwort #8 am: 06. April 2011, 22:22:22 »
Dann solltest du mal die Sprites in den entsprechenden Slots (also z.B. sollte 1 und 2 Give sein) überprüfen.

Außerdem weiß ich immernoch nicht ob das GUI denn nun in der deutschen Fassung geht?


Domi:"irc hab ich mir viren geholt.. icq hab ich nimmer"

mukk

  • kleiner Tentakel
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
    • Profil anzeigen
Re: GUI-Problem in der Übersetzung
« Antwort #9 am: 06. April 2011, 22:50:46 »
Dann solltest du mal die Sprites in den entsprechenden Slots (also z.B. sollte 1 und 2 Give sein) überprüfen.

Ja, da stimmt alles. Is ja auch definitv irgendein Wust im Skript, da die Befehle nich ausgeführt werden.

Außerdem weiß ich immernoch nicht ob das GUI denn nun in der deutschen Fassung geht?

Da du davon ausgegangen bist, dass es geht, hab ich dich nich korrigiert da die Annahme richtig war ;)
Each year, vegetarians bully animals,
cheat in relationships, watch porno and cause pollution.
So join the fight now and stop the vegetarians.

Bòógieman

  • International anerkannter Superheld
  • Globaler Moderator
  • alter Tentakel
  • *****
  • Beiträge: 2675
  • Geschlecht: Männlich
  • Grün Tentakel = Running Sushi!
    • Profil anzeigen
Re: GUI-Problem in der Übersetzung
« Antwort #10 am: 06. April 2011, 22:54:42 »
hmm, also bei mir klappt das
das hab ich bei meiner halloween epi DotD so eingebaut und das basiert auf einem uralten starterpack
keine ahnung, was bei dir anders ist als bei mir  ???
hast du evtl. mit den sprite-nummern oder im globalen script herum gespielt?  :cl
Schlachtaman Vibrations, UHYEAH!!!
_________________________________

>>>> Ende der Kommunikation <<<<

mukk

  • kleiner Tentakel
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
    • Profil anzeigen
Re: GUI-Problem in der Übersetzung
« Antwort #11 am: 06. April 2011, 23:18:37 »
Wer weiß was ich vor drei Jahren da mal gemacht hab  :'(

Wäre jemand von euch so nett, da mal ein geübtes Auge drüberschweifen zu lassen?
Each year, vegetarians bully animals,
cheat in relationships, watch porno and cause pollution.
So join the fight now and stop the vegetarians.

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 989
    • Profil anzeigen
Re: GUI-Problem in der Übersetzung
« Antwort #12 am: 08. April 2011, 00:56:48 »
Entferne mal aus den übersetzten Zeilen den Aktionsnamen:

a_button_give 5 802 803 Dd
0 1 2 Qq
a_button_pick_up 2 800 801 Ee
1 7 8 Ww
...

Habs gefunden; bei Bernard's Room sieht die englische Übersetzung so aus (ich habe die originalen Kürzel verwendet):

JjNn
YyNn
a_button_give 5 802 803 Dd
0 1 2 Gg
a_button_pick_up 2 800 801 Ee
1 7 8 Pp
a_button_use 1 794 795 Ww
2 13 14 Uu
a_button_open 3 790 791 Aa
3 3 4 Oo
a_button_look_at 0 788 789 Qq
4 9 10 Ll
a_button_push 7 798 799 Xx
5 15 28 Ss
a_button_close 4 796 797 Ss
6 5 6 Cc
a_button_talk_to 8 804 805 Cc
7 11 12 Tt
a_button_pull 6 792 793 Yy
8 29 30 Xx

Aus irgendeinem Grund wird der übersetzte String anders geparst; bei "a_button_give 0 1 2 Qq" wird "a_button_give" als GUI-Element-ID gelesen, 0 als erste Grafik, 1 als zweite Grafik und 2 als das Kürzel. Das gibt natürlich ein heilloses Durcheinander.

Achja, und bezüglich des ursprünglichen Problems; wäre es nötig, würde man es so machen:

// header
import GUI*maingui;

// Globalscript

GUI*maingui;
export maingui;

// in game_start

  if (IsTranslationAvailable()) maingui = gEnglishMainGUI;
  else maingui = gMainGUI;

// anschalten

  maingui.Visible = true;
« Letzte Änderung: 08. April 2011, 01:02:32 von KhrisMUC »

mukk

  • kleiner Tentakel
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
    • Profil anzeigen
Re: GUI-Problem in der Übersetzung
« Antwort #13 am: 08. April 2011, 15:27:23 »
Jawoll, das wars. Danke dir/euch :)

Is das n AGS-Problem oder n bug im Starterpack?
Each year, vegetarians bully animals,
cheat in relationships, watch porno and cause pollution.
So join the fight now and stop the vegetarians.

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 989
    • Profil anzeigen
Re: GUI-Problem in der Übersetzung
« Antwort #14 am: 08. April 2011, 17:30:06 »
Auf jeden Fall ein bug im Starterpack; ich hab mir die Funktion irgendwann mal angeschaut, aber auf die Schnelle den Fehler nicht finden können. Jedenfalls gehts ja grundsätzlich, man muss nur wissen, wie mans macht.