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].
Примечания
- ↑ 1 2 3 4 5 6 7 8 Properties File Format (англ.). docs.oracle.com. Дата обращения: 21 июня 2017. Архивировано 12 мая 2017 года.
- ↑ Translate Toolkit[англ.]'s
po2propconverts native character encodings in a Gettext 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» — расширение для IDE Eclipse, позволяющее изменять файлы со строками вида «ключ» — «значение» (например, файлы «.properties» для Java).
- «Bracket properties» — улучшенная реализация класса «java.util.Properties».
- «Java Properties Editor (приложение и плагин Eclipse) » — программа для отображения и изменения файлов «.properties».
- «DOKSoft Properties editor» — расширение IDE Eclipse для i18n.
- «Message editor» — программа для создания файлов в форматах «XML properties» и «.properties». Может использоваться во время компиляции системой сборки Ant.
- «JLokalize» — редактор файлов «.properties» с открытым исходным кодом, написанным на языке Java. Поддерживает отмену изменений и проверку правописания.
- «Properties to XML conversion» — программа для преобразования файлов «.properties» в формат «XML properties» и наоборот.
- «Config::Properties» — модуль из хранилища CPAN для perl.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.