Ответ 1
Вам следует избегать одиночной кавычки как
key = {0}' brush is {1} centimeters tall
Апостроф не получается правильно переводиться при размещении в ресурсном пакете.
key = {0} brush is {1} centimeters tall
(e.g. Sam brush is 4 centimeters tall)
Апропот пропущен, если я отформатирую вышеуказанный ключ от java.util.ResourceBundle
Что может быть проблемой здесь?
Вам следует избегать одиночной кавычки как
key = {0}' brush is {1} centimeters tall
Я очень верю, что проблема заключается не в пакете ressource, а в MessageFormater, который вы используете для печати сообщения:
Внутри строки, '' (две одинарные кавычки) представляет собой одиночная кавычка. Функция QuotedString может содержат произвольные символы, кроме одинарные кавычки; окружающий одиночный цитаты удаляются. UnquotedString может содержать произвольные символы кроме одиночных кавычек и левого кудрявого кронштейны. Таким образом, строка, которая должна привести к отформатированному сообщению '{0}' может быть записано как '' '{' 0} '' или '' '{0}' ''.
Итак, вам нужно написать:
{0}' brush is {1} centimeters tall
Посмотрите javadoc здесь
В строке String "'" "представляет одиночная кавычка. Функция QuotedString может содержат произвольные символы, кроме одинарные кавычки; окружающий одиночный цитаты удаляются. UnquotedString может содержать произвольные символы кроме одиночных кавычек и левого кудрявого кронштейны. Таким образом, строка, которая должна привести к отформатированному сообщению" '{0}' "может быть записано как" '' '{' 0} '' "или" '' '{0}' ''".
Вам нужно удвоить одиночную кавычку i.e. {0} 'щетка {1} сантиметров в высоту
Добавление в ответ @Ralph:
Вы поймете, что это MessageFormat
вещь, когда у вас есть текст, похожий на
text1=It too late
против
text2={0}' too late
text1
, вероятно, не будет работать через MessageFormater (например, spring имеет разные коды кода, если аргументы переданы или нет), тогда как text2
будет.
Поэтому, если вы использовали две одинарные кавычки в text1
, они могут/будут отображаться как таковые. Поэтому вам нужно проверить, не отформатированы ли какие-либо аргументы или нет, и использовать одну или две одинарные кавычки соответственно.
Если вы полностью застреваете, как и я (ни одно из вышеперечисленных действий), вы можете заменить знак апострофа своим Unicode:\u0027. Помните, что вам всегда разрешено использовать символ UTF в файле свойств.
Рассмотрим использование плагина редактора свойств (для Eclipse)
Для всех, у кого есть проблемы с Android в файле string.xml, используйте \'\' вместо одиночной кавычки.