Übersetzer - wie?

do it

Mitglied
Hi Leute,
ich brauche für eine Hp einen Übersetzer
der in etwa so funktioniert:

a=Wort1
b=wort2
c=wort3

Ich kenne mich minimal mit js aus und deshalb bitte ich euch mich ein wenig dabei zu unterstützen und mir vielleicht die ansätze für dieses Script erklären/postan könntet..

Vielen dank im vorraus,
mfg do it
 
Mhm, etwas mehr Informationen wären nett:

Wo erfolgt die Eingabe (a,b,c)?

Wo/wie erfolgt die Ausgabe (Wort1,wort2,wort3)?
 
thx für deine zeit.

Also, die Eingabe sollte über ein
Eingabefeld erfolgen, die Ausgabe dann in einem neuen fenster mit document.write .
Im Prinizp:
*****
*bca* = wort2 wort3 wort1
*****

Also jeden einzelnen Buchstaben in ein Wort übersetzen
 
Ich glaube ich beschreib dir mal genau was ich mir gedacht habe

Ich möchte Wörter in Runennamen
übersetzen.

wenn ich jetzt also ein Wort habe wie
Hallo
sollte es übersetzt heissen
Hur Am Lor Lor Ort

Hier nur zur Info die Buchstaben des Alphabets und daneben die Namen derer im Runenalphabet:
A An
B Bet
C Corp
D Des
E Ex
F Flam
G Grav
H Hur
I In
J Jux
K Kal
L Lor
M Mani
N Nox
O Ort
P Por
Q Quas
R Rel
S Sanct
T Tym
U Uus
V Vas
W Wis
X Xen
Y Ylem
Z Zan
 
Achso...mhm....

Sollte auch realisierbar sein, jedoch wird das um einiges komplizierter, es sei den, man würde mit 26 Eingabefeldern arbeiten, oder den "User" bitten die einzelnen Buchstaben duirch ein eindeutiges Zeichen, z.B. "#" zu trennen...

Wobei das oder um einiges leichter wäre...

Für das vor dem "oder" habe ich überhaupt noch keine Idee, aber ich werde mal einwenig tüfteln...
 
Hallo,

hattest du dir das so vorgestellt...
PHP:
<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
function translate(){
    var runen = new Array( "An","Bet","Corp","Des","Ex","Flam","Grav","Hur","In",
    "Jux","Kal","Lor","Mani","Nox","Ort","Por","Quas","Rel","Sanct","Tym","Uus",
    "Vas","Wis","Xen","Ylem","Zan");

    var text = document.Testformular.Eingabe.value;
    var x = text.length;
    var i = 0;
    var output ="";
    var r_char;
    var popup;
    var sec=0;
    
    text = document.Testformular.Eingabe.value.toLowerCase();
    
    for(i;i<x;i++){
        if((text.charCodeAt(i)<97)||(text.charCodeAt(i)>122)){
            alert("Bitte keine Zahlen oder Sonderzeichen eingeben!");
            sec=1;
            document.Testformular.Eingabe.value = "";
            break;   
        }
        else{
            r_char = text.charCodeAt(i)-97;
            output +=" "+runen[r_char];
        }
    }
    
    if(sec==0)
    {
        popup = open("", "", "width=300,height=100,status=no,toolbar=no,menubar=no");
        with(popup.document){
            open();
            write("<html><head><title></title></head><body>");
            write(text+" in Runennamen ="+output);
            write("</body></html>");
            close();
        }
    }  
}

//-->
</script>
</head>
<body>
<form name="Testformular">
Namen eingeben: <input name="Eingabe" type="text">
<input type="button" value="Übersetzen" onClick="translate()">
</form>
</body>
</html>

ciao

ps: Beispiel.txt in Beispiel.html umbenennen
 

Anhänge

  • beispiel.txt
    1,5 KB · Aufrufe: 38
Schön gelöst, ich fragte mich die ganze Zeit, wie ich es schaffen soll das Wort in einzelne Buchstaben zu trennen...

Habs auch jetzt in deinem Script noch nicht verstanden, aber das bekomme ich raus....
 
Habs auch jetzt in deinem Script noch nicht verstanden, aber das bekomme ich raus....

Ok, wenn selbst du probleme hast es auf anhieb zu verstehen dann sollte ich es vielleicht doch genauer erklären :).

Als ersten Schritt konvertiere ich den String in Kleinbuchstaben (toLowerCase();). In der Variablen X speichere ich die Länge des Textes. Den Text gehe ich dann Zeichen für Zeichen durch (mit der for-Schleife). Die Methode charCodeAt(i) liefert mir den jeweiligen Zahlenwert des Zeichens zurück (im Latin-1 Zeichensatz). Das kleine "a" hat den Wert 97. In dem Array am Anfang habe ich das Runenalphabet festgelegt - das Runen-A ist logischerweise an Stelle 0. Von dem Wert, den ich von charCodeAt(i) bekomme, ziehe ich also 97 ab - damit bekomm ich automatisch den richtigen Position im Array. Der Rest ist eigentlich nur noch Ausgabe... Mit if((text.charCodeAt(i)<97)||(text.charCodeAt(i)>122)) Überprüfe ich noch ob sich der Übergebene Wert zwischen "a -> 97" und "z -> 122" liegt - somit schließe ich Sonderzeichen und Zahlen aus (leider auch Leerschritte, was mir jetzt erst auffällt - das kann man aber bei Bedarf leicht ändern...)

Hoffe es ist jetzt etwas klarer...


ciao
 

Neue Beiträge

Zurück