Internationalisierung: Woran sollte man denken?

8

Ich habe Jon Skeets Vortrag bei den letzten StackOverflow Dev Days gehört und er hat meine Neugier auf die Internationalisierung geweckt.

Angenommen, ich habe ein Programm zur Waffelherstellung, das entweder vollständig ist oder noch läuft, und ich möchte es an andere Länder verteilen. Worüber muss ich mir im Hinblick auf die Internationalisierung Sorgen machen? Was sind einige nicht offensichtliche, aber einfache Fallstricke?

rlb.usa
quelle
Tut mir leid wegen der 3 Änderungen, aber aus irgendeinem Grund hat das Entfernen eines Tags ein anderes durch "Java" ersetzt.
ChrisF
Ich persönlich fand das Jon-Skeet-Tag lustig.
rlb.usa
1
Es mag lustig sein, aber es ist nicht besonders nützlich
ChrisF

Antworten:

15

Das offensichtlichste, was mir in den Sinn kommt, ist, dass Ihre Etiketten höchstwahrscheinlich eine andere Länge haben als die englische Version. Dies könnte Ihr Layout zerstören.

Sie könnten entweder mehrere Hektar Leerraum oder Etiketten haben, die überfüllt sind und sogar den verfügbaren Platz überfüllen.

Sie müssen Ihr Layout flexibel gestalten und unabhängig von der Größe des Inhalts fließen lassen. Ein Layout, das mit unterschiedlichen Bildschirmauflösungen umgehen kann, trägt wesentlich zur Lösung dieses Problems bei.

Das andere große Problem ist die Unterstützung der Sprache von rechts nach links. Dies setzt wiederum voraus, dass Ihr Layout flexibel ist.

Es sind nicht nur die Menüs und Dialoge, die übersetzt werden müssen. Es enthält auch die gesamte Supportdokumentation, Hilfedateien, QuickInfos und Untertitel von Fenstertiteln. Es gibt normalerweise viel mehr Text, als Sie in einer Anwendung erkennen, und es gibt immer ein paar Zeichenfolgen, die direkt und nicht als Ressourcen hinzugefügt wurden.

ChrisF
quelle
Ohne Zweifel ist die Wortlänge der schwierigste Teil der Internationalisierung. Deutsche Fachwörter sind in der Regel etwa 2,5-mal länger als englische.
Dave Nay
zB kann das englische Wort "note" auf Deutsch in "Aufzeichnungen" übersetzt werden. Bei einem früheren Arbeitgeber haben wir je nach angezeigter Sprache unterschiedliche CSS-Layouts verwendet. Schauen Sie sich CSS-Grids wie YUI Grids oder BlueprintCSS an.
Adrian J. Moreno
BITTE vergessen Sie nicht, auch Fehlermeldungen zu übersetzen!
Andy Canfield
@Andy - das ist im "Dialog" -Bit enthalten, aber ja erwähnenswert.
ChrisF
10

Zeitzonen und Datumsformatierung! Stellen Sie beim Umgang mit Anwendungen, bei denen Datum und Uhrzeit über Zeitzonen hinweg geplant sind, sicher, dass Sie die Dinge richtig machen.

Behalten Sie ALLE Datums- und Zeitwerte als Zeitstempel bei, da sie einen einzelnen Zeitpunkt darstellen. Verfolgen Sie weitere Zeitzonen, da Sie die Zeitzoneninformationen benötigen, um den Zeitstempel im richtigen Format für den Benutzer korrekt anzuzeigen.

Ich arbeite gerade an einer Anwendung, bei der ein Benutzer in Japan ein Datum und eine Uhrzeit für einen Benutzer festlegen kann, der eine Clientanwendung in Idaho ausführt. Stellen Sie sicher, dass der Benutzer 3:00PMweiß, wovon 3:00PMalle sprechen.

maple_shaft
quelle
9

Denken Sie daran, dass eine Person, die sich in einem bestimmten Land befindet, diese Sprache nicht kennt. Die Sprache und der Ort sind zwei verschiedene Themen.

