Frage

Ich glaube, einige von uns bereits an einem Projekt gearbeitet haben, wo nicht nur die Benutzeroberfläche, sondern auch Daten in verschiedenen Sprachen unterstützt werden muss. Wie - in der Lage sein zu schaffen, und eine Übersetzung speichern für das, was ich schreibe hier, zum Beispiel.

Was mehr ist, ich glaube auch, mehrere von uns einige zeitgesteuerte haben Ereignisse (wie bei der Mitgliedschaft Zugang auslaufend), wo Benutzer-Standort soll berücksichtigt werden, um zu berechnen, wie, Mitternacht nach der richtigen Zeit-Zone.

Schließlich gibt es auch die Notwendigkeit, rechts nach links Benutzeroberflächen accoring auf bestimmte Sprachen und die Verwendung von diferent Kodierungen zu unterstützen, wenn vorgelegten Daten Lesen von Dateien (Text parsen und Excel-Daten, zum Beispiel)

Zur Zeit bin Speicherung ich alle meine Übersetzungen für alle meine Einheiten auf einer einzigen Tabelle (nicht so pratical, da es sehr schwer ist, sich selbst zu finden, wenn SQL-Abfragen zu tun in ein Problem suchen), UI Übersetzungen hauptsächlich auf Satelliten-Baugruppen Einstellung und noch von rechts nach links Entwurf weder Zeitzonen zu unterstützen.

Was sind Ihre Erfahrungen, wenn sie mit diesen Herausforderungen um?

[Bearbeiten]

Ich nehme an die meisten Leute denken, dass diese Ebene der multiculture Anforderung ist wie ein riesiges Projekt zu bauen. wenn Sie in der Tat tihnk über eine Online-Umfrage Wo:

  1. wird Antworten gesammelt nur bis Mitternacht
  2. Fragebogen Definition und Teil Die Antworten kommen aus einer Textdatei (In jeder Sprache) sowie Übersetzungen
  3. Fragen und Antwortoptionen müssen wird in mehreren Sprachen angezeigt, nach, wer Zugriff auf sie
  4. Berichte müssen auch gezeigt werden, und in mehreren verschiedenen erzeugten Sprachen

Wie man sehen kann, müssen wir nicht zu weit gehen, in einer Anwendung dieser Art von Anforderungen zu haben.

[Edit2]

Just fand heraus, meine Frage ist ein Duplikat

i18n in Ihren Projekten

Die erste Antwort (wenn durch Abstimmung der Bestellung) so compreheensive ist, ich habe zumindest einen Teil bekommen davon einen Tag umgesetzt werden.

War es hilfreich?

Lösung

Seien Sie sehr sehr vorsichtig. Von dem, was Sie den i18n Funktionen über Sie sagen zu implementieren sind versucht, frage ich mich, wenn Sie über reichend.

Beachten Sie, dass der große Junge (zum Beispiel eBay, amazon.com, Yahoo, bbc) Webanwendungen tatsächlich getrennte Anwendungen in jeder Sprache, die sie wollen liefern unterstützen. Jede dieser Web-Anwendungen haben einen gemeinsamen Kern der Dienstleistungen verbrauchen. wenn die geschäftlichen Anforderungen von zwei verschiedenen Ländern Seien Sie nicht überrascht sein, dass auch die gleiche Sprache sprechen (z UK & US) sind unterschiedlich genug, dass Sie eine separate App für jeden Bedarf zu tun.

Auf der anderen Seite, könnte man, wie die nächste amazon.com zu werden brauchen. Es ist schwierig, eine erfolgreiche Web-Anwendung in einer Sprache zu liefern, viel weniger viele. Sie sollten keine Angst haben, einen Benutzer Bevölkerung zu begünstigen (sagen wir, Ihre asiatischen Sprachen Lautsprecher) über andere, wenn dies sinnvoll für Ihre Web-App geschäftlichen Anforderungen macht.

Andere Tipps

Gehen Sie langsam.

