Не все его сообщения требуют двух одинарных кавычек. Что означает, что он должен взломать в распознавании строк формата сообщения. Ик.
кализуем текст пользовательского интерфейса для веб-приложения, работающего на Java 5, и имеем дилемму о том, как мы выводим сообщения, которые определены в файлах свойств - тип, используемыйjava.util.Properties.
Некоторые сообщения содержат заполнитель, который будет заполнен с помощьюjava.text.MessageFormat, Например:
search.summary = Your search for {0} found {1} items.
MessageFormat раздражает, потому что одиночная кавычка является специальным символом, несмотря на то, что встречается в английском тексте. Вы должны ввести два для буквальной одинарной кавычки:
warning.item = This item''s {0} is not valid.
Однако три четверти из примерно 1000 сообщений приложения не содержат заполнителя. Это означает, что мы можем выводить их напрямую, избегая MessageFormat и оставляя одиночные кавычки в покое:
help.url = The web page's URL
Вопрос: мы должны использовать MessageFormat для всех сообщений, для согласованного синтаксиса или избегать MessageFormat там, где это возможно, чтобы большинству сообщений не нужно было экранировать?
В любом случае есть свои плюсы и минусы.
Обратите внимание, что документация API для MessageFormat признает проблему и предлагает не решение:
К сожалению, правила использования кавычек в шаблонах форматов сообщений несколько запутаны. В частности, для локализаторов не всегда очевидно, нужно ли удваивать одинарные кавычки или нет. Обязательно сообщите локализаторам о правилах и сообщите им (например, используя комментарии в исходных файлах комплекта ресурсов), какие строки будут обрабатываться MessageFormat.