Andy Canfield
quelle
1
Diese Geo-Location-Sprach-Backends, die heutzutage so beliebt sind, sind eine so schlechte Idee! Sie versuchen, ein Norweger zu sein, der in einem französischsprachigen Gebiet eines überwiegend deutschsprachigen Landes (Genf, Schweiz) lebt. Der Accept-Language-Header ist nicht ohne Grund da!
10.
8

Zahlen. In den meisten Ländern Europas und Südamerikas wird Komma (10,23) als Dezimaltrennzeichen verwendet, während in den übrigen Ländern (Großbritannien, USA usw.) der Zeitraum (10,23) verwendet wird.

Lukasz Madon
quelle
4
Ich weiß, dass dies ein Link zu Stack Overflow ist, aber es ist immer noch eine gute Praxis, den Inhalt in Ihrer Antwort zusammenzufassen.
ChrisF
3

Es ist nicht immer so einfach ... Es gibt viele Dinge zu beachten, abhängig von der Komplexität der Software, die Sie entwickeln, und wo Sie sie versenden werden. Tatsächlich könnte es fast überall enden, daher ist es wichtig, welche Gebietsschemas Sie offiziell unterstützen werden.

  • Offensichtlich gibt es die Sprache der Schnittstellen. Der gesamte Text, den Sie verwenden, sollte relativ einfach zu ändern sein, damit er in einer anderen Sprache gleichwertig ist. Wie bereits erwähnt, variiert die Länge der Etiketten. Etwas, das auf Chinesisch geschrieben ist, hat nicht die gleiche Breite wie etwas, das beispielsweise auf Deutsch geschrieben ist. Fügen wir hinzu, dass nicht nur die grundlegende Oberfläche zu übersetzen ist, sondern alle Infoblasen, Hilfedateien, Fehlermeldungen, möglicherweise keine Protokolldateien, aber es hängt von der Anwendung ab, die ich denke. Wenn Ihre Anwendung Sprachen unterstützt, möchte Ihre Website möglicherweise auch aufholen.
  • Zeichenkodierung. Es ist gut, viele Sprachen bereitzustellen, aber wie machen Sie das? Wenn alles mit einer schmalen / einfachen Zeichenkodierung programmiert ist, haben Sie Probleme mit einigen Akzenten und den meisten Sprachen, die unsere Zeichen nicht verwenden. Denken Sie an Koreanisch oder Arabisch. Ich denke, jemand müsste Unicode so oft wie möglich verwenden.
  • Widget-Disposition / Fensterausrichtung. Wenn Sie beispielsweise Arabisch unterstützen möchten, müssen Sie sich überlegen, wie Sie Ihre Benutzeroberflächen mehr oder weniger umdrehen können. Sie lesen von rechts nach links, daher ist es normal, dass sich auf der rechten Seite des von ihnen beschriebenen Elements Beschriftungen befinden (z. B. Textfeld für die Eingabe).
  • Zahlenformatierung. In einigen Gebietsschemas gibt es ein Komma anstelle eines Punkts, um den Bruchteil vom ganzzahligen Teil einer Zahl zu trennen. Das ist ziemlich offensichtlich, aber abhängig von der Anwendungsdomäne gibt es möglicherweise viele andere Dinge zu beachten. Sind negative Zahlen zwischen Klammern oder mit einem '-' vor ihnen? Sind Tausende getrennt oder nicht, mit einem Leerzeichen oder mit einem Komma? Ist die Trennung der Ziffern immer durch 3 oder ist nur die erste Gruppe durch 3 und der Rest durch 2? Verwenden Sie arabische oder indische Zahlen oder andere?
  • Datumsformatierung. Es ist fast genauso kompliziert. Möglicherweise müssen Sie die vollständigen Namen der Wochentage, der Monate des Jahres und aller gekürzten Tage speichern. Welche Reihenfolge verwenden sie (Tag, Monat, Jahr? Monat, Tag, Jahr? Jahr, Monat, Tag? Usw. usw. usw.).
  • Zeitformatierung. 24 Stunden oder 12? ':' oder 'h'? ':' oder '.' für die Sekunden? Ich weiß nicht viel über Zeitformatierung, aber ich denke, es gibt viele unbekannte Möglichkeiten, die Zeit anzuzeigen.
  • Grafik! Wenn Sie Symbole haben ... Sie möchten nicht nur überprüfen, ob die Buchstaben oder Wörter auf ihnen für alle Gebietsschemas noch aussagekräftig sind, sondern auch, dass die von Ihnen verwendeten Symbole auch aussagekräftig und korrekt ausgerichtet sind. Wenn ein Pfeil in der englischen Version nach links zeigt, besteht die Möglichkeit, dass er in der arabischen Version nach rechts zeigt (aber nicht unbedingt!). Wenn Sie ein Stoppschild als rotes Achteck auf Ihrem Symbol anbringen, haben die Leute in einigen Regionen keine Ahnung, wofür das ist, oder schlimmer noch, sie sind überzeugt, dass es andere Dinge tun sollte, als Sie beabsichtigt und programmiert haben .
  • Wenn Sie sich mit Adressen in Ihrem System befassen müssen, werden diese an einigen Stellen ebenfalls unangenehm. Große Kopfschmerzen, wenn Sie sie validieren müssen.
  • Usw.

