Properties
Properties | |
---|---|
Расширение | .properties |
MIME-тип | text/plain |
Тип формата | ASCII |
.properties (от англ.properties — свойства, параметры) —текстовыйформат и одноимённоерасширение имени файла. Применяется, в основном, в технологиях, связанных сJava (где имеется класс Properties с методами, позволяющими писать в файл и читать из него), для хранения конфигурационных параметровприкладного ПО (пар «ключ» — «значение»).
Описание формата
[править |править код]Файлы с расширением «.properties» являются обычнымитекстовымифайлами. Просматривать и изменять такие файлы можно в любомтекстовом редакторе.
Каждая строка файла обычно содержит один «параметр», который состоит из пары объектовстрокового типа «ключ» (имя параметра) — «значение», записанной в одном из следующих форматов:ключ=значение
,ключ = значение
,ключ:значение
иключ : значение
[1]. Пример:
website=https://ru.wikipedia.org/language:Russian
«website» и «language» — имена параметров (ключи), а «https://ru.wikipedia.org/» и «Russian» — их значения.
Комментарии начинаются с символарешётки «#» илизнака восклицания «!». Такие строки игнорируются компилятором - как и пустые строки[1].
# Это комментарий! Это тоже комментарий.
Для записи пробелов («») и некоторых других служебных символов («:», «=») внутри «ключа» их необходимо экранировать с помощью символаобратной косой черты «\». Внутри «значения» пробелы, а также другие специальные символы, экранировать не нужно.
Значение можно записать на нескольких строках - для этого нужно поставить экранирующий символ «\» в конце каждой строки[1].
# Обратная косая черта указывает на то, что значение параметра продолжается со следующей строки.# Компилятор проигнорирует перевод строки и любые пробелы в начале строки.message=Добро пожаловать в\Википедию!# Добавление пробелов в имя параметра:key\with\spaces=Это значение, доступное по ключу "key with spaces".
Параметр «message» будет иметь значение «Добро пожаловать в Википедию!» (свосклицательным знаком «!»). Обратите внимание, что все символыпробелов « » перед словом "Википедию" были удалены, поскольку пробелы в начале строки игнорируются - в отличие от пробелов, следующих за значением, которые считаются частью значения[1].
Символы "новая строка", "возврат каретки" и "табуляция" могут быть вставлены с помощью символов \n
, \r
и\t
соответственно[1].
Символ обратной косой черты тоже должен быть экранирован - с помощью символа обратной косой черты[1].
! Экранирование обратной косой черты:path:c:\\wikipedia\\templates
Некоторые редакторы, однако, осуществляют экранирование обратных косых черт автоматически[1].
Так же, как в Java, можно вставлять символыЮникода - для этого надо использовать префикс\u
[1].
# Юникодtab:\u0009
Кодировка
[править |править код]Стандартная кодировка файла — ISO-8859-1, также известная как «Latin-1». Любые символы, не входящие в состав «Latin-1», должны записываться в виде «\uHHHH», где «HHHH» — уникальный номер символа (англ. code point) в стандартеUnicode, записанный вшестнадцатеричной системе счисления.
Для преобразования символовЮникода в вид «\uHHHH» созданы специальные утилиты:
native2ascii
(поставляется в комплекте сJDK);po2prop
(написана на языкеPython и доступна по лицензииGPLv2)[2].
Длялокализации программ, написанных наJava, можно использовать другие решения:
- файлы в формате «XML Properties» (формат доступен вJDK начиная с версии Java 1.5 и по умолчанию использует кодировкуUTF-8)[3];
- создать реализацию custom control, предоставляющую поддержку любой кодировки[4].
Adobe Flex хранит файлы «.properties» в кодировкеUTF-8[5].
Редактирование
[править |править код]Редактировать файлы .properties можно при помощи любого текстового редактора.
Также можно использовать сторонние инструменты, которые предоставят дополнительную функциональность, как например:
- Валидация данных
- Создание новых ключей
- Синхронизация имен ключей
- Автоматическое двунаправленное преобразование не-ASCII символов, что позволяет поддерживать языки нелатинского алфавита
- Интеграция сEclipse
Применение
[править |править код]- ТехнологииJava.
- Локализация иинтернационализация ПО (Java resource bundle[англ.]).
- Adobe Flex.
- Конфигурационные файлытекстового редактораSciTe.
- Модульmod_jk[англ.] (англ.)веб-сервераApache Tomcat (файл «uriworkermap.properties»; исключение:восклицательный знак «!», записанный в самом начале строки или после нескольких пробелов, обозначаетотрицание)[6];
- модуль «Config::Properties» изCPAN языкаPerl (реализация интерфейса для работы с файлами «.properties»)[7].
Примечания
[править |править код]- ↑12345678Properties File Format (англ.). docs.oracle.com. Дата обращения: 21 июня 2017. Архивировано 12 мая 2017 года.
- ↑Translate Toolkit[англ.]'s
po2prop
converts native character encodings in aGettext PO file into correctly escaped ascii without the need for native2ascii - ↑Java XML Properties DTD (англ.). Дата обращения: 19 мая 2015. Архивировано 17 июля 2012 года.
- ↑java - How to use UTF-8 in resource properties with ResourceBundle - Stack Overflow (англ.). Дата обращения: 28 января 2015. Архивировано 25 марта 2015 года.
- ↑Flex IResourceBundle reference (англ.). Дата обращения: 10 марта 2012. Архивировано 29 августа 2014 года.
- ↑Apache mod_jk uriworkermap.properties reference (англ.). Дата обращения: 19 мая 2015. Архивировано 4 ноября 2014 года.
- ↑«Config::PropertiesАрхивная копия от 14 февраля 2017 наWayback Machine» в хранилищеCPAN.
Ссылки
[править |править код]java.util.Properties.load(java.io.Reader)
— точное описаниесемантики формата файла «.properties» дляJava.java.util.PropertyResourceBundle
— рассказ о «property resource bundles» дляJava.java.util.Properties
— рассказ о хранении параметров в форматеXML дляJava.- «MultiProperties» — расширение для IDEEclipse, позволяющее изменять файлы со строками вида «ключ» — «значение» (например, файлы «.properties» дляJava).
- «Bracket properties» — улучшенная реализация класса «java.util.Properties».
- «Java Properties Editor (приложение и плагин Eclipse) » — программа для отображения и изменения файлов «.properties».
- «DOKSoft Properties editor» — расширение IDEEclipse дляi18n.
- «Message editor» — программа для создания файлов в форматах «XML properties» и «.properties». Может использоваться во времякомпиляции системой сборкиAnt.
- «JLokalize» — редактор файлов «.properties» с открытым исходным кодом, написанным на языкеJava. Поддерживает отмену изменений ипроверку правописания.
- «Properties to XML conversion» — программа для преобразования файлов «.properties» в формат «XML properties» и наоборот.
- «Config::Properties» — модуль из хранилищаCPAN дляperl.