Apostroph wird nicht richtig übersetzt, wenn es in ein Ressourcenpaket gestellt 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 aus einem java.util.ResourceBundle
Was könnte hier das Problem sein?
java
resourcebundle
user339108
quelle
quelle
Antworten:
Sie sollten dem einfachen Anführungszeichen als entkommen
quelle
Ich bin der festen Überzeugung, dass das Problem nicht das Ressourcenpaket ist, sondern der MessageFormater, mit dem Sie die Nachricht drucken:
Aus MessageFormater Java Doc :
Sie müssen also schreiben:
quelle
Schauen Sie sich hier den Javadoc an
quelle
Sie müssen ein einfaches Anführungszeichen verdoppeln, dh der Pinsel von {0} ist {1} Zentimeter groß
quelle
Hinzufügen zu @ Ralphs Antwort: Sie werden feststellen, dass dies eine
MessageFormat
Sache ist, wenn Sie einen Text wie habengegen
text1
würde wahrscheinlich nicht durch einen MessageFormater laufen (z. B. hat spring unterschiedliche Codepfade, wenn Argumente übergeben werden oder nicht), wohingegentext2
würde. Wenn Sie also zwei einfache Anführungszeichen verwendet habentext1
, werden diese möglicherweise als solche angezeigt. Sie müssen also überprüfen, ob Argumente formatiert wurden oder nicht, und entsprechend ein oder zwei einfache Anführungszeichen verwenden.quelle
Wenn Sie wie ich völlig feststecken (keiner der oben genannten Punkte hat funktioniert), können Sie das Apostrophzeichen durch den Unicode ersetzen: \ u0027. Denken Sie daran, dass Sie in Ihrer Eigenschaftendatei immer das UTF-Symbol verwenden dürfen.
quelle
Erwägen Sie die Verwendung des Eigenschaften-Editor-Plugins (für Eclipse).
http://propedit.sourceforge.jp/index_en.html
quelle
Verwenden Sie für alle, die Android-Probleme in der Datei string.xml haben, \ '\' anstelle von einfachen Anführungszeichen.
quelle