Articulo de referencia

.propiedades

La extensión .properties se utiliza principalmente en tecnologías relacionadas con Java para almacenar los parámetros configurables de una aplicación . También se puede usar par...

La extensión .properties se utiliza principalmente en tecnologías relacionadas con Java para almacenar los parámetros configurables de una aplicación . También se puede usar para almacenar cadenas de texto para la internacionalización y la localización ; estos se conocen como paquetes de recursos de propiedades (Property Resource Bundles ) .

Cada parámetro se almacena como un par de cadenas de texto : una almacena el nombre del parámetro (denominada clave ) y la otra, el valor.

A diferencia de muchos formatos de archivo populares, no existe un RFC para los archivos .properties y los documentos de especificación no siempre son claros, muy probablemente debido a la simplicidad del formato.

Formato

Cada línea en un archivo .properties normalmente almacena una sola propiedad. Son posibles varios formatos para cada línea, incluyendo key=value, key = value, key:value, y . Las comillas simples o dobles se consideran parte de la cadena. El espacio final es significativo y se presume que se recorta según lo requiera el consumidor.key value

Las líneas de comentario en los archivos .properties se indican con el signo de número (#) o el signo de exclamación (!) como primer carácter no en blanco , ignorando el resto del texto de esa línea. La barra invertida se utiliza para escapar un carácter. A continuación se muestra un ejemplo de un archivo de propiedades.

# Estás leyendo un comentario en el archivo ".properties".¡El signo de exclamación ('!') también se puede usar para comentarios.# Los comentarios son ignorados.# Las líneas en blanco también se ignoran.# Las líneas con "propiedades" contienen una clave y un valor separados por un carácter delimitador.# Hay 3 caracteres delimitadores: igual ('='), dos puntos (':') y espacio en blanco (' ', '\t' y '\f').sitio web = https://en.wikipedia.org/idioma : inglésarchivos .properties del tema# Una palabra en una línea simplemente creará una clave sin valor.vacío# Los espacios en blanco que aparecen entre la clave, el delimitador y el valor se ignoran.# Esto significa que los siguientes son equivalentes (excepto por cuestiones de legibilidad).hola = holahola = hola# Para comenzar el valor con un espacio en blanco, escápelo con una barra invertida ('\').whitespaceStart = \ <-Este espacio no se ignora.# Las claves con el mismo nombre serán sobrescritas por la clave que se encuentre más alejada en el archivo.# Por ejemplo, el valor final para "duplicateKey" será "second".duplicateKey = primeroduplicateKey = segundo# Para usar los caracteres delimitadores dentro de una clave, debe escaparlos con una ('\').# Sin embargo, no es necesario hacer esto en el valor.delimiterCharacters \:\=\ = Este es el valor para la clave "delimiterCharacters \:\=\ "# Agregar una barra invertida ('\') al final de una línea significa que el valor continúa en la siguiente línea.multilínea = Esta líneacontinúa# Si quieres que tu valor incluya una barra invertida ('\'), debes escaparla con otra barra invertida ('\').ruta = c: \\ wiki \\ plantillas# Esto significa que 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 "evenKey" es "Esto está en una línea\".evenKey = Esto está en una línea \\# Esta línea es un comentario normal y no está incluida en el valor de "evenKey".# Si el número de barras invertidas ('\') es impar, entonces la siguiente línea se incluye en el valor.# En el siguiente ejemplo, el valor de "oddKey" es "Esta es la línea uno y\# Esta es la línea dos".oddKey = Esta es la línea uno y \\\# Esta es la línea dos# Se eliminan los caracteres de espacio en blanco al principio de una línea.# Asegúrate de agregar los espacios que necesitas antes de la barra invertida ('\') en la primera línea.# Si los agregas al principio de la siguiente línea, se eliminarán.# En el siguiente ejemplo, el valor de "welcome" es "¡Bienvenido a Wikipedia!".bienvenido = Bienvenido a \¡Wikipedia!# Si necesita agregar saltos de línea y retornos de carro, debe escaparlos usando ('\n') y ('\r') respectivamente.# También puede escapar opcionalmente las tabulaciones con ('\t') para fines de legibilidad.valueWithEscapes = Esto es un salto de línea \n y un retorno de carro \r y una tabulación \t .# También puede utilizar caracteres de escape Unicode (máximo de cuatro dígitos hexadecimales).# En el siguiente ejemplo, el valor de "encodedHelloInJapanese" es "こんにちは".encodedHelloInJapanese = \u 3053 \u 3093 \u 306b \u 3061 \u 306f# Pero con codificaciones de archivos más modernas como UTF-8, puedes usar directamente los caracteres compatibles.hola en japonés =こんにちは

En el ejemplo anterior:

  • El signo de número (#) y el signo de exclamación (!) al principio de una línea ( línea 1 , 2 , etc.) marcan el texto como comentarios y los comentarios se ignoran,
  • Una línea vacía ( línea 5 ) también se ignora,
  • " sitio web " ( línea 8 ) sería una clave, y su valor correspondiente sería " https://en.wikipedia.org/ ",
  • Se excluye todo el espacio en blanco al principio de la línea 44. Esto significa que la clave " welcome " ( línea 43 ) tiene el valor " Welcome to Wikipedia! " y no " Welcome to Wikipedia !".          

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 fueran ASCII debían introducirse utilizando caracteres de escape Unicode , por ejemplo, \uHHHH, donde HHHH es un índice hexadecimal del carácter en el conjunto 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 puede convertirse a un archivo .properties correcto utilizando la herramienta native2ascii que se incluye con el JDK o utilizando una herramienta, como po2prop, [ 1 ] que gestiona la transformación de un formato de localización bilingüe a un formato de escape .properties.

Una alternativa al uso de caracteres de escape Unicode para caracteres que no sean Latin-1 en archivos *.properties de Java codificados en caracteres ISO 8859-1 es utilizar el formato de archivo XML Properties del 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 una codificación personalizada. [ 3 ]

En Java 9 y versiones posteriores, la codificación predeterminada específicamente para los paquetes de recursos de propiedades 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 utilizando cualquier editor de texto , como los que suelen estar instalados en varios sistemas operativos, incluyendo el Bloc de notas en Windows o Emacs , Vim , etc. en sistemas Linux.

También hay disponibles herramientas de terceros con funcionalidades adicionales específicas para la edición de archivos .properties, tales como:

Usos y excepciones que no son de Java

Apache Flex también utiliza 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 ].

Hay muchas opciones de Node.js (JavaScript/TypeScript) disponibles en el gestor de paquetes de Npm . [ 10 ]

PHP también tiene muchas opciones de paquetes disponibles. [ 11 ]

Véase también

Referencias

  1. La función po2prop de Translate Toolkit convierte las codificaciones de caracteres nativas en un archivo PO de Gettext en ASCII correctamente escapado sin necesidad de native2ascii.
  2. DTD de propiedades XML de Java
  3. "java - Cómo usar UTF-8 en propiedades de recursos con ResourceBundle" . Stack Overflow . Archivado del original el 17 de marzo de 2015. Consultado el 28 de enero de 2015 .
  4. "Mejoras de internacionalización en JDK 9" . Centro de ayuda de Oracle . Consultado el 5 de enero de 2018 .
  5. "JEP 226: UTF-8 Property Resource Bundles" . OpenJDK . Consultado el 3 de septiembre de 2020 .
  6. "IResourceBundle" . Referencia de la API de Adobe ActionScript 3 (AS3 Flex) .
  7. "Configuración de uriworkermap.properties" . La guía de referencia de los conectores de Apache Tomcat .
  8. "Config::Properties - Leer y escribir archivos de propiedades" . metacpan.org .
  9. "SAPUI5 SDK - Kit de demostración" . sapui5.hana.ondemand.com . Consultado el 14 de mayo de 2019 .
  10. "palabras clave:propiedades java parse - búsqueda npm" . www.npmjs.com . Consultado el 22 de marzo de 2022 .
  11. "Packagist" . packagist.org . Consultado el 22 de marzo de 2022 .
  • java.util.Properties.load(java.io.Reader)- Proporciona la semántica precisa de los archivos de propiedades Java bien formados.
  • java.util.PropertyResourceBundle- describe los paquetes de recursos de propiedades
  • java.util.Properties- Explica las propiedades de Java en un formato XML sencillo.
  • MultiProperties es un complemento de Eclipse para editar varios archivos clave-valor con contenido similar. Este tipo de formato de archivo puede ser, por ejemplo, Propiedades en el lenguaje de programación Java, que se utiliza frecuentemente para respaldar un ResourceBundle.
  • Bracket Properties : una actualización del concepto de Propiedades que mantiene intacto el formato de archivo .properties, omnipresente en la actualidad.
  • Editor de propiedades de Java (aplicación + complemento de Eclipse) : una utilidad práctica para ver y editar archivos de propiedades en todo un proyecto.
  • Complemento DOKSoft Properties Editor para Eclipse Archivado el 28/07/2014 en Wayback Machine : herramienta i18n para instalar en el IDE Eclipse.
  • Editor de mensajes : gestiona la internacionalización (i18n) para aplicaciones 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 inversión y corrector ortográfico.
  • Configuración::Propiedades - Perl CPAN.
  • El módulo Jackson Properties es una biblioteca que permite mapear el contenido de los archivos Properties a objetos Java y viceversa, de forma similar a como se mapean habitualmente XML y JSON.
  • SAPUI5 - Uso de textos localizados en aplicaciones