Signatur
Beschreibung
Die Eigenschaft lang einer Notification-Instanz gibt die Sprache zurück, in der Titel und Text der Benachrichtigung verfasst sind. Der Wert stammt direkt aus der Option lang, die beim Erzeugen über new Notification(title, options) oder ServiceWorkerRegistration.showNotification() übergeben wurde.
Als Wert wird ein gültiges BCP-47-Sprach-Tag erwartet, z. B. "de", "de-DE", "en-US" oder "fr-CA". Wurde keine Sprache angegeben, ist der Wert ein leerer String "". Ungültige Sprach-Tags werden laut Spezifikation ebenfalls zu "" normalisiert.
Das Betriebssystem bzw. der Browser kann die Sprachangabe nutzen, um z. B. die passende Schriftart, Silbentrennung oder Sprachausgabe für Bildschirmleser zu wählen. In der Praxis liest man lang vor allem aus, um in click- oder close-Handlern bzw. beim Auflisten über getNotifications() sprachabhängige Logik zu steuern.
Rückgabewert
"de-DE", oder ein leerer String "", wenn keine (gültige) Sprache angegeben wurde.Beispiele
Sprache beim Erzeugen setzen und auslesen
const zeigeHinweis = async () => {
const erlaubnis = await Notification.requestPermission();
if (erlaubnis !== 'granted') return;
const n = new Notification('Neue Nachricht', {
body: 'Sie haben eine neue Nachricht erhalten.',
lang: 'de-DE'
});
console.log(n.lang);
};
zeigeHinweis();
Sprache automatisch aus der Seite übernehmen
const seitenSprache = document.documentElement.lang || navigator.language;
const n = new Notification('Update verfügbar', {
body: 'Bitte laden Sie die Seite neu.',
lang: seitenSprache
});
console.log(`Benachrichtigung in Sprache: ${n.lang || '(nicht gesetzt)'}`);
Standardwert ohne lang-Option
const n = new Notification('Hallo');
console.log(JSON.stringify(n.lang)); // leerer String
// Schreibversuch hat keine Wirkung
n.lang = 'en';
console.log(JSON.stringify(n.lang));
Benachrichtigungen im Service Worker nach Sprache filtern
// im Service Worker oder mit navigator.serviceWorker.ready
const registrierung = await navigator.serviceWorker.ready;
await registrierung.showNotification('Termin morgen', {
body: 'Vergessen Sie Ihren Termin nicht.',
lang: 'de',
tag: 'termin'
});
const alle = await registrierung.getNotifications();
const deutsche = alle.filter((n) => n.lang.startsWith('de'));
console.log(deutsche.length);
// Wichtig · Fallstricke
- Schreibgeschützt: Eine Zuweisung an
n.langwird im nicht-strikten Modus stillschweigend ignoriert (im Strict Mode ggf.TypeError). Die Sprache lässt sich nur beim Erzeugen festlegen. - Keine Übersetzung:
langübersetzt nichts – es beschreibt nur die Sprache des bereits übergebenen Texts. Titel undbodymüssen Sie selbst lokalisieren. - Leerer String als Standard: Ohne Angabe oder bei ungültigem Tag ist der Wert
"", nichtundefined. Prüfen Sie daher mitif (n.lang). - Darstellung variiert: Ob und wie das Betriebssystem die Sprachangabe tatsächlich berücksichtigt, ist plattformabhängig; viele Systeme ignorieren sie visuell.
- Kompatibilität: Die Notifications-API erfordert einen sicheren Kontext (HTTPS) und eine Nutzererlaubnis. Auf Android ist der Konstruktor
new Notification()nicht verfügbar – dort nurServiceWorkerRegistration.showNotification()verwenden. Safari auf iOS unterstützt Benachrichtigungen erst ab 16.4 für zum Home-Bildschirm hinzugefügte Web-Apps.