Apostroph wird nicht richtig übersetzt, wenn es in einem Ressourcenpaket platziert wird

Lesezeit: 3 Minuten

Apostroph wird nicht richtig übersetzt, wenn es in einem Ressourcenpaket platziert wird.

key = {0}'s brush is {1} centimeters tall

(e.g. Sam's brush is 4 centimeters tall)

Der Apostroph wird übersehen, wenn ich den obigen Schlüssel von a formatiere java.util.ResourceBundle Was könnte hier das Problem sein?

  • +1 Ich bin selbst auf dieses Problem gestoßen und habe einen kleinen Blogbeitrag darüber geschrieben. Vielleicht kann es zusätzliche Informationen für Leute liefern, die auf dieses “Feature” stoßen: mscharhag.com/2013/10/…

    – micha

    4. Oktober 2013 um 17:30 Uhr

Sie sollten das einfache Anführungszeichen als maskieren

key = {0}''s brush is {1} centimeters tall

  • Gute Antwort. Dies hat mein Problem mit einfachen Anführungszeichen gelöst. Danke 🙂 +1

    – Anisch B.

    26. Mai 2020 um 5:57 Uhr

  • Dies hat auch mein Problem gelöst, nachdem ich über eine Stunde mit anderen Lösungen verbracht hatte

    – Samith Kumarasingha

    4. März 2021 um 9:48 Uhr

  • Das ist eines der Dinge, die ich niemandem bei der Arbeit erzählen werde, die ich gegoogelt habe. Vielen Dank.

    – Ben Bynum

    31. Mai 2021 um 17:17 Uhr

Ich bin fest davon überzeugt, dass das Problem nicht das Ressourcenpaket ist, sondern das MessageFormater Sie verwenden, um die Nachricht zu drucken:

Von MessageFormater java doc:

Innerhalb einer Zeichenfolge, ” (zwei einfache Anführungszeichen ) steht für ein einfaches Anführungszeichen. Ein QuotedString kann beliebige Zeichen außer einfachen Anführungszeichen enthalten; die umgebenden einfachen Anführungszeichen werden entfernt. Ein UnquotedString kann beliebige Zeichen außer einfachen Anführungszeichen und linken geschweiften Klammern enthalten. Somit kann ein String, der zu der formatierten Nachricht ‘{0}’ führen soll, als ”'{‘0}” oder ”'{0}”’ geschrieben werden.

Sie müssen also schreiben:

{0}''s brush is {1} centimeters tall

Ergänzend zu @Ralphs Antwort: Sie werden feststellen, dass dies eine ist MessageFormat Sache, wenn Sie einen Text wie haben

text1=It's too late

gegen

text2={0}''s too late

text1 würde wahrscheinlich keinen MessageFormater durchlaufen (z. B. Spring hat unterschiedliche Codepfade, wenn Argumente übergeben werden oder nicht), wohingegen text2 möchten. Wenn Sie also zwei einfache Anführungszeichen in verwendet haben text1, sie können/werden als solche angezeigt. Sie müssen also prüfen, ob Argumente formatiert werden oder nicht, und entsprechend ein oder zwei einfache Anführungszeichen verwenden.

Benutzer-Avatar
Aravind Yarram

Schaue auf die javadoc hier

Innerhalb eines Strings steht “”” für ein einfaches Anführungszeichen. Ein QuotedString kann beliebige Zeichen außer einfachen Anführungszeichen enthalten; die umgebenden einfachen Anführungszeichen werden entfernt. Ein UnquotedString kann beliebige Zeichen außer einfachen Anführungszeichen und linken geschweiften Klammern enthalten. Somit kann eine Zeichenfolge, die zu der formatierten Nachricht “‘{0}'” führen soll, als “”'{‘0}”” oder “”'{0}”'” geschrieben werden.

Sie müssen einfache Anführungszeichen setzen, dh der Pinsel von {0} ist {1} Zentimeter hoch

Benutzer-Avatar
Nestor Miljajew

Wenn Sie, wie ich, völlig festgefahren sind (keine der oben genannten Methoden hat funktioniert), können Sie das Apostroph-Zeichen durch seinen Unicode ersetzen: \u0027. Denken Sie daran, dass Sie immer das UTF-Symbol in Ihrer Eigenschaftendatei verwenden dürfen.

Benutzer-Avatar
Donauseefahrer

Erwägen Sie die Verwendung des Eigenschaften-Editor-Plugins (für Eclipse)

http://propedit.sourceforge.jp/index_en.html

1283860cookie-checkApostroph wird nicht richtig übersetzt, wenn es in einem Ressourcenpaket platziert wird

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy