AI Glot websiteOpen AI Glot
File formatsJava, INI, Fluent, PHP
File formats

Translate Java, INI, Fluent and PHP files

Translate Java .properties, INI, Joomla, Inno Setup and .lang files, Mozilla Fluent .ftl and PHP language files up to 4 MB, with keys, comments and placeholders kept.

Four resource formats share this page because they share the same promise: keys and structure stay as written, and only the values change. Each is accepted up to 4 MB. Each has its own quoting and placeholder rules, listed below. All four hold one language per file.

Java properties (.properties)

Keys, the separator (= or :), comments and blank lines come back as written. MessageFormat placeholders such as {0} and {0,number,currency} are kept with their index and format type. The bundle is read and written as UTF-8: save an old ISO-8859-1 bundle as UTF-8 first. A value continued on the next line with a trailing backslash is not supported yet, and only the first line of it is translated, so put each value on one line before you upload.

A Spring bundle

messages.properties becomes messages_fr.properties.

Translate the values into French. Keep MessageFormat placeholders such as {0} and {1,number} unchanged, and leave keys and comments as they are.

INI, Joomla, Inno Setup and .lang (.ini, .isl, .lang)

Keys, [sections], comments and quoting stay as written. The file is rewritten line by line, so a line you did not need translated comes back byte for byte. A quoted value stays quoted, and a quote inside a translation is escaped the way that line already escaped it, including Joomla’s "_QQ_". Unquoted values are written literally, because in Inno Setup a quote would become part of the text. An INI value is one line: a line break in a translation becomes a space. A file that is not UTF-8 (Inno Setup files are often Windows-1252) is refused rather than converted, so save it as UTF-8 first.

A Joomla language file

Keeps the COM_ keys and the quoting.

Translate the values into German. Keep placeholders such as %s, %d and [name] unchanged, and leave all keys and comments as they are.

An Inno Setup installer

Only the message sections of an .isl file.

Translate only the [Messages] and [CustomMessages] sections into Spanish. Keep %1 and %n unchanged.

Fluent (.ftl)

Used by Firefox, Thunderbird and many apps. Message ids, attribute names and term names come back exactly as sent. Variables such as { $count } are protected, and every plural or select variant ([one], *[other]) is translated as its own string while the variant keys never change. The file is not reformatted: each translation is written where the original text was. A literal brace, or a line starting with [, * or a dot, is escaped so the file stays valid.

A Fluent catalogue

Translates messages, attributes and every plural variant.

Translate into Italian. Keep variables such as { $count } and { $name } unchanged, and translate every plural variant in context.

PHP language files (.php)

For Laravel, Symfony, CodeIgniter and PrestaShop language files: a return [ ... ] or array( ... ) of messages, $lang[...] assignments and $_MODULE strings. Only plain string values change. Array keys, function arguments, concatenations, heredocs and any other code come back exactly as they were, and each string keeps its own quoting. Placeholders such as :attribute, {field}, %s and $name are kept. A PHP file that is not a language file is refused rather than guessed at: AI Glot does not translate code. A Laravel plural such as "one apple|:count apples" is one plain string, so check the number of forms your language needs in the result.

Laravel validation messages

Keeps the :attribute placeholders working.

Translate the messages into Portuguese. Keep :attribute, :min, :max and %s unchanged, and do not change array keys.

Good to know

  • One target language per upload for all four formats. If you ask for two, the plan translates one and says so. Run the file once per language: your glossary carries over, so the German file uses the same terms as the French one.
  • Several files at once. Put a lang folder in a ZIP to translate it in one job.
  • Output filter. Not available for these formats: the whole file comes back.
  • Ceiling. 4 MB for all four.

Use these docs with your AI tools

An AI agent can read this documentation directly. You do not need an account or an API key. Everything here is public and read-only.

Query these docs via MCP

Recommended

Add this server to Claude, Claude Code, Cursor, Mistral, or any tool that supports MCP. Your agent can then search AI Glot Docs documentation and read it in full, instead of answering from memory.

https://ai-glot.com/docs/mcp
  • searchFind the passages that answer a question.
  • fetchRead one page in full, as Markdown.
  • list_pagesSee every page in this documentation.

Query these docs over HTTP

The same tools also work as plain web requests. Use this for scripts, or for any tool that does not support MCP. There is one endpoint per tool. Arguments go in the query string, and the answer comes back as JSON.

https://ai-glot.com/docs/api/docs/search?query=custom+domain

Read the OpenAPI description. It is built from the same definitions as the tools, so it always matches what the endpoints do.

Read these docs as Markdown

Add .md to any page URL to get its Markdown source. You can also send the headerAccept: text/markdown to the page URL itself.

To read the whole documentation in one file, open llms-full.txt. For a short index of every page, open llms.txt.