2016-07-05 10 views
0

Ich bin ein Amateur-Programmierer und möchte eine multilinguale Website erstellen. Meine Fragen sind: (Für meine Zwecke lassen die englische Webseite Webseite Nr 1 und die polnische nr sein 2)Wie erstellt man eine mehrsprachige Website?

  1. Sollte es sein en.example.com und pl.example.com oder vielleicht example.com/en und beispiel.com/pl?
  2. Soll ich die komplette Website in einer Sprache erstellen und dann übersetzen?
  3. Wie übersetzt man es? Mit XML oder was? Sollten Website 1 und Website 2 unterschiedliche HTML-Dateien sein oder gibt es eine Möglichkeit, eine HTML-Datei zu übersetzen und dann die Übersetzung mit XML oder etwas anderem zu zeigen?

Wenn Sie Code oder etwas benötigen, sagen Sie es mir. Vielen Dank im Voraus :)

+0

Sie können versuchen, [gettext] zu verwenden (http://php.net/manual/en/book.gettext.php) – jcubic

+1

Sie haben wirklich drei separate Fragen hier. 1 ist meinungsbasiert und off topic. 2 ist auch meinungsbasiert und off-topic. 3 könnte als auf Meinung oder zu weit gefasst betrachtet werden, ist aber in beiden Fällen nicht im Fokus. – Quentin

+2

Ich würde vorschlagen, Vorlagen zu suchen, etwas wie Smarty oder gleichwertig. Dies würde bedeuten, dass Sie einmal eine Website erstellen und dann einfach an Etiketten arbeiten, die in verschiedene Sprachen übersetzt und über Benutzereinstellungen, Cookies oder Sitzungsdaten ausgewählt werden. – apriede

Antwort

0

1) Ich denke nicht, dass es viel Unterschied macht. Am wichtigsten ist es sicherzustellen, dass Google beide Sprachen crawlen kann. Verlassen Sie sich also nicht auf JavaScript, um zwischen den Sprachen zu wechseln, sondern alles serverseitig, sodass beide Sprachen gecrawlt und in Google gerankt werden können.

2) Sie können eine Übersetzung dann die andere tun, müssen Sie nur sicherstellen, dass das Layout erweitert, um mehr/weniger Text aufzunehmen, ohne es zu brechen. Vielleicht benutze Lorem Ipsum beim Entwerfen.

3) Ich würde die Übersetzungen in eine Datenbank stellen und dann diese bestimmte Übersetzung aufrufen, je nachdem, ob es sich um EN oder PL im Domain-Namen handelt. Stellen Sie sicher, dass die Webseite und die Datenbank UTF-8-codiert sind. Andernfalls werden Sie feststellen, dass Sie "lustige" Zeichen erhalten, die angezeigt werden.

-1

Sie könnten zwei verschiedene Sprachdateien machen und PHP-Konstanten definieren Sie den gewünschten Text zu übersetzen, zum Beispiel verwenden:

lang_pl.php: 
define("_TEST", "polish translation"); 

lang_en.php: 
define("_TEST", "English translation"); 

jetzt haben Sie die Wahl für den Benutzer zwischen Politur machen könnten oder englische Übersetzung und basierend darauf können Sie die Sprachdatei einbinden.

Wenn Sie also ein Textfeld haben, setzen Sie seinen Wert auf _TEST (zwischen php Klammern).

und es würde die Übersetzung der gewählten Option zeigen.

+0

nicht sicher, warum runter, das wird funktionieren. – kerv

-1

Der Ort, an dem ich arbeitete, war es so: Sie mussten nicht viel auf ihrer Website schreiben, also hielten sie es in einer Datenbank. Da deine Tags ein PHP haben, gehe ich davon aus, dass du weißt, wie man Datenbanken benutzt. Sie hatten eine MySQL-Tabelle namens Sprachen mit Sprach-ID (in Ihrem Fall 1 für en und 2 für pl) und Texte in Spalten. Also die Spaltennamen waren Hauptüberschrift, intro_text, about_us ... wenn der Benutzer kommt, wählt er die Sprache und eine PHP-Anfrage erhält die Seite mit dieser Sprache. Dies ist einfach, da Ihr Inhalt statisch ist und übersetzt werden kann, bevor die Website online geht. Wenn Ihr Inhalt dynamisch ist (Benutzer fügt Inhalte hinzu), müssen Sie möglicherweise einen Übersetzungscomputer verwenden, da Sie nicht erwarten können, dass Ihre Benutzer ihren Eintrag in allen Sprachen schreiben.

