Doppelpunkte in der internationalisierten Benutzeroberfläche


9

Sollten bei Verwendung von gettext oder einem ähnlichen Framework die Übersetzungszeichenfolgen ':'(wie "Label:") zum Generieren von Beschriftungen für die Benutzeroberfläche enthalten sein oder sollte ich den ':'UI-Code selbst hinzufügen ?


2
Ich denke, Sie haben hier vielleicht eine anständige konzeptionelle Programmierfrage, aber sie könnte wirklich einige zusätzliche Details gebrauchen. Bitte bearbeiten Sie Ihre Frage, um weitere Einzelheiten und Ihre Versuche anzugeben, damit die Community Ihre Frage besser beantworten kann.

1
Wird der Doppelpunkt in allen Sprachen, in die Sie übersetzen möchten, allgemein verwendet? Wenn NICHT, müssen Sie möglicherweise den Doppelpunkt oder dessen Äquivalent in die Ressourcenzeichenfolgen für jede Sprache aufnehmen. SO sollte das deine erste Frage sein.
Paulkayuk

1
@paulkayuk Wenn Sie Code schreiben, der von der Antwort auf diese Frage abhängt, bedeutet dies, dass Sie die Internationalisierung übernehmen, anstatt sie den Übersetzern zu überlassen.
Kaz

... und verhindert, dass die Zielgebietsschemas auf solche erweitert werden, die keine Doppelpunkte verwenden.
JensG

Antworten:


9

Der Doppelpunkt kann als Interpunktionssymbol angesehen werden. Es ist eine Konvention, die Teil des Textes ist, genau wie ein Punkt oder ein Fragezeichen.

Wir würden das Fragezeichen von "Sind Sie sicher, dass Sie beenden möchten?" Nicht auslassen. und schreiben Sie dann Code, um die Fragenattribute sprachabhängig zur übersetzten Zeichenfolge hinzuzufügen. Dies bedeutet, dass der UI-Code unnötigerweise die Verantwortung übernimmt, Sätze in verschiedenen Sprachen zu interpunktieren: eine Verantwortung, die bei der Nachrichtensubstitution behandelt werden kann.

Es gibt eine Zwischenmöglichkeit. Es ist wahrscheinlich, dass Etiketten, genau wie alle Bezeichnungen die Doppelpunktfunktion in Englisch haben, in anderen Sprachen auch ein lexikalisches Element gemeinsam haben. Dieses Element ist, falls vorhanden, wahrscheinlich eine Art Präfix oder Suffix oder beides.

Sie können die Beschriftungen ohne den Schmuck darstellen und dann eine zusätzliche übersetzbare Zeichenfolge haben, die ein Schema zum Hinzufügen des Etikettenschmuckes bereitstellt. Angenommen, die sprintfFormatierung im C- Stil ist in der UI-Anwendung verfügbar. Die englische Version der Label-generierenden Formatzeichenfolge wäre "%s:", und das könnte auch die Standardeinstellung sein, da sie in einigen anderen Sprachen funktioniert. Die UI-Übersetzer können dies "%s:"durch alles ersetzen, was sie für richtig halten. Eine der Möglichkeiten besteht darin, dass sie es durch just ersetzen "%s"(nichts tun) und dann die vollständige, geschmückte Darstellung jedes Etiketts in der übersetzten Zeichenfolgentabelle angeben können. Dieser Ansatz behandelt also sogar einige seltsame Möglichkeiten, bei denen der lexikalische Marker, der ein Etikett kennzeichnet, in die Mitte eingefügt werden muss.

Dieser Ansatz scheint sich nicht zu lohnen, wenn nur eine leichte Komprimierung der Darstellung von Beschriftungszeichenfolgen erreicht wird: das Entfernen eines Doppelpunkts. Wenn Sie dafür 100 Zeichen zusätzlichen Codes schreiben müssen, müssen Sie Doppelpunkte von 100 Beschriftungen entfernen, um die Gewinnschwelle zu erreichen. Dies berücksichtigt nicht einmal die Rechtfertigung der aufgewendeten Zeit.

Dafür muss sich etwas auszahlen: Die Anwendung verwendet die Zeichenfolgen nicht nur zum Generieren von Beschriftungen, sondern zum Generieren von Sätzen, die sich namentlich auf die UI-Felder beziehen. Angenommen, ein Dialogfeld hat die Bezeichnung "Benutzer-ID:" zur Texteingabe. Wenn Sie eine generische Logik haben, die die Meldung "Sie haben eine ungültige Benutzer-ID eingegeben." Wenn Sie einen Satz-Boilerplate-Text mit dem Namen eines UI-Elements kombinieren, müssen Sie die schmucklose Zeichenfolge "Benutzer-ID" haben und diese durch eine Beschriftungsfunktion übergeben, um "Benutzer-ID:" zu generieren.


9

Für viele Sprachen gibt es keine Eins-zu-Eins-Übersetzung von englischen Wörtern und Phrasen, sondern mehrere kontextsensitive Übersetzungen.