Glücklicherweise gibt es Bibliotheken in vielen Sprachen, die sich um einen Großteil der Arbeit kümmern. Wenn Sie dazu keine gute Bibliothek haben, möchten Sie wahrscheinlich Parameter für alle Ihre Gebietsschemas definieren und diese mithilfe von XML-Dateien oder anderen Arten von Konfigurationsdateien (oder in einer Datenbank, wenn Sie eine mit der Software ausliefern) detailliert definieren oder wenn es Ihnen nichts ausmacht, einen kleinen Footprint hinzuzufügen).

Joanis
quelle
2

Dies hängt stark von der verwendeten Plattform ab. .NET unterstützt Ressourcendateien, die je nach Build des Kunden ein- und ausgeblendet werden können.

Andere Probleme, die auf Ihrer Plattform möglicherweise unterstützt werden oder nicht, umfassen die Möglichkeit, die Reihenfolge der Beschriftungen und Textfelder umzukehren (einige Kulturen bevorzugen, dass sich die Beschriftungen rechts befinden). Dieselben Kulturen möchten möglicherweise, dass alle Textblöcke von rechts nach links gelesen werden.

Britt Wescott
quelle
2

Vergessen Sie nicht die Werte in Nachschlagetabellen! Auftragsstatusnamen, Typbeschreibungen et al.

Wenn Sie Beschreibungen und Namen in Nachschlagetabellen haben, z. B. {OrderStatusId, OrderStatusName, OrderStatusDescription}, müssen diese ebenfalls übersetzt werden.

Steven A. Lowe
quelle
0

Berücksichtigen Sie außerdem die Datumsformate, die Rechtschreibung und die Steuerung der Bildschirmausrichtung. In Berichten, in denen Sprachen von rechts nach links gelesen werden, müssen Sie sich um die Einrückungsrichtung kümmern. Das Wochenende variiert je nach Land. Wenn Sie Kalender anzeigen, müssen Sie sicherstellen, dass die Wochenenden korrekt angezeigt werden. Wenn Sie MS-Windows nicht verwenden, überprüfen Sie die Funktionen des Client-Betriebssystems in Bezug auf die Behandlung von Sortiersequenzen zum Sortieren und die Funktionsweise des Betriebssystems. Fehlermeldungen müssen an Benutzer übersetzt werden, wenn der Modus nicht Englisch ist. Im Code. Für die Datenbankseite müssen Sie die richtigen Zeichencodes auswählen. Dies ist von Datenbank zu Datenbank unterschiedlich und kann sich auf Datumsvergleiche auswirken.

Keine Chance
quelle