Sollte ich java benutzen.text.MessageFormat für lokalisierte Nachrichten ohne Platzhalter?

Sind wir über die Lokalisierung der user-interface-text für eine web-Anwendung, die läuft auf Java 5, und die haben ein dilemma, wie wir die Ausgabe von Meldungen, die definiert werden in properties-Dateien - die Art verwendet, die durch java.util.Eigenschaften.

Einige Nachrichten enthalten Platzhalter, die gefüllt werden mit java.text.MessageFormat. Zum Beispiel:

search.summary = Your search for {0} found {1} items.

MessageFormat ist ärgerlich, denn ein Apostroph ist ein besonderer Charakter, obwohl Sie Häufig in englischen text. Geben Sie zwei für ein literales einfaches Anführungszeichen:

warning.item = This item''s {0} is not valid.

Jedoch, drei Viertel der Anwendung 1000 oder so Nachrichten enthalten keine Platzhalter. Dies bedeutet, dass wir ausgeben können, Sie direkt, die Vermeidung von MessageFormat, und lassen Sie die einzelnen Zitate allein:

help.url = The web page's URL

Frage: sollten wir MessageFormat für alle Nachrichten, für die einheitliche syntax, oder zu vermeiden, MessageFormat, wo wir können, so dass die meisten Nachrichten müssen nicht entkommen?

Es gibt eindeutig vor-und Nachteile oder so.

Beachten Sie, dass die API-Dokumentation für MessageFormat erkennt das problem und schlägt eine nicht-Lösung:

Die Regeln für die Verwendung von Anführungszeichen innerhalb von
message-format Muster, leider
gezeigt haben, dass Sie etwas verwirrend sein.
Insbesondere ist es nicht immer offensichtlich
zu Lokalisierungsexperten, ob einzelne Zitate
müssen verdoppelt werden oder nicht. Stellen Sie sicher,
informieren übersetzer über die Regeln,
und sagen Sie Ihnen (zum Beispiel durch Verwendung von
Kommentare im Ressource-bundle Quelle
Dateien), welche Zeichenfolgen verarbeitet werden
durch MessageFormat.

InformationsquelleAutor Peter Hilton | 2009-01-30
Schreibe einen Kommentar