Um das Leben der Übersetzer zu vereinfachen, sollten Sie so viel Kontext wie möglich für die Zeichenfolgen bereitstellen. Dazu gehören Doppelpunkte in Beschriftungen und Kontextinformationen, in denen diese Beschriftungen verwendet werden.

Als Grundregeln sollten Sie in einer internationalisierten Benutzeroberfläche

  • Übersetzte Zeichenfolgen werden nicht geändert, außer um Parameter mit ihren tatsächlichen Werten zu füllen. Fügen Sie die Doppelpunkte also nicht nachträglich hinzu.
  • Schneiden Sie keine Zeichenfolgen in Teile um Parameter herum. Insbesondere wenn mehrere Parameter ausgefüllt werden müssen, können Sie sicher sein, dass es mindestens eine Sprache gibt, in der es natürlicher wäre, die Parameter umgekehrt zu haben.
  • Sei sehr vorsichtig mit Singular- / Pluralformen. Es gibt kein gemeinsames Muster, wie man Pluralformen aus Singularen erzeugt, oder sogar wie viele Pluralformen es gibt.

Das Ausfüllen von Parametern ist eine schwierige Aufgabe. Wohlgemerkt nicht von der Programmierseite. Russisch mag einige komplexe Regeln für Pluralformen haben, aber sie sind immer noch besser als die Anforderungen eines typischen Managers. Übersetzer verstehen Parameter einfach nicht.
MSalters

5

Ich habe mich schließlich entschlossen, ganze Zeichenfolgen (in diesem Fall Zeichenfolgen mit Doppelpunkten) in meinen i18n-Dateien zu verwenden.

Der Grund dafür, dass auf Französisch ein Leerzeichen vor dem Doppelpunkt stehen sollte. Der beste Weg, um Französisch zu codieren, besteht darin, Doppelpunkte (mit Leerzeichen davor) in Übersetzungszeichenfolgen einzufügen.

Nein, wir übersetzen nicht ins Französische. Dies ist jedoch ein Beispiel für eine allgemeine Verhaltensregel: Fügen Sie Doppelpunkte in Übersetzungszeichenfolgen ein, nicht in UI-Code.


3

Der optimale Ansatz besteht darin, die Zeichen für jedes Gebietsschema in die Zeichenfolge einzubetten, da dies normalerweise sicherstellt, dass der Kontext korrekt ist, vorausgesetzt, Sie haben nachgeforscht, was Ihre Zielgruppe erwartet.

Jedes Land stellt normalerweise einen Styleguide zur Verfügung, der alle "richtigen" Interpunktionsstellen vorschreibt. Als ich anfing herauszufinden, wie ich mit Anführungszeichen für verschiedene Sprachen für einige Webdesign-Tools umgehen würde, habe ich mir zuerst solche Styleguides angesehen.

Während schriftliche Veröffentlichungen eher Styleguides folgten, ist die Online-Welt ganz anders! In der Regel verwenden eine große Anzahl nicht englischer europäischer und südamerikanischer Websites Zitate im US-Stil, im Gegensatz zu den Guillemets («») ihrer Styleguides. Zeigt nur, wie sehr die Dominanz der USA im frühen Web den Online-Sprachgebrauch auf der ganzen Welt durchdringt.

Die MIT Foreign Language News und Newspapers: Home enthält Links zu Hunderten von Online-Sites. Wenn ich mir diese anschaute, fand ich den besten Ansatz für mein Dilemma, nämlich dem Websitebesitzer die Möglichkeit zu geben, eine der 19 beliebtesten Kombinationen von in Anführungszeichen eingebetteten Anführungszeichen auszuwählen, die für ihre Zielgruppe geeignet sind.

Chrome versucht, den Styleguide eines Landes automatisch zu verwenden. Glücklicherweise kann er jedoch durch Angabe eines Gebietsschemas im lang- Attribut des q- Tags überschrieben werden . Dies unterstreicht das Problem mit automatischen Ansätzen, die die reale Welt nicht berücksichtigen, deren Implementierung jedoch auf der Theorie beruht.

Informieren Sie sich beim OP auf diesen Online-Zeitungsseiten darüber, was in verschiedenen Ländern tatsächlich verwendet wird, damit Sie sehen können, welcher Ansatz zu konsistenteren Ergebnissen führt.

Während einige Sprachen traditionell ein anderes Zeichen für den englischen Doppelpunkt verwendet haben, richtet sich die Online-Verwendung möglicherweise an Zielgruppen, die an diesen Doppelpunkt gewöhnt sind. Außerdem können unterschiedliche Gebietsschemas unterschiedliche Verwendungszwecke haben, sodass Sprachzeichenfolgen für jedes vollständige Gebietsschema und nicht nur für die Sprache angegeben werden müssen.


2

