---
title: "Internationalized routing in JSS Next.js apps"
slug: "internationalized-routing-in-jss-next-js-apps"
abstract: "Overview of routing in multilingual JSS Next.js apps"
---
# Internationalized routing in JSS Next.js apps

Internationalized (i18n) routing works similarly to regular [page routing in JSS Next.js](https://doc.sitecore.com/sai/en/developers/jss/22/jss-sai/routing-and-page-composition-in-jss-next-js-apps.html "Routing and page composition in JSS Next.js apps") apps but introduces an additional locale/language dimension to the routing process.

Next.js has built-in support for [i18n routing](https://nextjs.org/docs/advanced-features/i18n-routing). When you [configure i18n in your JSS Next.js](https://doc.sitecore.com/sai/en/developers/jss/22/jss-sai/internationalization-in-the-jss-sample-app-for-next-js.html "Internationalization in the JSS sample app for Next.js") application:

- The `context` object contains the Next.js route `locale`.
- The [Layout Service](https://doc.sitecore.com/xp/en/developers/hd/22/sitecore-headless-development/layout-service.html) receives the `locale` through the `sc_lang` parameter.

To [transition between locales](https://nextjs.org/docs/advanced-features/i18n-routing#transition-between-locales), you use the `Link` component from the `next/link` module or the `next/router`module.

You can configure the `<languageEmbedding>` setting in Sitecore. The setting must be set to `asNeeded` or `always` to return the language prefix (sub-path route) from Sitecore internal links. The `Link` component provided by JSS for Next.js handles i18n route transitions for internal links coming from Sitecore.

JSS Next.js applications created based on the Next.js JSS sample app use sub-path routing by default. While Next.js supports [domain routing](https://nextjs.org/docs/advanced-features/i18n-routing#domain-routing), using this strategy in JSS Next.js apps requires custom implementation.