Не все его сообщения требуют двух одинарных кавычек. Что означает, что он должен взломать в распознавании строк формата сообщения. Ик.

кализуем текст пользовательского интерфейса для веб-приложения, работающего на 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.

Ответы на вопрос(5)

Ваш ответ на вопрос