-
<input>
-Typen',
+ 'Guides': 'Anleitungen',
+ 'Content_categories': 'Inhaltskategorien',
+ 'Allowing_cross-origin_images_and_canvas': 'Erlauben der Cross-Origin-Nutzung von Bildern und Canvas',
+ 'Block-level_elements': 'Block-Elemente',
+ 'Inline_elements': 'Inline-Elemente',
+ 'Date_and_time_formats': 'Datums- und Zeitformate in HTML',
+ 'Constraint_validation': 'Einschränkungsvalidierung',
+ 'Microdata': 'Mikrodaten',
+ 'Microformats': 'Mikroformate',
+ 'Quirks_Mode_and_Standards_Mode': 'Quirks-Modus und Standards-Modus',
+ 'Viewport_meta_tag': 'Viewport-Meta-Tag',
+ },
'en-US': {
'Tutorials': 'Tutorials',
'HTML_basics': 'HTML basics',
diff --git a/kumascript/macros/HTTPSidebar.ejs b/kumascript/macros/HTTPSidebar.ejs
index e6d882fda4a7..ada9f9eb56c0 100644
--- a/kumascript/macros/HTTPSidebar.ejs
+++ b/kumascript/macros/HTTPSidebar.ejs
@@ -13,6 +13,45 @@ function state(section) {
}
var text = mdn.localStringMap({
+ 'de': {
+ 'HTTP': 'HTTP',
+ 'HTTPGuide': 'HTTP-Leitfaden',
+ 'Basics': 'Grundlagen von HTTP',
+ 'Overview': 'Übersicht über HTTP',
+ 'Evolution': 'Entwicklung von HTTP',
+ 'ResourcesURI': 'Ressourcen und URIs',
+ 'Identifying': 'Identifizieren von Ressourcen im Web',
+ 'DataURLs': 'Daten-URLs',
+ 'MIMETypes': 'Einführung in MIME-Typen',
+ 'ListMIMETypes': 'Gängige MIME-Typen',
+ 'WWWorNotWWW': 'Auswahl zwischen www und nicht-www URLs',
+ 'Messages': 'HTTP-Nachrichten',
+ 'Session': 'Eine typische HTTP-Sitzung',
+ 'Connection1x': 'Verbindungsverwaltung in HTTP/1.x',
+ 'Ranges': 'HTTP-Bereichsanfragen',
+ 'Redirects': 'HTTP-Weiterleitungen',
+ 'Conditionals': 'HTTP-Bedingte Anfragen',
+ 'ContentNego': 'HTTP-Inhaltsverhandlung',
+ 'Headers': 'HTTP-Header',
+ 'Response_codes': 'Antwortcodes',
+ 'Compression': 'HTTP-Komprimierung',
+ 'Cookies': 'HTTP-Cookies',
+ 'Caching': 'HTTP-Caching',
+ 'CORS': 'HTTP-Zugriffskontrolle (CORS)',
+ 'Resources': 'HTTP-Spezifikationen',
+ 'Permissions_Policy': 'Berechtigungsrichtlinie',
+ 'Guides': 'Anleitungen',
+ 'Reference': 'Referenzen',
+ 'Methods': 'HTTP-Anfragemethoden',
+ 'Status': 'HTTP-Antwortstatuscodes',
+ 'CSPDirectives': 'CSP-Direktiven',
+ 'CORS_errors': 'CORS-Fehler',
+ 'PermissionsPolicyDirectives': 'Permissions-Policy Direktiven',
+ 'Security': 'HTTP-Sicherheit',
+ 'Authentication': 'HTTP-Authentifizierung',
+ 'ProtocolUpgradeMech': 'Protokoll-Upgrade-Mechanismus',
+ 'CSP': 'Content Security Policy (CSP)'
+ },
'en-US': {
'CORS_errors': 'CORS errors',
'CSPDirectives': 'CSP directives',
diff --git a/kumascript/macros/JsSidebar.ejs b/kumascript/macros/JsSidebar.ejs
index 6602a53522c4..17b652f17359 100644
--- a/kumascript/macros/JsSidebar.ejs
+++ b/kumascript/macros/JsSidebar.ejs
@@ -10,6 +10,61 @@ function state(section) {
}
var text = mdn.localStringMap({
+ 'de': {
+ 'Overview': 'JavaScript-Technologie (Übersicht)',
+ 'Tutorials': 'Tutorials',
+ 'Guide': 'JavaScript-Handbuch',
+ 'Guide_Introduction': 'Einführung',
+ 'Guide_Grammar': 'Grammatik und Typen',
+ 'Guide_Control_flow': 'Steuerfluss und Fehlerbehandlung',
+ 'Guide_Loops': 'Schleifen und Iteration',
+ 'Guide_Functions': 'Funktionen',
+ 'Guide_Expressions': 'Ausdrücke und Operatoren',
+ 'Guide_Numbers': 'Zahlen und Daten',
+ 'Guide_Text': 'Textformatierung',
+ 'Guide_RegExp': 'Reguläre Ausdrücke',
+ 'Guide_Indexed_collections': 'Indexierte Sammlungen',
+ 'Guide_keyed_collections': 'Gekennzeichnete Sammlungen',
+ 'Guide_Objects': 'Arbeiten mit Objekten',
+ 'Guide_Classes': 'Verwendung von Klassen',
+ 'Guide_Promises': 'Verwendung von Promises',
+ 'Guide_Typed_arrays': 'Typisierte Arrays in JavaScript',
+ 'Guide_Iterators_generators': 'Iteratoren und Generatoren',
+ 'Guide_Meta': 'Metaprogrammierung',
+ 'Guide_Modules': 'JavaScript-Module',
+ 'Complete_beginners': 'Komplette Anfänger',
+ 'Basics': 'JavaScript-Grundlagen',
+ 'First_steps': 'Erste Schritte in JavaScript',
+ 'Building_blocks': 'JavaScript-Bausteine',
+ 'Intermediate': 'Mittelstufe',
+ 'Introducing_objects': 'Einführung in JavaScript-Objekte',
+ 'Client-side_APIs': 'Client-seitige Web-APIs',
+ 'Frameworks': 'Client-seitige JavaScript-Frameworks',
+ 'Language_overview': 'Sprachübersicht',
+ 'Data_structures': 'JavaScript-Datenstrukturen',
+ 'Equality': 'Gleichheitsvergleiche und Gleichheit',
+ 'Closures': 'Closures',
+ 'Advanced': 'Fortgeschritten',
+ 'Inheritance': 'Vererbung und die Prototypenkette',
+ 'Strict_mode': 'Strenger Modus',
+ 'Memory_management': 'Speicherverwaltung',
+ 'Event_loop': 'Konkurrenzmodell und Ereignisschleife',
+ 'Reference': 'Referenzen',
+ 'Global_Objects': 'Eingebaute Objekte',
+ 'Operators': 'Ausdrücke und Operatoren',
+ 'Statements': 'Anweisungen und Deklarationen',
+ 'Functions': 'Funktionen',
+ 'Classes': 'Klassen',
+ 'Errors': 'Fehler',
+ 'More': 'Sonstiges',
+ 'Lexical_grammar': 'Lexikalische Grammatik',
+ 'Enumerability': 'Aufzählbarkeit und Eigentum von Eigenschaften',
+ 'Data_types': 'Datentypen und Datenstrukturen',
+ 'Iteration_protocols': 'Iterationsprotokolle',
+ 'Template_strings': 'Vorlagenliterale',
+ 'Trailing_commas': 'Abschließende Kommas',
+ 'Deprecated_features': 'Veraltete Funktionen',
+ },
'en-US': {
'Overview': 'JavaScript technologies overview',
'Tutorials': 'Tutorials',
diff --git a/kumascript/macros/LearnSidebar.ejs b/kumascript/macros/LearnSidebar.ejs
index faf389c8a90b..0a96e872693b 100644
--- a/kumascript/macros/LearnSidebar.ejs
+++ b/kumascript/macros/LearnSidebar.ejs
@@ -1,6 +1,53 @@
<%
const l10nStrings = mdn.localStringMap({
+ 'de': {
+ 'Complete_beginners_start_here': 'Komplette Anfänger beginnen hier!',
+ 'Getting_started_with_the_web': 'Erste Schritte mit dem Web',
+ 'HTML_Structuring_the_web': 'HTML — Strukturierung des Webs',
+ 'Introduction_to_HTML': 'Einführung in HTML',
+ 'Multimedia_and_embedding': 'Multimedia und Einbettung',
+ 'HTML_tables': 'HTML-Tabellen',
+ 'CSS_Styling_the_web': 'CSS — Gestaltung des Webs',
+ 'CSS_first_steps': 'CSS erste Schritte',
+ 'CSS_building_blocks': 'CSS-Bausteine',
+ 'Styling_text': 'Textgestaltung',
+ 'CSS_layout': 'CSS-Layout',
+ 'JavaScript_dynamic_client-side_scripting': 'JavaScript — Dynamisches clientseitiges Skripting',
+ 'JavaScript_first_steps': 'JavaScript erste Schritte',
+ 'JavaScript_building_blocks': 'JavaScript-Bausteine',
+ 'Introducing_JavaScript_objects': 'Einführung in JavaScript-Objekte',
+ 'Asynchronous_JavaScript': 'Asynchrones JavaScript',
+ 'Client-side_web_APIs': 'Client-seitige Web-APIs',
+ 'Web_forms': 'Webformulare — Arbeiten mit Benutzerdaten',
+ 'Web_forms_core': 'Grundlagen der Webformulare',
+ 'Web_forms_advanced': 'Erweiterte Techniken für Webformulare',
+ 'Accessibility_—_Make_the_web_usable_by_everyone': 'Barrierefreiheit — Das Web für alle nutzbar machen',
+ 'Accessibility_guides': 'Barrierefreiheitsleitfäden',
+ 'Accessibility_assessment': 'Barrierefreiheitseinschätzung',
+ 'Performance': 'Leistung — Websites schnell und reaktionsschnell machen',
+ 'Performance_guides': 'Leitfäden zur Leistung',
+ 'MathML_Writing_mathematics': 'MathML — Schreiben von Mathematik mit MathML',
+ 'MathML_first_steps': 'MathML erste Schritte',
+ 'Games_Developing_for_web': 'Spiele — Entwicklung von Spielen für das Web',
+ 'Guides_and_tutorials': 'Anleitungen und Tutorials',
+ 'Tools_and_testing': 'Werkzeuge und Tests',
+ 'Cross_browser_testing': 'Cross-Browser-Tests',
+ 'Git_and_GitHub': 'Git und GitHub',
+ 'Client-side_web_development_tools': 'Client-seitige Webentwicklungstools',
+ 'Introduction_to_client-side_frameworks': 'Einführung in client-seitige Frameworks',
+ 'React': 'React',
+ 'Ember': 'Ember',
+ 'Vue': 'Vue',
+ 'Svelte': 'Svelte',
+ 'Angular': 'Angular',
+ 'Server-side_website_programming': 'Server-seitige Webprogrammierung',
+ 'First_steps': 'Erste Schritte',
+ 'Django_web_framework_(Python)': 'Django Web-Framework (Python)',
+ 'Express_Web_Framework_(Node.js_JavaScript)': 'Express Web-Framework (Node.js/JavaScript)',
+ 'Further_resources': 'Weitere Ressourcen',
+ 'Common_questions': 'Häufige Fragen',
+ },
'en-US': {
'Complete_beginners_start_here': 'Complete beginners start here!',
'Getting_started_with_the_web': 'Getting started with the web',
diff --git a/kumascript/macros/ListSubpagesForSidebar.ejs b/kumascript/macros/ListSubpagesForSidebar.ejs
index 40b4867599da..916287515148 100644
--- a/kumascript/macros/ListSubpagesForSidebar.ejs
+++ b/kumascript/macros/ListSubpagesForSidebar.ejs
@@ -24,6 +24,7 @@ const startDelim = $3;
const endDelim = $4;
const overview = mdn.localString({
+ 'de': 'Überblick',
'en-US': 'Overview',
'es': 'Generalidades',
'fr': 'Aperçu',
diff --git a/kumascript/macros/MDNSidebar.ejs b/kumascript/macros/MDNSidebar.ejs
index 87909bc188d3..d370be2ccbe9 100644
--- a/kumascript/macros/MDNSidebar.ejs
+++ b/kumascript/macros/MDNSidebar.ejs
@@ -1,6 +1,15 @@
<%
const l10nStrings = mdn.localStringMap({
+ "de": {
+ "history": "Geschichte",
+ "advisory_board": "Product Advisory Board",
+ "community_guidelines": "Gemeinschaftsrichtlinien",
+ "contributing_to_mdn_web_docs": "Beiträge zu MDN Web Docs",
+ "writing_guide": "Schreibanleitung",
+ "how_to_guides": "Anleitungen",
+ "page_structures": "Seitenstrukturen",
+ },
"en-US": {
"history": "History",
"advisory_board": "Advisory Board",
diff --git a/kumascript/macros/MathMLElement.ejs b/kumascript/macros/MathMLElement.ejs
index a54f8944dbab..5b0c254a2e49 100644
--- a/kumascript/macros/MathMLElement.ejs
+++ b/kumascript/macros/MathMLElement.ejs
@@ -2,6 +2,7 @@
var name = $0;
var sectionname = mdn.localString({
+ "de": "Element",
"en-US": "Element",
"es": "Elemento"
});
diff --git a/kumascript/macros/MathMLRef.ejs b/kumascript/macros/MathMLRef.ejs
index 7e589f77ee1f..27b0f9f758f4 100644
--- a/kumascript/macros/MathMLRef.ejs
+++ b/kumascript/macros/MathMLRef.ejs
@@ -2,6 +2,13 @@
const locale = env.locale;
const text = mdn.localStringMap({
+ 'de': {
+ 'Reference': 'Referenz',
+ 'Elements': 'Elemente',
+ 'Global attributes': 'Globale Attribute',
+ 'Guides': 'Anleitungen',
+ 'Examples': 'Beispiele',
+ },
'en-US': {
'Reference': 'Reference',
'Elements': 'Elements',
diff --git a/kumascript/macros/Non-standard_Header.ejs b/kumascript/macros/Non-standard_Header.ejs
index f872203db3ed..96394f9557bd 100644
--- a/kumascript/macros/Non-standard_Header.ejs
+++ b/kumascript/macros/Non-standard_Header.ejs
@@ -1,6 +1,7 @@
<%
var title = mdn.localString({
+ "de": "Kein Standard",
"en-US": "Non-standard",
"es": "No estándar",
"fr": "Non standard",
@@ -12,6 +13,7 @@ var title = mdn.localString({
});
var description = mdn.localString({
+ "de": "Diese Funktion ist nicht standardisiert und befindet sich nicht im Standardisierungsprozess. Verwenden Sie sie nicht auf Produktionsseiten, die auf das Web ausgerichtet sind: Sie wird nicht für alle Benutzer funktionieren. Außerdem kann es große Inkompatibilitäten zwischen Implementierungen geben und das Verhalten kann sich in Zukunft ändern.",
"en-US": "This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.",
"es": "Esta característica no es parte de los estándares. No la uses en sitios Web en producción: no funcionará para todos los usuarios. Podrían haber también incompatibilidades considerables entre distintas implementaciones y el comportamiento podría cambiar en el futuro.",
"fr": "Cette fonctionnalité n'est ni standard, ni en voie de standardisation. Ne l'utilisez pas pour des sites accessibles sur le Web : elle ne fonctionnera pas pour tout utilisateur. Il peut également y avoir d'importantes incompatibilités entre les implémentations et son comportement peut être modifié dans le futur.",
diff --git a/kumascript/macros/NonStandardBadge.ejs b/kumascript/macros/NonStandardBadge.ejs
index 6447ea095577..002350a59ddf 100644
--- a/kumascript/macros/NonStandardBadge.ejs
+++ b/kumascript/macros/NonStandardBadge.ejs
@@ -6,6 +6,7 @@
*/
const title = mdn.localString({
+ "de": "Nicht standardisiert. Überprüfen Sie die Unterstützung in verschiedenen Browsern, bevor Sie es verwenden.",
"en-US": "Non-standard. Check cross-browser support before using.",
"ko": "비표준. 사용하기전에 다른 브라우저에서도 사용 가능한지 확인 해주세요.",
"zh-CN": "非标准。请在使用前检查跨浏览器支持。",
@@ -13,6 +14,7 @@ const title = mdn.localString({
});
const abbreviation = mdn.localString({
+ "de": "Nicht standardisiert",
"en-US": "Non-standard",
"ko": "비표준",
"zh-CN": "非标准",
diff --git a/kumascript/macros/PreviousMenuNext.ejs b/kumascript/macros/PreviousMenuNext.ejs
index 820d55c32de1..d2a9a9886766 100644
--- a/kumascript/macros/PreviousMenuNext.ejs
+++ b/kumascript/macros/PreviousMenuNext.ejs
@@ -15,6 +15,7 @@ const nextPage = $1?.replace(/ /g, "_");
const mainMenu = $2?.replace(/ /g, "_");
const previousNextStr = mdn.localString({
+ "de" : [" Zurück ", " Weiter "],
"en-US": [" Previous ", " Next "],
"es" : [" Anterior ", " Siguiente "],
"fr" : [" Précédent ", " Suivant "],
@@ -27,6 +28,7 @@ const previousNextStr = mdn.localString({
});
const menuStr = mdn.localString({
+ "de" : " Übersicht: ",
"en-US": " Overview: ",
"pt-BR": " Menu: ",
"fr" : " Aperçu : ",
diff --git a/kumascript/macros/ReadOnlyInline.ejs b/kumascript/macros/ReadOnlyInline.ejs
index a10ff066958f..e0f27537e407 100644
--- a/kumascript/macros/ReadOnlyInline.ejs
+++ b/kumascript/macros/ReadOnlyInline.ejs
@@ -1,5 +1,6 @@
<%
var str = mdn.localString({
+ "de": "Nur lesbar ",
"en-US": "Read only ",
"fr": "Lecture seule ",
"ja": "読取専用 ",
@@ -10,6 +11,7 @@ var str = mdn.localString({
});
var title = mdn.localString({
+ "de": "Dieser Wert kann nicht geändert werden.",
"en-US": "This value may not be changed.",
"fr": "Cette valeur ne peut pas être changée.",
"ko": "이 값은 변경 할 수 없습니다.",
diff --git a/kumascript/macros/SVGAttr.ejs b/kumascript/macros/SVGAttr.ejs
index f71af844c142..537eb86e4c50 100644
--- a/kumascript/macros/SVGAttr.ejs
+++ b/kumascript/macros/SVGAttr.ejs
@@ -1,6 +1,7 @@
<%
/* one parameter: attribute name */
var slug = mdn.localString({
+ "de": "Attribut",
"en-US": "Attribute",
});
diff --git a/kumascript/macros/SVGRef.ejs b/kumascript/macros/SVGRef.ejs
index 10793a67c668..61461c4c14f5 100644
--- a/kumascript/macros/SVGRef.ejs
+++ b/kumascript/macros/SVGRef.ejs
@@ -2,6 +2,14 @@
const locale = env.locale;
const text = mdn.localStringMap({
+ 'de': {
+ 'Tutorials': 'Tutorials',
+ 'Reference': 'Referenz',
+ 'Elements': 'Elemente',
+ 'Attributes': 'Attribute',
+ 'Guides': 'Leitfäden',
+ 'Introducing SVG from scratch': 'Einführung in SVG von Anfang an'
+ },
'en-US': {
'Tutorials': 'Tutorials',
'Reference': 'Reference',
diff --git a/kumascript/macros/SeeCompatTable.ejs b/kumascript/macros/SeeCompatTable.ejs
index 0cf7df921472..c19380eb3c57 100644
--- a/kumascript/macros/SeeCompatTable.ejs
+++ b/kumascript/macros/SeeCompatTable.ejs
@@ -1,6 +1,7 @@
<%
const str = mdn.localString({
+ "de": "Dies ist eine experimentelle Technologie${env.title}
-Property`,
+ writableName: "Schreibbar",
+ enumerableName: "Aufzählbar",
+ configurableName: "Konfigurierbar",
+ yes: "ja",
+ no: "nein"
+ },
"en-US": {
header: `Property attributes of ${env.title}
`,
writableName: "Writable",
diff --git a/kumascript/macros/no_tag_omission.ejs b/kumascript/macros/no_tag_omission.ejs
index 8b422882c0e9..7ccf9f727bb7 100644
--- a/kumascript/macros/no_tag_omission.ejs
+++ b/kumascript/macros/no_tag_omission.ejs
@@ -3,6 +3,7 @@
/* This string will be extended in the future as there are discussion to apply animation-delay to non-animatable property */
var str = mdn.localString({
+ "de": "Keine, sowohl das Start- als auch das End-Tag sind obligatorisch.",
"en-US": "None, both the starting and ending tag are mandatory.",
"fr": "Aucune, la balise d'ouverture et la balise de fermeture sont obligatoires",
"ja": "不可。開始と終了タグの両方が必要。",
diff --git a/kumascript/macros/secureContext_header.ejs b/kumascript/macros/secureContext_header.ejs
index 01180070a13d..95095e5ce388 100644
--- a/kumascript/macros/secureContext_header.ejs
+++ b/kumascript/macros/secureContext_header.ejs
@@ -6,6 +6,7 @@
var lang = env.locale;
var str_title = mdn.localString({
+ "de" : "Sicherer Kontext",
"en-US": "Secure context",
"es" : "Contexto seguro",
"fr" : "Contexte sécurisé",
@@ -14,6 +15,7 @@ var str_title = mdn.localString({
});
var str_desc = mdn.localString({
+ "de" : "Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.",
"en-US": "This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.",
"es" : "Esta función está disponible solo en contextos seguros (HTTPS), en algunos o todos los navegadores que lo soportan.",
"fr" : "Cette fonctionnalité est uniquement disponible dans des contextes sécurisés (HTTPS), pour certains navigateurs qui la prennent en charge.",
diff --git a/kumascript/macros/xref_csscomputed.ejs b/kumascript/macros/xref_csscomputed.ejs
index 69b01e029b41..8f0d87137ff4 100644
--- a/kumascript/macros/xref_csscomputed.ejs
+++ b/kumascript/macros/xref_csscomputed.ejs
@@ -1,5 +1,6 @@
<%
let linkText = mdn.localString({
+ "de" : "Berechneter Wert",
"en-US": "Computed value",
"es" : "Valor calculado",
"fr" : "Valeur calculée",
diff --git a/kumascript/macros/xref_cssinherited.ejs b/kumascript/macros/xref_cssinherited.ejs
index 3abfeb1078e1..afe42f231a38 100644
--- a/kumascript/macros/xref_cssinherited.ejs
+++ b/kumascript/macros/xref_cssinherited.ejs
@@ -1,5 +1,6 @@
<%
let linkText = mdn.localString({
+ "de" : "Vererbt",
"en-US": "Inherited",
"es" : "Heredable",
"fr" : "Héritée",
diff --git a/kumascript/macros/xref_cssinitial.ejs b/kumascript/macros/xref_cssinitial.ejs
index de693f2c0f27..bf24881827fc 100644
--- a/kumascript/macros/xref_cssinitial.ejs
+++ b/kumascript/macros/xref_cssinitial.ejs
@@ -1,5 +1,6 @@
<%
let linkText = mdn.localString({
+ "de" : "Initialer Wert",
"en-US": "Initial value",
"es" : "Valor inicial",
"fr" : "Valeur initiale",
diff --git a/libs/constants/index.js b/libs/constants/index.js
index a2ac0bbcb19b..b979102cebf1 100644
--- a/libs/constants/index.js
+++ b/libs/constants/index.js
@@ -1,5 +1,5 @@
export const VALID_LOCALES = new Map(
- ["en-US", "es", "fr", "ja", "ko", "pt-BR", "ru", "zh-CN", "zh-TW"].map(
+ ["de", "en-US", "es", "fr", "ja", "ko", "pt-BR", "ru", "zh-CN", "zh-TW"].map(
(x) => [x.toLowerCase(), x]
)
);
@@ -10,7 +10,6 @@ export const RETIRED_LOCALES = new Map(
"bg",
"bn",
"ca",
- "de",
"el",
"fa",
"fi",
@@ -49,6 +48,7 @@ export const LOCALE_ALIASES = new Map([
// gets set in the client!
export const PREFERRED_LOCALE_COOKIE_NAME = "preferredlocale";
export const ACTIVE_LOCALES = new Set([
+ "de",
"en-us",
"es",
"fr",
diff --git a/libs/l10n/l10n.ts b/libs/l10n/l10n.ts
index 41015f2c9b2e..55bdf744e030 100644
--- a/libs/l10n/l10n.ts
+++ b/libs/l10n/l10n.ts
@@ -7,6 +7,7 @@ function localeString(strings: LocaleStringMap) {
}
export const ONLY_AVAILABLE_IN_ENGLISH = localeString({
+ de: "Diese Seite ist derzeit nur auf Englisch verfügbar",
"en-US": "This page is currently only available in English",
es: "Esta página está disponible solo en inglés",
fr: "Cette page est actuellement disponible uniquement en anglais",
diff --git a/libs/types/core.ts b/libs/types/core.ts
index 5ba1b2a5a985..bb72099f51eb 100644
--- a/libs/types/core.ts
+++ b/libs/types/core.ts
@@ -1,4 +1,5 @@
export type Locale =
+ | "de"
| "en-US"
| "es"
| "fr"
diff --git a/ssr/render.tsx b/ssr/render.tsx
index cd8164e256fd..7859de7d28bc 100644
--- a/ssr/render.tsx
+++ b/ssr/render.tsx
@@ -144,6 +144,10 @@ export default function render(
"_"
);
+ if (locale === "de") {
+ // Prevent experimental German locale from being indexed.
+ onlyFollow = true;
+ }
const robotsContent =
!ALWAYS_ALLOW_ROBOTS || (doc && doc.noIndexing) || noIndexing
? "noindex, nofollow"