Русская Википедия:.properties: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
Строка 1: Строка 1:
{{Русская Википедия/Панель перехода}}
{{Русская Википедия/Панель перехода}}
{{Infobox file format
{{Infobox file format
Строка 128: Строка 127:
[[Категория:Форматы файлов]]
[[Категория:Форматы файлов]]
[[Категория:Расширения имени файла по алфавиту|properties]]
[[Категория:Расширения имени файла по алфавиту|properties]]
{{#set:
Текст статьи={{Infobox file format
| name = Properties
| extension = <tt>properties</tt>
| mime = text/plain
| owner =
| creatorcode =
| genre = [[ASCII]]
| containerfor =
| containedby =
| extendedfrom =
| extendedto =
}}
'''.properties''' (от англ. ''properties'' — свойства, параметры) — [[Текстовые данные|текстовый]] [[Формат файла|формат]] и одноимённое [[расширение имени файла]]. Применяется, в основном, в технологиях, связанных с [[Java]] (где имеется класс Properties с методами, позволяющими писать в файл и читать из него), для хранения конфигурационных параметров [[Прикладное программное обеспечение|прикладного ПО]] (пар «ключ» — «значение»).
== Описание формата ==
Файлы с расширением «''.properties''» являются обычными [[Текстовые данные|текстовыми]] [[файл]]ами. Просматривать и изменять такие файлы можно в любом [[текстовый редактор|текстовом редакторе]].
Каждая строка файла обычно содержит один «параметр», который состоит из пары объектов [[Строковый тип|строкового типа]] «ключ» (имя параметра) — «значение», записанной в одном из следующих форматов: <code>ключ=значение</code>, <code>ключ = значение</code>, <code>ключ:значение</code> и <code>ключ : значение</code><ref name=":0">{{Cite web|url=https://docs.oracle.com/cd/E23095_01/Platform.93/ATGProgGuide/html/s0204propertiesfileformat01.html|title=Properties File Format|lang=en|publisher=docs.oracle.com|accessdate=2017-06-21|archive-date=2017-05-12|archive-url=https://web.archive.org/web/20170512004108/http://docs.oracle.com/cd/E23095_01/Platform.93/ATGProgGuide/html/s0204propertiesfileformat01.html|deadlink=no}}</ref>. Пример:
<syntaxhighlight lang="properties">
website = https://ru.wikipedia.org/
language : Russian
</syntaxhighlight>
«website» и «language» — имена параметров (ключи), а «<nowiki>https://ru.wikipedia.org/»</nowiki> и «Russian» — их значения.
[[Комментарии (программирование)|Комментарии]] начинаются с символа [[Знак решётки|решётки «#»]] или [[Восклицательный знак|знака восклицания «!»]]. Такие строки игнорируются компилятором - как и пустые строки<ref name=":0" />.
<syntaxhighlight lang="properties">
# Это комментарий
! Это тоже комментарий.
</syntaxhighlight>
Для записи пробелов ({{nobr|«[[Пробел| ]]»}}) и некоторых других служебных символов («:», «=») внутри «ключа» их необходимо экранировать с помощью символа [[Обратная косая черта|обратной косой черты «\»]]. Внутри «значения» пробелы, а также другие специальные символы, экранировать не нужно.
Значение можно записать на нескольких строках - для этого нужно поставить экранирующий символ «[[Обратная косая черта|\]]» в конце каждой строки<ref name=":0" />.
<syntaxhighlight lang="properties">
# Обратная косая черта указывает на то, что значение параметра продолжается со следующей строки.
# Компилятор проигнорирует перевод строки и любые пробелы в начале строки.
message = Добро пожаловать в \
          Википедию!
# Добавление пробелов в имя параметра:
key\ with\ spaces = Это значение, доступное по ключу "key with spaces".
</syntaxhighlight>
Параметр «message» будет иметь значение «Добро пожаловать в Википедию!» (с [[Восклицательный знак|восклицательным знаком «!»]]). Обратите внимание, что все символы {{nobr|[[пробел]]ов « »}} перед словом "Википедию" были удалены, поскольку пробелы в начале строки игнорируются - в отличие от пробелов, следующих за значением, которые считаются частью значения<ref name=":0" />.
Символы "новая строка", "возврат каретки" и "табуляция" могут быть вставлены с помощью символов <code>\n</code>, <code>\r</code> и <code>\t</code> соответственно<ref name=":0" />.
Символ обратной косой черты тоже должен быть экранирован - с помощью символа обратной косой черты<ref name=":0" />.<syntaxhighlight lang="properties">
! Экранирование обратной косой черты:
path:c:\\wikipedia\\templates
</syntaxhighlight>Некоторые редакторы, однако, осуществляют экранирование обратных косых черт автоматически<ref name=":0" />.
Так же, как в Java, можно вставлять символы [[Юникод]]а - для этого надо использовать префикс <code>\u</code><ref name=":0" />.
<syntaxhighlight lang="properties">
# Юникод
tab : \u0009
</syntaxhighlight>
== Кодировка ==
Стандартная кодировка файла — [[ISO-8859-1]], также известная как «[[Latin-1]]». Любые символы, не входящие в состав «[[Latin-1]]», должны записываться в виде «\uHHHH», где «HHHH» — уникальный номер символа ({{lang-en|code point}}) в стандарте [[Юникод|Unicode]], записанный в [[Шестнадцатеричная система счисления|шестнадцатеричной системе счисления]].
Для преобразования символов [[Юникод]]а в вид «\uHHHH» созданы специальные утилиты:
* <code>native2ascii</code> (поставляется в комплекте с [[Java Development Kit|JDK]]);
* <code>po2prop</code> (написана на языке [[Python]] и доступна по лицензии [[GNU General Public License#GPL v2|GPLv2]])<ref>{{iw|Translate Toolkit||en|Translate Toolkit}}'s <code>[http://docs.translatehouse.org/projects/translate-toolkit/en/latest/commands/prop2po.html po2prop]</code> converts native character encodings in a [[Gettext]] PO file into correctly escaped ascii without the need for native2ascii</ref>.
Для [[Локализация программного обеспечения|локализации]] программ, написанных на [[Java]], можно использовать другие решения:
* файлы в формате «XML Properties» (формат доступен в [[Java Development Kit|JDK]] начиная с версии Java 1.5 и по умолчанию использует кодировку [[UTF-8]])<ref>{{Cite web |url=http://java.sun.com/dtd/properties.dtd |title=Java XML Properties DTD |lang=en|access-date=2015-05-19 |archive-date=2012-07-17 |archive-url=https://web.archive.org/web/20120717031109/http://java.sun.com/dtd/properties.dtd |deadlink=no }}</ref>;
* создать реализацию custom control, предоставляющую поддержку любой кодировки<ref>{{cite web|title=java - How to use UTF-8 in resource properties with ResourceBundle - Stack Overflow|url=http://stackoverflow.com/questions/4659929/how-to-use-utf-8-in-resource-properties-with-resourcebundle|lang=en|archiveurl=https://www.webcitation.org/6XHaz0xQF?url=http://stackoverflow.com/questions/4659929/how-to-use-utf-8-in-resource-properties-with-resourcebundle|archivedate=2015-03-25|deadurl=no|accessdate=2015-01-28}}</ref>.
[[Adobe Flex]] хранит файлы «''.properties''» в кодировке [[UTF-8]]<ref>{{Cite web |url=http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/resources/IResourceBundle.html |title=Flex IResourceBundle reference |lang=en|access-date=2012-03-10 |archive-date=2014-08-29 |archive-url=https://web.archive.org/web/20140829145642/http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/resources/IResourceBundle.html |deadlink=no }}</ref>.
== Редактирование ==
Редактировать файлы .properties можно при помощи любого текстового редактора.
Также можно использовать сторонние инструменты, которые предоставят дополнительную функциональность, как например:
* [[Валидация данных]]
* Создание новых ключей
* [[Синхронизация (информатика)|Синхронизация]] имен ключей
* Автоматическое двунаправленное преобразование не-[[ASCII]] символов, что позволяет поддерживать языки не [[Латинский алфавит|латинского алфавита]]
* Интеграция с [[Eclipse (среда разработки)|Eclipse]]
== Применение ==
* Технологии [[Java (язык программирования)|Java]].
* [[Локализация программного обеспечения|Локализация]] и [[интернационализация]] ПО ({{iw|Java resource bundle||en|Java resource bundle}}).
* [[Adobe Flex]].
* Конфигурационные файлы [[Текстовый редактор|текстового редактора]] [[SciTe]].
* Модуль {{iw|mod_jk||en|mod_jk}}{{ref-en}} [[веб-сервер]]а [[Apache Tomcat]] (файл «uriworkermap.properties»; исключение: [[Восклицательный знак|восклицательный знак «!»]], записанный в самом начале строки или после нескольких пробелов, обозначает [[отрицание]])<ref>{{Cite web |url=http://tomcat.apache.org/connectors-doc/reference/uriworkermap.html#Exclusion,%20Disabling%20and%20Priorities |title=Apache mod_jk uriworkermap.properties reference |lang=en|access-date=2015-05-19 |archive-date=2014-11-04 |archive-url=https://web.archive.org/web/20141104113136/http://tomcat.apache.org/connectors-doc/reference/uriworkermap.html#Exclusion,%20Disabling%20and%20Priorities |deadlink=no }}</ref>;
* модуль «Config::Properties» из [[CPAN]] языка [[Perl]] (реализация интерфейса для работы с файлами «.properties»)<ref>«[http://search.cpan.org/search?query=Config%3A%3AProperties&mode=module Config::Properties] {{Wayback|url=http://search.cpan.org/search?query=Config%3A%3AProperties&mode=module |date=20170214171854 }}» в хранилище [[CPAN]].</ref>.
== Примечания ==
{{Примечания}}
== Ссылки ==
*{{Javadoc:SE|package=java.util|java.base/java/util|Properties|load(java.io.Reader)}} — точное описание [[Семантика|семантики]] формата файла «.properties» для [[Java]].
*{{Javadoc:SE|package=java.util|java.base/java/util|PropertyResourceBundle}} — рассказ о «property resource bundles» для [[Java]].
*{{Javadoc:SE|package=java.util|java.base/java/util|Properties}} — рассказ о хранении параметров в формате [[XML]] для [[Java]].
* «[http://marketplace.eclipse.org/content/multiproperties MultiProperties]» — расширение для IDE [[Eclipse (среда разработки)|Eclipse]], позволяющее изменять файлы со строками вида «ключ» — «значение» (например, файлы «.properties» для [[Java]]).
* «[http://code.google.com/p/bracket-properties/ Bracket properties]» — улучшенная реализация класса «java.util.Properties».
* «[http://java-properties-editor.com/ Java Properties Editor (приложение и плагин Eclipse)] » — программа для отображения и изменения файлов «.properties».
* «[http://marketplace.eclipse.org/content/properties-editor-java-i18n-tool DOKSoft Properties editor]» — расширение IDE [[Eclipse (среда разработки)|Eclipse]] для [[Интернационализация|i18n]].
* «[http://sourceforge.net/projects/meor Message editor]» — программа для создания файлов в форматах «XML properties» и «.properties». Может использоваться во время [[компиляции]] системой сборки [[Apache Ant|Ant]].
* «[http://sourceforge.net/projects/jlokalize JLokalize]» — редактор файлов «.properties» с открытым исходным кодом, написанным на языке [[Java]]. Поддерживает отмену изменений и [[Система проверки правописания|проверку правописания]].
* «[http://www.javaexperience.com/properties-file-to-xml-conversion-using-java-program/ Properties to XML conversion]» — программа для преобразования файлов «.properties» в формат «XML properties» и наоборот.
* «[http://search.cpan.org/search?query=Config%3A%3AProperties&mode=module Config::Properties]» — модуль из хранилища [[CPAN]] для [[perl]].
[[Категория:Файлы конфигурации]]
[[Категория:Java]]
[[Категория:Форматы файлов]]
[[Категория:Расширения имени файла по алфавиту|properties]]
}}
{{Навигационная таблица/Портал/Русская Википедия}}
{{Навигационная таблица/Портал/Русская Википедия}}
[[Категория:Русская Википедия]]
[[Категория:Русская Википедия]]

Текущая версия от 23:20, 10 июля 2023

Шаблон:Infobox file format

.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» — уникальный номер символа (Шаблон:Lang-en) в стандарте 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,0 1,1 1,2 1,3 1,4 1,5 1,6 1,7 Шаблон:Cite web
  2. Шаблон:Iw's po2prop converts native character encodings in a Gettext PO file into correctly escaped ascii without the need for native2ascii
  3. Шаблон:Cite web
  4. Шаблон:Cite web
  5. Шаблон:Cite web
  6. Шаблон:Cite web
  7. «Config::Properties Шаблон:Wayback» в хранилище CPAN.