L'apostrophe n'est pas traduite correctement lorsqu'elle est placée dans un ensemble de ressources.
key = {0}'s brush is {1} centimeters tall
(e.g. Sam's brush is 4 centimeters tall)
L'apostrophe est manquée si je formate la clé ci-dessus à partir d'un java.util.ResourceBundle
Quel pourrait être le problème ici?
java
resourcebundle
user339108
la source
la source
Réponses:
Vous devez échapper au guillemet simple comme
la source
Je crois fermement que le problème n'est pas le bundle de ressources mais le MessageFormater que vous utilisez pour imprimer le message:
De MessageFormater java doc :
Vous devez donc écrire:
la source
Regardez le javadoc ici
la source
Vous devez doubler les guillemets simples, c'est-à-dire que le pinceau de {0} mesure {1} centimètres de haut
la source
Ajout à la réponse de @ Ralph: vous vous rendrez compte que c'est une
MessageFormat
chose quand vous avez un texte commecontre
text1
ne fonctionnerait probablement pas à travers un MessageFormater (par exemple, spring a des chemins de code différents si des arguments sont passés ou non), alors quetext2
ferait. Donc, si vous avez utilisé deux guillemets simples danstext1
, ils peuvent / s'afficheront comme tels. Vous devrez donc vérifier si des arguments sont formatés ou non et utiliser un ou deux guillemets simples en conséquence.la source
Si vous êtes complètement coincé, comme je l'étais (rien de ce qui précède n'a fonctionné), vous pouvez remplacer le signe d'apostrophe par son Unicode: \ u0027. N'oubliez pas que vous êtes toujours autorisé à utiliser le symbole UTF dans votre fichier de propriétés.
la source
Envisagez d'utiliser le plugin de l'éditeur de propriétés (pour Eclipse)
http://propedit.sourceforge.jp/index_en.html
la source
Pour tous ceux qui ont des problèmes Android dans le fichier string.xml, utilisez \ '\' au lieu d'un guillemet simple.
la source