Frage

Lassen Sie uns sagen ich eine Website bin der Gestaltung, wo wir Englisch, Französisch, Spanisch, Deutsch und Korea (Ich bin nicht, sondern lässt so tun, als ich bin).

Ich kann nicht auf Dienste angewiesen wie Google übersetzen, wie die Art der Website nicht für Unterhaltung, aber Geschäft ist. Können sagen, ich Zugang zu professionellen Übersetzern, die mir etwas in Zusammenhang zu einer anderen Sprache und geben diesen Text übersetzen können.

Was sind einige bekannte und einfache Möglichkeiten, Inhalte über mehrere Sprachen mit einer Website zu dienen?

Es gibt viele Möglichkeiten, wie einzelne Seiten, eine Datenbank, und so weiter ... aber ich kann nicht wirklich entscheiden, was am besten ist, wie das Konzept würde skaliert, was in Betracht gezogen werden muss, und wie zu behandeln fehlende Übersetzungen?

Gibt es gut etablierte Praktiken für das?

War es hilfreich?

Lösung

Das breite Thema, über das Sie fragen wird „Internationalisierung und Lokalisierung“ genannt (oder L18N und L10N kurz). Die wichtige Sache zu erinnern ist, dass es nicht nur um Nachrichten zu übersetzen. Es gibt viele andere Dinge, die eine Website gehen in internationalisieren.

Die offensichtlichen Dinge, die Sie benötigen, sind:

  • Ein Zeichen codiert, dass Werke für Zeichen in allen Sprachen, nicht nur Englisch (dies bedeutet, alles bis auf die Datenbank sollten UTF-Kodierung)
  • Einige Art und Weise der Locale (dh: Javas Locale Klasse)
  • Ein gemeinsames Muster zur Herstellung einer Nachricht in einem Gebietsschema des Benutzers (dh: Spring Message

Andere Dinge müssen Sie berücksichtigen:

  • Richtig Strings basierend auf Locale Sortierung
  • Formatierungsdatum basierend auf locale
  • Immer zeigt mal in der Zeitzone des Benutzers
  • Es werden Abstandsmessungen für das Gebietsschema des Benutzers (dh: Miles im Vergleich Kilometer)
  • die Website Aufbahrung in von rechts nach links für Sprachen wie Hebräisch
  • Überlegen Sie, wie Sie Ihre Nachrichten pluralize. String message = "Please fix the following error" + (errors.size() > 1 ? "s" : ""); nur nicht funktioniert in einem internationalisierten Programm.
  • Denken Sie darüber nach, wie Sie Ihre Web-Seiten zu legen, wenn die Länge des Textes stark variieren kann .. und nie davon ausgehen, dass ein Charakter mehr oder weniger eine bestimmte Breite (ein einzelnes Zeichen in Kanji könnte 8mal breiter sein als ein Kleinbuchstaben 'i')

Die beste Ressource, die ich für diese finden kann, ist die ICU-Bibliothek Benutzerhandbuch . Wenn Sie Java verwenden, ist dies die Bibliothek zu nutzen.

Hoffentlich diese Antwort ist ein hilfreiches Start!

Andere Tipps

Werfen Sie einen Blick auf Googles Empfehlungen für multiregionale und mehrsprachige Websites . Ich hoffe, dass die Informationen in praktisch. Viel Glück.

Total mit @ Michael D und anderen Entwicklern zustimmen, die ihre Antworten gepostet. Obwohl die für diese Frage bereits akzeptiert, aber ich denke, eine kleine Option wie das: lang () Pseudo-Klasse kann hilfreich sein für createing mehrsprachige Sites. Die: lang () Pseudo-Klasse ermöglicht die Sprache in verschiedenen Dokumenten zu bestimmen.

CSS-Code:

    q:lang(fr) {     /* Quotations for French */ 
     quotes: "\00AB" "\00BB"; 
    }

    q:lang(en) {
     quotes: "\201C" "\201D";    /* Quotations for English */ 
    }


HTML-Code:

 <html>
 <body>
 <pre>
     <p>Quote in French: <q lang="fr">То être ou ne pas être</q>.</p>
     <p>Quote in English: <q lang="en">То be or not to be</q>.</p>
 </pre>
 </body>
 </html>

Und die Ausgabe wie folgt sein:

Quote in French language: << То être ou ne pas être >>.

Quote in English language: "То be or not to be".

Bitte beachten Sie, dass wir über Dokumente sprechen, nicht ein Stück Text, da sie komplexe Formatierungen durchführen.

Wir haben eine Reihe von Dateien auf der Festplatte, die alle Fäden in einem gegebenen enthalten Widget / Modul / was auch immer, und separate Dateien pro Sprache, das heißt:.

foo.strings == generic (happens to be US english)
foo.fr.strings == french
foo.fr-CA.strings == canadian french 
foo.en-CA.strings == canadian english

Basierend auf dem Client ist Accept-Language-Header, bestimmen wir, welche Sprache er will.

Wenn eine bestimmte Sprache zuerst angefordert wird, schlugen wir das Dateisystem das große String-Mapping für diese Sprache aufzubauen, dann cachen es im Speicher. Wenn eine bestimmte Zeichenfolge nicht in fr-CA definiert ist, werden wir den Stapel fr, dann schließlich auf den generischen

Hop-up

Die Seiten werden dynamisch generiert und die erzeugte Version von jeder URL zwischengespeichert wird, abhängig von der Sprache Header des Benutzers (unter anderem).

Ich hoffe, das hilft

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top