.properties

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Properties
Расширение

.properties

MIME-тип

text/plain

Тип формата

ASCII

.properties (от англ. properties — свойства, параметры) — текстовый формат и одноимённое расширение имени файла. Применяется, в основном, в технологиях, связанных с Java, для хранения конфигурационных параметров прикладного ПО (пар «ключ» — «значение»).

Описание формата[править | править вики-текст]

Файлы с расширением «.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 можно при помощи любого текстового редактора.

Также можно использовать сторонние инструменты, которые предоставят дополнительный функционал, как например:

Применение[править | править вики-текст]

Примечания[править | править вики-текст]

  1. 1 2 3 4 5 6 7 8 Properties File Format. docs.oracle.com. Проверено 21 июня 2017.
  2. Translate Toolkit[en]'s po2prop converts native character encodings in a Gettext PO file into correctly escaped ascii without the need for native2ascii
  3. Java XML Properties DTD
  4. java - How to use UTF-8 in resource properties with ResourceBundle - Stack Overflow. Проверено 28 января 2015. Архивировано 25 марта 2015 года.
  5. Flex IResourceBundle reference
  6. Apache mod_jk uriworkermap.properties reference
  7. «Config::Properties» в хранилище CPAN.

Ссылки[править | править вики-текст]