# languageDetector

**Kind:** Function

**Source:** [`src/middleware/language/language.ts`](https://github.com/honojs/hono/blob/main/src/middleware/language/language.ts#L292)

**Part of:** [Middleware](subsystem-src-middleware)

Language detector middleware factory

`languageDetector` creates middleware that determines the language for an incoming request. Register it early in the middleware pipeline so downstream handlers can use the detected language context.

## Signature

```ts
function languageDetector(userOptions: Partial<DetectorOptions>): MiddlewareHandler
```

## Parameters

| Name | Type |
|---|---|
| `userOptions` | `Partial<DetectorOptions>` |

**Returns:** `MiddlewareHandler`

## Diagram

```mermaid
graph LR
  Request[Incoming request] --> Detector[languageDetector middleware]
  Detector --> Language[Detected language context]
  Language --> Handler[Downstream handler]
```

## Usage

```ts
import { languageDetector } from './middleware/language/language';

const app = createApp();

app.use(languageDetector());

// Routes registered after the detector can access language-aware context.
app.get('/content', contentHandler);
```

## AI Coding Instructions

- Register `languageDetector()` before routes or middleware that depend on request language context.
- Keep language lookup behavior aligned with the application's translation and locale handling.
- Do not create detector middleware inside individual route handlers.
- Test requests with missing or unsupported language inputs alongside supported language inputs.
