DEVELOPER TEAMS

READMEs and API docs for every developer, every language

Ellon AI translates Markdown documentation, READMEs, and API guides while keeping code blocks, inline formatting, and link structure perfectly intact. so developer audiences worldwide read your docs the way you wrote them.

Documentation translation breaks the code

Developer documentation is half prose, half code. A README walks through installation, shows a command-line example, embeds a configuration file, links to three other pages, and throws in a badge or two. When a generic translation tool runs on that, the code blocks get 'translated' (which breaks the example), the inline code gets wrapped weirdly, the links point to broken anchors, and the badges come out as URL-encoded garbage. The maintainer then spends an evening manually diffing the translated README against the English one to find everything the tool mangled. Most projects give up on translated docs entirely. Ellon AI respects the structure: code blocks stay untouched, inline code is left verbatim, links point where they pointed, badges render. The prose translates; the code doesn't.

  • Code blocks (fenced and indented) never translated. always preserved exactly
  • Inline code, badges, and shields.io URLs pass through unchanged
  • Link anchors and internal references preserved
  • GitHub Flavored Markdown fully supported

Translate a full README without touching a line of code

Upload a README, API doc, changelog, or Markdown documentation file. Ellon AI translates headings, paragraphs, bullet lists, and table descriptions while keeping fenced code blocks, inline backticks, shields.io badges, anchor-link URLs, YAML frontmatter, and filenames completely untouched. The translated file renders identically on GitHub, GitBook, or VitePress. every example command still runs.

Original · English

nova-labs / nova-routerREADME.md · UTF-8 · LF
nova-labs/nova-router·main·README.md 2.4k 184 12
npmv1.4.2buildpassingcoverage94%licenseMITbundle1.2 kBtypesTypeScript

🧭 Nova Router

A minimalist, TypeScript-first routing library for modern web apps. 1.2 kB gzipped, zero dependencies, works in Node, Deno, and the browser.

## Installation

bashUnchanged across translation
$ npm install nova-router
# or
$ yarn add nova-router
$ pnpm add nova-router

## Usage

Import Router and declare routes with the async handlers you already know:

javascriptUnchanged across translation
import { Router } from 'nova-router'

const app = new Router({
  base: '/app',
  strict: true,
})

app.get('/users/:id', async (ctx) => {
  return ctx.json({ user: ctx.params.id })
})

app.listen(3000, () => {
  console.log('🚀 listening on :3000')
})

## Configuration

Every instance of Router accepts an options object with the following fields:

OptionTypeDefaultDescription
basestring'/'Base path prefix applied to every declared route
strictbooleanfalseEnforce strict trailing slashes
cachebooleantrueCache compiled route matchers in memory
loggerLogger | nullnullOptional logger used for route lifecycle events

## Contributing

Contributions are welcome. Please read CONTRIBUTING.md before submitting a PR:

  • Fork the repository and create a branch from main
  • Run npm test and npm run lint before committing
  • Open an issue to discuss breaking changes before starting work

Licensed under the [MIT License](./LICENSE).

See also: Documentation·Examples·Changelog

GitHub Flavored Markdown · CommonMarkRenders identically on GitHub · GitBook · VitePress

Translated · Español

nova-labs / nova-routerREADME.md · UTF-8 · LF
nova-labs/nova-router·main·README.md 2.4k 184 12
npmv1.4.2buildpassingcoverage94%licenseMITbundle1.2 kBtypesTypeScript

🧭 Nova Router

Una librería de enrutado minimalista y con TypeScript nativo para aplicaciones web modernas. 1,2 kB comprimido, sin dependencias, funciona en Node, Deno y el navegador.

## Instalación

bashUnchanged across translation
$ npm install nova-router
# or
$ yarn add nova-router
$ pnpm add nova-router

## Uso

Importa Router y declara las rutas con los manejadores asíncronos que ya conoces:

javascriptUnchanged across translation
import { Router } from 'nova-router'

const app = new Router({
  base: '/app',
  strict: true,
})

app.get('/users/:id', async (ctx) => {
  return ctx.json({ user: ctx.params.id })
})

