AI Glot websiteOpen AI Glot
Using AI GlotFiles and formats
Using AI Glot

Files and formats

See every file format AI Glot accepts, the size ceiling for each one, what structure is preserved on the round trip, and how to prepare an export that re-imports cleanly.

AI Glot accepts more than 35 file formats, from Word, PDF and InDesign documents and spreadsheets to subtitles and app localization files. Whatever you upload, the same promise holds: the words change and the structure does not, so the file goes back where it came from.

This page is the reference table. For one guide per format, with what is translated, what is left alone and example instructions to copy, see File formats.

What you can upload

Size ceilings are per format, not global. A limit that works for a spreadsheet would be far too generous for a locale file, where a few megabytes is already an enormous catalogue.

Documents

FormatExtensionsCeiling
Word.docx, .dotx, .docm25 MB
PDF.pdf25 MB
PowerPoint.pptx, .potx, .ppsx, .pptm30 MB
OpenDocument text.odt25 MB
OpenDocument presentation.odp30 MB
EPUB.epub25 MB
HTML.html, .htm, .xhtml8 MB
Markdown.md, .markdown, .mdx4 MB
Plain text.txt4 MB
InDesign (IDML).idml30 MB

Spreadsheets

FormatExtensionsCeiling
CSV.csv, .tsv60 MB
Excel.xlsx, .xlsm, .xltx, .xltm50 MB
OpenDocument spreadsheet.ods20 MB

Subtitles

FormatExtensionsCeiling
SubRip.srt4 MB
WebVTT.vtt4 MB
YouTube.sbv4 MB
Advanced SubStation.ass, .ssa4 MB
TTML.ttml, .dfxp8 MB
LRC synchronized lyrics.lrc4 MB

App localization

FormatExtensionsCeiling
XLIFF.xlf, .xliff12 MB
Trados, memoQ and Phrase XLIFF.sdlxliff, .mqxliff, .mxliff12 MB
Android resources.xml12 MB
.NET resources.resx, .resw12 MB
Qt Linguist.ts12 MB
JSON.json, .arb, .resjson8 MB
JSON Lines.jsonl, .ndjson8 MB
Xcode String Catalog.xcstrings8 MB
YAML.yaml, .yml4 MB
TOML.toml4 MB
gettext.po, .pot4 MB
iOS strings.strings4 MB
iOS plural rules.stringsdict4 MB
Java properties.properties4 MB
INI.ini, .isl, .lang4 MB
Fluent.ftl4 MB
PHP language files.php4 MB
Other XML (feeds, DITA, SVG).xml, .svg, .dita, .ditamap12 MB

Archives

FormatExtensionsCeiling
ZIP.zip20 MB

A file over its ceiling is refused before any bytes are stored, so an oversized upload costs you nothing but the time to notice.

What survives the round trip

Structure is not decoration; it is what makes the result usable. Each family has its own idea of what must not change.

FamilyWhat stays as it was
Word, PowerPoint, OpenDocument, EPUBStyles, images, page layout and formatting inside a sentence. Tracked changes, comments and text inside charts are left untouched, and the plan says so
PDFEvery page, image, graphic, colour and the page size. The text is rewritten in place, in the original font when it holds the letters needed and in a matching embedded font otherwise. A translation that runs longer is set with tighter lines and slightly smaller type in its block, never cut off
Markdown, HTML, textCode, link targets, tags, scripts and line breaks
CSV, ExcelColumn order, identifiers, prices, URLs, blank rows, formulas and number formats
JSON LinesOne record per line, with every key and the order of the lines
INIComments, [sections], quoting and escapes
FluentMessage and attribute identifiers, every plural variant, and variables such as { $count }
PHP language filesCode, array keys and function arguments. Only plain string values change, and placeholders such as :attribute, {field}, %s and $name are kept
Other XMLIds, prices, URLs and attribute values, which are never translated. The plan chooses which elements hold text for people, and HTML inside CDATA stays CDATA
InDesignLayout, frames, styles, images and fonts. Text is read in page order, with formatting inside a paragraph and hyperlinks kept, and tables, footnotes and master-page text included. Deleted tracked changes are left as they are, and the document’s language dictionary is not changed, so set it in InDesign. Longer text can overflow a frame, which the designer then adjusts
JSON, YAML, TOMLEvery key, nesting level and array order. JSON is written back with two-space indentation, and YAML comments are not kept
XLIFFLocalization units, placeholders and inline tags
Trados, memoQ and Phrase XLIFFEvery segment, locked segments untouched, existing translations kept unless you ask to redo them, and Phrase text tags such as {1}. Results are marked as unconfirmed machine drafts for the translator to confirm in the tool (Trados Draft with machine origin, memoQ PartiallyEdited, Phrase unconfirmed). The whole file comes back, never a partial one
gettextMessage IDs, contexts and plural forms, with the Plural-Forms header rewritten for the target language
Android, iOS, .NET, Java, QtResource keys, format specifiers and, for Android and Apple plural files, the plural forms each language needs
SubtitlesCue numbering, timecodes and styling codes
LRC lyricsTime tags, [ar:] and [ti:] tags and word timings
ArchiveThe folder tree and every filename inside it

