Windapple's Translatetool

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Windapple's Translatetool

      Hier will ich das Langtool von Windapple beschreiben.
      :deal:Ich gebe keine Garantie ob das die Effizientesten Methoden sind :bg:

      Wir öffnen die Datei "LanguagePack.gml" mit den Editor:

      GML-Quellcode

      1. #define ls_count
      2. /*
      3. argument0 = Stringrumpf, der gezählt werden soll
      4. Zählt die Anzahl von Strings mit einem bestimmten Prfäfix. Sehr nützlich, wenn die Übersetzungen
      5. verschiedene Anzahlen von "Textboxen" für eine vorgegebene Nachricht benötigen.
      6. */
      7. var i;
      8. i=1;
      9. while ds_map_exists(global.langpack1223,argument0+'_'+string(i))
      10. i+=1;
      11. return i-1;
      12. #define lsg
      13. /*
      14. Skript Langstring_get, benutze es um den Text einer Sprache zu bekommen.
      15. argument0 = Schlüssel des gewünschten Strings
      16. Gibt den Sprachtext zurück.
      17. */
      18. return ds_map_find_value(global.langpack1223,argument0);
      19. #define lp_load
      20. /*
      21. argument0 = einzulesendes Sprachpaket (string)
      22. Dieses Skript liest eine Sprachdatei in eine Map im Speicher ein.
      23. */
      24. var file_id, tmp_string, div_pos;
      25. file_id=file_text_open_read(argument0);
      26. global.langpack1223=ds_map_create();
      27. file_text_readln(file_id);
      28. while (!file_text_eof(file_id)) {
      29. tmp_string=file_text_read_string(file_id);
      30. if (tmp_string!='') {
      31. div_pos=string_pos('=',tmp_string);
      32. ds_map_add(global.langpack1223,string_copy(tmp_string,1,div_pos-1),string_copy(tmp_string,div_pos+1,string_length(tmp_string)-div_pos));}
      33. file_text_readln(file_id);
      34. }
      35. file_text_close(file_id);
      Alles anzeigen

      Diese zerstückeln wir in diese 3 Scripte:
      1. scr_lang_zaelen

      GML-Quellcode

      1. /*
      2. argument0 = Stringrumpf, der gezählt werden soll
      3. Zählt die Anzahl von Strings mit einem bestimmten Prfäfix. Sehr nützlich, wenn die Übersetzungen
      4. verschiedene Anzahlen von "Textboxen" für eine vorgegebene Nachricht benötigen.
      5. */
      6. var i;
      7. i=1;
      8. while ds_map_exists(global.langpack1223,argument0+'_'+string(i))
      9. i+=1;
      10. return i-1;
      Alles anzeigen

      2. scr_lang

      GML-Quellcode

      1. /*
      2. Skript Langstring_get, benutze es um den Text einer Sprache zu bekommen.
      3. argument0 = Schlüssel des gewünschten Strings
      4. Gibt den Sprachtext zurück.
      5. */
      6. return ds_map_find_value(global.langpack1223,argument0);

      3. scr_lang_fopen

      GML-Quellcode

      1. /*
      2. argument0 = einzulesendes Sprachpaket (string)
      3. Dieses Skript liest eine Sprachdatei in eine Map im Speicher ein.
      4. */
      5. var file_id, tmp_string, div_pos;
      6. file_id=file_text_open_read(argument0);
      7. global.langpack1223=ds_map_create();
      8. file_text_readln(file_id);
      9. while (!file_text_eof(file_id)) {
      10. tmp_string=file_text_read_string(file_id);
      11. if (tmp_string!='') {
      12. div_pos=string_pos('=',tmp_string);
      13. ds_map_add(global.langpack1223,string_copy(tmp_string,1,div_pos-1),string_copy(tmp_string,div_pos+1,string_length(tmp_string)-div_pos));}
      14. file_text_readln(file_id);
      15. }
      16. file_text_close(file_id);
      Alles anzeigen

      Diese 3 Skripe kommen gleich in unser Spiel.
      ---------------------------------------------------------------------------------------------------
      Jetzt öffnen wir die *.exe Datei.
      Dort auf "Datei -> Neu Erstellen".
      In diesem bekannten Fenster Speicherort, Dateiname und co. eingeben.

      Jetzt gebt ihr bei Schlüssel den Variablenname ein, und bei Wert den Text (alles noch auf Deutsch). Dann auf hinzufügen.
      Bei mir sieht das in etwa so aus:
      (schlüssel = wert)

      Quellcode

      1. start=Start
      2. score=Score
      3. score_online=Score - Online
      4. beenden=Beenden
      5. f1_hilfe=F1 - Hilfe
      6. score:=Score:
      7. muenzen:=Münzen:
      8. level:=Level:
      9. leben:=Leben:

      Sooo, jetzt klicht ihr auf "Datei -> Speichern" und dann "Übersetzung -> Neu erstellen"
      Alle fett gedruckten Schlüssel sind noch nicht übersetzt.
      Jetzt klickt ihr Schlüssel für Schlüssel durch und schreibt in das Feld "Übersetzter Wert" z. B. die englischen Worte hin.
      Wieder: "Übersetzung -> Speichern".
      -----------------------------------------------------------------------
      Ab ins Spiel, vergewissere dich das Spiel und Übersetzungsdatein im selben Ordner liegen.

      Im system/controller/was_auch_immer - Objekt kommt ins Create event:

      GML-Quellcode

      1. script_execute(scr_lang_fopen,"DATEINAME");

      Ob man die Englische oder die Deutsche Datei braucht kann man mit z.B. einer Abfrage als String in einer Variable weitergeben...
      und sonst wird aus:

      GML-Quellcode

      1. draw_text(50,50,TEXT1); //Text schreiben
      2. draw_text(50,100,TEXT7); //...
      3. /* u.s.w. */

      das:

      GML-Quellcode

      1. draw_text(50,50,script_execute(scr_lang,"SCHLÜSSELNAME FÜR TEXT 1")); //Text schreiben
      2. draw_text(50,100,script_execute(scr_lang,"SCHLÜSSELNAME FÜR TEXT 7")); //...
      3. /* u.s.w. */


      Ein gutes Verwendungsbeispiel ist "Shoot and Cash".
      Ich gebs zu, Masterchief ist nicht besser