Apostrof tidak diterjemahkan dengan benar ketika ditempatkan dalam bundel sumber daya.
key = {0}'s brush is {1} centimeters tall
(e.g. Sam's brush is 4 centimeters tall)
Tanda kutip terlewatkan jika saya memformat kunci di atas dari a. java.util.ResourceBundle
Apa masalahnya di sini?
java
resourcebundle
pengguna339108
sumber
sumber
Jawaban:
Anda harus menghindari kutipan tunggal sebagai
key = {0}''s brush is {1} centimeters tall
sumber
Saya sangat yakin bahwa masalahnya bukanlah bundel ressource tetapi pada MessageFormater yang Anda gunakan untuk mencetak pesan:
Dari MessageFormater java doc :
Jadi, Anda perlu menulis:
{0}''s brush is {1} centimeters tall
sumber
Lihat javadoc di sini
sumber
Anda perlu menggandakan tanda kutip tunggal, misalnya sikat {0} tingginya {1} sentimeter
sumber
Menambah jawaban @ Ralph: Anda akan menyadari bahwa ini adalah
MessageFormat
sesuatu ketika Anda memiliki teks sepertitext1=It's too late
melawan
text2={0}''s too late
text1
mungkin tidak akan berjalan melalui MessageFormater (misalnya pegas memiliki jalur kode yang berbeda jika argumen dilewatkan atau tidak), sedangkantext2
akan. Jadi, jika Anda menggunakan dua tanda kutip tunggaltext1
, mungkin / akan ditampilkan seperti itu. Jadi, Anda harus memeriksa apakah ada argumen yang diformat atau tidak dan gunakan satu atau dua tanda kutip tunggal yang sesuai.sumber
Jika Anda benar-benar macet, seperti saya (tidak ada yang berhasil di atas), Anda dapat mengganti tanda apostrof dengan Unicode-nya: \ u0027. Ingat Anda selalu diperbolehkan menggunakan simbol UTF di file properti Anda.
sumber
Pertimbangkan untuk menggunakan plugin Editor Properti (untuk Eclipse)
http://propedit.sourceforge.jp/index_en.html
sumber
Untuk semua orang yang memiliki masalah Android di string.xml, gunakan \ '\' sebagai ganti tanda kutip tunggal.
sumber