Ask your question and get a summary of the document by referencing this page and the AI provider of your choice
Version History
- "Implement custom URL rewrites"v8.0.022/01/2026
The content of this page was translated using an AI.
See the last version of the original content in EnglishIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Documentation: getLocalizedPath function in intlayer
Description
The getLocalizedPath function resolves a canonical path (internal application path) into its localised equivalent based on the provided locale and rewrite rules. It is particularly useful for generating SEO-friendly URLs that vary by language.
It is the relative counterpart of getLocalizedUrl — for a relative input both return the same value. Unlike getLocalizedUrl, it never returns an absolute URL: the domains configuration is ignored, so a locale served from its own domain still yields a path. An absolute input is accepted, but its origin is dropped — only its path, query string and hash are kept.
Key Features:
- Supports dynamic route parameters using the
[param]syntax. - Resolves paths according to custom rewrite rules defined in your configuration.
- Automatically handles fallback to the canonical path if no rewrite rule is found for the specified locale.
Function Signature
Copy the code to the clipboard
Parameters
Required Parameters
canonicalPath: string- Description: The internal application path (e.g.,
/about,/product/[id]). - Type:
string - Required: Yes
- Description: The internal application path (e.g.,
Optional Parameters
locale?: Locales- Description: The target locale for which the path should be localised.
- Type:
Locales - Default: The default locale of your project's configuration.
rewriteRules?: RoutingConfig['rewrite']- Description: An object defining custom rewrite rules. If not provided, it defaults to the
routing.rewriteproperty from your project's configuration. - Type:
RoutingConfig['rewrite'] Default:
configuration.routing.rewriteoptions.locales?: Locales[]— supported locales. Default:configuration.internationalization.localesoptions.defaultLocale?: Locales— the default locale. Default:configuration.internationalization.defaultLocaleoptions.mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'— how the locale appears in the path. Default:configuration.routing.modeoptions.rewrite?: RoutingConfig['rewrite']— custom rewrite rules. Default:configuration.routing.rewrite
- Description: An object defining custom rewrite rules. If not provided, it defaults to the
Returns
- Type:
string - Description: The localised path for the specified locale.
The type is narrowed from the rewrite rules declared in your configuration, so the editor shows the resolved path rather than a bare string:
Copy the code to the clipboard
The same narrowing flows into getLocalizedUrl, which applies the rewrite rules before prefixing the locale.
Two cases stay widened to string, because they cannot be resolved at compile time:
- a path that is not a string literal (e.g. one built from a variable);
- a path matched by a rule using a multi-segment or optional parameter (
[...slug],[[...slug]],:param?).
Example Usage
Basic Usage (With Configuration)
If you have configured custom rewrites in your intlayer.config.ts:
Copy the code to the clipboard
Usage with Dynamic Routes
Copy the code to the clipboard
Manual Rewrite Rules
You can also pass manual rewrite rules to the function:
Copy the code to the clipboard
Omitting the Locale
When no locale is given, the path is localised for the configured default locale:
Copy the code to the clipboard
Related Functions
getCanonicalPath: Resolves a localised path back to its internal canonical path.getLocalizedUrl: Generates a fully localised URL (including the protocol, host and locale prefix).
