---
title: "Traduce archivos Java, INI, Fluent y PHP"
description: "Traduce archivos Java .properties, INI, Joomla, Inno Setup y .lang, archivos Mozilla Fluent .ftl y archivos de idioma PHP de hasta 4 MB, conservando las claves, los comentarios y los marcadores de posición."
canonical: "https://ai-glot.com/docs/es/formats/java-ini-fluent-php"
updated: "2026-10-12"
---

# Traduce archivos Java, INI, Fluent y PHP

Estos cuatro formatos de recursos comparten página porque ofrecen lo mismo: las claves y la estructura se mantienen intactas; solo cambian los valores. Se admiten archivos de hasta **4 MB**. Cada formato tiene sus propias reglas para las comillas y los marcadores de posición, que se detallan a continuación. Los cuatro contienen **un idioma por archivo**.

> **Tip: Pruébalo gratis**
>
> Arrastra un archivo de hasta 2 MB a los traductores gratuitos de [Java properties](https://ai-glot.com/file-formats/properties-translation), [INI](https://ai-glot.com/file-formats/ini-translation), [Fluent](https://ai-glot.com/file-formats/fluent-translation) o [archivos de idioma PHP](https://ai-glot.com/file-formats/php-translation) y pruébalos sin cuenta, con un límite de cinco archivos al día. La aplicación, la API y la CLI admiten archivos de hasta 4 MB.

## Java properties (`.properties`)

Las claves, el separador (`=` o `:`), los comentarios y las líneas en blanco se conservan tal cual. Los marcadores de posición de MessageFormat, como `{0}` y `{0,number,currency}`, mantienen su índice y tipo de formato. El archivo de propiedades se lee y se escribe en **UTF-8**: guarda primero como UTF-8 cualquier archivo antiguo en ISO-8859-1. Aún no se admiten los valores que continúan en la línea siguiente con una barra invertida al final. Solo se traduce la primera línea, así que antes de subir el archivo, coloca cada valor en una sola línea.

**Un archivo de propiedades de Spring**

messages.properties se convierte en `messages_fr.properties.`

Traduce los valores al francés. Conserva los marcadores de posición de MessageFormat, como \{0} y \{1,number}, sin cambios, y deja las claves y los comentarios tal cual.

## INI, Joomla, Inno Setup y `.lang` (`.ini`, `.isl`, `.lang`)

Las claves, las `[sections]`, los comentarios y las comillas se conservan tal cual. El archivo se reescribe línea a línea, por lo que las líneas que no necesitan traducción se mantienen byte por byte. Los valores entre comillas siguen entre comillas, y las comillas dentro de una traducción se escapan como en la línea original, incluido el caso de Joomla `"_QQ_"`. Los valores sin comillas se escriben literalmente, porque en Inno Setup una comilla pasaría a formar parte del texto. Cada valor INI ocupa una línea: los saltos de línea de una traducción se convierten en espacios. Si el archivo **no está en UTF-8** (los archivos de Inno Setup suelen estar en Windows-1252), se rechaza en lugar de convertirlo; guárdalo primero en UTF-8.

**Un archivo de idioma de Joomla**

Conserva las claves `COM_` y las comillas.

Traduce los valores al alemán. Conserva sin cambios los marcadores de posición como %s, %d y \[name], y deja todas las claves y los comentarios tal cual.

**Un instalador de Inno Setup**

Solo las secciones de mensajes de un archivo .isl.

Traduce solo las secciones \[Messages] y \[CustomMessages] al español. Conserva %1 y %n sin cambios.

## Fluent (`.ftl`)

Lo utilizan Firefox, Thunderbird y muchas otras aplicaciones. Los ID de mensaje, los nombres de atributos y los nombres de términos se conservan exactamente como se reciben. Las variables, como `{ $count }`, están protegidas, y cada variante plural o de selección (`[one]`, `*[other]`) se traduce como una cadena independiente, sin modificar nunca las claves de las variantes. El archivo no se reformatea: cada traducción ocupa el lugar del texto original. Las llaves literales y las líneas que empiezan por `[`, `*` o un punto se escapan para que el archivo siga siendo válido.

**Un catálogo de Fluent**

Traduce los mensajes, los atributos y todas las variantes plurales.

Traduce al italiano. Conserva sin cambios las variables, como \{ $count } y \{ $name }, y traduce cada variante plural según el contexto.

## Archivos de idioma PHP (`.php`)

Para archivos de idioma de Laravel, Symfony, CodeIgniter y PrestaShop: estructuras `return [ ... ]` o `array( ... )` con mensajes, asignaciones `$lang[...]` y cadenas `$_MODULE`. **Solo cambian los valores de texto plano.** Las claves de arrays, los argumentos de funciones, las concatenaciones, los heredocs y cualquier otro código se devuelven exactamente igual, y cada cadena conserva sus propias comillas. Se mantienen los marcadores de posición como `:attribute`, `{field}`, `%s` y `$name`. Si el archivo PHP no es un archivo de idioma, se rechaza en lugar de intentar adivinar su contenido: AI Glot no traduce código. Un plural de Laravel como `"one apple|:count apples"` es una sola cadena de texto plano, así que comprueba que el resultado incluya las formas que necesita tu idioma.

**Mensajes de validación de Laravel**

Conserva los marcadores de posición :attribute.

Traduce los mensajes al portugués. Conserva :attribute, :min, :max y %s sin cambios, y no modifiques las claves del array.

## Información útil

- **Un idioma de destino por archivo** en los cuatro formatos. Si solicitas dos, el plan traduce uno y te lo indica. Procesa el archivo una vez por idioma: el [glosario](/docs/platform/glossaries) se mantiene, así que el archivo en alemán usará los mismos términos que el francés.
- **Varios archivos a la vez.** Incluye una carpeta `lang` en un [ZIP](/docs/formats/zip) para traducirla en un solo trabajo.
- **Filtro de salida.** No está disponible para estos formatos: se devuelve el archivo completo.
- **Límite.** 4 MB para los cuatro formatos.

## Contenido relacionado

- [YAML y TOML](/docs/formats/yaml-and-toml), [JSON](/docs/formats/json) y [gettext PO](/docs/formats/gettext-po), para otros formatos de localización.
- [Todos los formatos de archivo](/docs/formats)
