.properties es una extensión de archivo para archivos que se utilizan principalmente en tecnologías relacionadas con Java para almacenar los parámetros configurables de una aplicación . También se pueden utilizar para almacenar cadenas para internacionalización y localización ; estos se conocen como paquetes de recursos de propiedad.
Extensión de nombre de archivo | .propiedades |
---|
Cada parámetro se almacena como un par de cadenas , una almacena el nombre del parámetro (llamada clave ) y la otra almacena el valor.
Formato
Cada línea en un archivo .properties normalmente almacena una sola propiedad. Varios formatos son posibles para cada línea, incluyendo key=value
, key = value
, key:value
, y key value
. Las comillas simples o dobles se consideran parte de la cadena. El espacio posterior es significativo y se presume que debe recortarse según lo requiera el consumidor.
Comentario líneas en los archivos .properties se denotan por el signo de número (#) o el signo de exclamación (!) Como el primer no blanco carácter , en la que se ignora todo el texto restante en esa línea. La barra invertida se usa para escapar de un personaje. A continuación se proporciona un ejemplo de un archivo de propiedades.
# Estás leyendo la entrada ".properties". ! El signo de exclamación también puede marcar texto como comentarios. # Los caracteres clave =, y: deben escribirse # con una barra invertida anterior para asegurarse de que estén correctamente cargados. # Sin embargo, no es necesario preceder el valor caracteres = y: por una barra invertida. website = https://en.wikipedia.org/ language = English # La barra invertida a continuación le dice a la aplicación que continúe leyendo # el valor en la siguiente línea. message = ¡ Bienvenido a \ Wikipedia! # Pero si el número de barras invertidas al final de la línea es par, la siguiente línea no se incluye en el valor. En el siguiente ejemplo, el valor de "clave" es "valueOverOneLine \" key = valueOverOneLine \\ # Esta línea no está incluida en el valor de "key" # Agregar espacios a la clave key \ with \ spaces = Este es el valor que se puede buscar con la tecla "clave con espacios". # Los caracteres = y: en la clave también deben escaparse: clave \ : con \ = colonAndEqualsSign = Este es el valor de la clave "clave: con = colonAndEqualsSign" # Pestaña Unicode : \ u0009 # Si desea que su propiedad incluir una barra invertida, debería escaparse con otra barra invertida ruta = c: \\ wiki \\ templates # Sin embargo, algunos editores manejarán esto automáticamente
En el ejemplo anterior, sitio web sería una clave, y su valor correspondiente sería https://en.wikipedia.org/ . Si bien el signo de número (#) y el signo de exclamación (!) Marcan el texto como comentarios, no tienen ningún efecto cuando forman parte de una propiedad. Por tanto, la clave el mensaje tiene el valor ¡Bienvenidos a Wikipedia! y no Bienvenidos a Wikipedia . Todo el espacio en blanco delante de Wikipedia! está completamente excluido.
Antes de Java 9, la codificación de un archivo .properties era ISO-8859-1 , también conocido como Latin-1. Todos los caracteres que no sean ASCII deben introducirse mediante caracteres de escape Unicode , por ejemplo, \ uHHHH donde HHHH es un índice hexadecimal del carácter en el juego de caracteres Unicode. Esto permite utilizar archivos .properties como paquetes de recursos para la localización . Un archivo de texto que no sea Latin-1 se puede convertir en un archivo .properties correcto utilizando la herramienta native2ascii que se envía con el JDK o utilizando una herramienta, como po2prop, [1] que gestiona la transformación desde un formato de localización bilingüe en .properties escapando.
Una alternativa al uso de caracteres de escape Unicode para caracteres no latinos-1 en archivos Java * .properties codificados con caracteres ISO 8859-1 es usar el formato de archivo de propiedades XML de JDK, que por defecto está codificado en UTF-8, introducido a partir de Java 1.5. [2]
Otra alternativa es crear un control personalizado que proporcione codificación personalizada. [3]
En Java 9 y versiones posteriores, la codificación predeterminada específicamente para los paquetes de recursos de propiedad es UTF-8, y si se encuentra una secuencia de bytes UTF-8 no válida, se recurre a ISO-8859-1. [4] [5]
Edición
La edición de archivos .properties se realiza mediante cualquier editor de texto , como los que normalmente se instalan en varios sistemas operativos, incluido el Bloc de notas en Windows o Emacs , Vim , etc. en sistemas Linux.
Las herramientas de terceros también están disponibles con funciones adicionales específicas para editar archivos .properties como:
- Validación de datos
- Creando nuevas claves
- Sincronización de nombres de claves
- Conversión bidireccional automática de símbolos no ASCII para admitir idiomas no latinos
- Integración con Eclipse
Usos y excepciones que no son de Java
Apache Flex también usa archivos .properties, pero aquí están codificados en UTF-8. [6]
En el formato uriworkermap.properties de Apache mod_jk , un signo de exclamación ("!") Denota un operador de Negación cuando se usa como el primer carácter no en blanco en una línea. [7]
Perl CPAN contiene Config :: Properties para interactuar con un archivo .properties. [8]
SAP utiliza archivos .properties para la localización dentro de su marco SAPUI5 y su variante de código abierto OpenUI5 [9]
Ver también
Referencias
- ^ El po2prop de Translate Toolkit convierte las codificaciones de caracteres nativas en unarchivo PO de Gettext en ascii correctamente escapado sin la necesidad de native2ascii
- ^ DTD de propiedades XML de Java
- ^ "java - Cómo utilizar UTF-8 en propiedades de recursos con ResourceBundle" . Desbordamiento de pila . Archivado desde el original el 25 de marzo de 2015 . Consultado el 28 de enero de 2015 .
- ^ "Mejoras de internacionalización en JDK 9" . Centro de ayuda de Oracle . Consultado el 5 de enero de 2018 .
- ^ "JEP 226: Paquetes de recursos de propiedad UTF-8" . OpenJDK . Consultado el 3 de septiembre de 2020 .
- ^ "IResourceBundle" . Referencia de la API de Adobe ActionScript® 3 (AS3 Flex) .
- ^ "configuración uriworkermap.properties" . Conectores de Apache Tomcat: guía de referencia .
- ^ "Config :: Propiedades - Leer y escribir archivos de propiedades" . metacpan.org .
- ^ "SAPUI5 SDK - Kit de demostración" . sapui5.hana.ondemand.com . Consultado el 14 de mayo de 2019 .
enlaces externos
java.util.Properties.load(java.io.Reader)
- proporciona la semántica precisa de archivos de propiedades Java bien formadosjava.util.PropertyResourceBundle
- describe paquetes de recursos de propiedadjava.util.Properties
- explica las propiedades de Java en un formato XML simple.- MultiProperties : es un complemento de Eclipse para editar múltiples archivos basados en valores clave con contenido similar. Este tipo de formato de archivo puede ser Propiedades, por ejemplo, en el lenguaje de programación Java, que se usa con frecuencia para respaldar un ResourceBundle.
- Propiedades de soporte : una actualización del concepto de propiedades mientras se mantiene intacto el omnipresente formato de archivo .properties.
- Editor de propiedades de Java (aplicación + complemento de Eclipse) : utilidad útil para ver y editar archivos de propiedades en un proyecto completo.
- Complemento Eclipse del Editor de propiedades de DOKSoft : herramienta i18n para instalar en Eclipse IDE.
- Editor de mensajes : administra la aplicación i18n para Java. Genera archivos de propiedades XML. Incluye dos hojas de estilo para la generación de propiedades .properties y .xml en tiempo de compilación (basado en Ant).
- JLokalize : editor de propiedades Java de código abierto con función de reversión y corrector ortográfico
- Config :: Propiedades - Perl CPAN.
- El módulo de propiedades de Jackson es una biblioteca que permite mapear el contenido del archivo de propiedades en objetos Java y viceversa, de forma similar a como se mapea comúnmente XML y JSON
- Localizely , POEditor , Lokalise , Loco y Crowdin : herramientas de traducción y localización fáciles de usar que admiten archivos .properties.
- SAPUI5 - Uso de textos localizados en aplicaciones