|Type of format||Any text format, including ASCII and Unicode Transformation Format|
.properties is a file extension for files mainly used in Java related technologies to store the configurable parameters of an application. They can also be used for storing strings for Internationalization and localization; these are known as Property Resource Bundles.
Each parameter is stored as a pair of strings, one storing the name of the parameter (called the key), and the other storing the value.
Each line in a .properties file normally stores a single property. Several formats are possible for each line, including
key = value,
.properties files can use the number sign (#) or the exclamation mark (!) as the first non blank character in a line to denote that all text following it is a comment. The backwards slash is used to escape a character. An example of a properties file is provided below.
# You are reading the ".properties" entry. ! The exclamation mark can also mark text as comments. # The key and element characters #, !, =, and : are written with # a preceding backslash to ensure that they are properly loaded. website = http\://en.wikipedia.org/ language = English # The backslash below tells the application to continue reading # the value onto the next line. message = Welcome to \ Wikipedia\! # Add spaces to the key key\ with\ spaces = This is the value that could be looked up with the key "key with spaces". # Unicode tab : \u0009
In the example above, website would be a key, and its corresponding value would be http://en.wikipedia.org/. While the number sign and the exclamation mark marks text as comments, it has no effect when it is part of a property. Thus, the key message has the value Welcome to Wikipedia! and not Welcome to Wikipedia. Note also that all of the whitespace in front of Wikipedia! is excluded completely.
The encoding of a .properties file is ISO-8859-1, also known as Latin-1. All non-Latin-1 characters must be entered by using Unicode escape characters, e.g. \uHHHH where HHHH is a hexadecimal index of the character in the Unicode character set. This allows for using .properties files as resource bundles for localization. A non-Latin-1 text file can be converted to a correct .properties file by using the native2ascii tool that is shipped with the JDK or by using a tool, such as po2prop, that manages the transformation from a bilingual localization format into .properties escaping.
An alternative to using unicode escape characters for non-Latin-1 character in ISO 8859-1 character encoded Java *.properties files is to the use the JDK's XML Properties file format which by default is UTF-8 encoded, introduced starting with Java 1.5.
Non-Java Uses and Exceptions
- Translate Toolkit's po2prop converts native character encodings in a Gettext PO file into correctly escaped ascii without the need for native2ascii
- Java XML Properties DTD
- Flex IResourceBundle reference
- Apache mod_jk uriworkermap.properties reference
java.util.Properties.load(java.io.Reader)- gives the precise semantics of well-formed Java property files
java.util.PropertyResourceBundle- describes property resource bundles
java.util.Properties- explains Java properties in a simple XML format.
- MultiProperties - It is an Eclipse plugin for editing multiple key-value based files with similar content. This kind of file format can be Properties for example in Java programming language, which is frequently used for backing a ResourceBundle.
- Bracket Properties - a refresh of the Properties concept while keeping the ubiquitous .properties file format intact.
- DOKSoft Properties Editor - useful utility to view and to edit properties files in a whole project.
- DOKSoft Properties Editor Eclipse plugin - i18n tool for installing into Eclipse IDE.
- Message Editor - it manages i18n for Java application. It generates XML property files. It includes two stylesheets for .properties and .xml property generation at compile time (Ant based.)
- JLokalize - open source Java properties editor with reversal function and spell check
- Properties to XML conversion - Conversion of properties file to XML and vice versa.