0

Mein Rat ist, dass Sie beginnen, jedes Framework zu verwenden.

Zum Beispiel, wenn Sie CakePHP verwenden, dann haben Sie

__('My name is') 

und in übersetzen Datei

msgid "My name is" 
msgstr "Nazywam się" 

Dann können Sie einfach zu einer anderen Sprache, und es ist ziemlich einfach zu implementieren übersetzen zu schreiben.

Auch wenn Sie Rahmen nicht verwenden möchten, können Sie diesen Link überprüfen Beispiel zu sehen, wie es funktioniert: http://tympanus.net/codrops/2009/12/30/easy-php-site-translation/

0

Während diese Frage wahrscheinlich keine gute Frage SO aufgrund seiner breiten Natur ist. Es könnte für viele Benutzer relevant sein.

Mein Ansatz wäre Vorlagen. Ihr Vorschlag, zwei HTML-Dateien zu haben, ist aus dem offensichtlichen Grund der Duplikation schlecht - sagen Sie, dass Sie etwas auf Ihrer Site ändern müssen. Sie müssten immer zwei HTML-Dateien ändern - schlecht.

Mit einer HTML-Datei und dann analysieren und übersetzen es klingt wie eine massive Kopfschmerzen.

Einige Templating-Framework könnte Ihnen massiv helfen. Ich habe Smarty benutzt, aber das ist eine persönliche Entscheidung und es gibt viele Optionen hier.

Die Idee ist, dass Sie eine Vorlagendatei für Ihre HTML erstellen und anstelle des eigentlichen Inhalts verwenden Sie Etiketten. Dann fügen Sie in Ihrem PHP-Code die richtige Sprache ein, abhängig von Cookies, Benutzereinstellungen oder Sitzungsdaten.

Das Speichern von Etiketten ist ein weiteres Problem hier. Es ist eine gute Option, sie in einer Datenbank zu speichern. Denken Sie jedoch daran, dass Sie keine 100er Abfragen für eine Datenbank zum Abrufen jedes Etiketts durchführen möchten. Sie können sie in einer Datenbank speichern und dann eine Sprachdatei erstellen lassen - ein Array von Beschriftungen-> Übersetzungen für einen schnelleren Zugriff und Neugenerierung dieser Dateien, wenn Sie Etiketten hinzufügen/aktualisieren.

Oder Sie können die Datenbank vollständig überspringen und speichern Sie sie nur in Dateien, jedoch, wie diese wachsen sie möglicherweise nicht so einfach zu pflegen.

0

Ich denke, der einfachste Fehler für einen "Amateur-Programmierer" in diesem Bereich ist es, die zwei (oder mehr) Sprachversionen der Website zu divergieren. (Ich habe gesehen, dass so genannte Profis diesen Fehler auch machen ...) Sie müssen es so gestalten, dass alles, was zwischen den beiden Versionen üblich ist, gemeinsam genutzt wird, so dass Sie nur Änderungen vornehmen müssen, wenn es an der Zeit ist, Änderungen vorzunehmen in einem Platz. Die Art und Weise, wie Sie dies tun, hängt von Ihrer Wahl der Tools ab, und ich werde nicht anfangen, darüber zu beraten, weil es von vielen Faktoren abhängt, zum Beispiel davon, inwieweit Ihre Inhalte datenbankorientiert sind.

Eng damit verbunden sind Fragen, wer die Übersetzung macht, wie die technischen Entwickler und die Übersetzer zusammenarbeiten und wie man verfolgt, welche Inhalte bei Änderungen neu übersetzt werden müssen. Dies sind im Wesentlichen Prozessfragen und nicht Codierungsfragen, also keine gute Lösung für SO.

Erwarten Sie nicht, dass eine Website für eine Sprache ohne technische Auswirkungen übersetzt werden kann; Sie werden feststellen, dass Sie alle möglichen Annahmen über die Länge von Strings, die Reihenfolge von Feldern, über Zeichencodierung und Schriftarten und über kulturelle Dinge wie Postleitzahlen gemacht haben, die sich als ungültig erweisen, wenn Sie versuchen, die Site in eine andere zu konvertieren Sprache.