#Usage on the Server
In general you can use messages and the languageTag()
function on the server without issues.
There are a few things to be aware of:
- Messages are just functions. Make sure they are called somewhere that's evaluated for every request.
#Using the Language in Server Actions
Use the initializeLanguage
function at the top of your server-action file to make sure the language is available.
// src/app/actions.ts
"use server"
import { initializeLanguage } from "@inlang/paraglide-next"
import { languageTag } from "@/paraglide/runtime"
initializeLanguage() //call it at the top of the file
export async function someAction() {
languageTag() // "de"
}
export async function someOtherAction() {
languageTag() // "de"
}
#Chaining Middleware
Paraglide-Next comes with middleware. Often you will want to chain that middleware with your own.
Just call Paraglide-Next's middleware inside your own middleware function. Pass it the request and use the returned response.
// src/middleware.ts
import { middleware as paraglide } from "@/lib/i18n"
export function middleware(request: NextRequest) {
//do something with the request
const response = paraglide(request)
// do something with the response
return response
}
#Using the language in Middleware
In some cases you may need to access the language of a request inside the middleware itself. For this the middleware
function provides a detectLanguage
function.
// src/middleware.ts
import { middleware as paraglideMiddleware } from "@/lib/i18n"
export function middleware(request: NextRequest) {
const lang = paraglideMiddleware.detectLanguage(request)
//do something with the language...
// still use the paraglide middleware
return paraglideMiddleware(request)
}