julian96: Sprachauswahl per 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

  1. 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

  2. Lieber julian96,

    meine Website

    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&uuml;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&amp;color=blue" target="_blank"></script>               <!-- AddThis Button BEGIN -->  <a class="addthis_button" href="http://addthis.com/bookmark.php?v=250&amp;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.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  3. 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

    --
    As long as a single mind remembers, as long as a single heart
    beats with passion, how can a dream die?
    \//_ Live long and prosper
    sh:( fo:) ch:| rl:° br:^ n4:| ie:% mo:| va:} de:> zu:) fl:( ss:) ls:> js:|
    1. 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

      --
      As long as a single mind remembers, as long as a single heart
      beats with passion, how can a dream die?
      \//_ Live long and prosper
      sh:( fo:) ch:| rl:° br:^ n4:| ie:% mo:| va:} de:> zu:) fl:( ss:) ls:> js:|
  4. 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

    --
    Am Ende wird alles gut.
    1. 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

      --
      Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development