@intlayer/docs 7.0.9-canary.2 → 7.1.0-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/generated/docs.entry.cjs +19 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +19 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/en/packages/intlayer/getLocalizedUrl.md +116 -97
- package/docs/en/packages/intlayer/getMultilingualUrls.md +194 -54
- package/docs/en/packages/intlayer/getPrefix.md +201 -0
- package/package.json +14 -14
- package/src/generated/docs.entry.ts +19 -0
|
@@ -56,6 +56,7 @@ declare const docsEntry: {
|
|
|
56
56
|
readonly './docs/en/packages/intlayer/getLocalizedUrl.md': Record<LocalesValues, Promise<string>>;
|
|
57
57
|
readonly './docs/en/packages/intlayer/getMultilingualUrls.md': Record<LocalesValues, Promise<string>>;
|
|
58
58
|
readonly './docs/en/packages/intlayer/getPathWithoutLocale.md': Record<LocalesValues, Promise<string>>;
|
|
59
|
+
readonly './docs/en/packages/intlayer/getPrefix.md': Record<LocalesValues, Promise<string>>;
|
|
59
60
|
readonly './docs/en/packages/intlayer/getTranslation.md': Record<LocalesValues, Promise<string>>;
|
|
60
61
|
readonly './docs/en/packages/intlayer/getTranslationContent.md': Record<LocalesValues, Promise<string>>;
|
|
61
62
|
readonly './docs/en/packages/next-intlayer/t.md': Record<LocalesValues, Promise<string>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.entry.d.ts","names":[],"sources":["../../../src/generated/docs.entry.ts"],"sourcesContent":[],"mappings":";;;cAsDa;iCAmBK,OAAO,eAAe;EAnB3B,SAAA,
|
|
1
|
+
{"version":3,"file":"docs.entry.d.ts","names":[],"sources":["../../../src/generated/docs.entry.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-08-23
|
|
3
|
-
updatedAt: 2025-
|
|
3
|
+
updatedAt: 2025-11-16
|
|
4
4
|
title: getLocalizedUrl Function Documentation | intlayer
|
|
5
5
|
description: See how to use the getLocalizedUrl function for intlayer package
|
|
6
6
|
keywords:
|
|
@@ -19,6 +19,9 @@ slugs:
|
|
|
19
19
|
- intlayer
|
|
20
20
|
- getLocalizedUrl
|
|
21
21
|
history:
|
|
22
|
+
- version: 7.1.0
|
|
23
|
+
date: 2025-11-16
|
|
24
|
+
changes: Refactored to use options parameter with mode instead of prefixDefault
|
|
22
25
|
- version: 5.5.10
|
|
23
26
|
date: 2025-06-29
|
|
24
27
|
changes: Init history
|
|
@@ -33,9 +36,10 @@ The `getLocalizedUrl` function generates a localized URL by prefixing the given
|
|
|
33
36
|
**Key Features:**
|
|
34
37
|
|
|
35
38
|
- Only 2 parameters are required: `url` and `currentLocale`
|
|
36
|
-
-
|
|
39
|
+
- Optional `options` object with `locales`, `defaultLocale`, and `mode`
|
|
37
40
|
- Uses your project's internationalization configuration as defaults
|
|
38
41
|
- Can be used with minimal parameters for simple cases or fully customized for complex scenarios
|
|
42
|
+
- Supports multiple routing modes: `prefix-no-default`, `prefix-all`, `no-prefix`, and `search-params`
|
|
39
43
|
|
|
40
44
|
---
|
|
41
45
|
|
|
@@ -45,9 +49,11 @@ The `getLocalizedUrl` function generates a localized URL by prefixing the given
|
|
|
45
49
|
getLocalizedUrl(
|
|
46
50
|
url: string, // Required
|
|
47
51
|
currentLocale: Locales, // Required
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
52
|
+
options?: { // Optional
|
|
53
|
+
locales?: Locales[];
|
|
54
|
+
defaultLocale?: Locales;
|
|
55
|
+
mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params';
|
|
56
|
+
}
|
|
51
57
|
): string
|
|
52
58
|
```
|
|
53
59
|
|
|
@@ -69,23 +75,30 @@ getLocalizedUrl(
|
|
|
69
75
|
|
|
70
76
|
### Optional Parameters
|
|
71
77
|
|
|
72
|
-
- `
|
|
73
|
-
- **Description**:
|
|
74
|
-
- **Type**: `
|
|
78
|
+
- `options?: object`
|
|
79
|
+
- **Description**: Configuration object for URL localization behavior.
|
|
80
|
+
- **Type**: `object`
|
|
75
81
|
- **Required**: No (Optional)
|
|
76
|
-
- **Default**: [`Project Configuration`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md#middleware)
|
|
77
82
|
|
|
78
|
-
- `
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
-
|
|
83
|
+
- `options.locales?: Locales[]`
|
|
84
|
+
- **Description**: Array of supported locales. If not provided, uses the configured locales from your project configuration.
|
|
85
|
+
- **Type**: `Locales[]`
|
|
86
|
+
- **Default**: [`Project Configuration`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md#middleware)
|
|
87
|
+
|
|
88
|
+
- `options.defaultLocale?: Locales`
|
|
89
|
+
- **Description**: The default locale for the application. If not provided, uses the configured default locale from your project configuration.
|
|
90
|
+
- **Type**: `Locales`
|
|
91
|
+
- **Default**: [`Project Configuration`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md#middleware)
|
|
92
|
+
|
|
93
|
+
- `options.mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
|
|
94
|
+
- **Description**: The URL routing mode for locale handling. If not provided, uses the configured mode from your project configuration.
|
|
95
|
+
- **Type**: `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
|
|
96
|
+
- **Default**: [`Project Configuration`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md#middleware)
|
|
97
|
+
- **Modes**:
|
|
98
|
+
- `prefix-no-default`: No prefix for default locale, prefix for all others
|
|
99
|
+
- `prefix-all`: Prefix for all locales including default
|
|
100
|
+
- `no-prefix`: No locale prefix in URL
|
|
101
|
+
- `search-params`: Use query parameters for locale (e.g., `?locale=fr`)
|
|
89
102
|
|
|
90
103
|
### Returns
|
|
91
104
|
|
|
@@ -103,12 +116,12 @@ When you have configured your project with internationalization settings, you ca
|
|
|
103
116
|
```typescript codeFormat="typescript"
|
|
104
117
|
import { getLocalizedUrl, Locales } from "intlayer";
|
|
105
118
|
|
|
106
|
-
// Uses your project's configuration for locales, defaultLocale, and
|
|
119
|
+
// Uses your project's configuration for locales, defaultLocale, and mode
|
|
107
120
|
getLocalizedUrl("/about", Locales.FRENCH);
|
|
108
|
-
// Output: "/fr/about" (assuming French is supported
|
|
121
|
+
// Output: "/fr/about" (assuming French is supported and mode is 'prefix-no-default')
|
|
109
122
|
|
|
110
123
|
getLocalizedUrl("/about", Locales.ENGLISH);
|
|
111
|
-
// Output: "/about" or "/en/about" (depending on your
|
|
124
|
+
// Output: "/about" or "/en/about" (depending on your mode setting)
|
|
112
125
|
```
|
|
113
126
|
|
|
114
127
|
```javascript codeFormat="esm"
|
|
@@ -129,23 +142,26 @@ getLocalizedUrl("/about", Locales.FRENCH);
|
|
|
129
142
|
|
|
130
143
|
### Advanced Usage (With Optional Parameters)
|
|
131
144
|
|
|
132
|
-
You can override the default configuration by providing optional
|
|
145
|
+
You can override the default configuration by providing the optional `options` parameter:
|
|
133
146
|
|
|
134
|
-
### Relative URLs (All
|
|
147
|
+
### Relative URLs (All Options Specified)
|
|
135
148
|
|
|
136
149
|
```typescript codeFormat="typescript"
|
|
137
150
|
import { getLocalizedUrl, Locales } from "intlayer";
|
|
138
151
|
|
|
139
152
|
// Explicitly providing all optional parameters
|
|
140
|
-
getLocalizedUrl(
|
|
141
|
-
|
|
142
|
-
Locales.
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
false // prefixDefault
|
|
146
|
-
);
|
|
147
|
-
|
|
153
|
+
getLocalizedUrl("/about", Locales.FRENCH, {
|
|
154
|
+
locales: [Locales.ENGLISH, Locales.FRENCH],
|
|
155
|
+
defaultLocale: Locales.ENGLISH,
|
|
156
|
+
mode: "prefix-no-default",
|
|
157
|
+
});
|
|
148
158
|
// Output: "/fr/about" for the French locale
|
|
159
|
+
|
|
160
|
+
getLocalizedUrl("/about", Locales.ENGLISH, {
|
|
161
|
+
locales: [Locales.ENGLISH, Locales.FRENCH],
|
|
162
|
+
defaultLocale: Locales.ENGLISH,
|
|
163
|
+
mode: "prefix-no-default",
|
|
164
|
+
});
|
|
149
165
|
// Output: "/about" for the default (English) locale
|
|
150
166
|
```
|
|
151
167
|
|
|
@@ -153,32 +169,24 @@ getLocalizedUrl(
|
|
|
153
169
|
import { getLocalizedUrl, Locales } from "intlayer";
|
|
154
170
|
|
|
155
171
|
// Explicitly providing all optional parameters
|
|
156
|
-
getLocalizedUrl(
|
|
157
|
-
|
|
158
|
-
Locales.
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
false // prefixDefault
|
|
162
|
-
);
|
|
163
|
-
|
|
172
|
+
getLocalizedUrl("/about", Locales.FRENCH, {
|
|
173
|
+
locales: [Locales.ENGLISH, Locales.FRENCH],
|
|
174
|
+
defaultLocale: Locales.ENGLISH,
|
|
175
|
+
mode: "prefix-no-default",
|
|
176
|
+
});
|
|
164
177
|
// Output: "/fr/about" for the French locale
|
|
165
|
-
// Output: "/about" for the default (English) locale
|
|
166
178
|
```
|
|
167
179
|
|
|
168
180
|
```javascript codeFormat="commonjs"
|
|
169
181
|
const { getLocalizedUrl, Locales } = require("intlayer");
|
|
170
182
|
|
|
171
183
|
// Explicitly providing all optional parameters
|
|
172
|
-
getLocalizedUrl(
|
|
173
|
-
|
|
174
|
-
Locales.
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
false // prefixDefault
|
|
178
|
-
);
|
|
179
|
-
|
|
184
|
+
getLocalizedUrl("/about", Locales.FRENCH, {
|
|
185
|
+
locales: [Locales.ENGLISH, Locales.FRENCH],
|
|
186
|
+
defaultLocale: Locales.ENGLISH,
|
|
187
|
+
mode: "prefix-no-default",
|
|
188
|
+
});
|
|
180
189
|
// Output: "/fr/about" for the French locale
|
|
181
|
-
// Output: "/about" for the default (English) locale
|
|
182
190
|
```
|
|
183
191
|
|
|
184
192
|
### Partial Configuration Override
|
|
@@ -188,60 +196,64 @@ You can also provide only some of the optional parameters. The function will use
|
|
|
188
196
|
```typescript codeFormat="typescript"
|
|
189
197
|
import { getLocalizedUrl, Locales } from "intlayer";
|
|
190
198
|
|
|
191
|
-
// Only override the locales, use project config for defaultLocale and
|
|
192
|
-
getLocalizedUrl(
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
);
|
|
199
|
+
// Only override the locales, use project config for defaultLocale and mode
|
|
200
|
+
getLocalizedUrl("/about", Locales.SPANISH, {
|
|
201
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
// Only override mode, use project config for locales and defaultLocale
|
|
205
|
+
getLocalizedUrl("/about", Locales.ENGLISH, {
|
|
206
|
+
mode: "prefix-all", // Force prefix for all locales including default
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
// Override multiple options
|
|
210
|
+
getLocalizedUrl("/about", Locales.FRENCH, {
|
|
211
|
+
defaultLocale: Locales.ENGLISH,
|
|
212
|
+
mode: "search-params", // Use query parameters: /about?locale=fr
|
|
213
|
+
});
|
|
206
214
|
```
|
|
207
215
|
|
|
208
216
|
### Absolute URLs
|
|
209
217
|
|
|
210
218
|
```typescript
|
|
211
|
-
getLocalizedUrl(
|
|
212
|
-
|
|
213
|
-
Locales.
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
"
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
219
|
+
getLocalizedUrl("https://example.com/about", Locales.FRENCH, {
|
|
220
|
+
locales: [Locales.ENGLISH, Locales.FRENCH],
|
|
221
|
+
defaultLocale: Locales.ENGLISH,
|
|
222
|
+
mode: "prefix-no-default",
|
|
223
|
+
});
|
|
224
|
+
// Output: "https://example.com/fr/about" for the French
|
|
225
|
+
|
|
226
|
+
getLocalizedUrl("https://example.com/about", Locales.ENGLISH, {
|
|
227
|
+
locales: [Locales.ENGLISH, Locales.FRENCH],
|
|
228
|
+
defaultLocale: Locales.ENGLISH,
|
|
229
|
+
mode: "prefix-no-default",
|
|
230
|
+
});
|
|
231
|
+
// Output: "https://example.com/about" for the English (no prefix for default)
|
|
232
|
+
|
|
233
|
+
getLocalizedUrl("https://example.com/about", Locales.ENGLISH, {
|
|
234
|
+
locales: [Locales.ENGLISH, Locales.FRENCH],
|
|
235
|
+
defaultLocale: Locales.ENGLISH,
|
|
236
|
+
mode: "prefix-all",
|
|
237
|
+
});
|
|
238
|
+
// Output: "https://example.com/en/about" for the English (prefix for all)
|
|
239
|
+
|
|
240
|
+
getLocalizedUrl("https://example.com/about", Locales.FRENCH, {
|
|
241
|
+
locales: [Locales.ENGLISH, Locales.FRENCH],
|
|
242
|
+
defaultLocale: Locales.ENGLISH,
|
|
243
|
+
mode: "search-params",
|
|
244
|
+
});
|
|
245
|
+
// Output: "https://example.com/about?locale=fr" (using query parameters)
|
|
234
246
|
```
|
|
235
247
|
|
|
236
248
|
### Unsupported Locale
|
|
237
249
|
|
|
238
250
|
```typescript
|
|
239
|
-
getLocalizedUrl(
|
|
240
|
-
|
|
241
|
-
Locales.
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
251
|
+
getLocalizedUrl("/about", Locales.ITALIAN, {
|
|
252
|
+
locales: [Locales.ENGLISH, Locales.FRENCH],
|
|
253
|
+
defaultLocale: Locales.ENGLISH,
|
|
254
|
+
mode: "prefix-no-default",
|
|
255
|
+
});
|
|
256
|
+
// Output: "/about" (no prefix applied for unsupported locale)
|
|
245
257
|
```
|
|
246
258
|
|
|
247
259
|
---
|
|
@@ -249,14 +261,21 @@ getLocalizedUrl(
|
|
|
249
261
|
## Edge Cases
|
|
250
262
|
|
|
251
263
|
- **No Locale Segment:**
|
|
252
|
-
- If the URL does not contain any locale segment, the function safely prefixes the appropriate locale.
|
|
264
|
+
- If the URL does not contain any locale segment, the function safely prefixes the appropriate locale based on the routing mode.
|
|
253
265
|
|
|
254
266
|
- **Default Locale:**
|
|
255
|
-
- When `
|
|
267
|
+
- When `mode` is `'prefix-no-default'`, the function does not prefix the URL for the default locale.
|
|
268
|
+
- When `mode` is `'prefix-all'`, the function prefixes all locales including the default.
|
|
256
269
|
|
|
257
270
|
- **Unsupported Locales:**
|
|
258
271
|
- For locales not listed in `locales`, the function does not apply any prefix.
|
|
259
272
|
|
|
273
|
+
- **Routing Modes:**
|
|
274
|
+
- `'prefix-no-default'`: Default locale has no prefix, others do (e.g., `/about`, `/fr/about`)
|
|
275
|
+
- `'prefix-all'`: All locales have prefixes (e.g., `/en/about`, `/fr/about`)
|
|
276
|
+
- `'no-prefix'`: No locale prefixes in URLs (locale handled elsewhere)
|
|
277
|
+
- `'search-params'`: Locale specified via query parameter (e.g., `/about?locale=fr`)
|
|
278
|
+
|
|
260
279
|
---
|
|
261
280
|
|
|
262
281
|
## Usage in Applications
|