• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Wörter in Webseite "On the fly" übersetzen ?

noxx2

Neues Mitglied
Hallo

für die Auswertung einer Wetterstation benutze ich eine Software (wview)
die mir eine *htm Seite aus einer Vorlage erstellt. Nun trägt dieser Generator
einige Werte in englischer Bezeichung in die generierte *htm Seite ein, zb CALM
für Windstille. Das lässt sich leider nur ändern, wenn man den ganzen Quellcode
der Software anpasst.

Nun meine Frage: Kann man das irgendwie übersetzen lassen?

Die Vorlage sieht in etwas so aus:
HTML:
 <tr>
  <td>Wind</td>
  <td><!--windBeaufortScale--></td>
 </tr>

Die *htm Seite würde dann so aussehen:
HTML:
<tr>
  <td>Wind</td>
  <td>Calm</td>
 </tr>

Der Übersetzer sollte nun Calm austauschen gegen Windstille.
 
Der Google Translator ermöglicht Übersetzungen von ganzen Seiten. Speichern musst Du sie dann aber selbst.
 
über google möchte ich das nicht. das übersetzung soll sich am besten auch nur
auf bestimmte zellen einer tabelle konzentrieren.

CALM -> Windstille
E -> O (Windrichtung)

Gibts nicht sowas wie ne if-Abfrage?

If ZELLE = CALM THEN ZELLE = Windstille
 
Ja, das ginge z.B. mit JavaScript.

- Die Tabellenzellen erhalten IDs, damit sie sich einfacher ansprechen lassen.
- Bau ein zweidimensionales (oder zwei eindimensionale, wenn das für dich einfacher ist) Array. Auf der ersten Ebene stehen die englischen Begriffe und auf der zweiten deren Übersetzung.
- Schreibe eine Funktion, welche die IDs parst. Ich würde sie durch eine for Schleife schieben, ihren Inhalt mit den Begriffen der ersten Ebene vergleichen und bei einem Treffer durch das jeweilige Pendant auf der zweiten Ebene austauschen.

Sofern du nicht serverseitig (htm Dateien) arbeiten kannst/willst, müssen sämtliche Begriffe direkt in den Quellcode geschrieben werden.
 
Gerade festgestellt, dass mehrdimensionale Arrays in JS mehr Schreibaufwand als in PHP bedeuten. Deshalb nachfolgend ein Beispiel mit zwei eindimensionalen Arrays. Dabei müssen die Positionen der englischen Begriffe mit ihren deutschen Übersetzungen korrespondieren. Auf IDs habe hier verzichtet und frage statt dessen alle <td> Elemente von #weather ab.

HTML:
<!DOCTYPE html>
<html>
<head>
<title>Wetter</title>
<meta charset="utf-8" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
</head>
<body>
    <table id="weather">
        <tr>
            <th>Wetter</th>
        </tr>
        <tr>
            <td>Zelle 1</td>
        </tr>
        <tr>
            <td>Zelle 2</td>
        </tr>
        <tr>
            <td>calm</td>
        </tr>
        <tr>
            <td>Zelle 4</td>
        </tr>
        <tr>
            <td>silent</td>
        </tr>
    </table>
    
    <script>
        function replaceTerms() {
            var match = ['calm', 'silent', 'quiet'];
            var replace = ['ruhig', 'leise', 'schweigsam'];
            $('#weather td').each(function() {
                for(i = 0; i < match.length; i++) {
                    if( $(this).html() == match[i] ) {
                        $(this).replaceWith(replace[i]);
                    }
                };
            })
        };
    
        replaceTerms();
    </script>
</body>
</html>
 
ich werde das gleich mal testen, danke.

wie würde das denn mit den ID's gehen. würde gerne aus
einem E ein O machen (oder zb SE ein SO....)

Danke
 
ich werde das gleich mal testen, danke.

wie würde das denn mit den ID's gehen. würde gerne aus
einem E ein O machen (oder zb SE ein SO....)

Danke

Dafür muss das each() durch eine weitere Schleife ersetzt werden, welche über die einzelnen IDs iteriert.

Mein Ansatz ging dahin, das innerHTML eines Elements auszutauschen. Willst du hingegen nur einzelne Buchstaben ersetzen, müsstest du wohl mit Regular Expressions arbeiten. Wenn bei SE aus dem E ein O werden, und bei East das E und der nachfolgende Buchstabe durch W ersetzt werden soll, gestaltet sich das Ganze schon komplexer. ^^
 
Zurück
Oben