# detectFromQuery

**Kind:** Function

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

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

Detects language from query parameter

`detectFromQuery` reads the language value from the incoming request query parameters. It is used by the language middleware to select the request language before downstream handlers process the request.

## Signature

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

## Parameters

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

**Returns:** `string | undefined`

## Diagram

```mermaid
graph LR
  Request[Incoming request] --> Query[Query parameters]
  Query --> Detect[detectFromQuery]
  Detect --> Language[Detected language]
  Language --> Middleware[Language middleware]
  Middleware --> Handler[Request handler]
```

## Usage

```ts
import { detectFromQuery } from './language';

app.use((req, res, next) => {
  const language = detectFromQuery(req);

  if (language) {
    req.language = language;
  }

  next();
});
```

## AI Coding Instructions

- Pass the incoming request object to `detectFromQuery` rather than reading query parameters in multiple middleware layers.
- Keep query parameter parsing inside this function so language detection has one code path.
- Handle an absent or invalid detected language in the calling middleware.
- Keep the detected language available on the request for downstream handlers when the middleware contract supports it.
