Stellen Sie Ihre Frage und erhalten Sie einen Resümee des Dokuments, indem Sie diese Seite und den AI-Anbieter Ihrer Wahl referenzieren
Durch die Integration des Intlayer MCP-Servers in Ihren bevorzugten AI-Assistenten können Sie alle Dokumente direkt von ChatGPT, DeepSeek, Cursor, VSCode usw. abrufen.
Dokumentation des MCP-Servers ansehenDer Inhalt dieser Seite wurde mit einer KI übersetzt.
Den englischen Originaltext ansehenWenn Sie eine Idee haben, um diese Dokumentation zu verbessern, zögern Sie bitte nicht, durch das Einreichen eines Pull-Requests auf GitHub beizutragen.
GitHub-Link zur DokumentationMarkdown des Dokuments in die Zwischenablage kopieren
Locale Mapper
Der Locale Mapper ist ein leistungsstarkes Werkzeug, das Ihnen hilft, mit Internationalisierungsdaten in Ihrer Intlayer-Anwendung zu arbeiten. Er bietet drei Hauptfunktionen, um locale-spezifische Daten zu transformieren und zu organisieren: localeMap, localeFlatMap und localeRecord.
Wie der Locale Mapper funktioniert
Der Locale Mapper arbeitet mit einem LocaleData-Objekt, das alle notwendigen Informationen über eine Locale enthält:
Kopieren Sie den Code in die Zwischenablage
type LocaleData = { locale: LocalesValues; // Aktueller Locale-Code (z.B. 'en', 'fr') defaultLocale: LocalesValues; // Standard-Locale-Code isDefault: boolean; // Ob dies die Standard-Locale ist locales: LocalesValues[]; // Array aller verfügbaren Locales urlPrefix: string; // URL-Präfix für diese Locale (z.B. '/fr' oder '')};
Die Mapper-Funktionen generieren diese Daten automatisch für jede Locale in Ihrer Konfiguration unter Berücksichtigung von:
- Ihrer konfigurierten Locales-Liste
- Der Einstellung der Standard-Locale
- Ob die Standard-Locale in URLs mit einem Präfix versehen werden soll
Kernfunktionen
localeMap
Transformiert jede Locale in ein einzelnes Objekt mithilfe einer Mapper-Funktion.
Kopieren Sie den Code in die Zwischenablage
localeMap<T>( mapper: (locale: LocaleData) => T, locales?: LocalesValues[], defaultLocale?: LocalesValues, prefixDefault?: boolean): T[]
Beispiel: Erstellen von Routenobjekten
Kopieren Sie den Code in die Zwischenablage
import { localeMap } from "intlayer";const routes = localeMap((localizedData) => ({ path: localizedData.urlPrefix, name: localizedData.locale, isDefault: localizedData.isDefault, locales: localizedData.locales, defaultLocale: localizedData.defaultLocale,}));// Ergebnis:// [// { path: '/', name: 'en', isDefault: true, locales: ['en', 'fr', 'es'], defaultLocale: 'en' },// { path: '/fr', name: 'fr', isDefault: false, locales: ['en', 'fr', 'es'], defaultLocale: 'en' },// { path: '/es', name: 'es', isDefault: false, locales: ['en', 'fr', 'es'], defaultLocale: 'en' }// ]
localeFlatMap
Ähnlich wie localeMap, aber die Mapper-Funktion gibt ein Array von Objekten zurück, das zu einem einzigen Array zusammengeführt wird.
Kopieren Sie den Code in die Zwischenablage
localeFlatMap<T>( mapper: (locale: LocaleData) => T[], locales?: LocalesValues[], defaultLocale?: LocalesValues, prefixDefault?: boolean): T[]
Beispiel: Erstellen mehrerer Routen pro Locale
Kopieren Sie den Code in die Zwischenablage
import { localeFlatMap } from "intlayer";const routes = localeFlatMap((localizedData) => [ { path: localizedData.urlPrefix, name: localizedData.locale, isDefault: localizedData.isDefault, }, { path: `${localizedData.urlPrefix}/about`, name: `${localizedData.locale}-about`, isDefault: localizedData.isDefault, },]);// Ergebnis:// [// { path: '/', name: 'en', isDefault: true },// { path: '/about', name: 'en-about', isDefault: true },// { path: '/fr', name: 'fr', isDefault: false },// { path: '/fr/about', name: 'fr-about', isDefault: false },// { path: '/es', name: 'es', isDefault: false },// { path: '/es/about', name: 'es-about', isDefault: false }// ]
localeRecord
Erstellt ein Record-Objekt, bei dem jede Locale ein Schlüssel ist, der auf einen durch die Mapper-Funktion transformierten Wert abbildet.
Kopieren Sie den Code in die Zwischenablage
localeRecord<T>( mapper: (locale: LocaleData) => T, locales?: Locales[], defaultLocale?: Locales, prefixDefault?: boolean): Record<Locales, T>
Beispiel: Laden von Übersetzungsdateien
Kopieren Sie den Code in die Zwischenablage
import { localeRecord } from "intlayer";const translations = localeRecord(({ locale }) => require(`./translations/${locale}.json`));// Ergebnis:// {// en: { welcome: 'Welcome', hello: 'Hello' },// fr: { welcome: 'Bienvenue', hello: 'Bonjour' },// es: { welcome: 'Bienvenido', hello: 'Hola' }// }
Einrichtung des Locale Mappers
Der Locale Mapper verwendet automatisch Ihre Intlayer-Konfiguration, aber Sie können die Standardwerte durch Übergabe von Parametern überschreiben:
Verwendung der Standardkonfiguration
Kopieren Sie den Code in die Zwischenablage
import { localeMap } from "intlayer";// Verwendet die Konfiguration aus intlayer.config.tsconst routes = localeMap((data) => ({ path: data.urlPrefix, locale: data.locale,}));
Überschreiben der Konfiguration
Kopieren Sie den Code in die Zwischenablage
import { localeMap } from "intlayer";// Überschreibt Locales und Standard-Localeconst customRoutes = localeMap( (data) => ({ path: data.urlPrefix, locale: data.locale }), ["en", "fr", "de"], // Benutzerdefinierte Sprachen "en", // Benutzerdefinierte Standardsprache true // Standard-Sprache in URLs voranstellen);
Erweiterte Anwendungsbeispiele
Erstellen von Navigationsmenüs
Kopieren Sie den Code in die Zwischenablage
import { localeMap } from "intlayer";const navigationItems = localeMap((data) => ({ label: data.locale.toUpperCase(), href: data.urlPrefix || "/", isActive: data.isDefault, flag: `/flags/${data.locale}.svg`,}));
Generieren von Sitemap-Daten
Kopieren Sie den Code in die Zwischenablage
import { localeFlatMap } from "intlayer";const sitemapUrls = localeFlatMap((data) => [ { url: `${data.urlPrefix}/`, lastmod: new Date().toISOString(), changefreq: "daily", priority: data.isDefault ? 1.0 : 0.8, }, { url: `${data.urlPrefix}/about`, lastmod: new Date().toISOString(), changefreq: "monatlich", priority: data.isDefault ? 0.8 : 0.6, },]);
Dynamisches Laden von Übersetzungen
Kopieren Sie den Code in die Zwischenablage
import { localeRecord } from "intlayer";const translationModules = localeRecord(({ locale }) => ({ messages: import(`./locales/${locale}/messages.json`), validation: import(`./locales/${locale}/validation.json`), metadata: { locale, direction: ["ar", "he", "fa"].includes(locale) ? "rtl" : "ltr", // Schreibrichtung: rechts-nach-links für bestimmte Sprachen },}));
Konfigurationsintegration
Der Locale Mapper integriert sich nahtlos in Ihre Intlayer-Konfiguration:
- Locales: Verwendet automatisch configuration.internationalization.locales
- Standard-Sprache: Verwendet configuration.internationalization.defaultLocale
- URL-Präfixierung: Berücksichtigt configuration.middleware.prefixDefault
Dies gewährleistet Konsistenz in Ihrer Anwendung und reduziert die Duplizierung von Konfigurationen.
Dokumentationshistorie
Version | Datum | Änderungen |
---|---|---|
5.7.2 | 2025-07-27 | Hinzufügen der Dokumentation zum Locale Mapper |