Keys are structure, not words. A translated JSON file drops straight back into the repository because nothing outside the values moved.

Per-cell length

Each individual source value selected for translation can hold up to 50,000 Unicode characters. Split longer HTML or editorial content into several rows or smaller fields before uploading.

A translated value is often longer than its source, so AI Glot keeps storage headroom above the input ceiling for the finished file.

An archive is also judged on how many values its members add up to, not only on its 20 MB ceiling: a translation running well under that size limit can still be refused if its files, combined, hold too many values to translate. Split a large archive into smaller ones if that happens.

The New translation page with an empty drop zone, ready for a file in any supported format

Start with the drop zone or the file picker

Preparing a spreadsheet export

CSV and Excel are the two formats people usually build by hand, and the two where a careless export causes the most trouble later.

Keep stable identifiers

Include the key your destination system uses to match rows, such as a product ID or a record ID, and leave it out of what you ask to translate.

Give columns unique names

Replace blank or duplicate headers before uploading. description_en and description_fr are far easier to reason about than two columns both called description.

Export CSV as UTF-8

Choose the UTF-8 CSV option in your spreadsheet tool. Renaming a file’s extension does not convert its contents, but you no longer need to convert at all, since .xlsx is accepted directly.

Keep a source copy

Structure is preserved, but the original export is still the safest rollback if your destination system rejects an import for reasons of its own.

CSV specifics

RequirementSupported behaviour
EncodingStrict UTF-8
DelimiterComma, semicolon or tab (.tsv), detected automatically
Line endingsLF, CRLF or CR
QuotingRFC 4180, including embedded commas and line breaks
HeadersEvery column needs a unique, non-empty header
RowsAt least one data row; every row must match the header width

Not supported

A PDF must contain real text. Scanned PDFs are refused, because a scan is a picture of a page and AI Glot does not run OCR, and so are password-protected or encrypted PDFs, PDFs whose permissions forbid editing, digitally signed PDFs (translating would break the signature) and XFA forms. The old binary formats .doc, .xls and .ppt, and Apple’s Pages, Numbers and Keynote files, are refused with a message that says how to save them as .docx, .xlsx or .pptx first. Text inside images is not read.

A few more formats are refused with a message that says what to send instead:

RefusedWhat to send instead
.inddIn InDesign, choose File > Save As > InDesign CS4 or later (IDML) and upload the .idml
.xlsbSave the workbook as .xlsx
.moSend the .po it was compiled from
.jsExport the strings to JSON
.mobi, .azw, .azw3Convert the book to EPUB
.scc, .stlExport the captions to SRT or WebVTT

In the app, a refused format shows a Request this format button that opens the support chat with your request already typed in.

Rejected files

The browser applies the same structural rules as the translation engine before the upload starts, so a malformed file fails in front of you rather than several minutes later. It rejects empty files, invalid UTF-8, unclosed or unescaped quotes, empty or duplicate headers, missing data rows, rows with the wrong number of columns, an unsupported extension, and any file over its format’s ceiling.

Over the API the same refusals arrive as unsupported_format and file_too_large.

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.