Als ich vor einigen Jahren meine eigene Internationalisierung durchführte, funktionierte das ungefähr so:

  • Nachrichten im Quellcode wurden in Englisch geschrieben

  • Nachrichten wurden zur Laufzeit durch Anwenden einer Übersetzung übersetzt (die in der Quelle als translate ("string") oder häufiger als "string" angezeigt wurde). Es wurde erwartet, dass es ein vorgefertigtes Wörterbuch mit Nachrichten und Übersetzungen gibt.

  • Bei der Übersetzung einer Nachricht wurde der Leerraum an jedem Ende abgeschnitten und die nachfolgende Interpunktion sowie die Großschreibung entfernt. Nach der Übersetzung der verbleibenden Elemente wurden diese zurückgesetzt.

  • Um mehr Kontext bereitzustellen, habe ich der Zeichenfolge manchmal einen Kommentar hinzugefügt, der Teil des Übersetzungsprozesses war, um die beste Übereinstimmung zu finden. Der Kommentar wurde dann jedoch verworfen.

Bei einer Nachricht wie "Disk:" wurde die Zeichenfolge "disk" beispielsweise in "disquette" übersetzt und dann als "Disquette:" neu zusammengesetzt. Dies reduzierte die Anzahl sehr ähnlicher Nachrichten.

Ich habe dies nur für eine kleine Anzahl westeuropäischer Sprachen getan; wahrscheinlich würde es Probleme mit exotischeren geben. Ich habe hierfür jedoch eine Skriptsprache verwendet, damit bei allen auftretenden Problemen eine Zeichenfolgenverarbeitung verwendet werden kann: Wenn ich "G" (kurz für Grün) übersetzen musste, wurde sie in der Quelle als links angezeigt (/ "Grün"). ), übersetzt in etwas wie "vert" und reduziert auf "V".

Ich bin jedoch nicht mit den aktuellen Frameworks und deren Funktionsweise vertraut. Geben sie keine Richtlinien für den Umgang mit solchen Problemen?


1
Nur eine Anmerkung, wo Ihr Übersetzungs- / Großschreibungsschema wahrscheinlich brechen würde: Auf Niederländisch gibt es einen Digraphen von i und j, der als ein Zeichen behandelt werden sollte. Wenn Sie beispielsweise "Ice" ins Niederländische übersetzen, lautet die richtige Übersetzung "IJs" und nicht "Ijs". In anderen Sprachen gibt es ähnliche Probleme mit der Großschreibung.
Bart van Ingen Schenau

2

Es kann von dem Lokalisierungssystem abhängen, das Sie verwenden, aber wenn andere Dinge gleich sind, würde ich persönlich vermeiden, Interpunktionen hinzuzufügen (es sei denn natürlich innerhalb einer Phrase, deren Verwendung durch die Grammatik vorgegeben ist), da ich der Meinung bin, dass sie Teil davon sind die Präsentation , wie Schriftgröße usw., und nicht wirklich der Inhalt . Wir mischen also verschiedene Dinge mit diesem Ansatz.

Schließlich können dieselben Wörter und Phrasen sowohl mit als auch ohne Interpunktion benötigt werden. Z.B. Sie können eine "Enter subject:"Beschriftung neben einem Textfeld, aber auch "Enter subject"als Fenstertitel haben.

Ist es sinnvoll, beide getrennt übersetzen zu lassen?

Wenn Sie feststellen, dass Doppelpunkte in der Benutzeroberfläche tatsächlich schlecht und redundant aussehen, müssen Sie alle Sprachversionen erneut übersetzen. Welches ist ein bisschen dumm.

PS. Die von @bartc angegebenen "Grundregeln" gelten in beiden Fällen - unabhängig davon, ob Sie Satzzeichen in übersetzte Zeichenfolgen einfügen oder nicht.

PPS. Auch @paulkayuk spricht (in seinem Kommentar) einen guten Punkt an - dass auch kulturelle Besonderheiten berücksichtigt werden sollten. Wenn Sie gespiegelte Fragezeichen auf Spanisch haben, nehmen Sie diese natürlich in Ihre Übersetzung auf. Meine Antwort geht von einer einheitlichen, sprachunabhängigen Zeichensetzung aus, denn das scheint umstritten zu sein.


2

Eine Anwendungssprachendatei ist nicht nur eine Dummy-Übersetzung von Wörtern. Es ist ein Prozess, bei dem Sie die Wörter und ihre Interpunktions- "Darstellung" in den richtigen sinnvollen Kontext übersetzen.

Hello?auf Spanisch ist ¿Hola?auf Arabisch ist مرحبا؟. Wie Sie sehen können, können Sie nicht einfach ein Hellooder Holaoder speichern مرحباund dann in der Benutzeroberfläche einfach einthe_hello_text + "?" . Es wird nicht die richtige Ausgabe erzeugt. Es ist offensichtlich, dass die Zeichensetzung in der Sprachdatei berücksichtigt werden muss. Das heißt, es ist nicht das Anliegen der GUI, ein Fragezeichen oder einen Doppelpunkt am Ende einer Zeichenfolge "hinzuzufügen".

Zeichensetzung und alles muss in der Internationalisierungsdatei bereit sein zur Ausgabe an die Benutzeroberfläche sein.

Das einzige, worüber sich die Benutzeroberfläche Sorgen machen sollte , ist die korrekte Darstellung dieses sofort einsatzbereiten Textes, z. B. " Richtig ausrichten", wenn es sich um eine RTL-Sprache handelt. Aber das ist eine andere Geschichte und hat nichts mit Klartext- Internationalisierungssprachendateien an sich zu tun .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.