app.listen(3000, () => {
  console.log('🚀 listening on :3000')
})

## Configuración

Cada instancia de Router acepta un objeto de opciones con los siguientes campos:

OpciónTipoPredeterminadoDescripción
basestring'/'Prefijo de ruta base aplicado a cada ruta declarada
strictbooleanfalseAplica la barra final de forma estricta
cachebooleantrueAlmacena en memoria los compiladores de ruta
loggerLogger | nullnullLogger opcional para eventos de ciclo de vida de la ruta

## Contribuciones

Las contribuciones son bienvenidas. Por favor, lee CONTRIBUTING.md antes de enviar un PR:

  • Haz un fork del repositorio y crea una rama desde main
  • Ejecuta npm test y npm run lint antes de hacer commit
  • Abre un issue para discutir cambios que rompan compatibilidad antes de empezar

Publicado bajo la [Licencia MIT](./LICENSE).

Véase también: Documentación·Ejemplos·Registro de cambios

GitHub Flavored Markdown · CommonMarkSe renderiza igual en GitHub · GitBook · VitePress
Code blocks preserved verbatimShields.io badges + links pass throughInline code, filenames, CLI commands kept as-is

Audit every API-reference change across versions

Upload the old and new version of a DOCX or PDF export of your API reference. Ellon AI produces a Word tracked-changes document spanning every section. new endpoints, breaking response-shape changes, deprecated options, rate-limit updates, TypeScript type inference changes, and the migration checklist. plus a semantic summary separating substantive edits from formatting and wording shifts. Designed for the release-engineering workflow between documentation versions.

nova-labs/nova-router · API ReferenceDOCS-v1.4 → v1.5 · PAGE 3 / 22
API Reference — v1.4.2 → v1.5.0
Nova Router · Release Notes & Migration Guide
Prepared by the Nova Router maintainers · March 12, 2026

This revision records every public API surface change between v1.4.2 and v1.5.0, in the order the translated documentation team should propagate them. Items flagged breaking require a migration note in every translated README. Unreferenced sections are unchanged.

1. New — GET /routes/:id

v1.5.0 introduces a new endpoint for inspecting a compiled route matcher at runtime. The handler returns the canonicalised path pattern, the ordered list of path parameters, and the priority assigned by the resolver. Example response:

// GET /routes/:id — new in 1.5.0
{
  "id": "rte_4821",
  "pattern": "/users/:id",
  "params": ["id"],
  "priority": 120
}
2. Breaking — response shape

The app.match() helper now returns an object rather than a tuple. Translators should call this out as a breaking change in every language:

// v1.4 (deprecated — remove after 1.6)
const [matched, params] = app.match('/users/42')

// v1.5 (current)
const { matched, params, handler } = app.match('/users/42')

Migration is mechanical and can be driven by the codemod published in the companion @nova-labs/codemods package.

3. Deprecated — cacheSize option

The cacheSize: number option is retained but logs a deprecation warning on every Router instantiation. cacheSize is deprecated in v1.5.0 and will be removed in v2.0. Use cache: true | false with an explicit per-route maxAge (in seconds) instead. A deprecation warning is logged on every Router instantiation that still passes cacheSize.

4. Rate limiting middleware

The built-in rate-limit middleware now defaults to 60 requests per minute per route 120 requests per minute per route, windowed at 10-second granularity, with a shared bucket when the rateLimit.shared option is enabled. Existing deployments that relied on the lower default should pin the old value explicitly when upgrading.

5. TypeScript types

Generic type parameters for Router.get() and friends are now inferred from the route pattern, so hand-written <T extends Params> param generics are no longer required. Existing code compiles without changes; the types simply become more precise.

6. Migration checklist

The localisation team should coordinate the following updates across every translated README and doc-site page: (i) mark Section 2 as breaking with the same migration snippet in all languages; (ii) add the new GET /routes/:id reference entry; (iii) update the rate-limit default; (iv) preserve all code blocks and inline backticks verbatim.

All other v1.4 reference material — installation, quickstart, middleware reference, and the error-code table — carries over to v1.5 without modification. Run npm run docs:diff locally to verify propagation before publishing translated builds.

