dedlfix: Multilinguale Website

Beitrag lesen

Hi!

Du bist doch nicht der erste, der ein mehrsprachiges Projekt in Angriff nimmt. Was für Lösungen zu dieser Problematik hast du dir schon angesehen und was hat dir daran nicht gefallen, dass du das Rad nochmal neu zu erfinden gedenkst?
Erm wie gesagt ich kenne die Methode aus diverser freier Websoftware [...]
Sonst wüsste ich jetzt nicht...

Eines der Systeme, die in vielen Programmierumgebungen eine Umsetzung haben, wäre Gettext. Sowas meinte ich, also fertige, ausgereifte Umsetzungen.

Die Array-Lösung käme mehr oder weniger mit einem strtr(), str_replace() oder preg_replace() aus (eigentlich eher preg_replace_callback(), denn irgendwie musst du beim Einfügen ja noch die kontextspezifische Kodierung reinbringen).
Meine Planung aktuell war
$HTML_Ausgabe_Variable = str_replace($PlatzhalterArray , $db_result_array , $HTML_Ausgabe_Variable);

strtr() in der zweiten Variante hat den Vorteil gegenüber str_replace(), dass es mit _einem_ Array auskommt, bei dem Schlüssel und Wert eine Einheit bilden. Das lässt sich auch leichter handhaben als die zwei Arrays, bei denen man über einen gemeinsamen Schlüssel den Wert im anderen suchen muss.

Aber wie gesagt, denkt dir eine Lösung aus, wie du da noch die kontextgerechte Behandlung unterbringst.

Die DBMS-Lösung müsste zunächst alle Platzhalter zusammentragen,
wie gesagt, die wollte ich immer wenn ich einen Platzhalter verwende einfach in einem array (einer Liste) ablegen und daraus...

Wie muss ich "wenn ich einen Platzhalter verwende" verstehen? Nach meinem Verständnis hast du doch gemäß dem für den aktuellen Request abzuarbeitenden Anwendungsfall am Ende ein Ergebnis mit x Platzhaltern drin. Die musst du da erst einmal herausklauben, bevor du das DBMS damit beauftragen kannst, genau dafür die Texte zu liefern.

  1. Statt Sidebar oder so könnte man auch jeden String, der nicht in der primärsprache des Benutzers erscheint mit einem hochgestellten Link (wie Fußnoten) versehen, der genau das ermöglicht. Das würde auch das Kontext-Problem lösen, weil total offensichtlich ist, in welchem Kontext der string steht.

Also im Prinzip wie bei einem Wiki-Stichwort, zu dem zwar schon der Link steht, aber das Thema noch nicht erstellt wurde. Klingt nicht schlecht.

Wie sieht es mit unterschiedlichen Schreibweisen für Datum, Zahlen und Messwerten aus? Die korrekt anzugeben und bei Eingaben zu interpretieren wirst du allein mit Platzhalterersetzungen nicht auf die Reihe bekommen.
Hmm da hast du recht. Ich denke aber dass die Menge da gering ist. Wie gesagt geht es um eine Art Media-Player, also was brauch ich schon?

Das wirst du erst dann sehen, wenn alle Features implementiert sind. In so einem fortgeschrittenen Stadium nochmal was grundlegendes zu ändern, ist meist keine einfache Aufgabe, wenn man solche Fälle nicht mit eingeplant hat.

Ich weiß nicht was September auf Mandarin heißt.

Die machen es sich da ganz einfach, die zählen die Monate. Also wörtlich "eins Monat" ist Januar, und so weiter bis "zwölf Monat". Bei den Wochentagen ist es ähnlich: "Woche eins" bis "Woche sechs", nur der Sonntag heißt "Woche Himmel" oder "Woche Sonne".

Aber egal, das muss dein Übersetzer wissen. Du musst nur dafür sorgen, dass nicht nur ein Datum richtigrum positioniert wird sondern gegebenenfalls komplett umgeschrieben werden muss.

Aber apropos Chinesisch und ISO-639-1. Mit "zh" allein wirst du nicht weit kommen. Gesprochen ist das (von Dialekten abgesehen) das gleiche, es gibt aber zwei Schriftsysteme, die traditionelle Variante (Taiwan, Hong-Kong, Überseepopulationen) und die vereinfachte (China, Singapur). Schon dafür musst du zwei Einträge vorsehen oder einen Zeichenübersetzer bemühen. Nur eine der beiden Varianten zu unterstützen, geht nicht gut.

Alles in allem rechnen aber glaube ich die meisten Menschen im Dezimalsystem bzw. in Sekunden, Minuten, Stunden, Grad. Wenn man da arabische Ziffern verwendet und sich darauf beschränkt kommen alle zurecht denke ich.

Arabische Ziffern? - Haha, schau dir mal an, was für Ziffern die Araber heutzutage verwenden. :-)

Mit unterschiedlichen Maßeinheiten wirst du vermutlich nicht in Berührung kommen. Bei der Art Daten, wie du sie zu sammeln gedenkst, wird die Temperatur (°C vs. °F) keine Rolle spielen und Begrifflichkeiten wie 12"-Remix wirst du sicher nicht in 30,48cm-Remix übersetzen wollen. Zeitangaben werden in deinem Projekt wohl die einzige zu lokalisierende Größe sein.

Lo!