Denken Sie alles durch, dann wirklich darüber nachdenken, was Sie wieder zu tun. Denken Sie daran, dass je mehr man hinzufügen (wie von rechts nach links), desto länger Ihr QA-Zyklus wird.

Das Hauptstück zu Ihrem Puzzle wird auf der Codeseite der extensive Einsatz von Schnittstellen sein, und entweder eine Datenquelle, die durch einen Übersetzer übergeben wird, um je nachdem, was Sprachen müssen für jede Sprache unterstützt wird, oder getrennte Datenquellen werden.

Die Zeit Probleme können durch die Schnittstellen abgewickelt werden, weil vermutlich werden Sie wollen die Dinge auf die gleiche Art und Weise funktionieren, unterscheiden sich aber in den Details der Implementierung. Zu einem großen Teil kann ein ähnlicher Denkprozess zur Schaffung der Schnittstelle angewandt werden, wenn es Einstellen unterschiedliche Sprachen zu unterstützen. Wenn Sie, um es nach unten, Enthäuten ist genau dies, wo der Inhalt gehäutet ist die Schnittstelle zu sein, und der Look / Feel ist die Umsetzung.

Sie, was Ihre Benutzer benötigen. So verstehen die meisten Programmierer Englisch, keinen Sinn gibt es Beiträge auf dieser Seite zu übersetzen. Wenn viele Benutzer eine Übersetzung benötigen, eine neue Tabellenspalte mit der Sprache-ID und einem weiteren Spalte eine übersetzte Zeile in seinem ursprünglichen zu verknüpfen. Wenn Ihr Ziel auditorischen die Nutzer aus dem Nahen Osten enthält, implementieren rechts nach links. Wenn es die Zeit Genauigkeit bis zu einer Stunde kritisch ist, eine Zeitzone Spalte zu der Benutzertabelle hinzufügen, und so weiter.

Wenn Sie auf * NIX sind, verwenden Sie gettext . Die meisten Sprachen, die ich verwendet habe, haben ein gewisses Maß an Unterstützung; PHP ziemlich gut ist, zum Beispiel.

Ich werde beschreiben, was in meinem Projekt durchgeführt wurde (es war nicht meine ursprüngliche Architektur, aber ich mochte es sowieso)

Bereitstellung von Übersetzungs-Unterstützung

Text, der übersetzt werden muss hat in drei verschiedene Kategorien unterteilt:

  1. Fehlertext: Wie Fehler, die tief in der Anwendung Business-Schicht passieren
  2. UI Text: Text, der in der Benutzeroberfläche (Labels, Buttons, Gitter Titel, Menüs)
  3. gezeigt wird
  4. Benutzerdefinierte Text: Text, der nach den Präferenzen des Endverbrauchers übersetzbar sein muss (das ist - erstellt der Benutzer eine Frage in einer Umfrage, und er kann auch eine übersetzte Version dieser Umfrage erstellen)

Für jede unterschiedliche Kathegorie das Schema verwendet Übersetzungsdienst zur Verfügung zu stellen ist anders - so dass wir haben:

  1. Fehlertext: Eine Bibliothek mit statischen Funktionen, die Ressourcendateien zugreifen
  2. UI Text: Eine "Helper" Klasse, die die Ansicht Motor verbunden ist, bietet Übersetzungen von Remote-Baugruppen
  3. Benutzerdefinierte Text: eine Tabelle in der Datenbank, die Übersetzungen liefert (nach typeID der übersetzten Einheit und Objekt ID) und an die Einheit über eine 1 x N-Beziehung verknüpft ist

Ich habe jedoch nicht angegriffen, die anderen offensichtlichen Probleme wie mit Zeitzonen, verschiedenen Layouts und Bild Übersetzung zu tun (wenn dies wirklich notwendig ist). Hat jemand dieses Problem auf eine andere Weise in Angriff genommen?

Hat jemand schon einmal die anderen i18n Probleme in Angriff genommen?

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