Umlaute

Parameter

( _text )

Name Typ Beschreibung
_text String, Table Input an die Funktion

Functionscode

Muss sich sowohl im lokalen als auch im globalen Skript befinden

function Umlaute(_text)
    local texttype = type(_text);
    if texttype == "string" then
        _text = string.gsub( _text, "ä", "\195\164" );
        _text = string.gsub( _text, "ö", "\195\182" );
        _text = string.gsub( _text, "ü", "\195\188" );
        _text = string.gsub( _text, "ß", "\195\159" );
        _text = string.gsub( _text, "Ä", "\195\132" );
        _text = string.gsub( _text, "Ö", "\195\150" );
        _text = string.gsub( _text, "Ü", "\195\156" );
        return _text;
    elseif texttype == "table" then
        for k, v in pairs(_text) do
        _text[k] = Umlaute( v );
        end
        return _text;
    else 
        return _text;
    end
end

Rückgabewerte

Input mit geänderten Zeichen

Beschreibung

Kurzbeschreibung

global ✔

lokal ✔

by Unbeakannt

Das Spiel hat ein Problem mit Umlauten. Sie werden leider nicht dagestellt, weil die Sprache des Skriptes Englisch ist. Und im Englischen gibt es keine Umlaute. Um das Problem zu beheben gibt es Sonderzeichen, die innerhalb eines Strings den Umlaut darstellbar machen.

ä: ä
ö: ö
ü: ü
ß: SS
Ä: Ä
Ö: Ã-
Ü: Ãœ

Des weiteren können Umlaute auch durch Zahlen dargestellt werden:

ä: \195\164
ö: \195\182
ü: \195\188
ß: \195\159
Ä: \195\132
Ö: \195\150
Ü: \195\156

Da das Kopieren bzw. Schreiben der Ersatzzeichen umständlich ist, wurde eine Funktion verfasst, die dies automatisch tut. Einige Skripterweiterungen liefern sie bereits mit. Wenn sie schon vorhanden ist, muss sie nicht noch mal separat kopiert werden.

Beispiel

Um einen String zu konvertieren muss dieser zuerst durch die Umlautefunktion durchlaufen. Sie gibt den "gesäuberten" String an die eigentliche Funktion zurück.

Logic.DEBUG_AddNote( Umlaute("Die Sache mit den Umlauten ist nun geklärt!") )

Demo-Map

<nicht vorhanden>

Zurück zu Funktionssammlungen | Drucken | Tags
Sofern nicht anders angegeben, steht der Inhalt dieser Seite unter Lizenz Creative Commons Attribution-ShareAlike 3.0 License