Sprachauswahl per XML
julian96
- xml
Hallo,
um nicht zu viel zu erklären möchte ich gleich zur Sache kommen:
ich möchte meine Website in mehreren Sprachen angezeigt haben können, ohne alle seiten einzeln zu schreiben und zu übersetzten.
Ich habe bereits mitbekommen, dass solche Sachen mit XML gemacht werden können.
Kann mir irgendjemand helfen?
Wäre euch sehr dankbar..
Julian96
Hallo,
Kann mir irgendjemand helfen?
Wobei eigentlich genau?
Ein Ansatzpunkt wäre z.b. die Texte deiner Homepage in einzelnen XML-Dateien zu speichern, eine Datei pro Sprache und dann auf dem Server mittels geeigneter Programmierung Platzhalter in der HTML-Ausgabe mit den Texten aus der XML Datei zu ersetzen. Dann wäre u.a. noch eine Logik gut um die Sprache zu wechseln. Man kann es natürlich auch komplizierter machen, mit AJAX, z.b..
Cheers, Frank
Lieber julian96,
aha.
Kann mir irgendjemand helfen?
Meine Äußerungen zielen nicht auf eine Lösung Deines Mehrsprachigkeit-Problems. Meine Vorschläge sind in eine andere Richtung gedacht, die aber indirekt mit Deinem eigentlichen Problem zusammenspielen könnten.
Lass mich einmal aus der verlinkten Startseite zitieren:
<body>
<center>
<div id="content_big">
<div id="header">
<a href="index.htm" class="header">Julian Baumüller</a> <span class="header_text">Webdesign and more.</span>
<br />
<br />
<script type="text/javascript" src="http://www.ipcounter.de/count_js.php?u=63030918&color=blue" target="_blank"></script> <!-- AddThis Button BEGIN --> <a class="addthis_button" href="http://addthis.com/bookmark.php?v=250&pub=xa-4ad8c73f3e191fab"><img src="http://s7.addthis.com/static/btn/v2/lg-bookmark-en.gif" border="0" width="125" height="16" style="margin-left: 10px; margin-right: 10px;" alt="Bookmark and Share" style="border:0"/></a> <script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pub=xa-4ad8c73f3e191fab"></script> <!-- AddThis Button END -->
</div>
Es empfiehlt sich, einen sinnvollen oder noch besser Sinn-tragenden (sprich: "semantischen") Code zu verwenden, damit die Dokumentstruktur Deiner Seite einfacher und überschaubarer (und damit logischer) wird. Wenn Du dieses erreicht hast, dann wird es sicherlich später auch einfacher sein, die Inhalte über einen serverseitigen Mechanismus in die vorgesehenen Stellen der Seiten(vorlagen) einzupassen - in der jeweils gewünschten Sprache.
Wenn Dich das Thema semantisches Markup interessiert, dann können wir hier gerne darüber weiter diskutieren. Viele Neulinge hier im Forum kennen das anfangs noch nicht.
Liebe Grüße,
Felix Riesterer.
Hi Julian,
ich möchte meine Website in mehreren Sprachen
angezeigt haben können, ohne alle Seiten einzeln
zu schreiben und zu übersetzten.
Ich wünschte ich hätte gute Nachrichten für dich, aber du wirst
nicht drum rum kommen, dich selber auf deine Vier Buchstaben
zu setzen. Zum schreiben oder zum Self übersetzen. (1)
Automatische Übersetzer (wie Google Translate oder
Babbel Fish) sind auch heute noch nicht gut genug, damit du
diesen die Übersetzung deiner Webseite anvertrauen kannst.
Das Problem ist die Sprache selbst. Sprache ist etwas
lebendiges, verändert sich von Region zu Region; von
Sprecher zu Sprecher, und nimmt nicht zuletzt auch äußere
Einflüsse auf. Die Sprache selbst ist zu vielfältig um von
einem Computer erfasst zu werden.
Es gibt 2 Ansätze. Die Lexikalische- und die Kontextbezogene-
übersetzung. Lexikalisch bedeutet, es wird Wort für Wort
übersetzt. Dies ist dass Verfahren welches die meisten
Online-Übersetzungsprogramme verwenden.
Da tauchen oftmals viele Fehler auf. Beispielsweise, der
Name der Stadt Oberhausen, wurde lange Zeit nicht als Name
erkannt und als "Upper Living" übersetzt. Oder die Stadt Halle,
was ist gemeint? Der Widerhall, die Sporthalle, die Stadt.
Kontextbezogen bedeutet nun dass, solche Überlegungen mit
einbezogen werden. Was es letztendlich ist, ergibt sich aus
dem vorhergehendem Text.
(1) Ja dieser Teil ist mit Absicht so schrecklich
geschrieben. ;)
Ich möchte damit das Problem der Umgangssprache
verdeutlichen.
gruesse aus'm ruhrpott
jens mueller
Hi Julian,
Ich wünschte ich hätte gute Nachrichten für dich, aber du wirst
nicht drum rum kommen, dich selber auf deine Vier Buchstaben
zu setzen. Zum schreiben oder zum Self übersetzen. (1)
Ich hab mal diesen Abschnitt durch Babbel Fish und Google
Translate gejagt.
Deutsch zu English Babbel Fish:
I wished I would have good messages for you, but
you will not come rum to set you on your four letters.
To write or to the Self translate. (1)
English zu Deutsch Babbel Fish:
Ich wünschte, dass ich gute Mitteilungen für Sie
haben würde, aber Sie nicht der Rum kommen, zum
Sie auf Ihren vier Briefen einzustellen. Um oder zu
schreiben dem Selbst übersetzen Sie. (1)
Deutsch zu English Google Translate:
I wish I had good news for you, but you will
drum does not come around, yourself on your four letters
to share. To write or translate the Self. (1)
English zu Deutsch Babbel Fish
Ich wünschte ich hätte gute Nachrichten für dich, aber
du wirst nicht drum rum kommen, dich selber auf deine
Vier Buchstaben zu setzen. Zum schreiben oder zum
Selbst übersetzen. (1)
Oho, Google lernt Automatisch aus vorherigen Übersetzungen.
Beispiel 2, Stadt Halle Westfalen (Deutsch zu English Babbel Fish:)
Resounds (Westphalia) (officially: Resounds (Westf.))
a city is in North Rhine-Westphalia and is appropriate
for about 15 km to the west of [give-pray Nich].
Resounds (Westfalen) (offiziell: Resounds (Westf.))
eine Stadt ist im Nordrhein-Westfalen und ist für
ungefähr 15 Kilometer zu westlich von [Gibbet Nich]
angebracht
gruesse aus'm ruhrpott
jens mueller
Hi,
ich möchte meine Website in mehreren Sprachen angezeigt haben können, ohne alle seiten einzeln zu schreiben und zu übersetzten.
warum sollte Dir xml die Notwendigkeit ersparen, Texte zu übersetzen?
Ansonsten gibts zahlreiche Verfahren zur Internationalisierung, aber für kleine Sites reicht möglicherweise einfach ein:
$mytxt["de"]["foobar"] = "ich liebe foobar";
$mytxt["en"]["foobar"] = "i love foobar";
Ansonsten wüsste ich jetzt nicht, welche Vorteile xml als Format gegenüber z.B gettext oder i18n hätte...
Gruesse, Joachim
Moin!
Ich habs mit einer Datenbank so gemacht:
Konsequent in UTF-8 kodieren (wegen der klingonischen Schriftzeichen), mit Templates arbeiten, dafür einen eigenen Tag "<translate>Toller Text</translate>" erfinden.
Sprache auf die Dir genehme Weise heraussuchen, am besten Global (in Session?) speichern.
Nach dem Einlesen des Templates den mit ereg_replace gefundenen String an Funktion MeinTranslater(str) übergeben.
Ist Zielsprache=Ausgangssprache wird der String einfach zurückgegeben und der Prozessor erhält ein logisches "F R E U". Falls nicht:
Man eine Datentabelle (in Datenbanksoftware eines beliebigen Herstellers) ab.
Gibt es eine leere Rückgabe: Den string "as is" zurückgeben, denn der Übersetzer war noch nicht fleißig genug. Folge: Text erscheint auf der Webseite in der Ausgangssprache...
Gibt es gar keine Rückgabe: den "Urtext" in die Spalte (Beispiel) "de" eintragen, den string "as is" zurückgeben.
Gibt es eine Rückgabe ("select en
as ret
from translatings
where de
='str' limit 1" hat ein Resultat) darf die Funktion sich freuen und diese zurückgeben.
Jetzt brauchst Du nur noch ein kleines Online-Tool um den Datentabelleninhalt zu verwalten, möglichst mit Rechteverwaltung für die verschiedenen Übersetzer.
ALTERNATIVE
Arbeite mit verschiedenen Templates: (seite.en, seite.fr, seite.es ...) Da hast Du dann auch genug XML :)
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix