@intlayer/docs 9.0.2 → 9.1.1

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.
Files changed (62) hide show
  1. package/dist/cjs/generated/docs.entry.cjs +20 -0
  2. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  3. package/dist/esm/generated/docs.entry.mjs +20 -0
  4. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  5. package/dist/types/generated/docs.entry.d.ts +1 -0
  6. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  7. package/docs/ar/dictionary/content_file.md +24 -1
  8. package/docs/ar/dictionary/select.md +386 -0
  9. package/docs/ar/dynamic_dictionaries/variants.md +37 -7
  10. package/docs/de/dictionary/content_file.md +24 -1
  11. package/docs/de/dictionary/select.md +386 -0
  12. package/docs/de/dynamic_dictionaries/variants.md +34 -0
  13. package/docs/en/dictionary/content_file.md +24 -1
  14. package/docs/en/dictionary/select.md +382 -0
  15. package/docs/en/dynamic_dictionaries/variants.md +35 -1
  16. package/docs/en-GB/dictionary/content_file.md +24 -1
  17. package/docs/en-GB/dictionary/select.md +385 -0
  18. package/docs/en-GB/dynamic_dictionaries/variants.md +34 -0
  19. package/docs/es/dictionary/content_file.md +24 -1
  20. package/docs/es/dictionary/select.md +385 -0
  21. package/docs/es/dynamic_dictionaries/variants.md +34 -0
  22. package/docs/fr/dictionary/content_file.md +24 -1
  23. package/docs/fr/dictionary/select.md +382 -0
  24. package/docs/fr/dynamic_dictionaries/variants.md +34 -0
  25. package/docs/hi/dictionary/content_file.md +24 -1
  26. package/docs/hi/dictionary/select.md +386 -0
  27. package/docs/hi/dynamic_dictionaries/variants.md +36 -2
  28. package/docs/id/dictionary/content_file.md +24 -1
  29. package/docs/id/dictionary/select.md +386 -0
  30. package/docs/id/dynamic_dictionaries/variants.md +34 -0
  31. package/docs/it/dictionary/content_file.md +24 -1
  32. package/docs/it/dictionary/select.md +386 -0
  33. package/docs/it/dynamic_dictionaries/variants.md +35 -1
  34. package/docs/ja/dictionary/content_file.md +24 -1
  35. package/docs/ja/dictionary/select.md +386 -0
  36. package/docs/ja/dynamic_dictionaries/variants.md +35 -1
  37. package/docs/ko/dictionary/content_file.md +24 -1
  38. package/docs/ko/dictionary/select.md +386 -0
  39. package/docs/ko/dynamic_dictionaries/variants.md +35 -1
  40. package/docs/pl/dictionary/content_file.md +24 -1
  41. package/docs/pl/dictionary/select.md +386 -0
  42. package/docs/pl/dynamic_dictionaries/variants.md +35 -1
  43. package/docs/pt/dictionary/content_file.md +24 -1
  44. package/docs/pt/dictionary/select.md +386 -0
  45. package/docs/pt/dynamic_dictionaries/variants.md +34 -0
  46. package/docs/ru/dictionary/content_file.md +25 -2
  47. package/docs/ru/dictionary/select.md +386 -0
  48. package/docs/ru/dynamic_dictionaries/variants.md +35 -1
  49. package/docs/tr/dictionary/content_file.md +24 -1
  50. package/docs/tr/dictionary/select.md +386 -0
  51. package/docs/tr/dynamic_dictionaries/variants.md +35 -1
  52. package/docs/uk/dictionary/content_file.md +24 -1
  53. package/docs/uk/dictionary/select.md +386 -0
  54. package/docs/uk/dynamic_dictionaries/variants.md +34 -0
  55. package/docs/vi/dictionary/content_file.md +24 -1
  56. package/docs/vi/dictionary/select.md +386 -0
  57. package/docs/vi/dynamic_dictionaries/variants.md +36 -2
  58. package/docs/zh/dictionary/content_file.md +24 -1
  59. package/docs/zh/dictionary/select.md +387 -0
  60. package/docs/zh/dynamic_dictionaries/variants.md +35 -1
  61. package/package.json +7 -7
  62. package/src/generated/docs.entry.ts +20 -0
@@ -0,0 +1,382 @@
1
+ ---
2
+ createdAt: 2026-07-30
3
+ updatedAt: 2026-07-30
4
+ title: Contenu Basé sur la Sélection
5
+ description: Apprenez à utiliser le contenu basé sur la sélection dans Intlayer pour afficher dynamiquement du contenu en fonction d'une valeur de chaîne arbitraire. Suivez cette documentation pour implémenter efficacement du contenu de type switch dans votre projet.
6
+ keywords:
7
+ - Contenu Basé sur la Sélection
8
+ - Contenu Switch
9
+ - ICU select
10
+ - Rendu Dynamique
11
+ - Documentation
12
+ - Intlayer
13
+ - Next.js
14
+ - JavaScript
15
+ - React
16
+ slugs:
17
+ - doc
18
+ - concept
19
+ - content
20
+ - select
21
+ history:
22
+ - version: 9.1.0
23
+ date: 2026-07-30
24
+ changes: "Introduire le contenu basé sur la sélection"
25
+ author: aymericzip
26
+ ---
27
+
28
+ # Contenu Basé sur la Sélection / Select dans Intlayer
29
+
30
+ ## Comment fonctionne la Sélection (Select)
31
+
32
+ Dans Intlayer, le contenu basé sur la sélection est réalisé grâce à la fonction `select`, qui mappe des valeurs de chaîne arbitraires à leur contenu correspondant. C'est l'équivalent d'un message ICU `{value, select, …}`, ou d'une instruction `switch` dans le code de votre application.
33
+
34
+ Utilisez `select` lorsque le discriminant est une chaîne de caractères libre — un statut, un forfait, une plateforme, un rôle. Pour les autres discriminants, Intlayer fournit des nœuds dédiés :
35
+
36
+ | Discriminant | Nœud |
37
+ | ---------------------------- | ---------- |
38
+ | Une quantité | `enu()` |
39
+ | Un booléen | `cond()` |
40
+ | Un genre | `gender()` |
41
+ | Toute autre valeur de chaîne | `select()` |
42
+
43
+ ## Configuration du contenu basé sur la sélection
44
+
45
+ Pour configurer le contenu basé sur la sélection dans votre projet Intlayer, créez un module de contenu qui inclut vos définitions de sélection. Vous trouverez ci-dessous des exemples dans différents formats.
46
+
47
+ ```typescript fileName="**/*.content.ts" contentDeclarationFormat={["typescript", "esm", "commonjs"]}
48
+ import { select, type Dictionary } from "intlayer";
49
+
50
+ const myPostContent = {
51
+ key: "my_key",
52
+ content: {
53
+ publishStatus: select({
54
+ draft: "This post is a draft",
55
+ published: "This post is live",
56
+ scheduled: "This post is scheduled",
57
+ fallback: "Unknown status", // Optionnel
58
+ }),
59
+ },
60
+ } satisfies Dictionary;
61
+
62
+ export default myPostContent;
63
+ ```
64
+
65
+ ```json5 fileName="**/*.content.json" contentDeclarationFormat="json"
66
+ {
67
+ "$schema": "https://intlayer.org/schema.json",
68
+ "key": "my_key",
69
+ "content": {
70
+ "publishStatus": {
71
+ "nodeType": "select",
72
+ "select": {
73
+ "draft": "This post is a draft",
74
+ "published": "This post is live",
75
+ "scheduled": "This post is scheduled",
76
+ "fallback": "Unknown status", // Optionnel
77
+ },
78
+ },
79
+ },
80
+ }
81
+ ```
82
+
83
+ > Si aucun `fallback` n'est déclaré, la dernière clé déclarée sera prise comme valeur par défaut lorsque la valeur fournie ne correspond à aucun cas déclaré — le même contrat que pour `cond()` et `gender()`.
84
+
85
+ ### Sécurité du typage
86
+
87
+ L'argument accepté est déduit des cas déclarés :
88
+
89
+ - Sans `fallback`, seuls les cas déclarés sont acceptés — une faute de frappe est une erreur de typage.
90
+ - Avec un `fallback`, n'importe quelle chaîne de caractères est acceptée (la valeur par défaut couvre les valeurs non correspondantes) tandis que les cas déclarés sont toujours proposés en autocomplétion.
91
+
92
+ ## Pourquoi ne pas utiliser un objet simple ?
93
+
94
+ Il est tentant de déclarer un objet simple et de l'indexer avec la valeur d'exécution :
95
+
96
+ ```tsx
97
+ // ❌ Ne faites pas cela
98
+ const { publishStatus } = useIntlayer("my_key");
99
+
100
+ return <p>{publishStatus[publishType]}</p>;
101
+ ```
102
+
103
+ Le compilateur Intlayer analyse votre code source pour supprimer le contenu inutilisé et minifier les clés restantes. Un accès calculé dynamique (`obj[expr]`) ne peut pas être résolu de manière statique, de sorte que toute la branche est marquée comme opaque : elle est conservée dans le bundle et ses clés ne sont pas minifiées.
104
+
105
+ Avec `select()`, la résolution du cas se produit à l'intérieur d'un appel de fonction plutôt que comme un accès à une propriété. Le compilateur voit un seul accès à un champ statique et optimise le nœud exactement comme `enu()`, `cond()` ou `gender()` :
106
+
107
+ ```tsx
108
+ // ✅ Faites ceci
109
+ const { publishStatus } = useIntlayer("my_key");
110
+
111
+ return <p>{publishStatus(publishType)}</p>;
112
+ ```
113
+
114
+ ## Utilisation du contenu basé sur la sélection
115
+
116
+ <Tabs group="framework">
117
+ <Tab label="React" value="react">
118
+
119
+ Pour utiliser le contenu basé sur la sélection dans un composant React, importez et utilisez le hook `useIntlayer` du package `react-intlayer`. Ce hook récupère le contenu de la clé spécifiée et vous permet de transmettre une valeur pour sélectionner la sortie appropriée.
120
+
121
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
122
+ import type { FC } from "react";
123
+ import { useIntlayer } from "react-intlayer";
124
+
125
+ const PostStatus: FC = () => {
126
+ const { publishStatus } = useIntlayer("my_key");
127
+
128
+ return (
129
+ <div>
130
+ <p>
131
+ {
132
+ /* Sortie : This post is a draft */
133
+ publishStatus("draft")
134
+ }
135
+ </p>
136
+ <p>
137
+ {
138
+ /* Sortie : This post is live */
139
+ publishStatus("published")
140
+ }
141
+ </p>
142
+ <p>
143
+ {
144
+ /* Sortie : Unknown status */
145
+ publishStatus("Archived")
146
+ }
147
+ </p>
148
+ </div>
149
+ );
150
+ };
151
+
152
+ export default PostStatus;
153
+ ```
154
+
155
+ </Tab>
156
+ <Tab label="Next.js" value="nextjs">
157
+
158
+ Pour utiliser le contenu basé sur la sélection dans les composants clients Next.js, récupérez-le via le hook `useIntlayer`. Voici un exemple :
159
+
160
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
161
+ "use client";
162
+
163
+ import type { FC } from "react";
164
+ import { useIntlayer } from "next-intlayer";
165
+
166
+ const PostStatus: FC = () => {
167
+ const { publishStatus } = useIntlayer("my_key");
168
+
169
+ return (
170
+ <div>
171
+ <p>{publishStatus("draft")}</p>
172
+ <p>{publishStatus("published")}</p>
173
+ </div>
174
+ );
175
+ };
176
+
177
+ export default PostStatus;
178
+ ```
179
+
180
+ </Tab>
181
+ <Tab label="Vue" value="vue">
182
+
183
+ Pour utiliser le contenu basé sur la sélection dans des composants Vue, récupérez-le via le hook `useIntlayer`. Voici un exemple :
184
+
185
+ ```vue fileName="**/*.vue"
186
+ <script setup lang="ts">
187
+ import { useIntlayer } from "vue-intlayer";
188
+
189
+ const { publishStatus } = useIntlayer("my_key");
190
+ </script>
191
+
192
+ <template>
193
+ <div>
194
+ <p>{{ publishStatus("draft") }}</p>
195
+ <p>{{ publishStatus("published") }}</p>
196
+ </div>
197
+ </template>
198
+ ```
199
+
200
+ </Tab>
201
+ <Tab label="Svelte" value="svelte">
202
+
203
+ Pour utiliser le contenu basé sur la sélection dans des composants Svelte, récupérez-le via le hook `useIntlayer`. Le store est accessible avec `$`. Voici un exemple :
204
+
205
+ ```svelte fileName="**/*.svelte"
206
+ <script lang="ts">
207
+ import { useIntlayer } from "svelte-intlayer";
208
+
209
+ const content = useIntlayer("my_key");
210
+ </script>
211
+
212
+ <div>
213
+ <p>{$content.publishStatus("draft")}</p>
214
+ <p>{$content.publishStatus("published")}</p>
215
+ </div>
216
+ ```
217
+
218
+ </Tab>
219
+ <Tab label="Preact" value="preact">
220
+
221
+ Pour utiliser le contenu basé sur la sélection dans des composants Preact, récupérez-le via le hook `useIntlayer`. Voici un exemple :
222
+
223
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
224
+ import type { FC } from "preact";
225
+ import { useIntlayer } from "preact-intlayer";
226
+
227
+ const PostStatus: FC = () => {
228
+ const { publishStatus } = useIntlayer("my_key");
229
+
230
+ return (
231
+ <div>
232
+ <p>{publishStatus("draft")}</p>
233
+ <p>{publishStatus("published")}</p>
234
+ </div>
235
+ );
236
+ };
237
+
238
+ export default PostStatus;
239
+ ```
240
+
241
+ </Tab>
242
+ <Tab label="Solid" value="solid">
243
+
244
+ Pour utiliser le contenu basé sur la sélection dans des composants SolidJS, récupérez-le via le hook `useIntlayer`. Voici un exemple :
245
+
246
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
247
+ import type { Component } from "solid-js";
248
+ import { useIntlayer } from "solid-intlayer";
249
+
250
+ const PostStatus: Component = () => {
251
+ const { publishStatus } = useIntlayer("my_key");
252
+
253
+ return (
254
+ <div>
255
+ <p>{publishStatus("draft")}</p>
256
+ <p>{publishStatus("published")}</p>
257
+ </div>
258
+ );
259
+ };
260
+
261
+ export default PostStatus;
262
+ ```
263
+
264
+ </Tab>
265
+ <Tab label="Angular" value="angular">
266
+
267
+ Pour utiliser le contenu basé sur la sélection dans des composants Angular, récupérez-le via le hook `useIntlayer`. Voici un exemple :
268
+
269
+ ```typescript fileName="app.component.ts" codeFormat="typescript"
270
+ import { Component } from "@angular/core";
271
+ import { useIntlayer } from "angular-intlayer";
272
+
273
+ @Component({
274
+ selector: "app-post-status",
275
+ template: `
276
+ <div>
277
+ <p>{{ content().publishStatus("draft") }}</p>
278
+ <p>{{ content().publishStatus("published") }}</p>
279
+ </div>
280
+ `,
281
+ })
282
+ export class PostStatusComponent {
283
+ content = useIntlayer("my_key");
284
+ }
285
+ ```
286
+
287
+ </Tab>
288
+ <Tab label="Vanilla JS" value="vanilla">
289
+
290
+ Pour utiliser le contenu basé sur la sélection avec `vanilla-intlayer`, récupérez-le via le hook `useIntlayer`. Voici un exemple :
291
+
292
+ ```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
293
+ import { installIntlayer, useIntlayer } from "vanilla-intlayer";
294
+
295
+ installIntlayer();
296
+
297
+ const content = useIntlayer("my_key").onChange((newContent) => {
298
+ document.getElementById("status")!.textContent =
299
+ newContent.publishStatus("draft");
300
+ });
301
+
302
+ // Rendu initial
303
+ document.getElementById("status")!.textContent = content.publishStatus("draft");
304
+ ```
305
+
306
+ </Tab>
307
+ </Tabs>
308
+
309
+ ## Combinaison de Select avec d'autres Nœuds
310
+
311
+ Chaque cas contient un nœud de contenu complet, de sorte que `select` se combine avec `t()`, `insert()`, `md()` et les autres :
312
+
313
+ ```typescript fileName="**/*.content.ts" codeFormat="typescript"
314
+ import { insert, select, t, type Dictionary } from "intlayer";
315
+
316
+ const myPostContent = {
317
+ key: "my_key",
318
+ content: {
319
+ publishStatus: select({
320
+ draft: insert(
321
+ t({
322
+ en: "{{name}} saved a draft",
323
+ fr: "{{name}} a enregistré un brouillon",
324
+ })
325
+ ),
326
+ published: insert(
327
+ t({
328
+ en: "{{name}} published the post",
329
+ fr: "{{name}} a publié l’article",
330
+ })
331
+ ),
332
+ fallback: insert(
333
+ t({
334
+ en: "{{name}} updated the post",
335
+ fr: "{{name}} a mis à jour l’article",
336
+ })
337
+ ),
338
+ }),
339
+ },
340
+ } satisfies Dictionary;
341
+
342
+ export default myPostContent;
343
+ ```
344
+
345
+ ```tsx
346
+ publishStatus("draft")({ name: "Alice" }); // Sortie : Alice a enregistré un brouillon
347
+ ```
348
+
349
+ ## Migration depuis `select` d'ICU
350
+
351
+ Les messages utilisant l'argument `select` d'ICU sont importés en tant que nœuds `select` :
352
+
353
+ ```text
354
+ {publishType, select, draft {draft} published {published} other {Unknown}}
355
+ ```
356
+
357
+ devient
358
+
359
+ ```typescript
360
+ select(
361
+ {
362
+ draft: "draft",
363
+ published: "published",
364
+ fallback: "Unknown",
365
+ },
366
+ "publishType"
367
+ );
368
+ ```
369
+
370
+ Le cas `other` d'ICU est renommé en `fallback`, qui est le nom canonique d'Intlayer pour la valeur par défaut de rattrapage. Le deuxième argument enregistre le nom de la variable ICU afin que le message puisse être reconverti exactement dans la même chaîne ICU lors de son exportation.
371
+
372
+ > Un `select` ICU dont les cas sont des valeurs de genre (`male` / `female` / `other`) est importé en tant que nœud [`gender`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/gender.md) à la place.
373
+
374
+ ## Ressources Supplémentaires
375
+
376
+ Pour des informations plus détaillées sur la configuration et l'utilisation, consultez les ressources suivantes :
377
+
378
+ - [Documentation de la CLI Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/cli/index.md)
379
+ - [Documentation de React Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_with_create_react_app.md)
380
+ - [Documentation de Next Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_with_nextjs_15.md)
381
+
382
+ Ces ressources offrent des informations approfondies sur la configuration et l'utilisation d'Intlayer dans divers environnements et frameworks.
@@ -23,6 +23,9 @@ history:
23
23
  - version: 9.1.0
24
24
  date: 2026-06-26
25
25
  changes: "`variant` accepte désormais une chaîne ou un objet — les anciens `meta` / enregistrements dynamiques se déclarent comme variantes objet"
26
+ - version: 9.1.1
27
+ date: 2026-07-31
28
+ changes: "Une variante déclare uniquement les clés qu'elle remplace ; les variantes non déclarées se rabattent sur l'entrée par défaut"
26
29
  author: aymericzip
27
30
  ---
28
31
 
@@ -77,6 +80,37 @@ const dictionary = {
77
80
  export default dictionary;
78
81
  ```
79
82
 
83
+ ### Variantes partielles
84
+
85
+ Une variante déclare **uniquement les clés qu'elle remplace** ; le reste est hérité de l'entrée par défaut.
86
+
87
+ ```ts fileName="hero-banner.summer.content.ts" contentDeclarationFormat={["typescript", "esm", "commonjs"]}
88
+ import { t, type Dictionary } from "intlayer";
89
+
90
+ const dictionary = {
91
+ key: "hero-banner",
92
+ variant: "summer",
93
+ content: {
94
+ headline: t({
95
+ en: "Build faster all summer",
96
+ fr: "Développez plus vite tout l'été",
97
+ }),
98
+ },
99
+ } satisfies Dictionary;
100
+
101
+ export default dictionary;
102
+ ```
103
+
104
+ ```tsx
105
+ useIntlayer("hero-banner", { variant: "summer" });
106
+ // → { headline: "Développez plus vite tout l'été", cta: "Commencer" } — `cta` hérité
107
+
108
+ useIntlayer("hero-banner", { variant: "never-declared" });
109
+ // → l'entrée par défaut
110
+ ```
111
+
112
+ Ainsi, vous n'ajoutez un fichier de variante que là où la formulation diffère réellement. Une clé se résout en `null` uniquement lorsqu'elle déclare des variantes mais aucune entrée par défaut.
113
+
80
114
  ### Consommer des variantes nommées
81
115
 
82
116
  #### Variante par défaut
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-02-07
3
- updatedAt: 2026-05-12
3
+ updatedAt: 2026-07-30
4
4
  title: कंटेंट फ़ाइल
5
5
  description: अपनी कंटेंट घोषणा फ़ाइलों के एक्सटेंशनों को कस्टमाइज़ करना सीखें। अपने प्रोजेक्ट में शर्तों को कुशलतापूर्वक लागू करने के लिए इस दस्तावेज़ का पालन करें।
6
6
  keywords:
@@ -12,6 +12,9 @@ slugs:
12
12
  - concept
13
13
  - content
14
14
  history:
15
+ - version: 9.1.0
16
+ date: 2026-07-30
17
+ changes: "चयन-आधारित सामग्री प्रस्तुत की गई"
15
18
  - version: 8.10.0
16
19
  date: 2026-05-19
17
20
  changes: "YAML और Markdown फ़ाइल स्वरूपों का समर्थन जोड़ें"
@@ -255,6 +258,7 @@ Intlayer टाइप्ड नोड्स के माध्यम से व
255
258
  - **HTML सामग्री**: समृद्ध HTML सामग्री जो मानक टैग या कस्टम कंपोनेंट्स का उपयोग कर सकती है [देखें HTML सामग्री](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/dictionary/html.md)
256
259
  - **नेस्टेड सामग्री**: अन्य शब्दकोशों के संदर्भ [देखें नेस्टेड सामग्री](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/dictionary/nested_content.md)
257
260
  - **लिंग सामग्री**: लिंग के आधार पर भिन्न सामग्री [देखें लिंग सामग्री](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/dictionary/gender_content.md)
261
+ - **चयन-आधारित सामग्री**: किसी मनमाने स्ट्रिंग मान के आधार पर गतिशील रूप से प्रदर्शित होने वाली सामग्री [देखें चयन-आधारित सामग्री](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/dictionary/select.md)
258
262
  - **फ़ाइल सामग्री**: बाहरी फ़ाइलों के संदर्भ [देखें फ़ाइल सामग्री](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/dictionary/file_content.md)
259
263
 
260
264
  ## शब्दकोश संरचना
@@ -747,6 +751,25 @@ genderContent: gender({
747
751
 
748
752
  > See [जेंडर सामग्री (`gender`) Doc](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/dictionary/gender.md) for more information.
749
753
 
754
+ ### चयन-आधारित सामग्री (`select`)
755
+
756
+ किसी मनमाने स्ट्रिंग मान के आधार पर गतिशील रूप से प्रदर्शित होने वाली सामग्री — ICU `select` के बराबर:
757
+
758
+ ```typescript
759
+ import { select } from "intlayer";
760
+
761
+ selectContent: select({
762
+ draft: "This post is a draft",
763
+ published: "This post is live",
764
+ scheduled: "This post is scheduled",
765
+ fallback: "Unknown status",
766
+ });
767
+ ```
768
+
769
+ `select` का उपयोग तब करें जब विवेचक मात्रा (`enu`), बूलियन (`cond`), या लिंग (`gender`) न हो। इसे रनटाइम मान का उपयोग करके एक साधारण ऑब्जेक्ट को अनुक्रमित (indexing) करने पर प्राथमिकता दें: Intlayer कंपाइलर स्थिर रूप से गतिशील गणना की गई पहुंच का मूल्यांकन नहीं कर सकता है।
770
+
771
+ > See [चयन-आधारित सामग्री (`select`) Doc](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/dictionary/select.md) for more information.
772
+
750
773
  ### फ़ाइल सामग्री (`file`)
751
774
 
752
775
  बाहरी फ़ाइलों के संदर्भ: