Creation:2025-11-16Last update:2025-11-16
将此文档参考到您的 AI 助手ChatGPTClaudeDeepSeekGoogle AI modeGeminiPerplexityMistralGrok
使用您最喜欢的AI助手总结文档,并引用此页面和AI提供商
将 MCP 服务器添加到您的 AI 助手
通过将 Intlayer MCP 服务器集成到您的 AI 助手,您可以直接从 ChatGPT、DeepSeek、Cursor、VSCode 等获取所有文档。
查看 MCP 服务器文档版本历史
- Initial documentationv7.1.02025/11/16
此页面的内容已使用 AI 翻译。
查看英文原文的最新版本编辑此文档
如果您有改善此文档的想法,请随时通过在GitHub上提交拉取请求来贡献。
文档的 GitHub 链接Copy
复制文档 Markdown 到剪贴板
Documentation: getPrefix Function in intlayer
Description
The getPrefix function determines the URL prefix for a given locale based on the routing mode configuration. It compares the locale with the default locale and returns an object containing three different prefix formats for flexible URL construction.
Key Features:
- Takes a locale as the first parameter (required)
- Optional options object with defaultLocale and mode
- Returns an object with prefix, and localePrefix properties
- Supports all routing modes: prefix-no-default, prefix-all, no-prefix, and search-params
- Lightweight utility for determining when to add locale prefixes
Function Signature
getPrefix( locale: Locales, // Required options?: { // Optional defaultLocale?: Locales; mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'; }): GetPrefixResulttype GetPrefixResult = { prefix: string; // e.g., 'fr/' or '' localePrefix?: Locale; // e.g., 'fr' or undefined}Parameters
locale: Locales
- Description: The locale to generate the prefix for. If the value is falsy (undefined, null, empty string), the function returns an empty string.
- Type: Locales
- Required: Yes
options?: object
- Description: Configuration object for prefix determination.
- Type: object
Required: No (Optional)
options.defaultLocale?: Locales
- Description: The default locale for the application. If not provided, uses the configured default locale from your project configuration.
- Type: Locales
- Default: Project Configuration
options.mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'
- Description: The URL routing mode for locale handling. If not provided, uses the configured mode from your project configuration.
- Type: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'
- Default: Project Configuration
- Modes:
- prefix-no-default: Returns empty strings when locale matches default locale
- prefix-all: Returns prefix for all locales including default
- no-prefix: Returns empty strings (no prefix in URLs)
- search-params: Returns empty strings (locale in query parameters)
Returns
- Type: GetPrefixResult
- Description: An object containing three different prefix formats:
- prefix: The path prefix with trailing slash (e.g., 'fr/', '')
- localePrefix: The locale identifier without slashes (e.g., 'fr', undefined)
Example Usage
Basic Usage
import { getPrefix, Locales } from "intlayer";// Check prefix for English localegetPrefix(Locales.ENGLISH, { defaultLocale: Locales.ENGLISH, mode: "prefix-all",});// Returns: { prefix: 'en/', localePrefix: 'en' }// Check prefix for French localegetPrefix(Locales.FRENCH, { defaultLocale: Locales.ENGLISH, mode: "prefix-no-default",});// Returns: { prefix: 'fr/', localePrefix: 'fr' }Different Routing Modes
import { getPrefix, Locales } from "intlayer";// prefix-all: Always returns prefixgetPrefix(Locales.ENGLISH, { mode: "prefix-all", defaultLocale: Locales.ENGLISH,});// Returns: { prefix: '/en', localePrefix: 'en' }// prefix-no-default: No prefix when locale matches defaultgetPrefix(Locales.ENGLISH, { mode: "prefix-no-default", defaultLocale: Locales.ENGLISH,});// Returns: { prefix: '', localePrefix: undefined }// prefix-no-default: Returns prefix when locale differs from defaultgetPrefix(Locales.FRENCH, { mode: "prefix-no-default", defaultLocale: Locales.ENGLISH,});// Returns: { prefix: 'fr/', localePrefix: 'fr' }// no-prefix & search-params: Never returns prefixgetPrefix(Locales.ENGLISH, { mode: "no-prefix" });// Returns: { prefix: '', localePrefix: undefined }getPrefix(Locales.ENGLISH, { mode: "search-params" });// Returns: { prefix: '', localePrefix: undefined }Practical Example
import { getPrefix, Locales } from "intlayer";// Build URLs with the appropriate prefix for a specific localeconst locale = Locales.FRENCH;const { prefix, localePrefix } = getPrefix(locale, { defaultLocale: Locales.ENGLISH, mode: "prefix-no-default",});// Using prefix for path constructionconst url1 = `/${prefix}about`.replace(/\/+/g, "/");// Result: "/fr/about"// Using localePrefix for locale identificationconsole.log(`Current locale: ${localePrefix}`);// Output: "Current locale: fr"Related Functions
- getLocalizedUrl: Generates a localized URL for a specific locale
- getMultilingualUrls: Generates URLs for all configured locales
TypeScript
type GetPrefixResult = { prefix: string; // The path prefix with trailing slash (e.g., 'fr/' or '') localePrefix?: Locale; // The locale identifier without slashes (e.g., 'fr' or undefined)};function getPrefix( locale: Locales, options?: { defaultLocale?: Locales; mode?: "prefix-no-default" | "prefix-all" | "no-prefix" | "search-params"; }): GetPrefixResult;