@intlayer/docs 5.8.0-canary.0 → 5.8.1-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/blog/ar/intlayer_with_next-i18next.md +2 -2
- package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +96 -219
- package/blog/ar/react-i18next_vs_react-intl_vs_intlayer.md +88 -129
- package/blog/ar/vue-i18n_vs_intlayer.md +268 -0
- package/blog/de/intlayer_with_next-i18next.md +2 -2
- package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
- package/blog/de/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
- package/blog/de/vue-i18n_vs_intlayer.md +268 -0
- package/blog/en/intlayer_with_next-i18next.md +2 -2
- package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
- package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +88 -120
- package/blog/en/vue-i18n_vs_intlayer.md +276 -0
- package/blog/en-GB/intlayer_with_next-i18next.md +2 -2
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +85 -218
- package/blog/en-GB/react-i18next_vs_react-intl_vs_intlayer.md +80 -130
- package/blog/en-GB/vue-i18n_vs_intlayer.md +258 -0
- package/blog/es/intlayer_with_next-i18next.md +2 -2
- package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
- package/blog/es/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
- package/blog/es/vue-i18n_vs_intlayer.md +268 -0
- package/blog/fr/intlayer_with_next-i18next.md +2 -2
- package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +91 -214
- package/blog/fr/react-i18next_vs_react-intl_vs_intlayer.md +86 -127
- package/blog/fr/vue-i18n_vs_intlayer.md +269 -0
- package/blog/hi/intlayer_with_next-i18next.md +2 -2
- package/blog/hi/next-i18next_vs_next-intl_vs_intlayer.md +97 -220
- package/blog/hi/react-i18next_vs_react-intl_vs_intlayer.md +89 -130
- package/blog/hi/vue-i18n_vs_intlayer.md +268 -0
- package/blog/it/intlayer_with_next-i18next.md +2 -2
- package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +91 -214
- package/blog/it/react-i18next_vs_react-intl_vs_intlayer.md +86 -127
- package/blog/it/vue-i18n_vs_intlayer.md +268 -0
- package/blog/ja/intlayer_with_next-i18next.md +2 -2
- package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
- package/blog/ja/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
- package/blog/ja/vue-i18n_vs_intlayer.md +268 -0
- package/blog/ko/intlayer_with_next-i18next.md +2 -2
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +95 -217
- package/blog/ko/react-i18next_vs_react-intl_vs_intlayer.md +89 -130
- package/blog/ko/vue-i18n_vs_intlayer.md +268 -0
- package/blog/pt/intlayer_with_next-i18next.md +2 -2
- package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
- package/blog/pt/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
- package/blog/pt/vue-i18n_vs_intlayer.md +268 -0
- package/blog/ru/intlayer_with_next-i18next.md +2 -2
- package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +94 -217
- package/blog/ru/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
- package/blog/ru/vue-i18n_vs_intlayer.md +268 -0
- package/blog/zh/intlayer_with_next-i18next.md +2 -2
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
- package/blog/zh/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
- package/blog/zh/vue-i18n_vs_intlayer.md +269 -0
- package/dist/cjs/generated/blog.entry.cjs +41 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +41 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/docs/ar/formatters.md +417 -31
- package/docs/ar/how_works_intlayer.md +2 -4
- package/docs/ar/interest_of_intlayer.md +7 -10
- package/docs/ar/intlayer_CMS.md +2 -3
- package/docs/ar/intlayer_visual_editor.md +2 -3
- package/docs/ar/intlayer_with_tanstack.md +1 -1
- package/docs/ar/introduction.md +4 -4
- package/docs/de/formatters.md +444 -34
- package/docs/de/introduction.md +2 -2
- package/docs/en/dictionary/enumeration.md +2 -2
- package/docs/en/dictionary/function_fetching.md +2 -2
- package/docs/en/dictionary/get_started.md +2 -2
- package/docs/en/dictionary/translation.md +2 -2
- package/docs/en/formatters.md +383 -15
- package/docs/en/how_works_intlayer.md +2 -4
- package/docs/en/interest_of_intlayer.md +48 -29
- package/docs/en/intlayer_CMS.md +2 -3
- package/docs/en/intlayer_visual_editor.md +2 -3
- package/docs/en/intlayer_with_create_react_app.md +2 -2
- package/docs/en/intlayer_with_express.md +2 -2
- package/docs/en/intlayer_with_tanstack.md +1 -1
- package/docs/en/introduction.md +4 -4
- package/docs/en/packages/express-intlayer/index.md +2 -2
- package/docs/en/packages/intlayer/getConfiguration.md +2 -3
- package/docs/en/packages/intlayer/getEnumeration.md +2 -7
- package/docs/en/packages/intlayer/getHTMLTextDir.md +2 -4
- package/docs/en/packages/intlayer/getLocaleLang.md +2 -4
- package/docs/en/packages/intlayer/getLocaleName.md +2 -3
- package/docs/en/packages/intlayer/getLocalizedUrl.md +2 -8
- package/docs/en/packages/intlayer/getMultilingualUrls.md +2 -7
- package/docs/en/packages/intlayer/getPathWithoutLocale.md +2 -3
- package/docs/en/packages/intlayer/getTranslation.md +2 -4
- package/docs/en/packages/intlayer/index.md +2 -2
- package/docs/en/packages/next-intlayer/index.md +2 -2
- package/docs/en/packages/next-intlayer/t.md +2 -2
- package/docs/en/packages/next-intlayer/useDictionary.md +2 -2
- package/docs/en/packages/next-intlayer/useIntlayer.md +2 -2
- package/docs/en/packages/next-intlayer/useLocale.md +2 -2
- package/docs/en/packages/react-intlayer/index.md +2 -2
- package/docs/en/packages/react-intlayer/t.md +2 -2
- package/docs/en/packages/react-intlayer/useI18n.md +2 -2
- package/docs/en/packages/react-intlayer/useIntlayer.md +2 -2
- package/docs/en/packages/react-intlayer/useLocale.md +2 -2
- package/docs/en/packages/react-scripts-intlayer/index.md +2 -2
- package/docs/en/packages/solid-intlayer/index.md +2 -2
- package/docs/en/packages/vite-intlayer/index.md +2 -2
- package/docs/en-GB/formatters.md +402 -16
- package/docs/en-GB/how_works_intlayer.md +2 -4
- package/docs/en-GB/interest_of_intlayer.md +7 -10
- package/docs/en-GB/intlayer_with_tanstack.md +1 -1
- package/docs/en-GB/introduction.md +2 -2
- package/docs/es/formatters.md +438 -28
- package/docs/es/how_works_intlayer.md +2 -4
- package/docs/es/interest_of_intlayer.md +7 -10
- package/docs/es/intlayer_with_tanstack.md +1 -1
- package/docs/es/introduction.md +2 -2
- package/docs/fr/formatters.md +438 -28
- package/docs/fr/how_works_intlayer.md +2 -4
- package/docs/fr/interest_of_intlayer.md +7 -10
- package/docs/fr/intlayer_with_tanstack.md +1 -1
- package/docs/fr/introduction.md +2 -2
- package/docs/hi/formatters.md +430 -39
- package/docs/hi/how_works_intlayer.md +2 -4
- package/docs/hi/interest_of_intlayer.md +7 -10
- package/docs/hi/intlayer_with_tanstack.md +1 -1
- package/docs/hi/introduction.md +2 -2
- package/docs/it/formatters.md +438 -30
- package/docs/it/how_works_intlayer.md +2 -4
- package/docs/it/interest_of_intlayer.md +7 -10
- package/docs/it/intlayer_with_tanstack.md +1 -1
- package/docs/it/introduction.md +2 -2
- package/docs/ja/formatters.md +435 -47
- package/docs/ja/how_works_intlayer.md +2 -4
- package/docs/ja/interest_of_intlayer.md +7 -10
- package/docs/ja/intlayer_with_tanstack.md +1 -1
- package/docs/ja/introduction.md +2 -2
- package/docs/ko/formatters.md +432 -41
- package/docs/ko/how_works_intlayer.md +2 -4
- package/docs/ko/interest_of_intlayer.md +7 -10
- package/docs/ko/intlayer_with_tanstack.md +1 -1
- package/docs/ko/introduction.md +2 -2
- package/docs/pt/formatters.md +416 -30
- package/docs/pt/how_works_intlayer.md +2 -4
- package/docs/pt/intlayer_with_tanstack.md +1 -1
- package/docs/pt/introduction.md +2 -2
- package/docs/ru/autoFill.md +2 -2
- package/docs/ru/configuration.md +1 -40
- package/docs/ru/formatters.md +438 -28
- package/docs/ru/how_works_intlayer.md +5 -7
- package/docs/ru/index.md +1 -1
- package/docs/ru/interest_of_intlayer.md +8 -11
- package/docs/ru/intlayer_CMS.md +7 -8
- package/docs/ru/intlayer_cli.md +4 -7
- package/docs/ru/intlayer_visual_editor.md +5 -6
- package/docs/ru/intlayer_with_angular.md +1 -1
- package/docs/ru/intlayer_with_create_react_app.md +5 -5
- package/docs/ru/intlayer_with_lynx+react.md +1 -1
- package/docs/ru/intlayer_with_nextjs_15.md +3 -3
- package/docs/ru/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/ru/intlayer_with_nuxt.md +1 -1
- package/docs/ru/intlayer_with_react_native+expo.md +2 -2
- package/docs/ru/intlayer_with_tanstack.md +3 -3
- package/docs/ru/intlayer_with_vite+preact.md +3 -3
- package/docs/ru/intlayer_with_vite+react.md +3 -3
- package/docs/ru/intlayer_with_vite+solid.md +1 -1
- package/docs/ru/intlayer_with_vite+svelte.md +1 -1
- package/docs/ru/intlayer_with_vite+vue.md +2 -2
- package/docs/ru/introduction.md +5 -5
- package/docs/ru/locale_mapper.md +1 -1
- package/docs/ru/packages/@intlayer/api/index.md +2 -2
- package/docs/ru/packages/@intlayer/chokidar/index.md +1 -1
- package/docs/ru/packages/@intlayer/cli/index.md +2 -2
- package/docs/ru/packages/@intlayer/config/index.md +2 -2
- package/docs/ru/packages/@intlayer/core/index.md +2 -2
- package/docs/ru/packages/@intlayer/design-system/index.md +2 -2
- package/docs/ru/packages/@intlayer/dictionary-entry/index.md +2 -2
- package/docs/ru/packages/@intlayer/editor/index.md +1 -1
- package/docs/ru/packages/@intlayer/editor-react/index.md +1 -1
- package/docs/ru/packages/@intlayer/webpack/index.md +1 -1
- package/docs/ru/packages/angular-intlayer/index.md +1 -1
- package/docs/ru/packages/express-intlayer/index.md +3 -3
- package/docs/ru/packages/express-intlayer/t.md +1 -1
- package/docs/ru/packages/intlayer/getEnumeration.md +3 -8
- package/docs/ru/packages/intlayer/getTranslation.md +3 -5
- package/docs/ru/packages/intlayer/getTranslationContent.md +1 -3
- package/docs/ru/packages/intlayer/index.md +3 -3
- package/docs/ru/packages/intlayer-cli/index.md +1 -1
- package/docs/ru/packages/intlayer-editor/index.md +2 -2
- package/docs/ru/packages/lynx-intlayer/index.md +1 -1
- package/docs/ru/packages/next-intlayer/index.md +4 -4
- package/docs/ru/packages/next-intlayer/t.md +4 -4
- package/docs/ru/packages/next-intlayer/useLocale.md +3 -3
- package/docs/ru/packages/nuxt-intlayer/index.md +1 -1
- package/docs/ru/packages/preact-intlayer/index.md +1 -1
- package/docs/ru/packages/react-intlayer/index.md +4 -4
- package/docs/ru/packages/react-intlayer/t.md +4 -4
- package/docs/ru/packages/react-native-intlayer/index.md +1 -1
- package/docs/ru/packages/react-scripts-intlayer/index.md +3 -3
- package/docs/ru/packages/solid-intlayer/index.md +3 -3
- package/docs/ru/packages/svelte-intlayer/index.md +1 -1
- package/docs/ru/packages/vite-intlayer/index.md +3 -3
- package/docs/ru/packages/vue-intlayer/index.md +1 -1
- package/docs/ru/per_locale_file.md +1 -1
- package/docs/ru/roadmap.md +3 -5
- package/docs/ru/vs_code_extension.md +1 -1
- package/docs/zh/formatters.md +446 -38
- package/docs/zh/how_works_intlayer.md +2 -4
- package/docs/zh/interest_of_intlayer.md +7 -10
- package/docs/zh/intlayer_with_tanstack.md +1 -1
- package/docs/zh/introduction.md +2 -2
- package/frequent_questions/ar/domain_routing.md +1 -1
- package/frequent_questions/en/domain_routing.md +1 -1
- package/frequent_questions/en-GB/domain_routing.md +1 -1
- package/frequent_questions/es/domain_routing.md +1 -1
- package/frequent_questions/fr/domain_routing.md +1 -1
- package/frequent_questions/hi/domain_routing.md +1 -1
- package/frequent_questions/it/domain_routing.md +1 -1
- package/frequent_questions/ko/domain_routing.md +1 -1
- package/frequent_questions/pt/domain_routing.md +1 -1
- package/frequent_questions/ru/domain_routing.md +1 -1
- package/frequent_questions/ru/get_locale_cookie.md +4 -4
- package/frequent_questions/ru/static_rendering.md +1 -2
- package/frequent_questions/zh/domain_routing.md +1 -1
- package/package.json +9 -11
- package/src/generated/blog.entry.ts +42 -1
package/docs/ar/introduction.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
createdAt:
|
|
3
|
-
updatedAt: 2025-
|
|
2
|
+
createdAt: 2025-08-23
|
|
3
|
+
updatedAt: 2025-08-23
|
|
4
4
|
title: مقدمة
|
|
5
5
|
description: اكتشف كيف يعمل Intlayer. شاهد الخطوات التي يستخدمها Intlayer في تطبيقك. تعرف على ما تفعله الحزم المختلفة.
|
|
6
6
|
keywords:
|
|
@@ -32,8 +32,8 @@ slugs:
|
|
|
32
32
|
.
|
|
33
33
|
└── Components
|
|
34
34
|
└── MyComponent
|
|
35
|
-
├── index.content.
|
|
36
|
-
└── index.
|
|
35
|
+
├── index.content.ts
|
|
36
|
+
└── index.tsx
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
```tsx fileName="src/components/MyComponent/index.content.ts" contentDeclarationFormat="typescript"
|
package/docs/de/formatters.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
3
|
updatedAt: 2025-08-20
|
|
4
4
|
title: Formatierer
|
|
5
|
-
description: Ortsabhängige Formatierungswerkzeuge basierend auf Intl für Zahlen, Prozentsätze, Währungen, Daten, relative Zeit, Einheiten und kompakte Notation. Enthält einen
|
|
5
|
+
description: Ortsabhängige Formatierungswerkzeuge basierend auf Intl für Zahlen, Prozentsätze, Währungen, Daten, relative Zeit, Einheiten und kompakte Notation. Enthält einen zwischengespeicherten Intl-Helfer.
|
|
6
6
|
keywords:
|
|
7
7
|
- Formatierer
|
|
8
8
|
- Intl
|
|
@@ -13,6 +13,7 @@ keywords:
|
|
|
13
13
|
- Relative Zeit
|
|
14
14
|
- Einheiten
|
|
15
15
|
- Kompakt
|
|
16
|
+
- Liste
|
|
16
17
|
- Internationalisierung
|
|
17
18
|
slugs:
|
|
18
19
|
- doc
|
|
@@ -21,9 +22,9 @@ slugs:
|
|
|
21
22
|
|
|
22
23
|
# Intlayer Formatierer
|
|
23
24
|
|
|
24
|
-
##
|
|
25
|
+
## Überblick
|
|
25
26
|
|
|
26
|
-
Intlayer
|
|
27
|
+
Intlayer stellt eine Reihe von leichtgewichtigen Helfern bereit, die auf den nativen `Intl`-APIs aufbauen, sowie einen zwischengespeicherten `Intl`-Wrapper, um die wiederholte Erstellung schwerer Formatierer zu vermeiden. Diese Werkzeuge sind vollständig ortsabhängig und können aus dem Hauptpaket `intlayer` verwendet werden.
|
|
27
28
|
|
|
28
29
|
### Import
|
|
29
30
|
|
|
@@ -37,40 +38,302 @@ import {
|
|
|
37
38
|
relativeTime,
|
|
38
39
|
units,
|
|
39
40
|
compact,
|
|
40
|
-
|
|
41
|
+
list,
|
|
42
|
+
getLocaleName,
|
|
43
|
+
getLocaleLang,
|
|
44
|
+
getLocaleFromPath,
|
|
45
|
+
getPathWithoutLocale,
|
|
46
|
+
getLocalizedUrl,
|
|
47
|
+
getHTMLTextDir,
|
|
48
|
+
getContent,
|
|
49
|
+
getLocalisedContent,
|
|
50
|
+
getTranslation,
|
|
51
|
+
getIntlayer,
|
|
52
|
+
getIntlayerAsync,
|
|
53
|
+
} from "intlayer";
|
|
41
54
|
```
|
|
42
55
|
|
|
43
56
|
Wenn Sie React verwenden, sind auch Hooks verfügbar; siehe `react-intlayer/format`.
|
|
44
57
|
|
|
45
|
-
##
|
|
58
|
+
## Zwischengespeichertes Intl
|
|
46
59
|
|
|
47
|
-
Das exportierte `Intl` ist ein
|
|
60
|
+
Das exportierte `Intl` ist ein schlanker, zwischengespeicherter Wrapper um das globale `Intl`. Es merkt sich Instanzen von `NumberFormat`, `DateTimeFormat`, `RelativeTimeFormat`, `ListFormat`, `DisplayNames`, `Collator` und `PluralRules`, wodurch vermieden wird, denselben Formatierer wiederholt neu zu erstellen.
|
|
48
61
|
|
|
49
|
-
Da die Erstellung von Formatierern relativ aufwendig ist, verbessert dieses Caching die Leistung, ohne das Verhalten zu ändern. Der Wrapper bietet
|
|
62
|
+
Da die Erstellung von Formatierern relativ aufwendig ist, verbessert dieses Caching die Leistung, ohne das Verhalten zu ändern. Der Wrapper bietet die gleiche API wie das native `Intl`, sodass die Verwendung identisch ist.
|
|
50
63
|
|
|
51
|
-
- Das Caching erfolgt pro Prozess und ist für Aufrufer transparent.
|
|
64
|
+
- Das Caching erfolgt pro Prozess und ist für die Aufrufer transparent.
|
|
52
65
|
|
|
53
|
-
> Wenn `Intl.DisplayNames` in der Umgebung nicht verfügbar ist, wird eine
|
|
66
|
+
> Wenn `Intl.DisplayNames` in der Umgebung nicht verfügbar ist, wird eine einzelne Entwickler-Warnung ausgegeben (ein Polyfill wird empfohlen).
|
|
54
67
|
|
|
55
|
-
|
|
68
|
+
Beispiele:
|
|
56
69
|
|
|
57
70
|
```ts
|
|
58
71
|
import { Intl } from "intlayer";
|
|
59
72
|
|
|
73
|
+
// Zahlenformatierung
|
|
60
74
|
const numberFormat = new Intl.NumberFormat("en-GB", {
|
|
61
75
|
style: "currency",
|
|
62
76
|
currency: "GBP",
|
|
63
77
|
});
|
|
64
78
|
numberFormat.format(1234.5); // "£1,234.50"
|
|
79
|
+
|
|
80
|
+
// Anzeigenamen für Sprachen, Regionen usw.
|
|
81
|
+
const displayNames = new Intl.DisplayNames("fr", { type: "language" });
|
|
82
|
+
displayNames.of("en"); // "anglais"
|
|
83
|
+
|
|
84
|
+
// Sortierung mit Collator
|
|
85
|
+
const collator = new Intl.Collator("fr", { sensitivity: "base" });
|
|
86
|
+
collator.compare("é", "e"); // 0 (gleich)
|
|
87
|
+
|
|
88
|
+
// Pluralregeln
|
|
89
|
+
const pluralRules = new Intl.PluralRules("fr");
|
|
90
|
+
pluralRules.select(1); // "one"
|
|
91
|
+
pluralRules.select(2); // "other"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Zusätzliche Intl-Dienstprogramme
|
|
95
|
+
|
|
96
|
+
Neben den Formatierer-Helfern können Sie den zwischengespeicherten Intl-Wrapper auch direkt für andere Intl-Funktionen verwenden:
|
|
97
|
+
|
|
98
|
+
### `Intl.DisplayNames`
|
|
99
|
+
|
|
100
|
+
Für lokalisierte Namen von Sprachen, Regionen, Währungen und Schriftsystemen:
|
|
101
|
+
|
|
102
|
+
```ts
|
|
103
|
+
import { Intl } from "intlayer";
|
|
104
|
+
|
|
105
|
+
const languageNames = new Intl.DisplayNames("en", { type: "language" });
|
|
106
|
+
languageNames.of("fr"); // "Französisch"
|
|
107
|
+
|
|
108
|
+
const regionNames = new Intl.DisplayNames("fr", { type: "region" });
|
|
109
|
+
regionNames.of("US"); // "États-Unis"
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### `Intl.Collator`
|
|
113
|
+
|
|
114
|
+
Für lokalisierte Zeichenfolgenvergleiche und Sortierungen:
|
|
115
|
+
|
|
116
|
+
```ts
|
|
117
|
+
import { Intl } from "intlayer";
|
|
118
|
+
|
|
119
|
+
const collator = new Intl.Collator("de", {
|
|
120
|
+
sensitivity: "base",
|
|
121
|
+
numeric: true,
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
const words = ["äpfel", "zebra", "100", "20"];
|
|
125
|
+
words.sort(collator.compare); // ["20", "100", "äpfel", "zebra"]
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### `Intl.PluralRules`
|
|
129
|
+
|
|
130
|
+
Zur Bestimmung von Pluralformen in verschiedenen Sprachräumen:
|
|
131
|
+
|
|
132
|
+
```ts
|
|
133
|
+
import { Intl } from "intlayer";
|
|
134
|
+
|
|
135
|
+
const pluralRules = new Intl.PluralRules("ar");
|
|
136
|
+
pluralRules.select(0); // "zero"
|
|
137
|
+
pluralRules.select(1); // "one"
|
|
138
|
+
pluralRules.select(2); // "two"
|
|
139
|
+
pluralRules.select(3); // "few"
|
|
140
|
+
pluralRules.select(11); // "many"
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Locale-Dienstprogramme
|
|
144
|
+
|
|
145
|
+
### `getLocaleName(displayLocale, targetLocale?)`
|
|
146
|
+
|
|
147
|
+
Ermittelt den lokalisierten Namen eines Sprachraums in einem anderen Sprachraum:
|
|
148
|
+
|
|
149
|
+
```ts
|
|
150
|
+
import { getLocaleName } from "intlayer";
|
|
151
|
+
|
|
152
|
+
getLocaleName("fr", "en"); // "French"
|
|
153
|
+
getLocaleName("en", "fr"); // "anglais"
|
|
154
|
+
getLocaleName("de", "es"); // "alemán"
|
|
65
155
|
```
|
|
66
156
|
|
|
157
|
+
- **displayLocale**: Die Sprachregion, für die der Name ermittelt werden soll
|
|
158
|
+
- **targetLocale**: Die Sprachregion, in der der Name angezeigt wird (Standard ist displayLocale)
|
|
159
|
+
|
|
160
|
+
### `getLocaleLang(locale?)`
|
|
161
|
+
|
|
162
|
+
Extrahiert den Sprachcode aus einem Locale-String:
|
|
163
|
+
|
|
164
|
+
```ts
|
|
165
|
+
import { getLocaleLang } from "intlayer";
|
|
166
|
+
|
|
167
|
+
getLocaleLang("en-US"); // "en"
|
|
168
|
+
getLocaleLang("fr-CA"); // "fr"
|
|
169
|
+
getLocaleLang("de"); // "de"
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
- **locale**: Die Sprachregion, aus der die Sprache extrahiert werden soll (Standard ist die aktuelle Sprachregion)
|
|
173
|
+
|
|
174
|
+
### `getLocaleFromPath(inputUrl)`
|
|
175
|
+
|
|
176
|
+
Extrahiert das Locale-Segment aus einer URL oder einem Pfadnamen:
|
|
177
|
+
|
|
178
|
+
```ts
|
|
179
|
+
import { getLocaleFromPath } from "intlayer";
|
|
180
|
+
|
|
181
|
+
getLocaleFromPath("/en/dashboard"); // "en"
|
|
182
|
+
getLocaleFromPath("/fr/dashboard"); // "fr"
|
|
183
|
+
getLocaleFromPath("/dashboard"); // "en" (Standard-Sprachregion)
|
|
184
|
+
getLocaleFromPath("https://example.com/es/about"); // "es"
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
- **inputUrl**: Der vollständige URL-String oder Pfadname, der verarbeitet werden soll
|
|
188
|
+
- **returns**: Die erkannte Sprachregion oder die Standard-Sprachregion, falls keine gefunden wird
|
|
189
|
+
|
|
190
|
+
### `getPathWithoutLocale(inputUrl, locales?)`
|
|
191
|
+
|
|
192
|
+
Entfernt das Sprachregion-Segment aus einer URL oder einem Pfadnamen:
|
|
193
|
+
|
|
194
|
+
```ts
|
|
195
|
+
import { getPathWithoutLocale } from "intlayer";
|
|
196
|
+
|
|
197
|
+
getPathWithoutLocale("/en/dashboard"); // "/dashboard"
|
|
198
|
+
getPathWithoutLocale("/fr/dashboard"); // "/dashboard"
|
|
199
|
+
getPathWithoutLocale("https://example.com/en/about"); // "https://example.com/about"
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
- **inputUrl**: Der vollständige URL-String oder Pfadname, der verarbeitet werden soll
|
|
203
|
+
- **locales**: Optionale Liste der unterstützten Sprachregionen (Standard sind die konfigurierten Sprachregionen)
|
|
204
|
+
- **returns**: Die URL ohne den Sprachregionsabschnitt
|
|
205
|
+
|
|
206
|
+
### `getLocalizedUrl(url, currentLocale, locales?, defaultLocale?, prefixDefault?)`
|
|
207
|
+
|
|
208
|
+
Erzeugt eine lokalisierte URL für die aktuelle Sprachregion:
|
|
209
|
+
|
|
210
|
+
```ts
|
|
211
|
+
import { getLocalizedUrl } from "intlayer";
|
|
212
|
+
|
|
213
|
+
getLocalizedUrl("/about", "fr", ["en", "fr"], "en", false); // "/fr/about"
|
|
214
|
+
getLocalizedUrl("/about", "en", ["en", "fr"], "en", false); // "/about"
|
|
215
|
+
getLocalizedUrl("https://example.com/about", "fr", ["en", "fr"], "en", true); // "https://example.com/fr/about"
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
- **url**: Die ursprüngliche URL, die lokalisiert werden soll
|
|
219
|
+
- **currentLocale**: Die aktuelle Sprachregion
|
|
220
|
+
- **locales**: Optionale Liste der unterstützten Sprachregionen (Standard sind die konfigurierten Sprachregionen)
|
|
221
|
+
- **defaultLocale**: Optionale Standardsprache (Standard ist die konfigurierte Standardsprache)
|
|
222
|
+
- **prefixDefault**: Ob die Standardsprache als Präfix verwendet wird (Standard ist der konfigurierte Wert)
|
|
223
|
+
|
|
224
|
+
### `getHTMLTextDir(locale?)`
|
|
225
|
+
|
|
226
|
+
Gibt die Schreibrichtung für eine Sprache zurück:
|
|
227
|
+
|
|
228
|
+
```ts
|
|
229
|
+
import { getHTMLTextDir } from "intlayer";
|
|
230
|
+
|
|
231
|
+
getHTMLTextDir("en-US"); // "ltr"
|
|
232
|
+
getHTMLTextDir("ar"); // "rtl"
|
|
233
|
+
getHTMLTextDir("he"); // "rtl"
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
- **locale**: Die Sprache, für die die Schreibrichtung ermittelt wird (Standard ist die aktuelle Sprache)
|
|
237
|
+
- **returns**: `"ltr"`, `"rtl"` oder `"auto"`
|
|
238
|
+
|
|
239
|
+
## Dienstprogramme zur Inhaltsverarbeitung
|
|
240
|
+
|
|
241
|
+
### `getContent(node, nodeProps, locale?)`
|
|
242
|
+
|
|
243
|
+
Transformiert einen Inhaltsknoten mit allen verfügbaren Plugins (Übersetzung, Aufzählung, Einfügung usw.):
|
|
244
|
+
|
|
245
|
+
```ts
|
|
246
|
+
import { getContent } from "intlayer";
|
|
247
|
+
|
|
248
|
+
const content = getContent(
|
|
249
|
+
contentNode,
|
|
250
|
+
{ dictionaryKey: "common", dictionaryPath: "/path/to/dict" },
|
|
251
|
+
"fr"
|
|
252
|
+
);
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
- **node**: Der zu transformierende Inhaltsknoten
|
|
256
|
+
- **nodeProps**: Eigenschaften für den Transformationskontext
|
|
257
|
+
- **locale**: Optionale Sprache (Standard ist die konfigurierte Standardsprache)
|
|
258
|
+
|
|
259
|
+
### `getLocalisedContent(node, locale, nodeProps, fallback?)`
|
|
260
|
+
|
|
261
|
+
Transformiert einen Inhaltsknoten nur mit dem Übersetzungs-Plugin:
|
|
262
|
+
|
|
263
|
+
```ts
|
|
264
|
+
import { getLocalisedContent } from "intlayer";
|
|
265
|
+
|
|
266
|
+
const content = getLocalisedContent(
|
|
267
|
+
contentNode,
|
|
268
|
+
"fr",
|
|
269
|
+
{ dictionaryKey: "common" },
|
|
270
|
+
true // Fallback auf Standardsprache, falls Übersetzung fehlt
|
|
271
|
+
);
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
- **node**: Der zu transformierende Inhaltsknoten
|
|
275
|
+
- **locale**: Die für die Übersetzung zu verwendende Sprache
|
|
276
|
+
- **nodeProps**: Eigenschaften für den Transformationskontext
|
|
277
|
+
- **fallback**: Ob auf die Standardsprache zurückgegriffen werden soll (Standard ist false)
|
|
278
|
+
|
|
279
|
+
### `getTranslation(languageContent, locale?, fallback?)`
|
|
280
|
+
|
|
281
|
+
Extrahiert Inhalte für eine bestimmte Sprache aus einem Sprachinhaltsobjekt:
|
|
282
|
+
|
|
283
|
+
```ts
|
|
284
|
+
import { getTranslation } from "intlayer";
|
|
285
|
+
|
|
286
|
+
const content = getTranslation(
|
|
287
|
+
{
|
|
288
|
+
en: "Hello",
|
|
289
|
+
fr: "Bonjour",
|
|
290
|
+
de: "Hallo",
|
|
291
|
+
},
|
|
292
|
+
"fr",
|
|
293
|
+
true
|
|
294
|
+
); // "Bonjour"
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
- **languageContent**: Objekt, das Sprachen mit Inhalten abbildet
|
|
298
|
+
- **locale**: Ziel-Sprache (Standard ist die konfigurierte Standardsprache)
|
|
299
|
+
- **fallback**: Ob auf die Standardsprache zurückgegriffen werden soll (Standard ist true)
|
|
300
|
+
|
|
301
|
+
### `getIntlayer(dictionaryKey, locale?, plugins?)`
|
|
302
|
+
|
|
303
|
+
Ruft Inhalte aus einem Wörterbuch anhand eines Schlüssels ab und transformiert sie:
|
|
304
|
+
|
|
305
|
+
```ts
|
|
306
|
+
import { getIntlayer } from "intlayer";
|
|
307
|
+
|
|
308
|
+
const content = getIntlayer("common", "fr");
|
|
309
|
+
const nestedContent = getIntlayer("common", "fr", customPlugins);
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
- **dictionaryKey**: Der Schlüssel des abzurufenden Wörterbuchs
|
|
313
|
+
- **locale**: Optionale Locale (Standard ist die konfigurierte Standard-Locale)
|
|
314
|
+
- **plugins**: Optionale Liste von benutzerdefinierten Transformations-Plugins
|
|
315
|
+
|
|
316
|
+
### `getIntlayerAsync(dictionaryKey, locale?, plugins?)`
|
|
317
|
+
|
|
318
|
+
Ruft asynchron Inhalte aus einem entfernten Wörterbuch ab:
|
|
319
|
+
|
|
320
|
+
```ts
|
|
321
|
+
import { getIntlayerAsync } from "intlayer";
|
|
322
|
+
|
|
323
|
+
const content = await getIntlayerAsync("common", "fr");
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
- **dictionaryKey**: Der Schlüssel des abzurufenden Wörterbuchs
|
|
327
|
+
- **locale**: Optionale Locale (Standard ist die konfigurierte Standard-Locale)
|
|
328
|
+
- **plugins**: Optionale Liste von benutzerdefinierten Transformations-Plugins
|
|
329
|
+
|
|
67
330
|
## Formatierer
|
|
68
331
|
|
|
69
|
-
Alle
|
|
332
|
+
Alle nachfolgenden Hilfsfunktionen werden aus `intlayer` exportiert.
|
|
70
333
|
|
|
71
334
|
### `number(value, options?)`
|
|
72
335
|
|
|
73
|
-
Formatiert einen numerischen Wert unter Verwendung von
|
|
336
|
+
Formatiert einen numerischen Wert unter Verwendung von lokalisierungsspezifischer Gruppierung und Dezimalstellen.
|
|
74
337
|
|
|
75
338
|
- **value**: `number | string`
|
|
76
339
|
- **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
|
|
@@ -81,15 +344,15 @@ Beispiele:
|
|
|
81
344
|
import { number } from "intlayer";
|
|
82
345
|
|
|
83
346
|
number(123456.789); // "123,456.789" (in en-US)
|
|
84
|
-
number("1000000", { locale: "fr" }); // "1
|
|
347
|
+
number("1000000", { locale: "fr" }); // "1 000 000"
|
|
85
348
|
number(1234.5, { minimumFractionDigits: 2 }); // "1,234.50"
|
|
86
349
|
```
|
|
87
350
|
|
|
88
351
|
### `percentage(value, options?)`
|
|
89
352
|
|
|
90
|
-
Formatiert eine Zahl als
|
|
353
|
+
Formatiert eine Zahl als Prozentwert-String.
|
|
91
354
|
|
|
92
|
-
Verhalten: Werte größer als 1 werden als ganze Prozentsätze interpretiert und normalisiert (z.
|
|
355
|
+
Verhalten: Werte größer als 1 werden als ganze Prozentsätze interpretiert und normalisiert (z.B. `25` → `25%`, `0.25` → `25%`).
|
|
93
356
|
|
|
94
357
|
- **value**: `number | string`
|
|
95
358
|
- **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
|
|
@@ -110,7 +373,7 @@ Formatiert einen Wert als lokalisierte Währung. Standardmäßig `USD` mit zwei
|
|
|
110
373
|
|
|
111
374
|
- **value**: `number | string`
|
|
112
375
|
- **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
|
|
113
|
-
- Häufige Felder: `currency` (z.
|
|
376
|
+
- Häufige Felder: `currency` (z.B. `"EUR"`), `currencyDisplay` (`"symbol" | "code" | "name"`)
|
|
114
377
|
|
|
115
378
|
Beispiele:
|
|
116
379
|
|
|
@@ -118,7 +381,7 @@ Beispiele:
|
|
|
118
381
|
import { currency } from "intlayer";
|
|
119
382
|
|
|
120
383
|
currency(1234.5, { currency: "EUR" }); // "€1.234,50"
|
|
121
|
-
currency("5000", { locale: "fr", currency: "CAD", currencyDisplay: "code" }); // "5
|
|
384
|
+
currency("5000", { locale: "fr", currency: "CAD", currencyDisplay: "code" }); // "5 000,00 CAD"
|
|
122
385
|
```
|
|
123
386
|
|
|
124
387
|
### `date(date, optionsOrPreset?)`
|
|
@@ -134,7 +397,7 @@ Beispiele:
|
|
|
134
397
|
```ts
|
|
135
398
|
import { date } from "intlayer";
|
|
136
399
|
|
|
137
|
-
date(new Date(), "short"); // z.B. "02.
|
|
400
|
+
date(new Date(), "short"); // z.B. "08.02.25, 14:30"
|
|
138
401
|
date("2025-08-02T14:30:00Z", { locale: "fr", month: "long", day: "numeric" }); // "2 août"
|
|
139
402
|
```
|
|
140
403
|
|
|
@@ -146,7 +409,7 @@ Formatiert relative Zeit zwischen zwei Zeitpunkten mit `Intl.RelativeTimeFormat`
|
|
|
146
409
|
- **from**: `Date | string | number`
|
|
147
410
|
- **to**: `Date | string | number` (Standard ist `new Date()`)
|
|
148
411
|
- **options**: `{ locale?: LocalesValues; unit?: Intl.RelativeTimeFormatUnit; numeric?: Intl.RelativeTimeFormatNumeric; style?: Intl.RelativeTimeFormatStyle }`
|
|
149
|
-
-
|
|
412
|
+
- Standardmäßig ist `unit` `"second"`.
|
|
150
413
|
|
|
151
414
|
Beispiele:
|
|
152
415
|
|
|
@@ -163,11 +426,11 @@ relativeTime(now, twoHoursAgo, { unit: "hour", numeric: "auto" }); // "vor 2 Stu
|
|
|
163
426
|
|
|
164
427
|
### `units(value, options?)`
|
|
165
428
|
|
|
166
|
-
Formatiert einen numerischen Wert als lokalisierten
|
|
429
|
+
Formatiert einen numerischen Wert als lokalisierten Einheiten-String mit `Intl.NumberFormat` und `style: 'unit'`.
|
|
167
430
|
|
|
168
431
|
- **value**: `number | string`
|
|
169
432
|
- **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
|
|
170
|
-
-
|
|
433
|
+
- Gemeinsame Felder: `unit` (z.B. `"kilometer"`, `"byte"`), `unitDisplay` (`"short" | "narrow" | "long"`)
|
|
171
434
|
- Standardwerte: `unit: 'day'`, `unitDisplay: 'short'`, `useGrouping: false`
|
|
172
435
|
|
|
173
436
|
Beispiele:
|
|
@@ -195,45 +458,192 @@ compact(1200); // "1.2K"
|
|
|
195
458
|
compact("1000000", { locale: "fr", compactDisplay: "long" }); // "1 million"
|
|
196
459
|
```
|
|
197
460
|
|
|
461
|
+
### `list(values, options?)`
|
|
462
|
+
|
|
463
|
+
Formatiert ein Array von Werten zu einem lokalisierten Listenstring unter Verwendung von `Intl.ListFormat`.
|
|
464
|
+
|
|
465
|
+
- **values**: `(string | number)[]`
|
|
466
|
+
- **options**: `Intl.ListFormatOptions & { locale?: LocalesValues }`
|
|
467
|
+
- Gemeinsame Felder: `type` (`"conjunction" | "disjunction" | "unit"`), `style` (`"long" | "short" | "narrow"`)
|
|
468
|
+
- Standardwerte: `type: 'conjunction'`, `style: 'long'`
|
|
469
|
+
|
|
470
|
+
Beispiele:
|
|
471
|
+
|
|
472
|
+
```ts
|
|
473
|
+
import { list } from "intlayer";
|
|
474
|
+
|
|
475
|
+
list(["apple", "banana", "orange"]); // "apple, banana, and orange"
|
|
476
|
+
list(["red", "green", "blue"], { locale: "fr", type: "disjunction" }); // "rouge, vert ou bleu"
|
|
477
|
+
list([1, 2, 3], { type: "unit" }); // "1, 2, 3"
|
|
478
|
+
```
|
|
479
|
+
|
|
198
480
|
## Hinweise
|
|
199
481
|
|
|
200
|
-
- Alle
|
|
201
|
-
- Die Locale
|
|
482
|
+
- Alle Hilfsfunktionen akzeptieren Eingaben vom Typ `string`; diese werden intern in Zahlen oder Daten umgewandelt.
|
|
483
|
+
- Die Locale wird standardmäßig auf Ihre konfigurierte `internationalization.defaultLocale` gesetzt, falls keine Locale angegeben wird.
|
|
202
484
|
- Diese Hilfsfunktionen sind dünne Wrapper; für erweiterte Formatierungen können die Standard-`Intl`-Optionen direkt verwendet werden.
|
|
203
485
|
|
|
204
486
|
## Einstiegspunkte und Re-Exports (`@index.ts`)
|
|
205
487
|
|
|
206
|
-
Die
|
|
488
|
+
Die Formatierer befinden sich im Core-Paket und werden aus höherstufigen Paketen erneut exportiert, um Importe über verschiedene Laufzeitumgebungen hinweg ergonomisch zu gestalten:
|
|
207
489
|
|
|
208
490
|
Beispiele:
|
|
209
491
|
|
|
210
492
|
```ts
|
|
211
493
|
// App-Code (empfohlen)
|
|
212
|
-
import {
|
|
494
|
+
import {
|
|
495
|
+
number,
|
|
496
|
+
currency,
|
|
497
|
+
date,
|
|
498
|
+
relativeTime,
|
|
499
|
+
units,
|
|
500
|
+
compact,
|
|
501
|
+
list,
|
|
502
|
+
Intl,
|
|
503
|
+
getLocaleName,
|
|
504
|
+
getLocaleLang,
|
|
505
|
+
getLocaleFromPath,
|
|
506
|
+
getPathWithoutLocale,
|
|
507
|
+
getLocalizedUrl,
|
|
508
|
+
getHTMLTextDir,
|
|
509
|
+
getContent,
|
|
510
|
+
getLocalisedContent,
|
|
511
|
+
getTranslation,
|
|
512
|
+
getIntlayer,
|
|
513
|
+
getIntlayerAsync,
|
|
514
|
+
} from "intlayer";
|
|
213
515
|
```
|
|
214
516
|
|
|
215
517
|
### React
|
|
216
518
|
|
|
217
519
|
Client-Komponenten:
|
|
218
520
|
|
|
219
|
-
```
|
|
220
|
-
import {
|
|
521
|
+
```tsx
|
|
522
|
+
import {
|
|
523
|
+
useNumber,
|
|
524
|
+
useCurrency,
|
|
525
|
+
useDate,
|
|
526
|
+
usePercentage,
|
|
527
|
+
useCompact,
|
|
528
|
+
useList,
|
|
529
|
+
useRelativeTime,
|
|
530
|
+
useUnit,
|
|
531
|
+
} from "react-intlayer/format";
|
|
221
532
|
// oder in Next.js-Anwendungen
|
|
222
|
-
import {
|
|
533
|
+
import {
|
|
534
|
+
useNumber,
|
|
535
|
+
useCurrency,
|
|
536
|
+
useDate,
|
|
537
|
+
usePercentage,
|
|
538
|
+
useCompact,
|
|
539
|
+
useList,
|
|
540
|
+
useRelativeTime,
|
|
541
|
+
useUnit,
|
|
542
|
+
} from "next-intlayer/client/format";
|
|
543
|
+
|
|
544
|
+
const MyComponent = () => {
|
|
545
|
+
const number = useNumber();
|
|
546
|
+
const currency = useCurrency();
|
|
547
|
+
const date = useDate();
|
|
548
|
+
const percentage = usePercentage();
|
|
549
|
+
const compact = useCompact();
|
|
550
|
+
const list = useList();
|
|
551
|
+
const relativeTime = useRelativeTime();
|
|
552
|
+
const unit = useUnit();
|
|
553
|
+
|
|
554
|
+
return (
|
|
555
|
+
<div>
|
|
556
|
+
<p>{number(123456.789)}</p>
|
|
557
|
+
<p>{currency(1234.5, { currency: "EUR" })}</p>
|
|
558
|
+
<p>{date(new Date(), "short")}</p>
|
|
559
|
+
<p>{percentage(0.25)}</p>
|
|
560
|
+
<p>{compact(1200)}</p>
|
|
561
|
+
<p>{list(["apple", "banana", "orange"])}</p>
|
|
562
|
+
<p>{relativeTime(new Date(), new Date() + 1000)}</p>
|
|
563
|
+
<p>{unit(123456.789, { unit: "kilometer" })}</p>
|
|
564
|
+
</div>
|
|
565
|
+
);
|
|
566
|
+
};
|
|
223
567
|
```
|
|
224
568
|
|
|
225
|
-
Server-Komponenten (oder React Server
|
|
569
|
+
Server-Komponenten (oder React Server-Laufzeit):
|
|
226
570
|
|
|
227
571
|
```ts
|
|
228
|
-
import {
|
|
572
|
+
import {
|
|
573
|
+
useNumber,
|
|
574
|
+
useCurrency,
|
|
575
|
+
useDate,
|
|
576
|
+
usePercentage,
|
|
577
|
+
useCompact,
|
|
578
|
+
useList,
|
|
579
|
+
useRelativeTime,
|
|
580
|
+
useUnit,
|
|
581
|
+
} from "react-intlayer/server/format";
|
|
229
582
|
// oder in Next.js-Anwendungen
|
|
230
|
-
import {
|
|
583
|
+
import {
|
|
584
|
+
useNumber,
|
|
585
|
+
useCurrency,
|
|
586
|
+
useDate,
|
|
587
|
+
usePercentage,
|
|
588
|
+
useCompact,
|
|
589
|
+
useList,
|
|
590
|
+
useRelativeTime,
|
|
591
|
+
useUnit,
|
|
592
|
+
} from "next-intlayer/server/format";
|
|
231
593
|
```
|
|
232
594
|
|
|
233
595
|
> Diese Hooks berücksichtigen die Locale vom `IntlayerProvider` oder `IntlayerServerProvider`
|
|
234
596
|
|
|
597
|
+
### Vue
|
|
598
|
+
|
|
599
|
+
Client-Komponenten:
|
|
600
|
+
|
|
601
|
+
```ts
|
|
602
|
+
import {
|
|
603
|
+
useNumber,
|
|
604
|
+
useCurrency,
|
|
605
|
+
useDate,
|
|
606
|
+
usePercentage,
|
|
607
|
+
useCompact,
|
|
608
|
+
useList,
|
|
609
|
+
useRelativeTime,
|
|
610
|
+
useUnit,
|
|
611
|
+
} from "vue-intlayer/format";
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
> Diese Composables berücksichtigen die Locale vom injizierten `IntlayerProvider`
|
|
615
|
+
|
|
616
|
+
## Dokumentationshistorie
|
|
617
|
+
|
|
618
|
+
| Version | Datum | Änderungen |
|
|
619
|
+
| ------- | ---------- | --------------------------------------- |
|
|
620
|
+
| 5.8.0 | 2025-08-20 | Vue-Formatter hinzugefügt |
|
|
621
|
+
| 5.8.0 | 2025-08-18 | Dokumentation der Formatter hinzugefügt |
|
|
622
|
+
|
|
623
|
+
Client-Komponenten:
|
|
624
|
+
|
|
625
|
+
```ts
|
|
626
|
+
import {
|
|
627
|
+
useNumber,
|
|
628
|
+
useCurrency,
|
|
629
|
+
useDate,
|
|
630
|
+
usePercentage,
|
|
631
|
+
useCompact,
|
|
632
|
+
useList,
|
|
633
|
+
useRelativeTime,
|
|
634
|
+
useUnit,
|
|
635
|
+
} from "vue-intlayer/format";
|
|
636
|
+
```
|
|
637
|
+
|
|
638
|
+
> Diese Composables berücksichtigen die Locale vom injizierten `IntlayerProvider`
|
|
639
|
+
|
|
235
640
|
## Dokumentationshistorie
|
|
236
641
|
|
|
237
|
-
| Version | Datum | Änderungen
|
|
238
|
-
| ------- | ---------- |
|
|
239
|
-
| 5.8.0 | 2025-08-
|
|
642
|
+
| Version | Datum | Änderungen |
|
|
643
|
+
| ------- | ---------- | ----------------------------------------------------------------------------------------------------- |
|
|
644
|
+
| 5.8.0 | 2025-08-20 | Hinzufügen von Vue-Formatierern |
|
|
645
|
+
| 5.8.0 | 2025-08-18 | Hinzufügen der Dokumentation zu Formatierern |
|
|
646
|
+
| 5.8.0 | 2025-08-20 | Hinzufügen der Dokumentation zum Listen-Formatter |
|
|
647
|
+
| 5.8.0 | 2025-08-20 | Hinzufügen zusätzlicher Intl-Dienstprogramme (DisplayNames, Collator, PluralRules) |
|
|
648
|
+
| 5.8.0 | 2025-08-20 | Hinzufügen von Locale-Dienstprogrammen (getLocaleName, getLocaleLang, getLocaleFromPath, etc.) |
|
|
649
|
+
| 5.8.0 | 2025-08-20 | Hinzufügen von Dienstprogrammen zur Inhaltsverwaltung (getContent, getTranslation, getIntlayer, etc.) |
|
package/docs/de/introduction.md
CHANGED
|
@@ -32,8 +32,8 @@ Intlayer bietet außerdem einen optionalen visuellen Editor, mit dem Sie Ihre In
|
|
|
32
32
|
.
|
|
33
33
|
└── Components
|
|
34
34
|
└── MyComponent
|
|
35
|
-
├── index.content.
|
|
36
|
-
└── index.
|
|
35
|
+
├── index.content.ts
|
|
36
|
+
└── index.tsx
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
```tsx fileName="src/components/MyComponent/index.content.ts" contentDeclarationFormat="typescript"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
createdAt:
|
|
3
|
-
updatedAt: 2025-
|
|
2
|
+
createdAt: 2025-08-23
|
|
3
|
+
updatedAt: 2025-08-23
|
|
4
4
|
title: Enumeration
|
|
5
5
|
description: Discover how to declare and use enumerations in your multilingual website. Follow the steps in this online documentation to set up your project in a few minutes.
|
|
6
6
|
keywords:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
createdAt:
|
|
3
|
-
updatedAt: 2025-
|
|
2
|
+
createdAt: 2025-08-23
|
|
3
|
+
updatedAt: 2025-08-23
|
|
4
4
|
title: Function Fetching
|
|
5
5
|
description: Discover how to declare and use function fetching in your multilingual website. Follow the steps in this online documentation to set up your project in a few minutes.
|
|
6
6
|
keywords:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
createdAt:
|
|
3
|
-
updatedAt: 2025-
|
|
2
|
+
createdAt: 2025-08-23
|
|
3
|
+
updatedAt: 2025-08-23
|
|
4
4
|
title: Dictionary | Get Started
|
|
5
5
|
description: Discover how to declare and use dictionaries in your multilingual website. Follow the steps in this online documentation to set up your project in a few minutes.
|
|
6
6
|
keywords:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
createdAt:
|
|
3
|
-
updatedAt: 2025-
|
|
2
|
+
createdAt: 2025-08-23
|
|
3
|
+
updatedAt: 2025-08-23
|
|
4
4
|
title: Translation
|
|
5
5
|
description: Discover how to declare and use translation in your multilingual website. Follow the steps in this online documentation to set up your project in a few minutes.
|
|
6
6
|
keywords:
|