v1.5.0 supersedes v1.4.2 · 12 March 2026Maintainers: L. Torres · K. Nguyen · R. Fischer

How developer teams use Ellon AI

Open source, internal developer platforms, and commercial developer tools all run on documentation. A library with great code but poor documentation doesn't get adopted. A library with documentation only in English limits its reach to a fraction of the world's developers. and locks out the growing developer populations in Latin America, China, Japan, Korea, the Nordics, and Germany. Translation is adoption strategy, but historically the tooling made it infeasible for anything except the largest projects.

Open source project documentation

Translate READMEs, contributing guides, code of conduct files, and project documentation into the languages of your contributor community. Ellon AI respects Markdown structure. code blocks, inline code, link anchors, frontmatter. so the translated README renders correctly on GitHub without manual fixes. For projects that accept community translations today, Ellon AI is the baseline draft that reviewers refine rather than a from-scratch translation every time.

API documentation

API reference docs combine prose, code samples in multiple languages, request/response examples, and navigation structure. Ellon AI translates the prose descriptions while leaving code samples untouched. a Python request example stays Python, a curl command stays curl, JSON response bodies stay valid. Full-stack documentation sites (Docusaurus, VitePress, Fumadocs) work with the translated output directly.

Internal developer platform docs

Enterprise platform engineering teams maintain internal documentation for developer platforms, deployment guides, runbooks, and architectural decision records. For global engineering organizations, this documentation often needs to be in the local language of distributed engineering offices. Ellon AI handles the translation, and within each document the translator maintains terminology consistency automatically.

Changelogs and release notes

Release notes and changelog translation is high-churn content. every release produces updated notes that need to propagate across language versions. Ellon AI handles this cadence naturally; a changelog update translates in minutes, so release announcements can ship simultaneously in every supported language rather than staggered by weeks.

SDK documentation and code comments

For SDKs distributed across developer communities, Ellon AI translates method documentation, README examples, and surrounding docs while preserving the code structure. Inline code samples inside fenced blocks stay verbatim.

Tutorial and learning content

Developer tutorials, getting-started guides, and educational content translate with code examples intact. Platform teams running developer outreach programs can localize tutorials for global developer audiences without the manual code-block-checking overhead.

Error messages and CLI help text

For developer tools with localizable error messages and CLI help text in Markdown or text files, Ellon AI translates the prose content in bulk while preserving interpolation placeholders and syntax. The output drops into the localization pipeline the tool already uses.

Code of conduct and community guidelines

Community-facing documents (code of conduct, governance models, contribution guidelines) translate with the tone and nuance appropriate to community documents. For projects with international contributor bases, having these documents available in contributor languages materially affects community health.

Doc revision workflows

When docs get a major revision. breaking API change, new architecture section, deprecated feature rewrite. running the compare tool on old and new versions produces a Word tracked-changes output with AI semantic analysis. Maintainers see what needs to propagate to translated versions without re-reading every line.

Integration with git-based workflows

Translated docs fit naturally into git-based documentation workflows. A docs PR in English is translated via the web app or API; the translated output can be committed to the language-specific branch or path in the repo.

Format coverage

GitHub Flavored Markdown, CommonMark, and plain Markdown all supported. YAML frontmatter is preserved. Code blocks (fenced with triple backticks or tilde, indented, with language identifiers) are protected from translation. Inline code (single backticks) and code spans are preserved verbatim.

The practical outcome: documentation in every language a project's developers speak, without the manual code-block-checking grind. Adoption grows because documentation grows, and documentation grows because translation is no longer the bottleneck.

Frequently asked

Frequently asked questions

Yes. Fenced code blocks (triple backticks or tilde), indented code blocks, and inline code (single backticks) are all preserved verbatim. The translator never touches content inside code delimiters. This is a hard guarantee. you won't ship a translated README with broken example commands.

Still have questions?

Reach out and we'll answer within one business day.

contact@ellon.ai

Translate your project docs this afternoon

Start with 20 free pages. No credit card. Upload a README and see the code blocks and badges survive the translation.

Start your free trial