Components
NextGlobeGen provides Link
and Form
components that wrap the Next.js components with the same names. These can be used to navigate to localized pathnames.
<Link>
<Link>
is a React component that extends the Next.js <Link>
component to provide locale-aware navigation to localized pathnames. It is the primary way to navigate between localized routes.
import { Link } from "next-globe-gen";
export default function Page() {
return <Link href="/dashboard">Dashboard</Link>;
}
Props
The following props can be passed to the <Link>
component:
Prop | Type | Required |
---|---|---|
href | Route | HrefOptions<Route> | Yes |
locale | Locale | - |
params | RouteParams<Route> | * |
* params prop is required only if the given route has dynamic segments.
In addition to the listed props, all of the Next.js Link
component props can be passed as props to the component.
href
(required)
The route, pathname or URL to navigate to. If the given href
matches to a route that has localizations, it will be localized. Otherwise the href
will be passed as it is to the Next.js Link
component.
// When the user is on `en` locale, the link will point to `/en/dashboard`
<Link href="/dashboard">
Dashboard
</Link>
// Search params can be added via a `query`
<Link href={{ pathname: "/dashboard", query: { sortBy: "name" } }}>
Dashboard
</Link>
locale
To switch to another language, pass a locale
as a prop. It will also set the hreflang
attribute to the anchor tag.
// Will point to `/fi/hallintapaneeli`
<Link href="/dashboard" locale="fi">
Hallintapaneeli
</Link>
// If the href is given as an object, the locale should be passed in the object
<Link href={{ pathname: "/dashboard", locale: "fi" }}>
Hallintapaneeli
</Link>
params
If the given href is a route that includes dynamic segments, the params for the route can be passed by a params
prop.
// When the user is on `en` locale, the link will point to `/en/images/43-image-slug`
<Link href="/images/[id]" params={{ id: "43-image-slug" }}>
Image Slug
</Link>
// If the href is given as an object, the params should be passed in the object
<Link href={{ pathname: "/images/[id]", params: { id: "43-image-slug" } }}>
Image Slug
</Link>
<Form>
<Form>
is a React component that extends the Next.js <Form>
component so that the Next.js Form
component enhancements work also with localized pathnames.
import { Form } from "next-globe-gen";
export default function Page() {
return (
{/* On submit, the URL will change to /en/search?query=abc */}
<Form action="/search">
<input name="query" />
<button type="submit">Submit</button>
</Form>
);
}
Props
The following props can be passed to the <Form>
component:
Prop | Type | Required |
---|---|---|
action | Route | Yes |
locale | Locale | - |
params | RouteParams<Route> | * |
* params prop is required only if the given route has dynamic segments.
In addition to the listed props, all of the Next.js Form
component props can be passed as props to the component.
action
(required)
The route, pathname or URL to navigate to. If the given action
matches to a route that has localizations, it will be localized. Otherwise the action
will be passed as it is to the Next.js Form
component.
// When the user is on `en` locale, the form will navigate to `/en/search?query=abc`
<Form action="/search">{/* Inputs */}</Form>
locale
To switch to another language, pass a locale
as a prop.
// Form will navigate to `/fi/haku?query=abc`
<Form action="/search" locale="fi">
{/* Inputs */}
</Form>
params
If the given action is a route that includes dynamic segments, the params for the route can be passed by a params
prop.
// When the user is on `en` locale, the form will navigate to `/en/blog/Jon1VK?query=abc`
<Form action="/blog/[user]" params={{ user: "Jon1VK" }}>
{/* Inputs */}
</Form>