4.4k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Hallo - ich bin neu :-) neu hier im Forum und neu im Thema Javascript. Ich brauche aber Hilfe - zu einem Thema wo es schon hunderte Beiträge gibt, mit denen ich aber nicht klar komme.

Ich habe ein Dropdown (alles stark reduziert) - wo ich das Ergebnis der Auswahl (value) in das unten (ganz unten) stehende <script> übernehmen möchte.

<script language="javascript">
function doSelect()
{
var selection = document.getElementById("mmoid");
var textfeld = document.getElementById("mmotxt");
textfeld.value = selection.value;
}
</script>

<select id="mmoid" onChange="doSelect()">
<option value="">SELECT LANGUAGE .</option>
<option value="en">English</option>
<option value="de">German</option>
</select>

Das Ergebnis der vorstehenden Auswahl (ohne Button oder ähnliches) soll in folgendes Script übernommen werden:

<script src="//translate.js?cb=section&hl=HIERHER"></script>

Danke im Voraus. Grüsse aus dem wilden Süden.

18 Antworten

0 Punkte
Beantwortet von
guten morgen MixMax ;-)

die "vollständige Übersetzung" will ich nicht - eben nur die einzelnen Forenbeiträge. Das Google Script kannte ich schon - aber ich bin jetzt nicht ne Woche vor dem blöden PC gesessen um diesen Weg zu nehmen .....


Ich habe Dein Script getestet - local auf nem Apache Server - unter IE und FF ausserdem in einem HTML editor und zum Schluss noch im Forum - nix läuft.

Wenn ich aber http://ro.shacknet.nu/test/ aufrufe, dann sehe ich wie Dein Script einwandfrei funktioniert. Genauso hätte ich es gerne ;-)

Ich gehe jetzt mal ne runde schlafen und schaue mir später nochmal alles in Ruhe an. Jedenfalls möchte ich mich nochmals herzlichst bei Dir bedanken.

Viele Grüsse, Christian
0 Punkte
Beantwortet von
irgendwie hängt das Problem mit fogendem Eintrag zusammen:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

Das steht bei mir im Header - wenn ich es lösche (was ich leider nicht kann, weil sonst vieles andere nicht mehr arbeitet) dann funktioniert Dein Script .... wenn ich es stehen lasse, dann gibt FF Fehler aus und IE hat ein Problem ....

Grüsse
0 Punkte
Beantwortet von mixmax Experte (2.2k Punkte)
Welche Serverseitige Sprache steckt dahinter? dann kann man das sicher lösen das immer automatisch der Scripttag eingesetzt wird, ohne das ein Javascript den ins dokument reinschreiben muss (was das problem sein wird)

bei PHP:
<script>
<!--
function googleSectionalElementInit() {
new google.translate.SectionalElement({pageLanguage: 'auto',sectionalNodeClassName: 'goog-trans-section',
controlNodeClassName: 'goog-trans-control',background: '#212144'}, 'google_sectional_element');
}
function doSelect(auswahl) { // Beim wechsel der Sprache wird nun über die Adresszeile die Seite neu aufgerufen.
NewGetVars = "?";
var args = document.location.search.substr(1).split('&');
for (ai=0;ai<args.length;ai++) {
var Arg = args[ai].split('=');
if (Arg.length == 2) {
if (Arg[0]!='hl') {
if (NewGetVars.length > 1)
NewGetVars += "&";
NewGetVars += args[ai];
}
}
else {
if (NewGetVars.length > 1)
NewGetVars += "&";
NewGetVars += args[ai];
}
}
if (NewGetVars.length > 1)
NewGetVars += "&";
document.location.search = NewGetVars+'hl='+auswahl.value;
}
//-->
</script>
<?php

if (isset($_GET['hl'])) {
$Sprache = $_GET['hl'];
}
else {
$Sprache = 'en';
}
$Sprachen = array(
'en' => 'Englisch',
'de' => 'German',
'ro' => 'Romania',
'cs' => 'Czech'
);

