.характеристики
Расширение имени файла | .характеристики |
---|---|
Тип интернет-СМИ | текстовый/обычный |
.properties — это расширение файлов в , которые основном используются в технологиях, связанных с Java, для хранения настраиваемых параметров приложения . Их также можно использовать для хранения строк для интернационализации и локализации ; они известны как пакеты ресурсов собственности.
Каждый параметр хранится в виде пары строк : одна хранит имя параметра (называемую ключом ), а другая — значение.
В отличие от многих популярных форматов файлов, для файлов .properties не существует RFC , а документы со спецификациями не всегда понятны, скорее всего, из-за простоты формата.
Формат
[ редактировать ]Каждая строка файла .properties обычно хранит одно свойство. Для каждой строки возможно несколько форматов, в том числе key=value
, key = value
, key:value
, и key value
. Одинарные или двойные кавычки считаются частью строки. Запасное пространство является значительным и предполагается, что оно будет сокращено по требованию потребителя.
Строки комментариев в файлах .properties обозначаются цифровым знаком (#) или восклицательным знаком (!) в качестве первого непустого символа , при этом весь оставшийся текст в этой строке игнорируется. Обратная косая черта используется для перехода к символу. Ниже приведен пример файла свойств.
# You are reading a comment in ".properties" file.! The exclamation mark ('!') can also be used for comments.# Comments are ignored.# Blank lines are also ignored.# Lines with "properties" contain a key and a value separated by a delimiting character.# There are 3 delimiting characters: equal ('='), colon (':') and whitespace (' ', '\t' and '\f').website = https://en.wikipedia.org/language : Englishtopic .properties files# A word on a line will just create a key with no value.empty# Whitespace that appears between the key, the delimiter and the value is ignored.# This means that the following are equivalent (other than for readability).hello=hellohello = hello# To start the value with whitespace, escape it with a backspace ('\').whitespaceStart = \ <-This space is not ignored.# Keys with the same name will be overwritten by the key that is the furthest in a file.# For example the final value for "duplicateKey" will be "second".duplicateKey = firstduplicateKey = second# To use the delimiter characters inside a key, you need to escape them with a ('\').# However, there is no need to do this in the value.delimiterCharacters\:\=\ = This is the value for the key "delimiterCharacters\:\=\ "# Adding a backslash ('\') at the end of a line means that the value continues on the next line.multiline = This line \continues# If you want your value to include a backslash ('\'), it should be escaped by another backslash ('\').path = c:\\wiki\\templates# This means that if the number of backslashes ('\') at the end of the line is even, the next line is not included in the value. # In the following example, the value for "evenKey" is "This is on one line\".evenKey = This is on one line\\# This line is a normal comment and is not included in the value for "evenKey".# If the number of backslash ('\') is odd, then the next line is included in the value.# In the following example, the value for "oddKey" is "This is line one and\# This is line two".oddKey = This is line one and\\\# This is line two# Whitespace characters at the beginning of a line is removed.# Make sure to add the spaces you need before the backslash ('\') on the first line. # If you add them at the beginning of the next line, they will be removed.# In the following example, the value for "welcome" is "Welcome to Wikipedia!".welcome = Welcome to \ Wikipedia!# If you need to add newlines and carriage returns, they need to be escaped using ('\n') and ('\r') respectively.# You can also optionally escape tabs with ('\t') for readability purposes.valueWithEscapes = This is a newline\n and a carriage return\r and a tab\t.# You can also use Unicode escape characters (maximum of four hexadecimal digits).# In the following example, the value for "encodedHelloInJapanese" is "こんにちは".encodedHelloInJapanese = \u3053\u3093\u306b\u3061\u306f# But with more modern file encodings like UTF-8, you can directly use supported characters.helloInJapanese = こんにちは
В примере выше:
- знак номера (#) и восклицательный знак (!) в начале строки (строка 1, 2 и т. д.) помечают текст как комментарии, а комментарии игнорируются,
- пустая строка (строка 5) также игнорируется,
- " веб-сайт " (строка 8) будет ключом, а соответствующее ему значение будет " https://en.wikipedia.org/ ",
- все пробелы в начале строки 44 исключаются. Это означает, что ключ " добро пожаловать » (строка 43) имеет значение « Добро пожаловать в Википедию! "и не" Добро пожаловать в Википедию !».
До версии Java 9 файл .properties имел кодировку ISO-8859-1 , также известную как Latin-1. Все символы, отличные от ASCII, необходимо вводить с помощью escape-символов Юникода , например \uHHHH, где HHHH — шестнадцатеричный индекс символа в наборе символов Юникода. Это позволяет использовать файлы .properties в качестве пакетов ресурсов для локализации . Текстовый файл, отличный от Latin-1, можно преобразовать в правильный файл .properties с помощью инструмента Native2ascii , поставляемого с JDK , или с помощью такого инструмента, как po2prop, [1] который управляет преобразованием формата двуязычной локализации в экранирование .properties.
Альтернативой использованию escape-символов Юникода для символов, отличных от Latin-1, в файлах Java *.properties с кодировкой символов ISO 8859-1 является использование формата файла свойств XML JDK, который по умолчанию имеет кодировку UTF-8 , представленный начиная с Java 1.5. [2]
Другой альтернативой является создание пользовательского элемента управления, обеспечивающего пользовательскую кодировку. [3]
В Java 9 и более поздних версиях кодировкой по умолчанию специально для пакетов ресурсов свойств является UTF-8, и если встречается недопустимая последовательность байтов UTF-8, она возвращается к ISO-8859-1. [4] [5]
Редактирование
[ редактировать ]Редактирование файлов .properties выполняется с помощью любого текстового редактора , который обычно устанавливается в различных операционных системах, включая Блокнот в Windows или Emacs , Vim и т. д. в системах Linux.
Также доступны сторонние инструменты с дополнительными функциями, предназначенными для редактирования файлов .properties, такими как:
- Проверка данных
- Создание новых ключей
- Синхронизация названий клавиш
- Автоматическое двунаправленное преобразование символов, отличных от ASCII, для поддержки нелатинских языков .
- Интеграция с Eclipse
Использование и исключения, отличные от Java
[ редактировать ]Apache Flex также использует файлы .properties, но здесь они имеют кодировку UTF-8. [6]
В формате uriworkermap.properties Apache mod_jk восклицательный знак ("!") обозначает оператор отрицания , когда он используется в качестве первого непустого символа в строке. [7]
Perl CPAN содержит Config::Properties для взаимодействия с файлом .properties. [8]
SAP использует файлы .properties для локализации в своей среде SAPUI5 и его вариант с открытым исходным кодом OpenUI5. [9]
множество опций Node.js (JavaScript/TypeScript) . доступно В менеджере пакетов Npm [10]
PHP также имеет множество вариантов пакетов. [11]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Translate Toolkit Po2prop файле Gettext преобразует собственные кодировки символов в . PO в правильно экранированные ascii без необходимости использования own2ascii
- ^ DTD свойств Java XML
- ^ «Java — Как использовать UTF-8 в свойствах ресурса с помощью ResourceBundle» . Переполнение стека . Архивировано из оригинала 17 марта 2015 г. Проверено 28 января 2015 г.
- ^ «Усовершенствования интернационализации в JDK 9» . Справочный центр Oracle . Проверено 5 января 2018 г.
- ^ «JEP 226: Пакеты ресурсов свойств UTF-8» . OpenJDK . Проверено 3 сентября 2020 г.
- ^ «IResourceBundle» . Справочник по API Adobe ActionScript 3 (AS3 Flex) .
- ^ «Конфигурация uriworkermap.properties» . Соединители Apache Tomcat — Справочное руководство .
- ^ «Config::Properties — чтение и запись файлов свойств» . Metacpan.org .
- ^ «SAPUI5 SDK — демонстрационный комплект» . sapui5.hana.ondemand.com . Проверено 14 мая 2019 г.
- ^ «ключевые слова: свойства разбора Java — поиск npm» . www.npmjs.com . Проверено 22 марта 2022 г.
- ^ «Упаковщик» . packagegist.org . Проверено 22 марта 2022 г.
Внешние ссылки
[ редактировать ]java.util.Properties.load(java.io.Reader)
- дает точную семантику правильно сформированных файлов свойств Java.java.util.PropertyResourceBundle
- описывает пакеты ресурсов свойствjava.util.Properties
- объясняет свойства Java в простом формате XML.- MultiProperties — это плагин Eclipse для редактирования нескольких файлов на основе значений ключа со схожим содержимым. Этот тип формата файла может быть свойством, например, в языке программирования Java, который часто используется для поддержки ResourceBundle.
- Свойства скобок — обновленная концепция свойств с сохранением вездесущего формата файлов .properties.
- Редактор свойств Java (приложение + плагин Eclipse) — полезная утилита для просмотра и редактирования файлов свойств во всем проекте.
- Плагин Eclipse редактора свойств DOKSoft. Архивировано 28 июля 2014 г. на Wayback Machine — инструмент i18n для установки в Eclipse IDE.
- Редактор сообщений — управляет i18n для Java-приложения. Он генерирует файлы свойств XML. Он включает в себя две таблицы стилей для создания свойств .properties и .xml во время компиляции (на основе Ant).
- JLokalize — редактор свойств Java с открытым исходным кодом, функцией реверса и проверкой орфографии.
- Конфиг::Свойства - Perl CPAN.
- Модуль свойств Джексона — это библиотека, которая позволяет сопоставлять содержимое файла свойств с объектами Java и обратно, аналогично тому, как XML и JSON . обычно сопоставляются
- SAPUI5 — Использование локализованных текстов в приложениях