docs

Automatic text discovery

Advanced reference for Linguana contributors and beta evaluators.

The Vite plugin parses JSX and TSX, transforms eligible content into runtime lookups, and writes source metadata to .linguana/manifest.json. It never writes back to input files.

Eligible copy

export function Checkout() {
  return <button title="Complete purchase">Pay securely</button>;
}

Literal JSX children are extracted. Literal title, placeholder, aria-label, alt, label, and button value attributes are allowed. Every record includes repository-relative location, source, normalized text, placeholders, context, content hash, confidence, and stable ID.

Whitespace-only formatting changes preserve identity. Changing semantic context or an explicit ID can produce a new identity.

Build and inspect

bun run build
  bunx biome format .linguana/manifest.json

Verify source integrity

Use the repository’s guarded check around a build:

bun run source:before
bun run build
bun run source:after

Common failures

If expected copy is absent, confirm it is literal, visible, inside included files, and not in an excluded subtree. Dynamic or rich content should use dynamic text and links; do not weaken exclusions globally.

Next

Read Keep product text and code separate, then use the compiler reference.

Did this page get you to a working result?

On this page

No Headings