Sprachmodul
Übersicht BlitzMax, BlitzMax NG Codearchiv & Module
PhillipKBetreff: Sprachmodul |
Do, Jan 10, 2013 2:53 Antworten mit Zitat |
|
---|---|---|
Huhu!
Ich habe grade beim einbauen eines features etwas zu weit ausgeholt und heraus kam ein TLanguage type, welches einem ermöglicht, sprachdateien zu laden und einen string zu parsen. Die anwendung ist simpel: Code: [AUSKLAPPEN] TLanguage.LoadLanguage(file:String) - lädt eine Sprachdatei. Die Sprach-TMap wird immer geleert, sollte man eine datei laden. Anmerkungen hierzu im Code, Rem block.
TLanguage.LoadSpecial(file:String) - lädt spezielle strings. Die Specialliste wird nicht geleert. TLanguage.SetKeyword(key:string,value:String) - setzt ein keyword (zb wird FIRE mit Leertaste assoziiert. TLanguage.Get:String(key:String) - holt den assoziierten Wert aus den TMaps oder returnt "$"+key, um einen fehler aufzuzeigen. TLanguage.Translate:String(line:String, indikator:string = "$") - parset einen String. Indikator diehnt als "einleitung" für zu übersetzende objekte. Wird ein indikatorzeichen gefunden, ist das hintenanstehende wort ein Keyword, welches ersetzt wird. Geteilt ist das ganze in 2 tmaps, um einmal "spezielle" keywords zu haben, die man ingame schnell austauscht. Als beispiel: Man hat eine Tastenbelegung über optionen und möchte im tutorial immer den aktuellen Feuer-knopf anzeigen. Der tutorial text sagt zb aus: "Drücke $FIRE um zu schießen." Ändert man nun die Tastenbelegung, kann man TLanguage.SetKeyword("FIRE", NewKey()) setzen - als beispiel "Leertaste". Hier der Code, klein handlich und unscheinbar. dennoch brauchbar: BlitzMax: [AUSKLAPPEN] SuperStrict |
||
Übersicht BlitzMax, BlitzMax NG Codearchiv & Module
Powered by phpBB © 2001 - 2006, phpBB Group