?><select id="LangSelector" onChange="doSelect(this)"><?php
foreach ($Sprachen as $key => $value) {
echo "<option value=\"$key\"".str_repeat(' selected', $key==$Sprache).">$value</option>";
}
?></select>
<script src="//translate.google.com/translate_a/element.js?cb=googleSectionalElementInit&ug=section&hl=<?php echo $Sprache; ?>"></script>
<div class="goog-trans-section">
<div class="goog-trans-control">
</div>
"das ist de Text der übersetzt werden soll".
</div>

<div class="goog-trans-section">
<div class="goog-trans-control">
</div>
"Dieser Text soll auch übersetzt werden".
</div>
0 Punkte
Beantwortet von
Hallo MixMax,

eigentlich ist die Seite in AJAX aufgebaut. Ändern kann ich nicht viel - ausser im Forum - allerdings werden auf der Forum-Seite andere Seiten included. Ich habe jedoch festgestellt, wenn ein Script in folgendem HTML Editor (einfach unter File - New HTML Page öffnen) läuft:

CoffeeCup HTML Editor (www.coffeecup.com)

dann funktioniert es auch mit dem vorhandenen Programm (Script).

Alternativ beseht noch die Möglichkeit, dass wir die Übersetzung in einem "neuen" Fenster öffnen - in dem Fall muss der Inhalt der Variable {news_xbody} übernommen werden - denn da steht der zu übersetzende Text drin.

Ich habe schon ein schlechtes Gewissen, wenn ich sehe wie viel Zeit und Arbeit Du in dieses Projekt steckts. Ich danke Dir jedenfalls.

Viele Grüsse aus dem wilden Süden ;-)
0 Punkte
Beantwortet von
Nachtrag:

den CoffeeCup gibt es in einer free Version (kostenlos) mit der ich arbeite. Wenn ich Dein letztes Script dort aufrufe, bekomme ich folgende Ausgabe:

'Englisch', 'de' => 'German', 'ro' => 'Romania', 'cs' => 'Czech' ); ?> $value) { echo "$value"; } ?>
"das ist de Text der übersetzt werden soll".
"Dieser Text soll auch übersetzt werden".
0 Punkte
Beantwortet von mixmax Experte (2.2k Punkte)
wenns kein php ist dann wirft dir die seite den php-quelltext aus...

vergleiche meine testseite den quelltext mit dem script, den php-teil siehst du nicht wenn das von php auch durchgeführt wird.

wie siehts aus mit dem script für die übersetzung der ganzen Seite (antwort 10) - das ist zuverlässiger und einfacher einzubauen
0 Punkte
Beantwortet von
die "vollständige Übersetzung" will ich nicht. Ich kenne das Google Script. Die Seite ist schon mehrsprachig - wenn dann noch ne "bescheidene" Google Übersetzung dazu kommt, dann wirds komisch. Daher sollten eben nur die einzelnen Forenbeiträge noch in die gewünschte Sprache übersetzt werden. Ausserdem bin ich jetzt nicht ne Woche vor dem blöden PC gesessen um diesen Weg zu nehmen ..... irgendwie werde ich das schon hin bekommen ... auch wenns halt noch ne Woche dauert ... ;-)

Mit Hilfe von CoffeeCup kannst Du leicht feststellen was bei mir funktioniert und was nicht. Ich werde mir Dein Script heute Abend nochmals in aller Ruhe anschauen und ausprobieren.

Geht nicht - gibts nicht - hat man mir immer gesagt :-))

Danke und liebe Grüsse
0 Punkte
Beantwortet von
MixMax - ich habs .... mit Deinem letzten Script hast Du mich auf die Lösung gebracht - schreib das value (z.B. "en" für Englisch) aus dem select in eine {variable} und setzt diese im Google-String ".... section&hl={variable}"></script>" einfach an besagte Stelle und schon funktioniert das .... nicht schön - aber selten und vor allem zweckmässig. Funktioniert in allen Browser.

DANKE nochmals für Deine tolle Arbeit, Deine Zeit und Deine Mühe.

Schönes Wochenende und liebe Grüsse, Christian
...