# detectFromHeader

**Kind:** Function

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

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

Detects language from Accept-Language header

`detectFromHeader` reads the `Accept-Language` header and determines the requested language. It is used by language middleware to select a language before handling a request.

## Signature

```ts
function detectFromHeader(c: Context, options: DetectorOptions): string | undefined
```

## Parameters

| Name | Type |
|---|---|
| `c` | `Context` |
| `options` | `DetectorOptions` |

**Returns:** `string | undefined`

## Diagram

```mermaid
graph LR
  Request[Incoming request] --> Header[Accept-Language header]
  Header --> Detect[detectFromHeader]
  Detect --> Language[Detected language]
  Language --> Middleware[Language middleware]
```

## Usage

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

const language = detectFromHeader('fr-CA,fr,en');

if (language) {
  console.log(`Detected language: ${language}`);
}
```

## AI Coding Instructions

- Pass the raw `Accept-Language` header value to `detectFromHeader`.
- Handle an absent or unmatched language result before setting request language state.
- Keep header parsing in this function rather than duplicating parsing logic in middleware handlers.
