From 568404d2c98a64d6b196520d1ac4d18e967a943e Mon Sep 17 00:00:00 2001 From: Jan Amann Date: Fri, 14 Aug 2026 09:49:05 +0000 Subject: [PATCH 1/9] fix(i18n): remove 36 unused message keys from all locales Each key was verified unreferenced with a repository-wide literal search (excluding the locale catalogs). Eighteen are leftovers from the removed search-chat feature, and navBar.links.guides/.security no longer have entries in navigation.json. components.metabar.addedIn/.viewAs occur only as Storybook fixture data, and no blog post uses the advisory-board category. Keys are removed from ar.json as well, although that locale is disabled, so it does not drift further. --- packages/i18n/src/locales/ar.json | 46 ++-------------------------- packages/i18n/src/locales/en.json | 46 ++-------------------------- packages/i18n/src/locales/es.json | 19 ------------ packages/i18n/src/locales/fr.json | 46 ++-------------------------- packages/i18n/src/locales/id.json | 46 ++-------------------------- packages/i18n/src/locales/ja.json | 46 ++-------------------------- packages/i18n/src/locales/ko.json | 19 +----------- packages/i18n/src/locales/pt-br.json | 46 ++-------------------------- packages/i18n/src/locales/pt.json | 22 ++----------- packages/i18n/src/locales/ro.json | 42 ++----------------------- packages/i18n/src/locales/ta.json | 46 ++-------------------------- packages/i18n/src/locales/tr.json | 19 ------------ packages/i18n/src/locales/uk.json | 46 ++-------------------------- packages/i18n/src/locales/zh-cn.json | 22 ++----------- packages/i18n/src/locales/zh-tw.json | 28 ++--------------- 15 files changed, 27 insertions(+), 512 deletions(-) diff --git a/packages/i18n/src/locales/ar.json b/packages/i18n/src/locales/ar.json index 0ce0acd299dd0..343e8c9911bea 100644 --- a/packages/i18n/src/locales/ar.json +++ b/packages/i18n/src/locales/ar.json @@ -36,9 +36,7 @@ "about": "حول", "download": "تنزيل", "docs": "التوثيق", - "guides": "الأدلة", "learn": "تعلّم", - "security": "الأمان", "certification": "الدورات", "blog": "المدونة", "contribute": "المساهمة" @@ -70,9 +68,7 @@ }, "downloadReleasesTable": { "version": "Node.js", - "nApiVersion": "N-API", "codename": "الاسم الرمزي", - "releaseDate": "تاريخ الإصدار", "firstReleased": "أول إصدار", "lastUpdated": "آخر تحديث", "status": "الحالة", @@ -86,10 +82,7 @@ "releaseModal": { "title": "Node.js v{version} ({codename})", "titleWithoutCodename": "Node.js v{version}", - "overview": "نظرة عامة", "minorVersions": "الإصدارات الفرعية", - "releaseAnnouncement": "إعلان الإصدار", - "unsupportedVersionWarning": "هذا الإصدار خارج مرحلة الصيانة. يرجى استخدام إصدار مدعوم. تعرّف على دعم EOL.", "ltsVersionFeaturesNotice": "هل تريد الميزات الجديدة في وقت أقرب؟ استخدم أحدث إصدار من Node.js بدلًا من ذلك وجرب أحدث التحسينات!" }, "eolAlert": { @@ -121,7 +114,6 @@ "eolTable": { "version": "الإصدار", "codename": "الاسم الرمزي", - "releaseDate": "تاريخ الإصدار", "lastUpdated": "آخر تحديث", "vulnerabilities": "الثغرات", "details": "التفاصيل", @@ -134,7 +126,6 @@ "npmVersion": "إصدار npm", "v8Version": "إصدار V8", "actions": { - "release": "الإصدار", "changelog": "سجل التغييرات", "docs": "التوثيق" } @@ -150,8 +141,7 @@ "common": { "alertBox": { "info": "معلومة", - "warning": "تحذير", - "danger": "خطر" + "warning": "تحذير" }, "breadcrumbs": { "navigateToHome": "الانتقال إلى الصفحة الرئيسية" @@ -179,12 +169,10 @@ "metabar": { "lastUpdated": "آخر تحديث", "readingTime": "مدة القراءة", - "addedIn": "أضيف في", "author": "المؤلف", "authors": "المؤلفون", "contribute": "المساهمة", "contributeText": "عدّل هذه الصفحة", - "viewAs": "عرض كـ", "tableOfContents": "جدول المحتويات", "metadata": "بيانات المقال" }, @@ -196,25 +184,7 @@ }, "search": { "searchPlaceholder": "ابدأ الكتابة...", - "chatPlaceholder": "اسألني عن أي شيء", "noResultsFoundFor": "لم يتم العثور على نتائج لـ", - "suggestions": "اقتراحات", - "seeAll": "عرض الكل", - "addMore": "إضافة المزيد", - "clearChat": "مسح المحادثة", - "errorMessage": "حدث خطأ أثناء محاولة البحث. يرجى المحاولة مرة أخرى.", - "disclaimer": "قد تخطئ ملخصات AI. يرجى التحقق من المعلومات.", - "startYourSearch": "ابدأ البحث", - "initErrorSearch": "تعذّر تهيئة خدمة البحث", - "initErrorChat": "تعذّر تهيئة خدمة الدردشة", - "chatButtonLabel": "الحصول على ملخص AI", - "searchButtonLabel": "بحث", - "poweredBy": "مدعوم من", - "suggestionOne": "كيف أثبّت Node.js؟", - "suggestionTwo": "كيف أنشئ خادم HTTP؟", - "suggestionThree": "ترقية إصدار Node.js", - "scrollToBottom": "التمرير إلى الأسفل", - "closeChat": "إغلاق الدردشة", "keyboardShortcuts": { "select": "للاختيار", "navigate": "للتنقل", @@ -229,14 +199,6 @@ } }, "layouts": { - "blogPost": { - "author": { - "byLine": "{author, select, null {} other {بواسطة {author}، }}" - } - }, - "blogIndex": { - "categoryName": "{category, select, all {المدونة} other {منشورات مدونة {category}}}" - }, "blog": { "title": "المدونة", "selectCategory": "التصنيفات", @@ -245,7 +207,6 @@ "announcements": "الإعلانات", "release": "الإصدارات", "vulnerability": "الثغرات", - "advisory-board": "المجلس الاستشاري", "community": "المجتمع", "feature": "ميزة", "module": "الوحدات", @@ -278,7 +239,6 @@ "platform": "المنصة", "os": "نظام التشغيل", "version": "الإصدار", - "installMethod": "طريقة التثبيت", "packageManager": "مدير الحزم", "unknown": "غير معروف", "platformGroups": { @@ -288,7 +248,6 @@ }, "codeBox": { "unsupportedVersionWarning": "هذا الإصدار خارج مرحلة الصيانة. يرجى استخدام إصدار مدعوم حاليًا. تعرّف على دعم EOL.", - "ltsVersionFeaturesNotice": "هل تريد الميزات الجديدة في وقت أقرب؟ استخدم أحدث إصدار من Node.js بدلًا من ذلك وجرب أحدث التحسينات!", "communityPlatformInfo": "طرق التثبيت التي تعتمد على برمجيات المجتمع تدعمها الفرق المسؤولة عن صيانة تلك البرمجيات.", "externalSupportInfo": "إذا واجهت أي مشاكل، يرجى زيارة موقع {platform}", "noScriptDetected": "تتطلب هذه الصفحة JavaScript. يمكنك تنزيل Node.js بدون JavaScript عبر زيارة صفحة أرشيف التنزيلات مباشرة.", @@ -300,8 +259,7 @@ "choco": "Chocolatey هو مدير حزم لـ Windows.", "docker": "Docker هو منصة للحاويات.", "n": "\"n\" هو مدير إصدارات Node.js متعدد المنصات.", - "asdf": "\"asdf\" هو مدير إصدارات يعمل على عدة أنظمة تشغيل ويدعم عدة لغات برمجية.", - "volta": "\"Volta\" هو مدير إصدارات Node.js متعدد المنصات." + "asdf": "\"asdf\" هو مدير إصدارات يعمل على عدة أنظمة تشغيل ويدعم عدة لغات برمجية." } } }, diff --git a/packages/i18n/src/locales/en.json b/packages/i18n/src/locales/en.json index 72694ac172947..645b36dc9320a 100644 --- a/packages/i18n/src/locales/en.json +++ b/packages/i18n/src/locales/en.json @@ -37,9 +37,7 @@ "download": "Download", "docs": "Docs", "betaDocs": "Beta Docs", - "guides": "Guides", "learn": "Learn", - "security": "Security", "certification": "Courses", "blog": "Blog", "contribute": "Contribute" @@ -71,9 +69,7 @@ }, "downloadReleasesTable": { "version": "Node.js", - "nApiVersion": "N-API", "codename": "Codename", - "releaseDate": "Released at", "firstReleased": "First released", "lastUpdated": "Last updated", "status": "Status", @@ -87,10 +83,7 @@ "releaseModal": { "title": "Node.js v{version} ({codename})", "titleWithoutCodename": "Node.js v{version}", - "overview": "Overview", "minorVersions": "Minor versions", - "releaseAnnouncement": "Release Announcement", - "unsupportedVersionWarning": "This version is out of maintenance. Please use a supported version. Understand EOL support.", "ltsVersionFeaturesNotice": "Want new features sooner? Get the latest Node.js version instead and try the latest improvements!" }, "eolAlert": { @@ -122,7 +115,6 @@ "eolTable": { "version": "Version", "codename": "Codename", - "releaseDate": "Released at", "lastUpdated": "Last updated", "vulnerabilities": "Vulnerabilities", "details": "Details", @@ -135,7 +127,6 @@ "npmVersion": "npm version", "v8Version": "V8 version", "actions": { - "release": "Release", "changelog": "Changelog", "docs": "Docs" } @@ -151,8 +142,7 @@ "common": { "alertBox": { "info": "Info", - "warning": "Warning", - "danger": "Danger" + "warning": "Warning" }, "breadcrumbs": { "navigateToHome": "Navigate to Home" @@ -180,12 +170,10 @@ "metabar": { "lastUpdated": "Last Updated", "readingTime": "Reading Time", - "addedIn": "Added In", "author": "Author", "authors": "Authors", "contribute": "Contribute", "contributeText": "Edit this page", - "viewAs": "View as", "tableOfContents": "Table of Contents", "metadata": "Article metadata" }, @@ -197,25 +185,7 @@ }, "search": { "searchPlaceholder": "Start typing...", - "chatPlaceholder": "Ask me anything", "noResultsFoundFor": "No results found for", - "suggestions": "Suggestions", - "seeAll": "See all", - "addMore": "Add more", - "clearChat": "Clear chat", - "errorMessage": "An error occurred while trying to search. Please try again.", - "disclaimer": "AI summaries can make mistakes. Please verify the information.", - "startYourSearch": "Start your search", - "initErrorSearch": "Unable to initialize search service", - "initErrorChat": "Unable to initialize chat service", - "chatButtonLabel": "Get an AI summary", - "searchButtonLabel": "Search", - "poweredBy": "Powered by", - "suggestionOne": "How to install Node.js?", - "suggestionTwo": "How to create an HTTP server?", - "suggestionThree": "Upgrading Node.js version", - "scrollToBottom": "Scroll to bottom", - "closeChat": "Close chat", "keyboardShortcuts": { "select": "to select", "navigate": "to navigate", @@ -230,14 +200,6 @@ } }, "layouts": { - "blogPost": { - "author": { - "byLine": "{author, select, null {} other {By {author}, }}" - } - }, - "blogIndex": { - "categoryName": "{category, select, all {Blog} other {{category} Blog Posts}}" - }, "blog": { "title": "Blog", "selectCategory": "Categories", @@ -246,7 +208,6 @@ "announcements": "Announcements", "release": "Releases", "vulnerability": "Vulnerabilities", - "advisory-board": "Advisory Board", "community": "Community", "feature": "Feature", "module": "Module", @@ -279,7 +240,6 @@ "platform": "Platform", "os": "Operating System", "version": "Version", - "installMethod": "Install Method", "packageManager": "Package Manager", "unknown": "Unknown", "platformGroups": { @@ -289,7 +249,6 @@ }, "codeBox": { "unsupportedVersionWarning": "This version is out of maintenance. Please use a currently supported version. Understand EOL support.", - "ltsVersionFeaturesNotice": "Want new features sooner? Get the latest Node.js version instead and try the latest improvements!", "communityPlatformInfo": "Installation methods that involve community software are supported by the teams maintaining that software.", "externalSupportInfo": "If you encounter any issues please visit {platform}'s website", "noScriptDetected": "This page requires JavaScript. You can download Node.js without JavaScript by visiting the downloads archive page directly.", @@ -301,8 +260,7 @@ "choco": "Chocolatey is a package manager for Windows.", "docker": "Docker is a containerization platform.", "n": "\"n\" is a cross-platform Node.js version manager.", - "asdf": "\"asdf\" is a cross-platform version manager that supports multiple languages.", - "volta": "\"Volta\" is a cross-platform Node.js version manager." + "asdf": "\"asdf\" is a cross-platform version manager that supports multiple languages." } } }, diff --git a/packages/i18n/src/locales/es.json b/packages/i18n/src/locales/es.json index dd15732fcecb6..246d93be0854e 100644 --- a/packages/i18n/src/locales/es.json +++ b/packages/i18n/src/locales/es.json @@ -15,9 +15,7 @@ "about": "Acerca de", "download": "Descargar", "docs": "Documentación", - "guides": "Guías", "learn": "Aprender", - "security": "Seguridad", "certification": "Certificación", "blog": "Blog", "contribute": "Contribuir" @@ -194,12 +192,10 @@ "metabar": { "lastUpdated": "Última Actualización", "readingTime": "Tiempo de Lectura", - "addedIn": "Agregado en", "author": "Autor", "authors": "Autores", "contribute": "Contribuir", "contributeText": "Editar esta página", - "viewAs": "Mostrar como", "tableOfContents": "Tabla de Contenidos" }, "downloads": { @@ -211,15 +207,9 @@ "searchBox": { "placeholder": "Empezar a escribir..." }, - "seeAll": { - "text": "Ver los {count} resultados" - }, "searchError": { "text": "Ocurrió un error mientras se realizaba la búsqueda. Por favor, intenta nuevamente más tarde." }, - "poweredBy": { - "text": "Impulsado por" - }, "noResults": { "text": "Lo sentimos, no hay resultados para {query}." }, @@ -238,14 +228,6 @@ } }, "layouts": { - "blogPost": { - "author": { - "byLine": "{author, select, null {} other {Por {author}, }}" - } - }, - "blogIndex": { - "categoryName": "{category, select, all {Blog} other {Publicaciones de blog {category}}}" - }, "blog": { "title": "Blog", "selectCategory": "Categorías", @@ -254,7 +236,6 @@ "announcements": "Anuncios", "release": "Lanzamientos", "vulnerability": "Vulnerabilidades", - "advisory-board": "Consejo Asesor", "community": "Comunidad", "feature": "Característica", "module": "Módulo", diff --git a/packages/i18n/src/locales/fr.json b/packages/i18n/src/locales/fr.json index f26be8dd53f94..0fe5330dcfac6 100644 --- a/packages/i18n/src/locales/fr.json +++ b/packages/i18n/src/locales/fr.json @@ -36,9 +36,7 @@ "about": "À propos", "download": "Téléchargement", "docs": "Docs", - "guides": "Guides", "learn": "Apprendre", - "security": "Sécurité", "certification": "Cours", "blog": "Blog", "contribute": "Contribuer" @@ -70,9 +68,7 @@ }, "downloadReleasesTable": { "version": "Node.js", - "nApiVersion": "N-API", "codename": "Nom de code", - "releaseDate": "Publié le", "firstReleased": "Première publication", "lastUpdated": "Dernière mise à jour", "status": "Statut", @@ -86,10 +82,7 @@ "releaseModal": { "title": "Node.js v{version} ({codename})", "titleWithoutCodename": "Node.js v{version}", - "overview": "Vue d'ensemble", "minorVersions": "Versions mineures", - "releaseAnnouncement": "Annonce de publication", - "unsupportedVersionWarning": "Cette version ne fait plus l'objet d'une maintenance. Veuillez utiliser une version actuellement supportée. Comprendre l'accompagnement de fin de vie.", "ltsVersionFeaturesNotice": "Vous voulez de nouvelles fonctionnalités plus tôt ? Téléchargez la dernière version de Node.js à la place et essayez les dernières améliorations !" }, "eolAlert": { @@ -121,7 +114,6 @@ "eolTable": { "version": "Version", "codename": "Nom de code", - "releaseDate": "Publié le", "lastUpdated": "Dernière mise à jour", "vulnerabilities": "Vulnérabilités", "details": "Détails", @@ -134,7 +126,6 @@ "npmVersion": "npm version", "v8Version": "Version V8", "actions": { - "release": "Versions", "changelog": "Journal de modifications", "docs": "Documents" } @@ -150,8 +141,7 @@ "common": { "alertBox": { "info": "Information", - "warning": "Avertissement", - "danger": "Danger" + "warning": "Avertissement" }, "breadcrumbs": { "navigateToHome": "Naviguer à l'accueil" @@ -179,12 +169,10 @@ "metabar": { "lastUpdated": "Dernière Mise à jour", "readingTime": "Temps de Lecture", - "addedIn": "Ajouté dans", "author": "Auteur", "authors": "Auteurs", "contribute": "Contribuer", "contributeText": "Éditer cette page", - "viewAs": "Afficher en tant que", "tableOfContents": "Table des matières", "metadata": "Métadonnées de l'article" }, @@ -195,25 +183,7 @@ }, "search": { "searchPlaceholder": "Commencer à écrire...", - "chatPlaceholder": "Demande-moi n'importe quoi", "noResultsFoundFor": "Aucun résultat trouvé pour", - "suggestions": "Suggestions", - "seeAll": "Afficher tout", - "addMore": "Plus de détails", - "clearChat": "Effacer la conversation", - "errorMessage": "Une erreur s'est produite lors de la recherche. Veuillez réessayer.", - "disclaimer": "Les résumés d'IA peuvent contenir des erreurs. Veuillez vérifier les informations.", - "startYourSearch": "Commencez votre recherche", - "initErrorSearch": "Impossible d'initialiser le service de recherche", - "initErrorChat": "Impossible d'initialiser le service de chat", - "chatButtonLabel": "Obtenir un résumé de l'IA", - "searchButtonLabel": "Recherche", - "poweredBy": "Produit par", - "suggestionOne": "Comment installer Node.js?", - "suggestionTwo": "Comment créer un serveur HTTP ?", - "suggestionThree": "Mise à niveau de la version Node.js", - "scrollToBottom": "Défiler vers le bas", - "closeChat": "Fermer la discussion", "keyboardShortcuts": { "select": "sélectionner", "navigate": "naviguer", @@ -228,14 +198,6 @@ } }, "layouts": { - "blogPost": { - "author": { - "byLine": "{author, select, null {} other {Par {author}, }}" - } - }, - "blogIndex": { - "categoryName": "{category, select, all {Blog} other {{category} Blog posts}}" - }, "blog": { "title": "Blog", "selectCategory": "Catégories", @@ -244,7 +206,6 @@ "announcements": "Annonces", "release": "Versions", "vulnerability": "Vulnérabilités", - "advisory-board": "Conseil consultatif", "community": "Communauté", "feature": "Fonctionalité", "module": "Module", @@ -277,7 +238,6 @@ "platform": "Plateforme", "os": "Système d'exploitation", "version": "Version", - "installMethod": "Méthode d'installation", "packageManager": "Gestionnaire de paquets", "unknown": "Inconnu", "platformGroups": { @@ -287,7 +247,6 @@ }, "codeBox": { "unsupportedVersionWarning": "Cette version ne fait plus l'objet d'une maintenance. Veuillez utiliser une version actuellement supportée. Comprendre l'accompagnement de fin de vie.", - "ltsVersionFeaturesNotice": "Vous voulez de nouvelles fonctionnalités plus tôt ? Procurez-vous plutôt la dernière version de Node.js et essayez les dernières améliorations !", "communityPlatformInfo": "Les méthodes d'installation qui impliquent des logiciels communautaires sont soutenues par les équipes qui maintiennent ces logiciels.", "externalSupportInfo": "Si vous rencontrez des problèmes, veuillez consulter le site web de {platform}", "noScriptDetected": "Cette page nécessite JavaScript. Vous pouvez télécharger Node.js sans JavaScript en visitant directement la page page de diffusion directement.", @@ -299,8 +258,7 @@ "choco": "Chocolatey est un gestionnaire de paquets pour Windows.", "docker": "Docker est une plateforme de conteneurisation.", "n": "\"n\" est un gestionnaire de versions Node.js multiplateforme.", - "asdf": "\"asdf\" est un gestionnaire de versions multiplateforme qui prend en charge plusieurs langages.", - "volta": "\"Volta\" est un gestionnaire de versions Node.js multiplateforme." + "asdf": "\"asdf\" est un gestionnaire de versions multiplateforme qui prend en charge plusieurs langages." } } }, diff --git a/packages/i18n/src/locales/id.json b/packages/i18n/src/locales/id.json index e5ceffe8aa3a4..877dceadc91ed 100644 --- a/packages/i18n/src/locales/id.json +++ b/packages/i18n/src/locales/id.json @@ -22,9 +22,7 @@ "about": "Tentang", "download": "Unduh", "docs": "Dokumentasi", - "guides": "Panduan", "learn": "Pelajari", - "security": "Keamanan", "certification": "Sertifikasi", "blog": "Artikel", "contribute": "Kontribusi" @@ -160,9 +158,7 @@ }, "downloadReleasesTable": { "version": "Node.js", - "nApiVersion": "N-API", "codename": "Kode nama", - "releaseDate": "Dirilis pada", "firstReleased": "Perilisan Pertama", "lastUpdated": "Pembaruan Terakhir", "status": "Status", @@ -176,10 +172,7 @@ "releaseModal": { "title": "Node.js v{version} ({codename})", "titleWithoutCodename": "Node.js v{version}", - "overview": "Ringkasan", "minorVersions": "Versi minor", - "releaseAnnouncement": "Pengumuman Perilisan", - "unsupportedVersionWarning": "Versi ini sudah tidak dalam tahap pemeliharaan. Harap gunakan versi yang didukung. Pahami dukungan EOL.", "ltsVersionFeaturesNotice": "Ingin mencoba fitur baru lebih cepat? Dapatkan versi Node.js terbaru dan coba peningkatan terbarunya!" }, "eolAlert": { @@ -211,7 +204,6 @@ "eolTable": { "version": "Versi", "codename": "Kode nama", - "releaseDate": "Dirilis pada", "lastUpdated": "Pembaruan Terakhir", "vulnerabilities": "Kerentanan", "details": "Rincian" @@ -223,7 +215,6 @@ "npmVersion": "versi npm", "v8Version": "V8 versi", "actions": { - "release": "Rilis", "changelog": "Log Perubahan", "docs": "Dokumentasi" } @@ -243,8 +234,7 @@ "common": { "alertBox": { "info": "Info", - "warning": "Peringatan", - "danger": "Bahaya" + "warning": "Peringatan" }, "breadcrumbs": { "navigateToHome": "Navigasi ke Beranda" @@ -279,35 +269,15 @@ "metabar": { "lastUpdated": "Pembaruan Terakhir", "readingTime": "Waktu Membaca", - "addedIn": "Ditambahkan pada", "author": "Penulis", "authors": "Penulis", "contribute": "Kontribusi", "contributeText": "Sunting halaman ini", - "viewAs": "Tampilkan sebagai", "tableOfContents": "Daftar isi" }, "search": { "searchPlaceholder": "Mulai mengetik...", - "chatPlaceholder": "Tanya saya apa saja", "noResultsFoundFor": "Tidak ada hasil ditemukan untuk", - "suggestions": "Saran", - "seeAll": "Lihat semua", - "addMore": "Tambahkan lebih banyak", - "clearChat": "Bersihkan obrolan", - "errorMessage": "Terjadi kesalahan saat melakukan pencarian. Silakan coba lagi.", - "disclaimer": "Ringkasan berbasis AI dapat mengandung kesalahan. Harap verifikasi informasi tersebut.", - "startYourSearch": "Mulai pencarian anda", - "initErrorSearch": "Tidak dapat memulai layanan pencarian", - "initErrorChat": "Tidak dapat memulai layanan obrolan", - "chatButtonLabel": "Dapatkan ringkasan AI", - "searchButtonLabel": "Pencarian", - "poweredBy": "Diberdayakan oleh", - "suggestionOne": "Instruksi Pemasangan Node.js?", - "suggestionTwo": "Bagaimana cara membuat server HTTP?", - "suggestionThree": "Meningkatkan versi Node.js", - "scrollToBottom": "Gulir ke bawah", - "closeChat": "Tutup obrolan", "keyboardShortcuts": { "select": "memilih", "navigate": "untuk menavigasi", @@ -322,14 +292,6 @@ } }, "layouts": { - "blogPost": { - "author": { - "byLine": "{author, select, null {} other{Oleh {author}, }}" - } - }, - "blogIndex": { - "categoryName": "{category, select, all {Artikel} other {{category} Postingan Artikel}}" - }, "blog": { "title": "Artikel", "selectCategory": "Kategori", @@ -338,7 +300,6 @@ "announcements": "Pengumuman", "release": "Rilis", "vulnerability": "Kerentanan", - "advisory-board": "Dewan Penasihat", "community": "Komunitas", "feature": "Fitur", "module": "Modul", @@ -371,7 +332,6 @@ "platform": "Platform", "os": "Sistem Operasi", "version": "Versi", - "installMethod": "Cara pasang", "packageManager": "Manajer paket", "unknown": "Tak diketahui", "platformGroups": { @@ -381,7 +341,6 @@ }, "codeBox": { "unsupportedVersionWarning": "Versi ini sudah tidak dalam tahap pemeliharaan. Harap gunakan versi yang saat ini didukung. Pahami dukungan EOL.", - "ltsVersionFeaturesNotice": "Ingin mencoba fitur baru lebih cepat? Dapatkan versi Node.js terbaru dan coba peningkatan terbarunya!", "communityPlatformInfo": "Metode instalasi yang melibatkan perangkat lunak komunitas didukung oleh tim yang memelihara perangkat lunak tersebut.", "externalSupportInfo": "Jika kamu mengalami masalah, silakan kunjungi situs web {platform}", "noScriptDetected": "Halaman ini memerlukan JavaScript.\nKamu tetap dapat mengunduh Node.js tanpa mengaktifkan JavaScript dengan langsung mengunjungi halaman arsip unduhan.", @@ -392,8 +351,7 @@ "brew": "Homebrew adalah manajer paket untuk macOS dan Linux.", "choco": "Chocolatey adalah manajer paket untuk Windows.", "docker": "Docker adalah platform kontainerisasi.", - "n": "\"n\" adalah manajer versi Node.js lintas-platform.", - "volta": "\"Volta\" adalah manajer versi Node.js lintas-platform." + "n": "\"n\" adalah manajer versi Node.js lintas-platform." } } }, diff --git a/packages/i18n/src/locales/ja.json b/packages/i18n/src/locales/ja.json index a55e9579379e3..1f16a0968d260 100644 --- a/packages/i18n/src/locales/ja.json +++ b/packages/i18n/src/locales/ja.json @@ -37,9 +37,7 @@ "download": "ダウンロード", "docs": "ドキュメント", "betaDocs": "ベータ版ドキュメント", - "guides": "ガイド", "learn": "学ぶ", - "security": "セキュリティー", "certification": "コース", "blog": "ブログ", "contribute": "貢献" @@ -71,9 +69,7 @@ }, "downloadReleasesTable": { "version": "Node.js", - "nApiVersion": "N-API", "codename": "コードネーム", - "releaseDate": "でリリース済み", "firstReleased": "最初のリリース", "lastUpdated": "最終更新日", "status": "ステータス", @@ -87,10 +83,7 @@ "releaseModal": { "title": "Node.js v{version} ({codename})", "titleWithoutCodename": "Node.js v{version}", - "overview": "概要", "minorVersions": "マイナーバージョン", - "releaseAnnouncement": "リリース", - "unsupportedVersionWarning": "このバージョンのメンテナンスは終了しています。現在サポートされているバージョンを利用してください。EOLのサポートについて。", "ltsVersionFeaturesNotice": "すぐに最新の機能を試したいですか?最新バージョンのNode.jsを代わりにインストールして最新の機能を試してください!" }, "eolAlert": { @@ -122,7 +115,6 @@ "eolTable": { "version": "バージョン", "codename": "コードネーム", - "releaseDate": "でリリース済み", "lastUpdated": "最終更新日", "vulnerabilities": "脆弱性", "details": "詳細", @@ -135,7 +127,6 @@ "npmVersion": "npmのバージョン", "v8Version": "V8のバージョン", "actions": { - "release": "リリース", "changelog": "変更履歴", "docs": "ドキュメント" } @@ -151,8 +142,7 @@ "common": { "alertBox": { "info": "補足", - "warning": "注意", - "danger": "警告" + "warning": "注意" }, "breadcrumbs": { "navigateToHome": "ホームに移動する" @@ -180,12 +170,10 @@ "metabar": { "lastUpdated": "最終更新日", "readingTime": "所要時間", - "addedIn": "追加時期", "author": "著者", "authors": "著者", "contribute": "編集への協力", "contributeText": "このページを編集", - "viewAs": "表示方法", "tableOfContents": "目次", "metadata": "記事のメタデータ" }, @@ -197,25 +185,7 @@ }, "search": { "searchPlaceholder": "入力を開始...", - "chatPlaceholder": "なんでも聞いてください", "noResultsFoundFor": "該当する結果が見つかりませんでした", - "suggestions": "候補", - "seeAll": "すべて表示", - "addMore": "さらに追加", - "clearChat": "チャットを削除", - "errorMessage": "検索中にエラーが起こりました。もう一度試してください。", - "disclaimer": "AIの情報は間違っている可能性があります。正しい情報かどうか注意してください。", - "startYourSearch": "検索を開始", - "initErrorSearch": "検索サービスを開始できません", - "initErrorChat": "チャットサービスを開始できません", - "chatButtonLabel": "AIの情報を確認する", - "searchButtonLabel": "検索", - "poweredBy": "Powered by", - "suggestionOne": "Node.jsをインストールするには?", - "suggestionTwo": "HTTPサーバーを作成するには?", - "suggestionThree": "Node.jsのバージョンアップ", - "scrollToBottom": "最下部へスクロール", - "closeChat": "チャットを閉じる", "keyboardShortcuts": { "select": "選ぶ", "navigate": "移動", @@ -230,14 +200,6 @@ } }, "layouts": { - "blogPost": { - "author": { - "byLine": "{author, select, null {} other {著者: {author}}}" - } - }, - "blogIndex": { - "categoryName": "{category, select, all {ブログ} other {{category}ブログ記事}}" - }, "blog": { "title": "ブログ", "selectCategory": "カテゴリー", @@ -246,7 +208,6 @@ "announcements": "お知らせ", "release": "リリース", "vulnerability": "脆弱性", - "advisory-board": "諮問委員会", "community": "コミュニティー", "feature": "機能", "module": "モジュール", @@ -279,7 +240,6 @@ "platform": "プラットフォーム", "os": "オペレーティングシステム", "version": "バージョン", - "installMethod": "インストール方法", "packageManager": "パッケージマネージャー", "unknown": "不明", "platformGroups": { @@ -289,7 +249,6 @@ }, "codeBox": { "unsupportedVersionWarning": "このバージョンのメンテナンスは終了しています。現在サポートされているバージョンを利用してください。EOLのサポートについて。", - "ltsVersionFeaturesNotice": "すぐに最新の機能を試したいですか?最新バージョンのNode.jsを代わりにインストールして最新の機能を試してください!", "communityPlatformInfo": "コミュニティーソフトウェアを含むインストール方法はそのソフトウェアを管理しているチームによってサポートされます。", "externalSupportInfo": "もし何らかの問題を見つけた場合は{platform}のウェブサイトを参照してください。", "noScriptDetected": "このページはJavaScriptが必要です。JavaScriptなしでもアーカイブページから直接Node.jsをダウンロードできます。", @@ -301,8 +260,7 @@ "choco": "ChocolateyはWIndows用のパッケージマネージャーです。", "docker": "Dockerはコンテナー化に関するプラットフォームです。", "n": "\"n\"はクロスプラットフォームに対応したNode.jsのバージョンマネージャーです。", - "asdf": "「asdf」は数多くのプログラミング言語に対応したクロスプラットフォームのバージョン管理ツールです。", - "volta": "\"Volta\"はクロスプラットフォームに対応したNode.jsのバージョンマネージャーです。" + "asdf": "「asdf」は数多くのプログラミング言語に対応したクロスプラットフォームのバージョン管理ツールです。" } } }, diff --git a/packages/i18n/src/locales/ko.json b/packages/i18n/src/locales/ko.json index 591a7b1422647..073f8776ec264 100644 --- a/packages/i18n/src/locales/ko.json +++ b/packages/i18n/src/locales/ko.json @@ -15,9 +15,7 @@ "about": "소개", "download": "다운로드", "docs": "문서", - "guides": "가이드", "learn": "학습", - "security": "보안", "certification": "인증", "blog": "블로그", "contribute": "기여하기" @@ -139,10 +137,8 @@ }, "downloadReleasesTable": { "version": "Node.js", - "nApiVersion": "N-API", "npmVersion": "npm", "codename": "코드명", - "releaseDate": "출시일", "actions": { "changelog": "변경 내역", "releases": "릴리스", @@ -156,8 +152,7 @@ "common": { "alertBox": { "info": "정보", - "warning": "경고", - "danger": "위험" + "warning": "경고" }, "breadcrumbs": { "navigateToHome": "홈으로 이동" @@ -191,12 +186,10 @@ "metabar": { "lastUpdated": "마지막 업데이트", "readingTime": "읽는 데 걸리는 시간", - "addedIn": "추가됨", "author": "저자", "authors": "저자들", "contribute": "기여하기", "contributeText": "이 페이지 수정", - "viewAs": "보기", "tableOfContents": "목차" }, "search": { @@ -212,14 +205,6 @@ } }, "layouts": { - "blogPost": { - "author": { - "byLine": "{author, select, null {} other {작성자: {author}, }}" - } - }, - "blogIndex": { - "categoryName": "{category, select, all {블로그} other {{category} 블로그 게시물}}" - }, "blog": { "title": "블로그", "selectCategory": "카테고리", @@ -228,7 +213,6 @@ "announcements": "공지사항", "release": "릴리스", "vulnerability": "취약점", - "advisory-board": "자문 위원회", "community": "커뮤니티", "feature": "기능", "module": "모듈", @@ -260,7 +244,6 @@ "platform": "플랫폼", "os": "운영 체제", "version": "버전", - "installMethod": "설치 방법", "packageManager": "패키지 관리자", "unknown": "알 수 없음", "platformGroups": { diff --git a/packages/i18n/src/locales/pt-br.json b/packages/i18n/src/locales/pt-br.json index de37d98e132e7..91407db1e5307 100644 --- a/packages/i18n/src/locales/pt-br.json +++ b/packages/i18n/src/locales/pt-br.json @@ -27,9 +27,7 @@ "about": "Sobre", "download": "Baixar", "docs": "Documentação", - "guides": "Guias", "learn": "Aprenda", - "security": "Segurança", "certification": "Cursos", "blog": "Blog", "contribute": "Contribua" @@ -166,9 +164,7 @@ }, "downloadReleasesTable": { "version": "Node.js", - "nApiVersion": "N-API", "codename": "Codinome", - "releaseDate": "Lançado em", "firstReleased": "Primeiro lançamento", "lastUpdated": "Última atualização", "status": "Status", @@ -182,10 +178,7 @@ "releaseModal": { "title": "Node.js v{version} ({codename})", "titleWithoutCodename": "Node.js v{version}", - "overview": "Visão Geral", "minorVersions": "Versões menores", - "releaseAnnouncement": "Anúncio do Lançamento", - "unsupportedVersionWarning": "Esta versão não está sendo mantida. Por favor, use uma versão com suporte. Entenda o suporte EOL.", "ltsVersionFeaturesNotice": "Quer novos recursos mais cedo? Obtenha a versão mais recente do Node.js e experimente as últimas melhorias!" }, "eolAlert": { @@ -217,7 +210,6 @@ "eolTable": { "version": "Versão", "codename": "Codinome", - "releaseDate": "Lançado em", "lastUpdated": "Última atualização", "vulnerabilities": "Vulnerabilidades", "details": "Detalhes", @@ -230,7 +222,6 @@ "npmVersion": "Versão npm", "v8Version": "Versão V8", "actions": { - "release": "Lançamento", "changelog": "Changelog", "docs": "Documentação" } @@ -246,8 +237,7 @@ "common": { "alertBox": { "info": "Informação", - "warning": "Aviso", - "danger": "Perigo" + "warning": "Aviso" }, "breadcrumbs": { "navigateToHome": "Navegar para a Página Inicial" @@ -279,12 +269,10 @@ "metabar": { "lastUpdated": "Última Atualização", "readingTime": "Tempo de Leitura", - "addedIn": "Adicionado Em", "author": "Autor", "authors": "Autores", "contribute": "Contribuir", "contributeText": "Editar esta página", - "viewAs": "Visualizar como", "tableOfContents": "Índice", "metadata": "Metadados do Artigo" }, @@ -295,25 +283,7 @@ }, "search": { "searchPlaceholder": "Comece a digitar...", - "chatPlaceholder": "Me pergunte qualquer coisa", "noResultsFoundFor": "Nenhum resultado encontrado para", - "suggestions": "Sugestões", - "seeAll": "Ver tudo", - "addMore": "Adicionar mais", - "clearChat": "Limpar chat", - "errorMessage": "Ocorreu um erro ao tentar pesquisar. Por favor, tente novamente.", - "disclaimer": "Resumos de IA podem cometer erros. Por favor, verifique as informações.", - "startYourSearch": "Inicie sua pesquisa", - "initErrorSearch": "Não foi possível inicializar o serviço de pesquisa", - "initErrorChat": "Não foi possível inicializar o serviço de chat", - "chatButtonLabel": "Obter um resumo de IA", - "searchButtonLabel": "Pesquisar", - "poweredBy": "Fornecido por", - "suggestionOne": "Como instalar Node.js?", - "suggestionTwo": "Como criar um servidor HTTP?", - "suggestionThree": "Atualizando a versão do Node.js", - "scrollToBottom": "Rolar para o final", - "closeChat": "Fechar chat", "keyboardShortcuts": { "select": "para selecionar", "navigate": "para navegar", @@ -328,14 +298,6 @@ } }, "layouts": { - "blogPost": { - "author": { - "byLine": "{author, select, null {} other {Por {author}, }}" - } - }, - "blogIndex": { - "categoryName": "{category, select, all {Blog} other {Posts do Blog de {category}}}" - }, "blog": { "title": "Blog", "selectCategory": "Categorias", @@ -344,7 +306,6 @@ "announcements": "Anúncios", "release": "Lançamentos", "vulnerability": "Vulnerabilidades", - "advisory-board": "Conselho Consultivo", "community": "Comunidade", "feature": "Feature", "module": "Módulo", @@ -377,7 +338,6 @@ "platform": "Plataforma", "os": "Sistema Operacional", "version": "Versão", - "installMethod": "Método de Instalação", "packageManager": "Gerenciador de Pacotes", "unknown": "Desconhecido", "platformGroups": { @@ -387,7 +347,6 @@ }, "codeBox": { "unsupportedVersionWarning": "Esta versão não está sendo mantida. Por favor, use uma versão com suporte. Entenda o suporte EOL.", - "ltsVersionFeaturesNotice": "Quer novos recursos mais cedo? Obtenha a versão mais recente do Node.js e experimente as últimas melhorias!", "communityPlatformInfo": "Métodos de instalação que envolvem software da comunidade são suportados pelas equipes que mantêm esse software.", "externalSupportInfo": "Se você encontrar algum problema, por favor visite o site do {platform}", "noScriptDetected": "Esta página requer JavaScript. Você pode baixar o Node.js sem JavaScript visitando diretamente a página de arquivo de downloads.", @@ -398,8 +357,7 @@ "brew": "Homebrew é um gerenciador de pacotes para macOS e Linux.", "choco": "Chocolatey é um gerenciador de pacotes para Windows.", "docker": "Docker é uma plataforma de conteinerização.", - "n": "\"n\" é um gerenciador de versões do Node.js multiplataforma.", - "volta": "\"Volta\" é um gerenciador de versões do Node.js multiplataforma." + "n": "\"n\" é um gerenciador de versões do Node.js multiplataforma." } } }, diff --git a/packages/i18n/src/locales/pt.json b/packages/i18n/src/locales/pt.json index 643d8e2def5c1..9c3f6341c5e55 100644 --- a/packages/i18n/src/locales/pt.json +++ b/packages/i18n/src/locales/pt.json @@ -18,9 +18,7 @@ "about": "Sobre", "download": "Descarregar", "docs": "Documentação", - "guides": "Guias", "learn": "Estudar", - "security": "Segurança", "certification": "Certificação", "blog": "Blogue", "contribute": "Colaborar" @@ -145,10 +143,8 @@ }, "downloadReleasesTable": { "version": "Node.js", - "nApiVersion": "N-API", "npmVersion": "npm", "codename": "Nome de código", - "releaseDate": "Lançado em", "actions": { "changelog": "Registo de alterações", "releases": "Lançamentos", @@ -162,8 +158,7 @@ "common": { "alertBox": { "info": "Informação", - "warning": "Aviso", - "danger": "Perigo" + "warning": "Aviso" }, "breadcrumbs": { "navigateToHome": "Navegar para a Página Inicial" @@ -197,12 +192,10 @@ "metabar": { "lastUpdated": "Última Atualização", "readingTime": "Duração da Leitura", - "addedIn": "Adicionado Em", "author": "Autor(a)", "authors": "Autores", "contribute": "Colaborar", "contributeText": "Editar esta página", - "viewAs": "Ver como", "tableOfContents": "Índice" }, "search": { @@ -218,14 +211,6 @@ } }, "layouts": { - "blogPost": { - "author": { - "byLine": "{author, select, null {} other {Por {author}, }}" - } - }, - "blogIndex": { - "categoryName": "{category, select, all {Blog} other {Publicações do Blogue {category}}}" - }, "blog": { "title": "Blogue", "selectCategory": "Categorias", @@ -234,7 +219,6 @@ "announcements": "Anúncios", "release": "Lançamentos", "vulnerability": "Vulnerabilidades", - "advisory-board": "Conselho Consultivo", "community": "Comunidade", "feature": "Funcionalidade", "module": "Módulo", @@ -266,7 +250,6 @@ "platform": "Plataforma", "os": "Sistema Operativo", "version": "Versão", - "installMethod": "Método de Instalação", "packageManager": "Gestor de Pacote", "unknown": "Desconhecido", "platformGroups": { @@ -285,8 +268,7 @@ "fnm": "\"fnm\" é um gestor de versão de Node.js multiplataforma.", "brew": "Homebrew é um gestor de pacote para macOS e Linux.", "choco": "Chocolatey é um gestor de pacote para Windows.", - "docker": "Docker é uma plataforma de contentorização.", - "volta": "\"Volta\" é um gestor de versão de Node.js multiplataforma." + "docker": "Docker é uma plataforma de contentorização." } } }, diff --git a/packages/i18n/src/locales/ro.json b/packages/i18n/src/locales/ro.json index 199b01ccf0b2d..15723d5b5c274 100644 --- a/packages/i18n/src/locales/ro.json +++ b/packages/i18n/src/locales/ro.json @@ -22,9 +22,7 @@ "about": "Despre", "download": "Descarcă", "docs": "Documentație", - "guides": "Ghiduri", "learn": "Învață", - "security": "Securitate", "certification": "Certificări", "blog": "Blog", "contribute": "Contribuie" @@ -159,9 +157,7 @@ }, "downloadReleasesTable": { "version": "Node.js", - "nApiVersion": "N-API", "codename": "Nume de cod", - "releaseDate": "Lansat pe", "firstReleased": "Prima lansare", "lastUpdated": "Ultima actualizare", "status": "Stare", @@ -175,10 +171,7 @@ "releaseModal": { "title": "Node.js v{version} ({codename})", "titleWithoutCodename": "Node.js v{version}", - "overview": "Prezentare generală", "minorVersions": "Versiuni minore", - "releaseAnnouncement": "Anunț de lansare", - "unsupportedVersionWarning": "Această versiune nu mai este întreținută. Te rog să folosești o versiune acceptată în prezent. Află mai multe despre suportul la sfârșitul ciclului de viață (EOL).", "ltsVersionFeaturesNotice": "Vrei funcționalități noi mai devreme? Instalează cea mai recentă versiune Node.js și testează cele mai noi îmbunătățiri!" }, "eolAlert": { @@ -210,7 +203,6 @@ "eolTable": { "version": "Versiune", "codename": "Nume de cod", - "releaseDate": "Lansat pe", "lastUpdated": "Ultima actualizare", "vulnerabilities": "Vulnerabilități", "details": "Detalii" @@ -222,7 +214,6 @@ "npmVersion": "Versiune npm", "v8Version": "Versiune V8", "actions": { - "release": "Lansare", "changelog": "Istoric de modificări", "docs": "Documentație" } @@ -242,8 +233,7 @@ "common": { "alertBox": { "info": "Informații", - "warning": "Avertizare", - "danger": "Pericol" + "warning": "Avertizare" }, "breadcrumbs": { "navigateToHome": "Navighează la prima pagină" @@ -278,29 +268,15 @@ "metabar": { "lastUpdated": "Ultima actualizare", "readingTime": "Durată de citire", - "addedIn": "Adăugat în", "author": "Autor", "authors": "Autori", "contribute": "Contribuie", "contributeText": "Editează această pagină", - "viewAs": "Vezi ca", "tableOfContents": "Cuprins" }, "search": { "searchPlaceholder": "Începe să tastezi...", - "chatPlaceholder": "Întreabă-mă orice", - "noResultsFoundFor": "Niciun rezultat găsit pentru", - "suggestions": "Sugestii", - "seeAll": "Vezi tot", - "addMore": "Adaugă mai multe", - "clearChat": "Golește discuția", - "errorMessage": "A apărut o eroare la încercarea de căutare. Te rog să încerci din nou.", - "disclaimer": "Rezumatele IA pot conține greșeli. Te rog să verifici informațiile.", - "startYourSearch": "Începe-ți căutarea", - "initErrorSearch": "Nu pot să inițializez serviciul de căutare", - "initErrorChat": "Nu pot să inițializez serviciul de discuții", - "chatButtonLabel": "Obține un rezumat IA", - "searchButtonLabel": "Caută" + "noResultsFoundFor": "Niciun rezultat găsit pentru" }, "blog": { "blogHeader": { @@ -310,14 +286,6 @@ } }, "layouts": { - "blogPost": { - "author": { - "byLine": "{author, select, null {} other {De {author}, }}" - } - }, - "blogIndex": { - "categoryName": "{category, select, all {blog} other {{category} articole de blog}}" - }, "blog": { "title": "Blog", "selectCategory": "Categorii", @@ -326,7 +294,6 @@ "announcements": "Anunțuri", "release": "Lansări", "vulnerability": "Vulnerabilități", - "advisory-board": "Consiliul consultativ", "community": "Comunitate", "feature": "Funcționalitate", "module": "Modul", @@ -358,7 +325,6 @@ "platform": "Platformă", "os": "Sistem de operare", "version": "Versiune", - "installMethod": "Metodă de instalare", "packageManager": "Manager de pachete", "unknown": "Necunoscut", "platformGroups": { @@ -368,7 +334,6 @@ }, "codeBox": { "unsupportedVersionWarning": "Această versiune nu mai este întreținută. Te rog să utilizezi o versiune acceptată în prezent. Află mai multe despre suportul EOL.", - "ltsVersionFeaturesNotice": "Vrei funcționalități noi mai devreme? Ia cea mai recentă versiune Node.js și încearcă ultimele îmbunătățiri!", "communityPlatformInfo": "Metodele de instalare care implică software comunitar sunt acceptate de echipele care întrețin acel software.", "externalSupportInfo": "Dacă întâmpini orice problemă, te rog să vizitezi site-ul web {platform}", "noScriptDetected": "Această pagină necesită JavaScript. Poți descărca Node.js fără JavaScript, vizitând direct pagina arhivei de descărcări.", @@ -379,8 +344,7 @@ "brew": "Homebrew este un manager de pachete pentru macOS și Linux.", "choco": "Chocolatey este un manager de pachete pentru Windows.", "docker": "Docker este o platformă de containerizare.", - "n": "„n” este un manager de versiuni Node.js multiplatformă.", - "volta": "„Volta” este un manager de versiuni Node.js multiplatformă." + "n": "„n” este un manager de versiuni Node.js multiplatformă." } } }, diff --git a/packages/i18n/src/locales/ta.json b/packages/i18n/src/locales/ta.json index 2b146ce2628b8..67e33f01bbeb7 100644 --- a/packages/i18n/src/locales/ta.json +++ b/packages/i18n/src/locales/ta.json @@ -27,9 +27,7 @@ "about": "இதைப் பற்றி", "download": "பதிவிறக்கவும்", "docs": "ஆவணங்கள்", - "guides": "வழிகாட்டிகள்", "learn": "கற்க", - "security": "பாதுகாப்பு", "certification": "பாடப்பிரிவுகள்", "blog": "வலைப்பதிவு", "contribute": "பங்களியுங்கள்" @@ -166,9 +164,7 @@ }, "downloadReleasesTable": { "version": "Node.js", - "nApiVersion": "N-API", "codename": "குறியீடு பெயர்", - "releaseDate": "வெளியிடப்பட்ட தேதி", "firstReleased": "முதலில் வெளியிடப்பட்டது", "lastUpdated": "கடைசியாகப் புதுப்பிக்கப்பட்டது", "status": "நிலை", @@ -182,10 +178,7 @@ "releaseModal": { "title": "Node.js v{version} ({codename})", "titleWithoutCodename": "Node.js v{version}", - "overview": "மேலும் விவரம்", "minorVersions": "சிறு பதிப்புகள்", - "releaseAnnouncement": "வெளியீட்டு அறிவிப்பு", - "unsupportedVersionWarning": "இந்தப் பதிப்பு பராமரிப்பில் இல்லை. தயவுசெய்து ஆதரிக்கப்படும் பதிப்பைப் பயன்படுத்தவும். EOL ஆதரவைக் புரிந்துகொள்ளவும்.", "ltsVersionFeaturesNotice": "புதிய அம்சங்களைச் சீக்கிரமே வேண்டுமா? சமீபத்திய Node.js பதிப்பு பயன்படுத்தி முயற்சிக்கவும்!" }, "eolAlert": { @@ -217,7 +210,6 @@ "eolTable": { "version": "பதிப்பு", "codename": "குறியீடு பெயர்", - "releaseDate": "வெளியிடப்பட்டது", "lastUpdated": "கடைசியாகப் புதுப்பிக்கப்பட்டது", "vulnerabilities": "பாதுகாப்பு குறைபாடுகள்", "details": "விவரங்கள்", @@ -230,7 +222,6 @@ "npmVersion": "npm பதிப்பு", "v8Version": "V8 பதிப்பு", "actions": { - "release": "வெளியீடு", "changelog": "மாற்றப்பட்ட பதிவுகள்", "docs": "ஆவணங்கள்" } @@ -246,8 +237,7 @@ "common": { "alertBox": { "info": "தகவல்", - "warning": "எச்சரிக்கை", - "danger": "ஆபத்து" + "warning": "எச்சரிக்கை" }, "breadcrumbs": { "navigateToHome": "முகப்பிற்கு செல்லவும்" @@ -279,12 +269,10 @@ "metabar": { "lastUpdated": "கடைசியாகப் புதுப்பிக்கப்பட்டது", "readingTime": "படிக்கும் நேரம்", - "addedIn": "சேர்க்கப்பட்டது", "author": "ஆசிரியர்", "authors": "ஆசிரியர்கள்", "contribute": "பங்களி", "contributeText": "இந்தப் பக்கத்தைத் திருத்து", - "viewAs": "இப்படியாகப் பார்", "tableOfContents": "உள்ளடக்கப் பட்டியல்", "metadata": "கட்டுரை மெட்டாடேட்டா" }, @@ -295,25 +283,7 @@ }, "search": { "searchPlaceholder": "எழுதத் தொடங்கு...", - "chatPlaceholder": "எதையும் கேளுங்கள்", "noResultsFoundFor": "இதற்கான முடிவுகள் இல்லை", - "suggestions": "பரிந்துரைகள்", - "seeAll": "அனைத்தையும் பார்க்கவும்", - "addMore": "மேலும் சேர்க்கவும்", - "clearChat": "Chat-யை அழிக்கவும்", - "errorMessage": "தேடும்போது பிழை ஏற்பட்டது. மீண்டும் முயற்சிக்கவும்.", - "disclaimer": "AI சுருக்கங்கள் சில நேரங்களில் தவறாக இருக்கலாம். தயவுசெய்து சரிபார்க்கவும்.", - "startYourSearch": "உங்கள் தேடலைத் தொடங்கவும்", - "initErrorSearch": "தேடல் சேவை தொடங்க முடியவில்லை", - "initErrorChat": "Chat சேவை தொடங்க முடியவில்லை", - "chatButtonLabel": "AI சுருக்கம் பெற", - "searchButtonLabel": "தேடல்", - "poweredBy": "Powered by", - "suggestionOne": "Node.js எப்படி நிறுவுவது?", - "suggestionTwo": "HTTP சர்வர் உருவாக்குவது எப்படி?", - "suggestionThree": "Node.js பதிப்பு மேம்படுத்துதல்", - "scrollToBottom": "கீழே செல்லவும்", - "closeChat": "Chat-யை மூடு", "keyboardShortcuts": { "select": "தேர்வு செய்ய", "navigate": "navigate செய்ய", @@ -328,14 +298,6 @@ } }, "layouts": { - "blogPost": { - "author": { - "byLine": "{author, select, null {} other {{author} எழுதியது, }}" - } - }, - "blogIndex": { - "categoryName": "{category, select, all {வலைப்பதிவு} other {{category} பதிவுகள்}}" - }, "blog": { "title": "வலைப்பதிவு", "selectCategory": "பிரிவுகள்", @@ -344,7 +306,6 @@ "announcements": "அனைத்தும்", "release": "அனைத்தும்", "vulnerability": "பாதுகாப்பு பிரச்சினைகள்", - "advisory-board": "ஆலோசனை குழு", "community": "சமூகம்", "feature": "அம்சம்", "module": "மொடியூல்", @@ -377,7 +338,6 @@ "platform": "பிளாட்ஃபார்ம்", "os": "இயங்கு தளம்", "version": "பதிப்பு", - "installMethod": "நிறுவும் முறை", "packageManager": "பேக்கேஜ் மேலாளர்", "unknown": "தெரியவில்லை", "platformGroups": { @@ -387,7 +347,6 @@ }, "codeBox": { "unsupportedVersionWarning": "இந்தப் பதிப்பு பராமரிப்பில் இல்லை. ஆதரிக்கப்படும் பதிப்பைப் பயன்படுத்தவும். EOL ஆதரவு குறித்து அறிய", - "ltsVersionFeaturesNotice": "புதிய அம்சங்களைச் சீக்கிரமே வேண்டுமா? சமீபத்திய Node.js பதிப்பை முயற்சிக்கவும்!", "communityPlatformInfo": "சமூகத்தின் சாப்ட்வேர் மூலம் வழங்கப்படும் Installation முறைகளுக்கு அவர்கள் தான் பொறுப்பு.", "externalSupportInfo": "பிரச்சினைகள் இருந்தால் {platform} இணையதளத்தில் பார்த்தறியவும்", "noScriptDetected": "இந்தப் பக்கத்திற்கு JavaScript தேவை. நீங்கள் நேரடியாக பதிவிறக்க ஆவணக் காப்பகப் பக்கத்திற்குச் சென்று ஜாவாஸ்கிரிப்ட் இல்லாமல் Node.js ஐ பதிவிறக்கம் செய்யலாம்.", @@ -398,8 +357,7 @@ "brew": "Homebrew என்பது macOS மற்றும் Linux இற்கான பேக்கேஜ் மேலாளர்.", "choco": "Chocolatey என்பது Windows இற்கான பேக்கேஜ் மேலாளர்.", "docker": "Docker என்பது containerization தளம்.", - "n": "\"n\" குறுக்கு-பிளாட்ஃபார்ம் Node பதிப்பு மேலாளர்.", - "volta": "\"Volta\" விரைந்து வேலை செய்யும் Node மேலாளர்." + "n": "\"n\" குறுக்கு-பிளாட்ஃபார்ம் Node பதிப்பு மேலாளர்." } } }, diff --git a/packages/i18n/src/locales/tr.json b/packages/i18n/src/locales/tr.json index 41d9c8ff64e9f..f5b70ac0cba77 100644 --- a/packages/i18n/src/locales/tr.json +++ b/packages/i18n/src/locales/tr.json @@ -14,9 +14,7 @@ "about": "Hakkında", "download": "İndir", "docs": "Dokümanlar", - "guides": "Kılavuzlar", "learn": "Öğrenmek", - "security": "Güvenlik", "certification": "Sertifikasyon", "blog": "Blog" } @@ -196,12 +194,10 @@ "metabar": { "lastUpdated": "Son Güncelleme", "readingTime": "Okuma Süresi", - "addedIn": "Eklendi", "author": "Yazar", "authors": "Yazarlar", "contribute": "Katkıda bulunun", "contributeText": "Bu sayfayı düzenleyin", - "viewAs": "Olarak görüntüle", "tableOfContents": "İçindekiler" }, "downloads": { @@ -213,15 +209,9 @@ "searchBox": { "placeholder": "Yazmaya başla..." }, - "seeAll": { - "text": "Tüm {count} sonuçları görün" - }, "searchError": { "text": "Arama sırasında bir hata oluştu. Lütfen daha sonra tekrar deneyin." }, - "poweredBy": { - "text": "Tarafından desteklenmektedir" - }, "noResults": { "text": "\"{query}\" için sonuç bulunamadı." }, @@ -240,14 +230,6 @@ } }, "layouts": { - "blogPost": { - "author": { - "byLine": "{author, select, null {} other {{author} tarafından }}" - } - }, - "blogIndex": { - "categoryName": "{category, select, all {Blog} other {{category} Blog Gönderileri}}" - }, "blog": { "title": "Blog", "selectCategory": "Kategoriler", @@ -256,7 +238,6 @@ "announcements": "Duyurular", "release": "Sürümler", "vulnerability": "Güvenlik Açıkları", - "advisory-board": "Danışma Kurulu", "community": "Topluluk", "feature": "Özellik", "module": "Modül", diff --git a/packages/i18n/src/locales/uk.json b/packages/i18n/src/locales/uk.json index cb7f8dde142f7..d7d7e015732fa 100644 --- a/packages/i18n/src/locales/uk.json +++ b/packages/i18n/src/locales/uk.json @@ -37,9 +37,7 @@ "download": "Завантажити", "docs": "Документація", "betaDocs": "Бета-документація", - "guides": "Посібники", "learn": "Навчання", - "security": "Безпека", "certification": "Курси", "blog": "Блог", "contribute": "Долучитися" @@ -71,9 +69,7 @@ }, "downloadReleasesTable": { "version": "Node.js", - "nApiVersion": "N-API", "codename": "Кодова назва", - "releaseDate": "Опубліковано", "firstReleased": "Уперше випущено", "lastUpdated": "Востаннє оновлено", "status": "Статус", @@ -87,10 +83,7 @@ "releaseModal": { "title": "Node.js v{version} ({codename})", "titleWithoutCodename": "Node.js v{version}", - "overview": "Огляд", "minorVersions": "Мінорні версії", - "releaseAnnouncement": "Оголошення релізу", - "unsupportedVersionWarning": "Ця версія більше не супроводжується. Будь ласка, використовуйте підтримувану версію. Про кінець підтримки.", "ltsVersionFeaturesNotice": "Бажаєте отримати нові функції швидше? Установіть останню версію Node.js та випробуйте останні покращення!" }, "eolAlert": { @@ -122,7 +115,6 @@ "eolTable": { "version": "Версія", "codename": "Кодова назва", - "releaseDate": "Опубліковано", "lastUpdated": "Востаннє оновлено", "vulnerabilities": "Уразливості", "details": "Деталі", @@ -135,7 +127,6 @@ "npmVersion": "Версія npm", "v8Version": "Версія V8", "actions": { - "release": "Реліз", "changelog": "Список змін", "docs": "Документація" } @@ -151,8 +142,7 @@ "common": { "alertBox": { "info": "Інформація", - "warning": "Попередження", - "danger": "Небезпека" + "warning": "Попередження" }, "breadcrumbs": { "navigateToHome": "До головної" @@ -180,12 +170,10 @@ "metabar": { "lastUpdated": "Востаннє оновлено", "readingTime": "Час на читання", - "addedIn": "Додано", "author": "Автор", "authors": "Автори", "contribute": "Долучитися", "contributeText": "Редагувати цю сторінку", - "viewAs": "Переглянути як", "tableOfContents": "Зміст", "metadata": "Метадані статті" }, @@ -197,25 +185,7 @@ }, "search": { "searchPlaceholder": "Уведіть щось...", - "chatPlaceholder": "Спитайте мене про щось", "noResultsFoundFor": "Не знайдено результатів для", - "suggestions": "Пропозиції", - "seeAll": "Показати все", - "addMore": "Додати ще", - "clearChat": "Очистити чат", - "errorMessage": "Виникла помилка під час пошуку. Спробуйте знову.", - "disclaimer": "ШІ може робити помилки. Перевіряйте отриману інформацію.", - "startYourSearch": "Почніть пошук", - "initErrorSearch": "Не вдалося ініціалізувати пошуковий сервіс", - "initErrorChat": "Не вдалося ініціалізувати сервіс чату", - "chatButtonLabel": "Отримати результати ШІ", - "searchButtonLabel": "Пошук", - "poweredBy": "За підтримки", - "suggestionOne": "Як установити Node.js?", - "suggestionTwo": "Як створити HTTP-сервер?", - "suggestionThree": "Оновлення версії Node.js", - "scrollToBottom": "Прогорнути донизу", - "closeChat": "Закрити чат", "keyboardShortcuts": { "select": ", щоб обрати", "navigate": ", щоб гортати", @@ -230,14 +200,6 @@ } }, "layouts": { - "blogPost": { - "author": { - "byLine": "{author, select, null {} other {Від {author}, }}" - } - }, - "blogIndex": { - "categoryName": "{category, select, all {Блог} other {Пости блогу {category}}}" - }, "blog": { "title": "Блог", "selectCategory": "Категорії", @@ -246,7 +208,6 @@ "announcements": "Оголошення", "release": "Релізи", "vulnerability": "Уразливості", - "advisory-board": "Консультативний комітет", "community": "Спільнота", "feature": "Функціонал", "module": "Модулі", @@ -279,7 +240,6 @@ "platform": "Платформа", "os": "Операційна система", "version": "Версія", - "installMethod": "Метод установки", "packageManager": "Менеджер пакетів", "unknown": "Невідомо", "platformGroups": { @@ -289,7 +249,6 @@ }, "codeBox": { "unsupportedVersionWarning": "Ця версія більше не супроводжується. Будь ласка, використовуйте підтримувану версію. Про кінець підтримки.", - "ltsVersionFeaturesNotice": "Бажаєте отримати нові функції швидше? Установіть останню версію Node.js та випробуйте останні покращення!", "communityPlatformInfo": "Методи установки, які включають ПЗ спільноти, підтримуються відповідними супроводжувачами.", "externalSupportInfo": "Якщо виявите проблеми, відвідайте вебсайт {platform}", "noScriptDetected": "Ця сторінка вимагає JavaScript. Завантажити Node.js без JavaScript можна, безпосередньо відвідавши сторінку архівних завантажень.", @@ -301,8 +260,7 @@ "choco": "Chocolatey — це менеджер пакетів для Windows.", "docker": "Docker — це платформа контейнеризації.", "n": "«n» — це кросплатформний менеджер версій Node.js.", - "asdf": "«asdf» — це кросплатформний менеджер версій, який підтримує багато мов.", - "volta": "«Volta» — це кросплатформний менеджер версій Node.js." + "asdf": "«asdf» — це кросплатформний менеджер версій, який підтримує багато мов." } } }, diff --git a/packages/i18n/src/locales/zh-cn.json b/packages/i18n/src/locales/zh-cn.json index 02818c1415e50..12618da682ad4 100644 --- a/packages/i18n/src/locales/zh-cn.json +++ b/packages/i18n/src/locales/zh-cn.json @@ -18,9 +18,7 @@ "about": "关于", "download": "下载", "docs": "文档", - "guides": "指南", "learn": "学习", - "security": "安全", "certification": "认证", "blog": "博客", "contribute": "贡献" @@ -146,10 +144,8 @@ }, "downloadReleasesTable": { "version": "Node.js", - "nApiVersion": "N-API", "npmVersion": "npm", "codename": "代号", - "releaseDate": "发布日期", "actions": { "changelog": "更新日志", "releases": "发行版", @@ -163,8 +159,7 @@ "common": { "alertBox": { "info": "提示", - "warning": "警告", - "danger": "危险" + "warning": "警告" }, "breadcrumbs": { "navigateToHome": "导航到首页" @@ -198,12 +193,10 @@ "metabar": { "lastUpdated": "最后更新", "readingTime": "阅读时间", - "addedIn": "添加于", "author": "作者", "authors": "作者", "contribute": "贡献", "contributeText": "编辑此页", - "viewAs": "查看为", "tableOfContents": "目录" }, "search": { @@ -219,14 +212,6 @@ } }, "layouts": { - "blogPost": { - "author": { - "byLine": "{author, select, null {} other {By {author}, }}" - } - }, - "blogIndex": { - "categoryName": "{category, select, all {Blog} other {{category} Blog Posts}}" - }, "blog": { "title": "博客", "selectCategory": "分类", @@ -235,7 +220,6 @@ "announcements": "公告", "release": "版本发布", "vulnerability": "漏洞", - "advisory-board": "管理咨询", "community": "社区", "feature": "功能", "module": "模块", @@ -267,7 +251,6 @@ "platform": "平台", "os": "操作系统", "version": "版本", - "installMethod": "选择安装方法", "packageManager": "包管理器", "unknown": "未知", "platformGroups": { @@ -287,8 +270,7 @@ "brew": "Homebrew 是一款适用于 macOS 和 Linux 的软件包管理器。", "choco": "Chocolatey 是一款 Windows 软件包管理器。", "docker": "Docker 是一个容器化平台。", - "n": "\"n\" 是一个跨平台的 Node.js 版本管理器。", - "volta": "\"Volta\" 是一个跨平台的 Node.js 版本管理器。" + "n": "\"n\" 是一个跨平台的 Node.js 版本管理器。" } } }, diff --git a/packages/i18n/src/locales/zh-tw.json b/packages/i18n/src/locales/zh-tw.json index db3e3fd60164e..f7865aafec509 100644 --- a/packages/i18n/src/locales/zh-tw.json +++ b/packages/i18n/src/locales/zh-tw.json @@ -18,9 +18,7 @@ "about": "關於", "download": "下載", "docs": "文件", - "guides": "指南", "learn": "學習資源", - "security": "安全性", "certification": "認證", "blog": "部落格", "contribute": "貢獻" @@ -148,9 +146,7 @@ }, "downloadReleasesTable": { "version": "Node.js", - "nApiVersion": "N-API", "codename": "代號", - "releaseDate": "發佈於", "firstReleased": "首次釋出於", "lastUpdated": "上次更新於", "status": "狀態", @@ -159,16 +155,12 @@ "releaseModal": { "title": "Node.js {version} ({codename})", "titleWithoutCodename": "Node.js {version}", - "overview": "概覽", - "minorVersions": "小版本", - "releaseAnnouncement": "發行公告", - "unsupportedVersionWarning": "此版本已不再維護。請使用現正支援的版本。" + "minorVersions": "小版本" }, "minorReleasesTable": { "version": "版本", "links": "連結", "actions": { - "release": "發行版本", "changelog": "更新紀錄", "docs": "文件" } @@ -188,8 +180,7 @@ "common": { "alertBox": { "info": "資訊", - "warning": "警告", - "danger": "危險" + "warning": "警告" }, "breadcrumbs": { "navigateToHome": "返回首頁" @@ -223,12 +214,10 @@ "metabar": { "lastUpdated": "最後更新", "readingTime": "閱讀時間", - "addedIn": "新增於", "author": "作者", "authors": "作者", "contribute": "貢獻", "contributeText": "編輯此頁面", - "viewAs": "檢視模式", "tableOfContents": "目錄" }, "search": { @@ -244,14 +233,6 @@ } }, "layouts": { - "blogPost": { - "author": { - "byLine": "{author, select, null {} other {By {author}, }}" - } - }, - "blogIndex": { - "categoryName": "{category, select, all {Blog} other {{category} Blog Posts}}" - }, "blog": { "title": "部落格", "selectCategory": "類別", @@ -260,7 +241,6 @@ "announcements": "公告", "release": "版本釋出", "vulnerability": "漏洞", - "advisory-board": "諮詢委員會", "community": "社群", "feature": "功能", "module": "模塊", @@ -292,7 +272,6 @@ "platform": "平台", "os": "作業系統", "version": "版本", - "installMethod": "安裝方式", "packageManager": "套件管理程式", "unknown": "未知", "platformGroups": { @@ -312,8 +291,7 @@ "brew": "Homebrew 是 macOS 及 Linux 的套件管理程式。", "choco": "Chocolatey 是 Windows 的套件管理程式。", "docker": "Docker 是一款容器化平台。", - "n": "「n」是跨平台的 Node.js 版本管理程式。", - "volta": "「Volta」是跨平台的 Node.js 版本管理程式。" + "n": "「n」是跨平台的 Node.js 版本管理程式。" } } }, From b862d761a63f9bf815a8106a957ac44f490af246 Mon Sep 17 00:00:00 2001 From: Jan Amann Date: Fri, 14 Aug 2026 09:50:18 +0000 Subject: [PATCH 2/9] fix(i18n): restore dropped ICU arguments in two translations Both dropped an argument the English source defines and rendered silently, because use-intl drops an unused tag or value rather than throwing: - es layouts.download.codeBox.unsupportedVersionWarning lost its tag, so the sentence ended on a colon and the EOL-support link never rendered. - zh-tw layouts.download.codeBox.platformInfo.default lost {platform}, so the sentence named no package manager. Note: these two strings are machine-suggested and should be replaced via 'eloqnt translate' or reviewed by a native speaker before release. --- packages/i18n/src/locales/es.json | 2 +- packages/i18n/src/locales/zh-tw.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/i18n/src/locales/es.json b/packages/i18n/src/locales/es.json index 246d93be0854e..13a7263e94625 100644 --- a/packages/i18n/src/locales/es.json +++ b/packages/i18n/src/locales/es.json @@ -277,7 +277,7 @@ "platform": "Plataforma" }, "codeBox": { - "unsupportedVersionWarning": "Esta versión está fuera de mantenimiento. Encuentre más información aquí:", + "unsupportedVersionWarning": "Esta versión está fuera de mantenimiento. Utilice una versión con soporte vigente. Conozca el soporte EOL.", "fnmEnvSetup": "configurar el entorno de fnm", "systemManagerWarning": "no es un manejador de paquetes de Node.js. Por favor, asegúrate de tener un {packageManager} instalado.", "communityWarning": "El proyecto Node.js no mantiene los gestores de paquetes ni sus scripts de instalación.", diff --git a/packages/i18n/src/locales/zh-tw.json b/packages/i18n/src/locales/zh-tw.json index f7865aafec509..946b8683b232a 100644 --- a/packages/i18n/src/locales/zh-tw.json +++ b/packages/i18n/src/locales/zh-tw.json @@ -285,7 +285,7 @@ "externalSupportInfo": "若您遇到任何問題,請造訪 {platform} 網站", "noScriptDetected": "此網頁需要使用 JavaScript。您可以直接造訪 發行網頁 以下載 Node.js,無需 JavaScript。", "platformInfo": { - "default": "套件管理器與其安裝指令稿並非由 Node.js 專案維護。", + "default": "{platform}與其安裝指令稿並非由 Node.js 專案維護。", "nvm": "「nvm」是跨平台的 Node.js 版本管理程式。", "fnm": "「fnm」是跨平台的 Node.js 版本管理程式。", "brew": "Homebrew 是 macOS 及 Linux 的套件管理程式。", From dcaba7f483bd0ba7d3c6b7fa417f8948e272c959 Mon Sep 17 00:00:00 2001 From: Jan Amann Date: Fri, 14 Aug 2026 09:50:57 +0000 Subject: [PATCH 3/9] fix(i18n): remove translation keys with no counterpart in en.json Removes 812 stale entries across ten translation files, covering keys that were dropped from the source catalog but survived in translations. Most of it is one fact: the components.navigation.learn.* subtree (57 keys) was removed from en.json when the learn section moved to an external link, and lived on in ten locales. The list is derived from 'eloqnt lint --json' superfluous-key findings, not transcribed by hand. en.json itself is untouched. --- packages/i18n/src/locales/es.json | 186 +------------------------- packages/i18n/src/locales/id.json | 119 ----------------- packages/i18n/src/locales/ko.json | 119 +---------------- packages/i18n/src/locales/pt-br.json | 109 --------------- packages/i18n/src/locales/pt.json | 122 +---------------- packages/i18n/src/locales/ro.json | 119 ----------------- packages/i18n/src/locales/ta.json | 109 --------------- packages/i18n/src/locales/tr.json | 189 --------------------------- packages/i18n/src/locales/zh-cn.json | 123 +---------------- packages/i18n/src/locales/zh-tw.json | 117 ----------------- 10 files changed, 4 insertions(+), 1308 deletions(-) diff --git a/packages/i18n/src/locales/es.json b/packages/i18n/src/locales/es.json index 13a7263e94625..dfdb2286a9975 100644 --- a/packages/i18n/src/locales/es.json +++ b/packages/i18n/src/locales/es.json @@ -5,7 +5,6 @@ "links": { "trademarkPolicy": "Política de Marcas Registradas", "privacyPolicy": "Política de Privacidad", - "versionSupport": "Soporte de Versiones", "codeOfConduct": "Código de Conducta", "security": "Política de Seguridad" } @@ -23,97 +22,6 @@ } }, "navigation": { - "learn": { - "gettingStarted": { - "links": { - "gettingStarted": "Primeros pasos", - "introductionToNodejs": "Introducción a Node.js", - "howToInstallNodejs": "Cómo instalar Node.js", - "howMuchJavascriptDoYouNeedToKnowToUseNodejs": "¿Cuánto necesitas saber de JavaScript para usar Node.js?", - "differencesBetweenNodejsAndTheBrowser": "Diferencias entre Node.js y el navegador", - "theV8JavascriptEngine": "El motor de JavaScript V8", - "anIntroductionToTheNpmPackageManager": "Una introducción al gestor de paquetes npm", - "ecmascript2015Es6AndBeyond": "ECMAScript 2015 (ES6) y más allá", - "nodejsTheDifferenceBetweenDevelopmentAndProduction": "Node.js, las diferencias entre desarrollo y producción", - "nodejsWithWebassembly": "Node.js con WebAssembly", - "debugging": "Depuración de Node.js", - "profiling": "Perfilado de Aplicaciones Node.js", - "securityBestPractices": "Mejores prácticas de seguridad" - } - }, - "typescript": { - "links": { - "typescript": "TypeScript", - "introduction": "Introducción a TypeScript", - "transpile": "Ejecutar código TypeScript usando transpiladores", - "run": "Ejecutar TypeScript con un ejecutor", - "runNatively": "Ejecutar TypeScript de forma nativa" - } - }, - "asynchronousWork": { - "links": { - "asynchronousWork": "Trabajo Asincrónico", - "asynchronousFlowControl": "Flujo de control asincrónico", - "overviewOfBlockingVsNonBlocking": "Resumen de Bloqueante vs No Bloqueante", - "javascriptAsynchronousProgrammingAndCallbacks": "Programación Asíncrona en JavaScript y Retrollamadas", - "discoverJavascriptTimers": "Descubre los temporizadores de JavaScript", - "eventLoopTimersAndNexttick": "El Event Loop en Node.js", - "theNodejsEventEmitter": "El Event Emitter en Node.js", - "understandingProcessnexttick": "Entendiendo process.nextTick()", - "understandingSetimmediate": "Entendiendo setImmediate()", - "dontBlockTheEventLoop": "No bloquear el Event Loop" - } - }, - "manipulatingFiles": { - "links": { - "manipulatingFiles": "Manipulación de Archivos", - "nodejsFileStats": "Atributos de archivos en Node.js", - "nodejsFilePaths": "Rutas de archivo en Node.js", - "workingWithFileDescriptorsInNodejs": "Trabajando con descriptores de archivo en Node.js", - "readingFilesWithNodejs": "Leyendo archivos con Node.js", - "writingFilesWithNodejs": "Escribiendo archivos con Node.js", - "workingWithFoldersInNodejs": "Trabajando con carpetas en Node.js", - "workingWithDifferentFilesystems": "Cómo trabajar con diferentes sistemas de archivos" - } - }, - "commandLine": { - "links": { - "commandLine": "Línea de comandos", - "runNodejsScriptsFromTheCommandLine": "Ejecutando scripts de Node.js desde la línea de comandos", - "howToReadEnvironmentVariablesFromNodejs": "Como leer variables de entorno desde Node.js", - "howToUseTheNodejsRepl": "Cómo usar el REPL de Node.js", - "outputToTheCommandLineUsingNodejs": "Salida de línea de comandos usando Node.js", - "acceptInputFromTheCommandLineInNodejs": "Aceptar entrada desde la línea de comandos en Node.js" - } - }, - "modules": { - "links": { - "modules": "Módulos", - "publishingNodeApiModules": "Cómo publicar un paquete de Node-API", - "anatomyOfAnHttpTransaction": "Anatomía de una transacción HTTP", - "abiStability": "Estabilidad ABI", - "backpressuringInStreams": "Control de flujo en Streams" - } - }, - "diagnostics": { - "links": { - "diagnostics": "Diagnósticos", - "userJourney": "Recorrido del usuario", - "memory": "Memoria", - "liveDebugging": "Depuración en tiempo real", - "poorPerformance": "Rendimiento deficiente", - "flameGraphs": "Gráficos de llama" - } - }, - "testRunner": { - "links": { - "testRunner": "Ejecutor de pruebas", - "introduction": "Descubriendo el ejecutor de pruebas de Node.js", - "usingTestRunner": "Utilizando el ejecutor de pruebas de Node.js", - "mocking": "Simulación en pruebas" - } - } - }, "about": { "links": { "about": "Sobre Node.js", @@ -134,46 +42,15 @@ } } }, - "downloadList": { - "links": { - "previousReleases": "Lanzamientos de Node.js", - "packageManager": "Instalar Node.js mediante un gestor de paquetes", - "shaSums": { - "title": "SHASUMS firmados para archivos de lanzamiento", - "howToVerify": " (Cómo verificarlo)" - }, - "allDownloads": "Todas las opciones de descarga", - "nightlyReleases": "Versiones Nightly", - "unofficialBuilds": "Versiones no oficiales", - "buildingFromSource": "Compilar Node.js desde el código fuente en plataformas compatibles", - "installingOnLinux": "Instalar Node.js a través del archivo binario", - "installingOnWsl": "Instalar en Windows Subsystem for Linux (WSL)" - } - }, - "downloadReleasesTable": { - "changelog": "Historial", - "releases": "Lanzamientos", - "docs": "Documentación" - }, - "pagination": { - "next": "Siguiente", - "previous": "Anterior" - }, "common": { "breadcrumbs": { "navigateToHome": "Ir al inicio" }, - "crossLink": { - "previous": "Anterior", - "next": "Siguiente" - }, "codebox": { "copy": "Copiar al portapapeles", "copied": "¡Copiado al portapapeles!" }, "pagination": { - "prev": "Previo", - "prevAriaLabel": "Página anterior", "next": "Siguiente", "nextAriaLabel": "Página siguiente", "defaultLabel": "Paginación", @@ -184,9 +61,6 @@ }, "languageDropdown": { "label": "Seleccionar idioma" - }, - "themeToggle": { - "label": "Alternar Modo Oscuro" } }, "metabar": { @@ -198,28 +72,6 @@ "contributeText": "Editar esta página", "tableOfContents": "Tabla de Contenidos" }, - "downloads": { - "changelogModal": { - "startContributing": "Comienza a Contribuir" - } - }, - "search": { - "searchBox": { - "placeholder": "Empezar a escribir..." - }, - "searchError": { - "text": "Ocurrió un error mientras se realizaba la búsqueda. Por favor, intenta nuevamente más tarde." - }, - "noResults": { - "text": "Lo sentimos, no hay resultados para {query}." - }, - "emptyState": { - "text": "Buscar algo..." - }, - "searchPage": { - "title": "Usted está buscando: {query}" - } - }, "blog": { "blogHeader": { "subtitle": "Las últimas noticias de Node.js, estudios de caso, tutoriales y recursos.", @@ -259,49 +111,13 @@ "backToHome": "Volver al inicio" }, "download": { - "selectCategory": "Categorías", - "categories": { - "prebuilt-installer": "Instalador precompilado", - "prebuilt-binaries": "Binarios precompilados", - "package-manager": "Gestor de Paquetes", - "source-code": "Código Fuente" - }, - "buttons": { - "prebuilt": "Descargar Node.js {version}", - "source": "Descargar código fuente de Node.js {version}" - }, "dropdown": { - "bitness": "Arquitectura", "os": "Sistema Operativo", "version": "Versión", "platform": "Plataforma" }, "codeBox": { - "unsupportedVersionWarning": "Esta versión está fuera de mantenimiento. Utilice una versión con soporte vigente. Conozca el soporte EOL.", - "fnmEnvSetup": "configurar el entorno de fnm", - "systemManagerWarning": "no es un manejador de paquetes de Node.js. Por favor, asegúrate de tener un {packageManager} instalado.", - "communityWarning": "El proyecto Node.js no mantiene los gestores de paquetes ni sus scripts de instalación.", - "communityWarningReport": "Si encuentras problemas, por favor, contacta con los mantenedores del manejador de paquetes.", - "installsNvm": "instala nvm (Node Version Manager)", - "downloadAndInstallNodejsRestartTerminal": "descargar e instalar Node.js (es posible que necesites reiniciar la terminal)", - "verifiesRightNodejsVersion": "verifica que la versión correcta de Node.js se encuentra en el entorno", - "verifiesRightNpmVersion": "verifica que la versión correcta de npm está en el entorno", - "shouldPrint": "debería de imprimir `{version}`", - "installsFnm": "instala fnm (Fast Node Manager)", - "downloadAndInstallNodejs": "descarga e instala Node.js", - "activateFNM": "activar fnm", - "noteWithColon": "NOTA:", - "dockerIsNotNodejsPackageManager": "Docker no es un administrador de paquetes de Node.js.", - "PleaseEndureAlreadyInstallOnSystem": "Por favor asegúrese de que ya esté instalado en su sistema.", - "dockerInstructions": "Siga las instrucciones oficiales en https://docs.docker.com/desktop/", - "dockerImagesLink": "Las imágenes de Docker se proporcionan oficialmente en https://github.com/nodejs/docker-node/", - "pullsNodejsDockerImage": "descarga la imagen de Docker de Node.js", - "homebrewIsNotNodejsPackageManager": "Homebrew no es un administrador de paquetes de Node.js.", - "homebrewInstructions": "Siga las instrucciones oficiales en https://brew.sh/", - "homebrewSupportsIntallingMajorNodejsVersion": "Homebrew solo admite la instalación de versiones principales de Node.js y puede que no sea compatible con la última versión de Node.js de la línea de lanzamiento {version}.", - "chocolateyIsNotNodejsPackageManager": "Chocolatey no es un administrador de paquetes de Node.js.", - "chocolateyInstructions": "Siga las instrucciones oficiales en https://chocolatey.org/", - "chocolateyNotMaintanedByNodejs": "Chocolatey no es mantenido oficialmente por el proyecto Node.js y puede que no sea compatible con la versión {version} de Node.js" + "unsupportedVersionWarning": "Esta versión está fuera de mantenimiento. Utilice una versión con soporte vigente. Conozca el soporte EOL." } } } diff --git a/packages/i18n/src/locales/id.json b/packages/i18n/src/locales/id.json index 877dceadc91ed..c6031ea9fcbd0 100644 --- a/packages/i18n/src/locales/id.json +++ b/packages/i18n/src/locales/id.json @@ -3,7 +3,6 @@ "containers": { "footer": { "links": { - "openJSFoundation": "OpenJS Foundation", "trademarkPolicy": "Kebijakan Merek Dagang", "privacyPolicy": "Kebijakan Privasi", "codeOfConduct": "Pedoman Perilaku", @@ -30,110 +29,6 @@ } }, "navigation": { - "learn": { - "gettingStarted": { - "links": { - "gettingStarted": "Memulai", - "introductionToNodejs": "Pengantar Node.js", - "howMuchJavascriptDoYouNeedToKnowToUseNodejs": "Seberapa banyak JavaScript yang perlu kamu tahu untuk menggunakan Node.js?", - "differencesBetweenNodejsAndTheBrowser": "Perbedaan Node.js dengan Browser", - "theV8JavascriptEngine": "V8 JavaScript Engine", - "anIntroductionToTheNpmPackageManager": "Perkenalan package manager npm", - "ecmascript2015Es6AndBeyond": "ECMAScript 2015 (ES6) dan seterusnya", - "debugging": "Men-debug Node.js", - "fetch": "Pengambilan data dengan Node.js", - "websocket": "Klien WebSocket dengan Node.js", - "nodejsTheDifferenceBetweenDevelopmentAndProduction": "Node.js, perbedaan antara development dan production", - "profiling": "Profilisasi Aplikasi Node.js", - "nodejsWithWebassembly": "Node.js dengan WebAssembly", - "securityBestPractices": "Praktik Keamanan Terbaik", - "userlandMigrations": "Pengenalan Migrasi di Userland" - } - }, - "commandLine": { - "links": { - "commandLine": "Baris Perintah", - "runNodejsScriptsFromTheCommandLine": "Menjalankan skrip Node.js dari baris perintah", - "howToUseTheNodejsRepl": "Cara menggunakan Node.js REPL", - "outputToTheCommandLineUsingNodejs": "Output ke baris perintah menggunakan Node.js", - "acceptInputFromTheCommandLineInNodejs": "Menerima input dari baris perintah di Node.js", - "howToReadEnvironmentVariablesFromNodejs": "Membaca environment variable dari Node.js" - } - }, - "http": { - "links": { - "http": "HTTP", - "anatomyOfAnHttpTransaction": "Anatomi Transaksi HTTP" - } - }, - "manipulatingFiles": { - "links": { - "manipulatingFiles": "Manipulasi File", - "nodejsFileStats": "Statistik berkas Node.js", - "nodejsFilePaths": "Path Berkas Node.js", - "readingFilesWithNodejs": "Membaca file dengan Node.js", - "writingFilesWithNodejs": "Menulis file dengan Node.js", - "workingWithFileDescriptorsInNodejs": "Bekerja dengan file descriptors di Node.js", - "workingWithFoldersInNodejs": "Bekerja dengan folder di Node.js", - "workingWithDifferentFilesystems": "Bekerja dengan Sistem file yang berbeda" - } - }, - "asynchronousWork": { - "links": { - "asynchronousWork": "Pekerjaan Asinkron", - "javascriptAsynchronousProgrammingAndCallbacks": "Pemrograman dan Panggilan Balik Asinkron JavaScript", - "asynchronousFlowControl": "Pengendalian alur asinkron", - "discoverPromisesInNodejs": "Memahami Promise di Node.js", - "discoverJavascriptTimers": "Jelajahi Pengatur Waktu JavaScript", - "overviewOfBlockingVsNonBlocking": "Ringkasan Pemblokiran vs Non-Pemblokiran", - "eventLoopTimersAndNexttick": "Node.js Event Loop", - "theNodejsEventEmitter": "Node.js Event Emitter", - "understandingProcessnexttick": "Memahami process.nextTick()", - "understandingSetimmediate": "Memahami setImmediate()", - "dontBlockTheEventLoop": "Jangan blokir Event Loop" - } - }, - "typescript": { - "links": { - "typescript": "TypeScript", - "introduction": "Pengantar TypeScript", - "runNatively": "Menjalankan TypeScript Secara Native", - "transpile": "Menjalankan kode TypeScript menggunakan transpilasi", - "run": "Menjalankan TypeScript dengan runner", - "publishingTSPackage": "Menerbitkan package TypeScript" - } - }, - "modules": { - "links": { - "modules": "Module", - "howToUseStreams": "Cara menggunakan stream", - "backpressuringInStreams": "Backpressuring dalam aliran (streams)", - "publishingAPackage": "Menerbitkan Paket", - "publishingNodeApiModules": "Cara mempublikasikan paket Node-API", - "abiStability": "Stabilitas ABI" - } - }, - "diagnostics": { - "links": { - "diagnostics": "Diagnostik", - "userJourney": "Jurnal Pengguna", - "memory": "Memori", - "understandingAndTuningMemory": "Pemahaman dan Penyetelan Memori", - "liveDebugging": "Pemecahan Masalah Langsung", - "poorPerformance": "Performa Buruk", - "flameGraphs": "Flame Graph" - } - }, - "testRunner": { - "links": { - "testRunner": "Test Runner", - "introduction": "Jelajahi Node.js test runner", - "usingTestRunner": "Menggunakan Node.js's test runner", - "mocking": "Mengejek dalam pengujian", - "collectingCodeCoverage": "Pengumpulan cakupan kode di Node.js" - } - } - }, "about": { "links": { "about": "Tentang Node.js", @@ -227,10 +122,6 @@ "npmVersion": "versi npm", "v8Version": "V8 versi" }, - "pagination": { - "next": "Berikutnya", - "previous": "Sebelumnya" - }, "common": { "alertBox": { "info": "Info", @@ -239,17 +130,11 @@ "breadcrumbs": { "navigateToHome": "Navigasi ke Beranda" }, - "crossLink": { - "previous": "Sebelumnya", - "next": "Berikutnya" - }, "codebox": { "copy": "Salin ke papan klip", "copied": "Disalin ke papan klip!" }, "pagination": { - "prev": "Sebelumnya", - "prevAriaLabel": "Halaman Sebelumnya", "next": "Berikutnya", "nextAriaLabel": "Halaman selanjutnya", "defaultLabel": "Penyusunan Halaman", @@ -260,10 +145,6 @@ }, "languageDropdown": { "label": "Pilih Bahasa" - }, - "themeToggle": { - "light": "Beralih ke Mode Terang", - "dark": "Beralih ke Mode Gelap" } }, "metabar": { diff --git a/packages/i18n/src/locales/ko.json b/packages/i18n/src/locales/ko.json index 073f8776ec264..d2138030ea59e 100644 --- a/packages/i18n/src/locales/ko.json +++ b/packages/i18n/src/locales/ko.json @@ -5,7 +5,6 @@ "links": { "trademarkPolicy": "상표 정책", "privacyPolicy": "개인정보 처리방침", - "versionSupport": "버전 지원", "codeOfConduct": "행동 강령", "security": "보안 정책" } @@ -23,98 +22,6 @@ } }, "navigation": { - "learn": { - "gettingStarted": { - "links": { - "gettingStarted": "시작하기", - "introductionToNodejs": "Node.js 소개", - "howMuchJavascriptDoYouNeedToKnowToUseNodejs": "Node.js를 사용하기 위해 얼마나 많은 JavaScript를 알아야 할까요?", - "differencesBetweenNodejsAndTheBrowser": "Node.js와 브라우저 간의 차이", - "theV8JavascriptEngine": "V8 JavaScript 엔진", - "anIntroductionToTheNpmPackageManager": "npm 패키지 관리자 소개", - "ecmascript2015Es6AndBeyond": "ECMAScript 2015 (ES6) 및 이후", - "nodejsTheDifferenceBetweenDevelopmentAndProduction": "Node.js, 개발과 프로덕션의 차이", - "nodejsWithWebassembly": "Node.js와 WebAssembly", - "debugging": "Node.js 디버깅", - "profiling": "Node.js 애플리케이션 프로파일링", - "securityBestPractices": "보안 모범 사례" - } - }, - "typescript": { - "links": { - "typescript": "TypeScript", - "introduction": "TypeScript 소개", - "transpile": "트랜스파일을 통한 TypeScript 코드 실행하기", - "run": "러너로 TypeScript 실행하기", - "runNatively": "네이티브에서 TypeScript 실행하기" - } - }, - "asynchronousWork": { - "links": { - "asynchronousWork": "비동기 작업", - "asynchronousFlowControl": "비동기 흐름 제어", - "overviewOfBlockingVsNonBlocking": "블로킹과 논블로킹 개요", - "javascriptAsynchronousProgrammingAndCallbacks": "JavaScript 비동기 프로그래밍 및 콜백", - "discoverJavascriptTimers": "JavaScript 타이머 알아보기", - "eventLoopTimersAndNexttick": "Node.js 이벤트 루프", - "theNodejsEventEmitter": "Node.js 이벤트 처리기", - "understandingProcessnexttick": "process.nextTick() 이해하기", - "understandingSetimmediate": "setImmediate() 이해하기", - "dontBlockTheEventLoop": "이벤트 루프를 차단하지 마세요" - } - }, - "manipulatingFiles": { - "links": { - "manipulatingFiles": "파일 조작하기", - "nodejsFileStats": "Node.js 파일 상태", - "nodejsFilePaths": "Node.js 파일 경로", - "workingWithFileDescriptorsInNodejs": "Node.js에서 파일 디스크립터 사용하기", - "readingFilesWithNodejs": "Node.js로 파일 읽기", - "writingFilesWithNodejs": "Node.js로 파일 쓰기", - "workingWithFoldersInNodejs": "Node.js에서 폴더 작업하기", - "workingWithDifferentFilesystems": "다양한 파일 시스템으로 작업하는 방법" - } - }, - "commandLine": { - "links": { - "commandLine": "명령 줄", - "runNodejsScriptsFromTheCommandLine": "명령 줄에서 Node.js 스크립트 실행하기", - "howToReadEnvironmentVariablesFromNodejs": "Node.js에서 환경 변수 읽기", - "howToUseTheNodejsRepl": "Node.js REPL 사용법", - "outputToTheCommandLineUsingNodejs": "Node.js로 명령 줄에 출력하기", - "acceptInputFromTheCommandLineInNodejs": "Node.js에서 명령 줄 입력 받기" - } - }, - "modules": { - "links": { - "modules": "모듈", - "publishingAPackage": "패키지 배포하기", - "publishingNodeApiModules": "Node-API 패키지 배포하기", - "anatomyOfAnHttpTransaction": "HTTP 트랜잭션의 구조", - "abiStability": "ABI 안정성", - "howToUseStreams": "스트림 사용하는 방법", - "backpressuringInStreams": "스트림의 배압(Backpressure)" - } - }, - "diagnostics": { - "links": { - "diagnostics": "진단", - "userJourney": "사용자 여정", - "memory": "메모리", - "liveDebugging": "실시간 디버깅", - "poorPerformance": "성능 저하", - "flameGraphs": "프레임 그래프" - } - }, - "testRunner": { - "links": { - "testRunner": "테스트 러너", - "introduction": "Node.js 테스트 러너 알아보기", - "usingTestRunner": "Node.js의 테스트 러너 사용하기", - "mocking": "테스트에서 모킹하기" - } - } - }, "about": { "links": { "about": "Node.js 소개", @@ -137,17 +44,7 @@ }, "downloadReleasesTable": { "version": "Node.js", - "npmVersion": "npm", - "codename": "코드명", - "actions": { - "changelog": "변경 내역", - "releases": "릴리스", - "docs": "문서" - } - }, - "pagination": { - "next": "다음", - "previous": "이전" + "codename": "코드명" }, "common": { "alertBox": { @@ -157,17 +54,11 @@ "breadcrumbs": { "navigateToHome": "홈으로 이동" }, - "crossLink": { - "previous": "이전", - "next": "다음" - }, "codebox": { "copy": "클립보드에 복사", "copied": "클립보드에 복사됨!" }, "pagination": { - "prev": "이전", - "prevAriaLabel": "이전 페이지", "next": "다음", "nextAriaLabel": "다음 페이지", "defaultLabel": "페이지네이션", @@ -178,9 +69,6 @@ }, "languageDropdown": { "label": "언어 선택" - }, - "themeToggle": { - "label": "다크 모드 전환" } }, "metabar": { @@ -192,11 +80,6 @@ "contributeText": "이 페이지 수정", "tableOfContents": "목차" }, - "search": { - "searchBox": { - "placeholder": "검색어를 입력하세요..." - } - }, "blog": { "blogHeader": { "subtitle": "최신 Node.js 뉴스, 사례 연구, 튜토리얼 및 자료입니다.", diff --git a/packages/i18n/src/locales/pt-br.json b/packages/i18n/src/locales/pt-br.json index 91407db1e5307..66de86bbbcf20 100644 --- a/packages/i18n/src/locales/pt-br.json +++ b/packages/i18n/src/locales/pt-br.json @@ -35,111 +35,6 @@ } }, "navigation": { - "learn": { - "gettingStarted": { - "links": { - "gettingStarted": "Primeiros passos", - "introductionToNodejs": "Introdução ao Node.js", - "howMuchJavascriptDoYouNeedToKnowToUseNodejs": "Quanto de JavaScript você precisa entender para usar Node.js?", - "differencesBetweenNodejsAndTheBrowser": "Diferenças entre Node.js e o Navegador", - "theV8JavascriptEngine": "O Motor JavaScript V8", - "anIntroductionToTheNpmPackageManager": "Uma introdução ao gerenciador de pacotes npm", - "ecmascript2015Es6AndBeyond": "ECMAScript 2015 (ES6) e além", - "debugging": "Depuração no Node.js", - "fetch": "Buscando dados com Node.js", - "websocket": "Cliente WebSocket com Node.js", - "nodejsTheDifferenceBetweenDevelopmentAndProduction": "Node.js, a diferença entre desenvolvimento e produção", - "profiling": "Análise de Desempenho de Aplicações Node.js", - "nodejsWithWebassembly": "Node.js com WebAssembly", - "securityBestPractices": "Melhores Práticas de Segurança", - "userlandMigrations": "Introdução às Migrações Userland" - } - }, - "commandLine": { - "links": { - "commandLine": "Linha de Comando", - "runNodejsScriptsFromTheCommandLine": "Execute scripts Node.js pela linha de comando", - "howToUseTheNodejsRepl": "Como usar o REPL do Node.js", - "outputToTheCommandLineUsingNodejs": "Saída para a linha de comando usando Node.js", - "acceptInputFromTheCommandLineInNodejs": "Aceitar entrada da linha de comando no Node.js", - "howToReadEnvironmentVariablesFromNodejs": "Como ler variáveis de ambiente no Node.js" - } - }, - "http": { - "links": { - "http": "HTTP", - "anatomyOfAnHttpTransaction": "Anatomia de uma Transação HTTP", - "enterpriseNetworkConfiguration": "Configuração de Rede para Ambientes Enterprise" - } - }, - "manipulatingFiles": { - "links": { - "manipulatingFiles": "Manipulando Arquivos", - "nodejsFileStats": "Estatísticas de arquivos no Node.js", - "nodejsFilePaths": "Caminhos de Arquivo no Node.js", - "readingFilesWithNodejs": "Lendo arquivos com Node.js", - "writingFilesWithNodejs": "Escrevendo arquivos com Node.js", - "workingWithFileDescriptorsInNodejs": "Trabalhando com descritores de arquivo no Node.js", - "workingWithFoldersInNodejs": "Trabalhando com pastas no Node.js", - "workingWithDifferentFilesystems": "Como trabalhar com Diferentes Sistemas de Arquivos" - } - }, - "asynchronousWork": { - "links": { - "asynchronousWork": "Trabalho Assíncrono", - "javascriptAsynchronousProgrammingAndCallbacks": "Programação Assíncrona em JavaScript e Callbacks", - "asynchronousFlowControl": "Controle de fluxo assíncrono", - "discoverPromisesInNodejs": "Descubra Promises no Node.js", - "discoverJavascriptTimers": "Descubra os Temporizadores JavaScript", - "overviewOfBlockingVsNonBlocking": "Visão Geral de chamadas Bloqueante vs Não-Bloqueante", - "eventLoopTimersAndNexttick": "O Event Loop do Node.js", - "theNodejsEventEmitter": "O Event Emitter do Node.js", - "understandingProcessnexttick": "Entendendo process.nextTick()", - "understandingSetimmediate": "Entendendo setImmediate()", - "dontBlockTheEventLoop": "Não Bloqueie o Event Loop" - } - }, - "typescript": { - "links": { - "typescript": "TypeScript", - "introduction": "Introdução ao TypeScript", - "runNatively": "Executando TypeScript Nativamente", - "transpile": "Executando código TypeScript usando transpilação", - "run": "Executando TypeScript com um executor", - "publishingTSPackage": "Publicando um pacote TypeScript" - } - }, - "modules": { - "links": { - "modules": "Módulos", - "howToUseStreams": "Como usar streams", - "backpressuringInStreams": "Backpressuring em Streams", - "publishingAPackage": "Publicando um pacote", - "publishingNodeApiModules": "Como publicar um pacote Node-API", - "abiStability": "Estabilidade ABI" - } - }, - "diagnostics": { - "links": { - "diagnostics": "Diagnósticos", - "userJourney": "Jornada do Usuário", - "memory": "Memória", - "understandingAndTuningMemory": "Entendendo e Ajustando Memória", - "liveDebugging": "Depuração ao Vivo", - "poorPerformance": "Desempenho Ruim", - "flameGraphs": "Gráficos de Chama" - } - }, - "testRunner": { - "links": { - "testRunner": "Executor de Testes", - "introduction": "Descobrindo o executor de testes do Node.js", - "usingTestRunner": "Usando o executor de testes do Node.js", - "mocking": "Mocking em testes", - "collectingCodeCoverage": "Coletando cobertura de código no Node.js" - } - } - }, "about": { "links": { "about": "Sobre o Node.js", @@ -260,10 +155,6 @@ "languageDropdown": { "label": "Escolher Idioma" }, - "themeToggle": { - "light": "Mudar para Modo Claro", - "dark": "Mudar para Modo Escuro" - }, "skipToContent": "Ir direto ao conteúdo" }, "metabar": { diff --git a/packages/i18n/src/locales/pt.json b/packages/i18n/src/locales/pt.json index 9c3f6341c5e55..42ce1a0d706ff 100644 --- a/packages/i18n/src/locales/pt.json +++ b/packages/i18n/src/locales/pt.json @@ -5,7 +5,6 @@ "links": { "trademarkPolicy": "Política da Marca Comercial", "privacyPolicy": "Política de Privacidade", - "versionSupport": "Suporte da Versão", "codeOfConduct": "Código de Conduta", "security": "Política de Segurança" } @@ -26,101 +25,6 @@ } }, "navigation": { - "learn": { - "gettingStarted": { - "links": { - "gettingStarted": "Começar", - "introductionToNodejs": "Introdução ao Node.js", - "howMuchJavascriptDoYouNeedToKnowToUseNodejs": "Quanto JavaScript precisas de saber para usar o Node.js?", - "differencesBetweenNodejsAndTheBrowser": "Diferenças entre o Node.js e o Navegador", - "theV8JavascriptEngine": "O Motor de JavaScript V8", - "anIntroductionToTheNpmPackageManager": "Introdução ao gestor de pacotes npm", - "ecmascript2015Es6AndBeyond": "ECMAScript 2015 (ES6) e além", - "nodejsTheDifferenceBetweenDevelopmentAndProduction": "Node.js, a diferença entre o desenvolvimento e a produção", - "nodejsWithWebassembly": "Node.js com WebAssembly", - "debugging": "Depuração da Node.js", - "profiling": "Definição de Perfis de Aplicações de Node.js", - "fetch": "Obter dados com a Node.js", - "websocket": "Cliente de WebSocket com a Node.js", - "securityBestPractices": "Boas Práticas de Segurança" - } - }, - "typescript": { - "links": { - "typescript": "TypeScript", - "introduction": "Introdução à TypeScript", - "transpile": "Executar o código da TypeScript utilizando a tradução de código", - "run": "Executar a TypeScript com uma executora", - "runNatively": "Executar a TypeScript Nativamente", - "publishingTSPackage": "Publicar um pacote de TypeScript" - } - }, - "asynchronousWork": { - "links": { - "asynchronousWork": "Trabalho Assíncrono", - "asynchronousFlowControl": "Controlo do Fluxo Assíncrono", - "overviewOfBlockingVsNonBlocking": "Visão Geral de Bloqueante vs Não Bloqueante", - "javascriptAsynchronousProgrammingAndCallbacks": "Programação Assíncrona de JavaScript e Funções de Resposta", - "discoverJavascriptTimers": "Descobrir os Temporizadores da JavaScript", - "eventLoopTimersAndNexttick": "O Ciclo de Evento da Node.js", - "theNodejsEventEmitter": "O Emissor de Evento da Node.js", - "understandingProcessnexttick": "Entendendo o process.nextTick()", - "understandingSetimmediate": "Entendendo o setImmediate()", - "dontBlockTheEventLoop": "Não Bloqueie o Ciclo de Eventos" - } - }, - "manipulatingFiles": { - "links": { - "manipulatingFiles": "Manipulando Ficheiros", - "nodejsFileStats": "Estatísticas de Ficheiro da Node.js", - "nodejsFilePaths": "Caminhos de Ficheiros no Node.js", - "workingWithFileDescriptorsInNodejs": "Trabalhar com os Descritores de Ficheiro na Node.js", - "readingFilesWithNodejs": "Ler Ficheiros com a Node.js", - "writingFilesWithNodejs": "Escrever Ficheiros com a Node.js", - "workingWithFoldersInNodejs": "Trabalhando com pastas no Node.js", - "workingWithDifferentFilesystems": "Como trabalhar com diferentes Sistemas de Ficheiros" - } - }, - "commandLine": { - "links": { - "commandLine": "Linha de Comando", - "runNodejsScriptsFromTheCommandLine": "Execute scripts de Node.js através da linha de comandos", - "howToReadEnvironmentVariablesFromNodejs": "Como Ler Variáveis de Ambiente no Node.js", - "howToUseTheNodejsRepl": "Como Usar o REPL do Node.js", - "outputToTheCommandLineUsingNodejs": "Saída para a linha de comando usando o Node.js", - "acceptInputFromTheCommandLineInNodejs": "Aceitar entrada na linha de comando no Node.js" - } - }, - "modules": { - "links": { - "modules": "Módulos", - "publishingAPackage": "Publicar um pacote", - "publishingNodeApiModules": "Como publicar um pacote da Node-API", - "anatomyOfAnHttpTransaction": "Anatomia de uma Transação do Protocolo de Hipertexto", - "abiStability": "Estabilidade da Interface Binária da Aplicação", - "howToUseStreams": "Como usar fluxos", - "backpressuringInStreams": "Contrapressão nas Correntes de Dados" - } - }, - "diagnostics": { - "links": { - "diagnostics": "Diagnósticos", - "userJourney": "Jornada do Utilizador", - "memory": "Memória", - "liveDebugging": "Depuração em Direto", - "poorPerformance": "Desempenho Deficiente", - "flameGraphs": "Gráficos de Chamas" - } - }, - "testRunner": { - "links": { - "testRunner": "Executor de Teste", - "introduction": "Descobrir o executor de teste da Node.js", - "usingTestRunner": "Usar o executor de teste da Node.js", - "mocking": "Simulação em Testes" - } - } - }, "about": { "links": { "about": "Sobre a Node.js", @@ -143,17 +47,7 @@ }, "downloadReleasesTable": { "version": "Node.js", - "npmVersion": "npm", - "codename": "Nome de código", - "actions": { - "changelog": "Registo de alterações", - "releases": "Lançamentos", - "docs": "Documentação" - } - }, - "pagination": { - "next": "Próxima", - "previous": "Anterior" + "codename": "Nome de código" }, "common": { "alertBox": { @@ -163,17 +57,11 @@ "breadcrumbs": { "navigateToHome": "Navegar para a Página Inicial" }, - "crossLink": { - "previous": "Anterior", - "next": "Próximo" - }, "codebox": { "copy": "Copiar para a área de transferência", "copied": "Copiado para a área de transferência!" }, "pagination": { - "prev": "Anterior", - "prevAriaLabel": "Página anterior", "next": "Próximo", "nextAriaLabel": "Próxima página", "defaultLabel": "Paginação", @@ -184,9 +72,6 @@ }, "languageDropdown": { "label": "Selecionar o idioma" - }, - "themeToggle": { - "label": "Alternar Modo Escuro" } }, "metabar": { @@ -198,11 +83,6 @@ "contributeText": "Editar esta página", "tableOfContents": "Índice" }, - "search": { - "searchBox": { - "placeholder": "Pesquisar..." - } - }, "blog": { "blogHeader": { "subtitle": "As últimas notícias, estudos de caso, tutoriais e recursos da Node.js.", diff --git a/packages/i18n/src/locales/ro.json b/packages/i18n/src/locales/ro.json index 15723d5b5c274..16983e7108612 100644 --- a/packages/i18n/src/locales/ro.json +++ b/packages/i18n/src/locales/ro.json @@ -3,7 +3,6 @@ "containers": { "footer": { "links": { - "openJSFoundation": "Fundația OpenJS", "trademarkPolicy": "Politică de mărci comerciale", "privacyPolicy": "Politică de confidențialitate", "codeOfConduct": "Cod de conduită", @@ -30,110 +29,6 @@ } }, "navigation": { - "learn": { - "gettingStarted": { - "links": { - "gettingStarted": "Începe", - "introductionToNodejs": "Introducere în Node.js", - "howMuchJavascriptDoYouNeedToKnowToUseNodejs": "Cât de mult JavaScript trebuie să știi pentru a utiliza Node.js?", - "differencesBetweenNodejsAndTheBrowser": "Diferențele dintre Node.js și navigator", - "theV8JavascriptEngine": "Motorul JavaScript V8", - "anIntroductionToTheNpmPackageManager": "O introducere în managerul de pachete npm", - "ecmascript2015Es6AndBeyond": "ECMAScript 2015 (ES6) și versiuni ulterioare", - "nodejsTheDifferenceBetweenDevelopmentAndProduction": "Node.js, diferența dintre dezvoltare și producție", - "nodejsWithWebassembly": "Node.js cu WebAssembly", - "debugging": "Depanare în Node.js", - "profiling": "Analiza performanței aplicațiilor Node.js", - "fetch": "Preluarea datelor cu Node.js", - "websocket": "Client WebSocket cu Node.js", - "securityBestPractices": "Cele mai bune practici pentru securitate" - } - }, - "typescript": { - "links": { - "typescript": "TypeScript", - "introduction": "Introducere în TypeScript", - "transpile": "Executarea codului TypeScript folosind transpilarea", - "run": "Executarea TypeScript cu un executant", - "runNatively": "Executarea TypeScript în mod nativ", - "publishingTSPackage": "Publicarea unui pachet TypeScript" - } - }, - "asynchronousWork": { - "links": { - "asynchronousWork": "Lucru asincron", - "asynchronousFlowControl": "Controlul fluxului asincron", - "discoverPromisesInNodejs": "Descoperă Promises în Node.js", - "overviewOfBlockingVsNonBlocking": "Prezentare generală a operațiunilor blocante vs non-blocante", - "javascriptAsynchronousProgrammingAndCallbacks": "Programare asincronă și apeluri-inverse în JavaScript", - "discoverJavascriptTimers": "Descoperă cronometrele JavaScript", - "eventLoopTimersAndNexttick": "Bucla de evenimente Node.js", - "theNodejsEventEmitter": "Emițătorul de evenimente Node.js", - "understandingProcessnexttick": "Cum funcționează process.nextTick()", - "understandingSetimmediate": "Cum funcționează setImmediate()", - "dontBlockTheEventLoop": "Nu bloca bucla de evenimente" - } - }, - "manipulatingFiles": { - "links": { - "manipulatingFiles": "Manipularea fișierelor", - "nodejsFileStats": "Stările fișierelor Node.js", - "nodejsFilePaths": "Căile fișierelor Node.js", - "workingWithFileDescriptorsInNodejs": "Lucrul cu descriptori de fișiere în Node.js", - "readingFilesWithNodejs": "Citirea fișierelor cu Node.js", - "writingFilesWithNodejs": "Scrierea fișierelor cu Node.js", - "workingWithFoldersInNodejs": "Lucrul cu directoare în Node.js", - "workingWithDifferentFilesystems": "Cum să lucrezi cu diferite sisteme de fișiere" - } - }, - "commandLine": { - "links": { - "commandLine": "Linie de comandă", - "runNodejsScriptsFromTheCommandLine": "Rulează scripturi Node.js din linia de comandă", - "howToReadEnvironmentVariablesFromNodejs": "Cum să citești variabilele de mediu din Node.js", - "howToUseTheNodejsRepl": "Cum se utilizează Node.js REPL", - "outputToTheCommandLineUsingNodejs": "Ieșirea în linia de comandă folosind Node.js", - "acceptInputFromTheCommandLineInNodejs": "Acceptarea intrării din linia de comandă în Node.js" - } - }, - "migrations": { - "links": { - "migrations": "Migrații la nivel de utilizator", - "introduction": "Introducere în migrațiile la nivel de utilizator" - } - }, - "modules": { - "links": { - "modules": "Module", - "publishingAPackage": "Publicarea unui pachet", - "publishingNodeApiModules": "Cum se publică un pachet Node-API", - "anatomyOfAnHttpTransaction": "Anatomia unei tranzacții HTTP", - "abiStability": "Stabilitatea ABI", - "howToUseStreams": "Cum se utilizează fluxurile", - "backpressuringInStreams": "Contrapresiunea în fluxuri" - } - }, - "diagnostics": { - "links": { - "diagnostics": "Diagnosticare", - "userJourney": "Călătoria utilizatorului", - "understandingAndTuningMemory": "Înțelegerea și reglarea memoriei", - "memory": "Memorie", - "liveDebugging": "Depanare live", - "poorPerformance": "Performanță slabă", - "flameGraphs": "Grafice Flame" - } - }, - "testRunner": { - "links": { - "testRunner": "Executant de teste", - "introduction": "Descoperă executantul de teste Node.js", - "usingTestRunner": "Utilizarea executantului de teste Node.js", - "mocking": "Simulare în teste", - "collectingCodeCoverage": "Colectarea acoperirii codului în Node.js" - } - } - }, "about": { "links": { "about": "Despre Node.js", @@ -226,10 +121,6 @@ "npmVersion": "Versiune npm", "v8Version": "Versiune V8" }, - "pagination": { - "next": "Înainte", - "previous": "Înapoi" - }, "common": { "alertBox": { "info": "Informații", @@ -238,17 +129,11 @@ "breadcrumbs": { "navigateToHome": "Navighează la prima pagină" }, - "crossLink": { - "previous": "Înapoi", - "next": "Înainte" - }, "codebox": { "copy": "Copiază în clipbord", "copied": "Copiat în clipbord!" }, "pagination": { - "prev": "Înapoi", - "prevAriaLabel": "Pagina anterioară", "next": "Înainte", "nextAriaLabel": "Pagina următoare", "defaultLabel": "Paginare", @@ -259,10 +144,6 @@ }, "languageDropdown": { "label": "Alege limba" - }, - "themeToggle": { - "light": "Schimbă la modul luminos", - "dark": "Schimbă la modul întunecat" } }, "metabar": { diff --git a/packages/i18n/src/locales/ta.json b/packages/i18n/src/locales/ta.json index 67e33f01bbeb7..d891332b2f35e 100644 --- a/packages/i18n/src/locales/ta.json +++ b/packages/i18n/src/locales/ta.json @@ -35,111 +35,6 @@ } }, "navigation": { - "learn": { - "gettingStarted": { - "links": { - "gettingStarted": "தொடங்குதல்", - "introductionToNodejs": "Node.js அறிமுகம்", - "howMuchJavascriptDoYouNeedToKnowToUseNodejs": "Node.js பயன்படுத்த எவ்வளவு JavaScript தெரிந்திருக்க வேண்டும்?", - "differencesBetweenNodejsAndTheBrowser": "Node.js மற்றும் உலாவி இடையேயான வேறுபாடுகள்", - "theV8JavascriptEngine": "V8 JavaScript என்ஜின்", - "anIntroductionToTheNpmPackageManager": "npm தொகுப்பு மேலாளர் அறிமுகம்", - "ecmascript2015Es6AndBeyond": "ECMAScript 2015 (ES6) மற்றும் அதற்குப் பிறகு", - "debugging": "Node.js பிழைத்திருத்தம்", - "fetch": "Node.js மூலம் தரவு பெறுதல்", - "websocket": "Node.js மூலம் WebSocket கிளையண்ட்", - "nodejsTheDifferenceBetweenDevelopmentAndProduction": "Node.js: வளர்ச்சி மற்றும் உற்பத்தி இடையிலான வேறுபாடு", - "profiling": "Node.js செயலி சுயவிவரப்படுத்தல்", - "nodejsWithWebassembly": "WebAssembly உடன் Node.js", - "securityBestPractices": "பாதுகாப்பு சிறந்த நடைமுறைகள்", - "userlandMigrations": "Userland மாற்றங்களின் அறிமுகம்" - } - }, - "commandLine": { - "links": { - "commandLine": "கட்டளை வரி", - "runNodejsScriptsFromTheCommandLine": "கட்டளை வரிகளில் Node.js ஸ்கிரிப்டுகளை இயக்குதல்", - "howToUseTheNodejsRepl": "Node.js REPL பயன்படுத்துவது எப்படி", - "outputToTheCommandLineUsingNodejs": "Node.js மூலம் கமாண்டு லைனுக்கு வெளி எழுதுதல்", - "acceptInputFromTheCommandLineInNodejs": "Node.js இல் கட்டளை வரிகளிருந்து உள்ளீடு பெறுதல்", - "howToReadEnvironmentVariablesFromNodejs": "Node.js இலிருந்து என்வைரன்மென்ட் வேரியபிள்களை எப்படி படிப்பது" - } - }, - "http": { - "links": { - "http": "HTTP", - "anatomyOfAnHttpTransaction": "HTTP பரிவர்த்தனையின் அமைப்பு", - "enterpriseNetworkConfiguration": "பெருநிறுவன வலையமைப்பு அமைப்பமைவு" - } - }, - "manipulatingFiles": { - "links": { - "manipulatingFiles": "கோப்புகளை நிர்வகித்தல்", - "nodejsFileStats": "Node.js கோப்பு புள்ளிவிவரங்கள்", - "nodejsFilePaths": "Node.js கோப்புப் பாதைகள்", - "readingFilesWithNodejs": "Node.js மூலம் கோப்புகளைப் படித்தல்", - "writingFilesWithNodejs": "Node.js மூலம் கோப்புகளை எழுதுதல்", - "workingWithFileDescriptorsInNodejs": "Node.js இல் கோப்பு விவரிகளில் பணிபுரிதல்", - "workingWithFoldersInNodejs": "Node.js இல் கோப்புறைகளில் பணிபுரிதல்", - "workingWithDifferentFilesystems": "பல்வேறு கோப்பு முறைமைகளில் பணிபுரிவது எப்படி" - } - }, - "asynchronousWork": { - "links": { - "asynchronousWork": "ஒத்திசைவற்ற நிரலாக்கம் செயல்", - "javascriptAsynchronousProgrammingAndCallbacks": "JavaScript இல் ஒத்திசைவற்ற நிரலாக்கம் மற்றும் திரும்ப அழைப்புச் செயல்பாடுகள்", - "asynchronousFlowControl": "ஒத்திசைவற்ற நிரலாக்கம் ஓட்டம் கட்டுப்பாடு", - "discoverPromisesInNodejs": "Node.js இல் Promises கண்டறிதல்", - "discoverJavascriptTimers": "JavaScript நேரக்கணக்கிகளை அறிதல்", - "overviewOfBlockingVsNonBlocking": "Blocking vs Non-Blocking - ஒரு முன்னோக்கு", - "eventLoopTimersAndNexttick": "Node.js நிகழ்வுச் சுழல்", - "theNodejsEventEmitter": "Node.js நிகழ்வு உமிழ்ப்பான்", - "understandingProcessnexttick": "process.nextTick() புரிதல்", - "understandingSetimmediate": "setImmediate() புரிதல்", - "dontBlockTheEventLoop": "Event Loop-ஐ தடுக்காதீர்கள்" - } - }, - "typescript": { - "links": { - "typescript": "TypeScript", - "introduction": "TypeScript அறிமுகம்", - "runNatively": "TypeScript-ஐ நேரடியாக இயக்குதல்", - "transpile": "Transpilation மூலம் TypeScript இயக்குதல்", - "run": "Runner மூலம் TypeScript இயக்குதல்", - "publishingTSPackage": "TypeScript தொகுப்பு வெளியிடுதல்" - } - }, - "modules": { - "links": { - "modules": "கூறுகள்", - "howToUseStreams": "ஸ்ட்ரீம்களைப் பயன்படுத்துவது எப்படி", - "backpressuringInStreams": "ஸ்ட்ரீம்களில் Backpressure", - "publishingAPackage": "தொகுப்பு வெளியிடுதல்", - "publishingNodeApiModules": "Node-API தொகுப்பு வெளியிடுவது எப்படி", - "abiStability": "ABI நிலைத்தன்மை" - } - }, - "diagnostics": { - "links": { - "diagnostics": "ஆய்வு", - "userJourney": "பயனர் பயணம்", - "memory": "நினைவகம்", - "understandingAndTuningMemory": "நினைவகத்தை புரிந்து மாற்றம் செய்வது", - "liveDebugging": "நேரடி பிழைத்திருத்தம்", - "poorPerformance": "சராசரி செயல்திறன்", - "flameGraphs": "Flame Graphs" - } - }, - "testRunner": { - "links": { - "testRunner": "டெஸ்ட் ரன்னர்", - "introduction": "Node.js டெஸ்ட் ரன்னர் அறிமுகம்", - "usingTestRunner": "Node.js டெஸ்ட் ரன்னர் பயன்படுத்துதல்", - "mocking": "டெஸ்ட்களில் Mocking", - "collectingCodeCoverage": "Node.js இல் Code Coverage சேகரித்தல்" - } - } - }, "about": { "links": { "about": "Node.js பற்றி", @@ -260,10 +155,6 @@ "languageDropdown": { "label": "மொழி தேர்வு" }, - "themeToggle": { - "light": "Switch to Light Mode", - "dark": "Switch to Dark Mode" - }, "skipToContent": "உள்ளடக்கத்திற்குச் செல்லவும்" }, "metabar": { diff --git a/packages/i18n/src/locales/tr.json b/packages/i18n/src/locales/tr.json index f5b70ac0cba77..6aefe90956d36 100644 --- a/packages/i18n/src/locales/tr.json +++ b/packages/i18n/src/locales/tr.json @@ -21,96 +21,6 @@ } }, "navigation": { - "learn": { - "gettingStarted": { - "links": { - "gettingStarted": "Başlarken", - "introductionToNodejs": "Node.js'e Giriş", - "howMuchJavascriptDoYouNeedToKnowToUseNodejs": "Node.js kullanabilmek için ne kadar JavaScript bilmelisiniz?", - "differencesBetweenNodejsAndTheBrowser": "Node.js ile Tarayıcı Arasındaki Farklar", - "theV8JavascriptEngine": "V8 JavaScript Motoru", - "anIntroductionToTheNpmPackageManager": "Npm paket yöneticisine bir giriş", - "ecmascript2015Es6AndBeyond": "ECMAScript 2015 (ES6) ve sonrası", - "nodejsTheDifferenceBetweenDevelopmentAndProduction": "Node.js, geliştirme ve üretim arasındaki fark", - "nodejsWithWebassembly": "WebAssembly ile Node.js", - "debugging": "Node.js'te Hata Ayıklama", - "profiling": "Node.js Uygulamalarının Profilini Çıkarma", - "securityBestPractices": "En İyi Güvenlik Uygulamaları" - } - }, - "typescript": { - "links": { - "typescript": "TypeScript", - "introduction": "TypeScript'e Giriş", - "transpile": "Transpilasyon kullanarak TypeScript kodu çalıştırma", - "run": "TypeScript'i çalıştırıcı ile kullanma", - "runNatively": "TypeScript'i Yerel olarak çalıştırma" - } - }, - "asynchronousWork": { - "links": { - "asynchronousWork": "Asenkron Çalışma", - "asynchronousFlowControl": "Asenkron akış kontrolü", - "overviewOfBlockingVsNonBlocking": "Engellemeye ve Engellememeye Genel Bakış", - "javascriptAsynchronousProgrammingAndCallbacks": "JavaScript Asenkron Programlama ve Geri Çağırmalar", - "discoverJavascriptTimers": "JavaScript Zamanlayıcılarını Keşfedin", - "eventLoopTimersAndNexttick": "Node.js Olay Döngüsü", - "theNodejsEventEmitter": "Node.js Olay Döngüsü", - "understandingProcessnexttick": "process.nextTick() anlamak", - "understandingSetimmediate": "setImmediate() Fonksiyonunu Anlama", - "dontBlockTheEventLoop": "Etkinlik Döngüsünü Engelleme" - } - }, - "manipulatingFiles": { - "links": { - "manipulatingFiles": "Dosyaları Değiştirme", - "nodejsFileStats": "Node.js dosya istatistikleri", - "nodejsFilePaths": "Node.js Dosya Yolları", - "workingWithFileDescriptorsInNodejs": "Node.js'de dosya tanımlayıcıları ile çalışma", - "readingFilesWithNodejs": "Node.js ile dosya okuma", - "writingFilesWithNodejs": "Node.js ile dosya yazma", - "workingWithFoldersInNodejs": "Node.js'de klasörlerle çalışma", - "workingWithDifferentFilesystems": "Farklı Dosya Sistemleri ile nasıl çalışılır" - } - }, - "commandLine": { - "links": { - "commandLine": "Komut Satırı", - "runNodejsScriptsFromTheCommandLine": "Node.js komut dosyalarını komut satırından çalıştırma", - "howToReadEnvironmentVariablesFromNodejs": "Node.js'den ortam değişkenleri nasıl okunur", - "howToUseTheNodejsRepl": "Node.js REPL nasıl kullanılır", - "outputToTheCommandLineUsingNodejs": "Node.js kullanarak komut satırına çıktı", - "acceptInputFromTheCommandLineInNodejs": "Node.js'de komut satırından girdi kabul etme" - } - }, - "modules": { - "links": { - "modules": "Modüller", - "publishingNodeApiModules": "Bir Node-API paketi nasıl yayımlanır", - "anatomyOfAnHttpTransaction": "Bir HTTP İşleminin Anatomisi", - "abiStability": "ABI İstikrarlılığı", - "backpressuringInStreams": "Akışlarda Geri Baskılama" - } - }, - "diagnostics": { - "links": { - "diagnostics": "Teşhisler", - "userJourney": "Kullanıcı Yolculuğu", - "memory": "Bellek", - "liveDebugging": "Canlı Hata Ayıklama", - "poorPerformance": "Düşük Performans", - "flameGraphs": "Alev Grafikleri" - } - }, - "testRunner": { - "links": { - "testRunner": "Test Çalıştırıcısı", - "introduction": "Node.js'in test çalıştırıcısını keşfet", - "usingTestRunner": "Node.js'in test çalıştırıcısını kullan", - "mocking": "Testlerde Mock Kullanımı" - } - } - }, "about": { "links": { "about": "Node.js Hakkında", @@ -131,46 +41,15 @@ } } }, - "downloadList": { - "links": { - "previousReleases": "Node.js Sürümleri", - "packageManager": "Node.js'i paket yöneticisi ile kurmak", - "shaSums": { - "title": "Sürüm dosyaları için İmzalı SHASUMS", - "howToVerify": " (Nasıl doğrulanır)" - }, - "allDownloads": "Tüm indirme seçenekleri", - "nightlyReleases": "Gecelik Sürümler", - "unofficialBuilds": "Resmi Olmayan Sürümler", - "buildingFromSource": "Desteklenen platformlarda kaynaktan Node.js oluşturma", - "installingOnLinux": "Node.js'yi ikili arşiv aracılığıyla yükleme", - "installingOnWsl": "Linux için Windows Alt Sistemine (WSL) yükleme" - } - }, - "downloadReleasesTable": { - "changelog": "Değişiklik Günlüğü", - "releases": "Sürümler", - "docs": "Dokümanlar" - }, - "pagination": { - "next": "Sonraki", - "previous": "Önceki" - }, "common": { "breadcrumbs": { "navigateToHome": "Ana Sayfaya Git" }, - "crossLink": { - "previous": "Önceki", - "next": "Sonraki" - }, "codebox": { "copy": "Panoya kopyala", "copied": "Panoya kopyalandı!" }, "pagination": { - "prev": "Önceki", - "prevAriaLabel": "Önceki sayfa", "next": "Sonraki", "nextAriaLabel": "Sonraki sayfa", "defaultLabel": "Sayfalandırma", @@ -181,14 +60,6 @@ }, "languageDropdown": { "label": "Dil Seçiniz" - }, - "themeToggle": { - "label": "Karanlık Modu Aç / Kapat" - } - }, - "mdx": { - "upcomingEvents": { - "defaultTitle": "Yaklaşan Etkinlik Yok" } }, "metabar": { @@ -200,28 +71,6 @@ "contributeText": "Bu sayfayı düzenleyin", "tableOfContents": "İçindekiler" }, - "downloads": { - "changelogModal": { - "startContributing": "Katkıda Bulunmaya Başlayın" - } - }, - "search": { - "searchBox": { - "placeholder": "Yazmaya başla..." - }, - "searchError": { - "text": "Arama sırasında bir hata oluştu. Lütfen daha sonra tekrar deneyin." - }, - "noResults": { - "text": "\"{query}\" için sonuç bulunamadı." - }, - "emptyState": { - "text": "Bir şey ara..." - }, - "searchPage": { - "title": "Aradığınız: {query}" - } - }, "blog": { "blogHeader": { "subtitle": "En son Node.js haberleri, vaka çalışmaları, eğitimler ve kaynaklar.", @@ -261,48 +110,10 @@ "backToHome": "Ana Sayfaya Geri Dön" }, "download": { - "selectCategory": "Kategoriler", - "categories": { - "prebuilt-installer": "Önceden Hazırlanmış Yükleyici", - "prebuilt-binaries": "Ön Derlenmiş İkili Dosyalar", - "package-manager": "Paket Yöneticisi", - "source-code": "Kaynak Kodu" - }, - "buttons": { - "prebuilt": "Node.js® İndir {version}", - "source": "Node.js {version} kaynağını indirin" - }, "dropdown": { - "bitness": "Bitness", "os": "İşletim Sistemi", "version": "Versiyon", "platform": "Platform" - }, - "codeBox": { - "fnmEnvSetup": "fnm ortamını yapılandırın", - "systemManagerWarning": "node.js paket yöneticisi değildir. Lütfen {packageManager}'ın zaten yüklü olduğundan emin olun.", - "communityWarning": "Paket yöneticileri ve bunların kurulum betikleri Node.js projesi tarafından bakımı yapılmamaktadır.", - "communityWarningReport": "Sorunlarla karşılaşırsanız, lütfen paket yöneticisi yetkilileriyle iletişime geçin.", - "installsNvm": "nvm (Node Version Manager) kurar", - "downloadAndInstallNodejsRestartTerminal": "Node.js indirip kurun (terminali yeniden başlatmanız gerekebilir)", - "verifiesRightNodejsVersion": "doğru Node.js sürümünün ortamda bulunduğunu doğrular", - "verifiesRightNpmVersion": "doğru npm sürümünün ortamda bulunduğunu doğrular", - "shouldPrint": "şu çıktıyı vermelidir: `{version}`", - "installsFnm": "fnm (Fast Node Manager) kurar", - "downloadAndInstallNodejs": "Node.js indirip kurun", - "activateFNM": "fnm'i etkinleştir", - "noteWithColon": "NOT:", - "dockerIsNotNodejsPackageManager": "Docker bir Node.js paket yöneticisi değildir.", - "PleaseEndureAlreadyInstallOnSystem": "Lütfen sisteminizde zaten yüklü olduğunu kontrol edin.", - "dockerInstructions": "Resmi talimatlar için https://docs.docker.com/desktop/ adresini takip edin.", - "dockerImagesLink": "Docker görüntüleri resmi olarak https://github.com/nodejs/docker-node/ adresinden sağlanmaktadır.", - "pullsNodejsDockerImage": "Node.js Docker görüntüsünü çeker", - "homebrewIsNotNodejsPackageManager": "Homebrew bir Node.js paket yöneticisi değildir.", - "homebrewInstructions": "Resmi talimatlar için https://brew.sh/ adresini takip edin.", - "homebrewSupportsIntallingMajorNodejsVersion": "Homebrew yalnızca ana Node.js sürümlerinin kurulumunu destekler ve {version} sürüm satırındaki en son Node.js sürümünü desteklemeyebilir.", - "chocolateyIsNotNodejsPackageManager": "Chocolatey, Node.js paket yöneticisi değildir.", - "chocolateyInstructions": "Resmi talimatlar için https://chocolatey.org/ adresini takip edin.", - "chocolateyNotMaintanedByNodejs": "Chocolatey, Node.js projesi tarafından resmi olarak sürdürülmüyor ve Node.js'nin {version} sürümünü desteklemiyor olabilir" } } } diff --git a/packages/i18n/src/locales/zh-cn.json b/packages/i18n/src/locales/zh-cn.json index 12618da682ad4..d792e7e2dcb5e 100644 --- a/packages/i18n/src/locales/zh-cn.json +++ b/packages/i18n/src/locales/zh-cn.json @@ -5,7 +5,6 @@ "links": { "trademarkPolicy": "商标政策", "privacyPolicy": "隐私政策", - "versionSupport": "版本支持", "codeOfConduct": "行为准则", "security": "安全政策" } @@ -26,102 +25,6 @@ } }, "navigation": { - "learn": { - "gettingStarted": { - "links": { - "gettingStarted": "快速上手", - "introductionToNodejs": "Node.js 介绍", - "howMuchJavascriptDoYouNeedToKnowToUseNodejs": "使用Node.js需要了解多少JavaScript?", - "differencesBetweenNodejsAndTheBrowser": "Node.js 与浏览器的区别", - "theV8JavascriptEngine": "JavaScript V8 引擎", - "anIntroductionToTheNpmPackageManager": "Npm 包管理器简介", - "ecmascript2015Es6AndBeyond": "ECMAScript 2015 (ES6) 与未来", - "nodejsTheDifferenceBetweenDevelopmentAndProduction": "Node.js 在开发与生产环境中的区别", - "nodejsWithWebassembly": "使用WebAssembly的Node.js", - "debugging": "调试 Node.js", - "profiling": "分析 Node.js 应用程序", - "fetch": "使用 Node.js 获取数据", - "websocket": "使用 Node.js 的 WebSocket 客户端", - "securityBestPractices": "安全最佳实践" - } - }, - "typescript": { - "links": { - "typescript": "TypeScript", - "introduction": "TypeScript 简介", - "transpile": "使用转译技术运行 TypeScript 代码", - "run": "使用运行程序运行 TypeScript", - "runNatively": "以原生方式运行 TypeScript", - "publishingTSPackage": "发布一个 TypeScript 包" - } - }, - "asynchronousWork": { - "links": { - "asynchronousWork": "异步工作", - "asynchronousFlowControl": "异步流控制", - "overviewOfBlockingVsNonBlocking": "概述:阻塞与非阻塞", - "javascriptAsynchronousProgrammingAndCallbacks": "JavaScript 中的异步编程与回调", - "discoverJavascriptTimers": "了解 JavaScript 定时器", - "eventLoopTimersAndNexttick": "Node.js 事件循环", - "theNodejsEventEmitter": "Node.js 事件发射器", - "understandingProcessnexttick": "掌握 process.nextTick()", - "understandingSetimmediate": "掌握 setImmediate()", - "dontBlockTheEventLoop": "请勿阻塞事件循环" - } - }, - "manipulatingFiles": { - "links": { - "manipulatingFiles": "文件操作", - "nodejsFileStats": "Node.js 中的文件状态", - "nodejsFilePaths": "Node.js 中的文件路径", - "workingWithFileDescriptorsInNodejs": "在 Node.js 中使用文件描述符", - "readingFilesWithNodejs": "使用 Node.js 读取文件", - "writingFilesWithNodejs": "使用 Node.js 写入文件", - "workingWithFoldersInNodejs": "在 Node.js 中处理文件夹", - "workingWithDifferentFilesystems": "如何使用不同的文件系统" - } - }, - "commandLine": { - "links": { - "commandLine": "命令行", - "runNodejsScriptsFromTheCommandLine": "从命令行运行 Node.js 脚本", - "howToReadEnvironmentVariablesFromNodejs": "如何从 Node.js 中读取环境变量", - "howToUseTheNodejsRepl": "如何使用 Node.js REPL", - "outputToTheCommandLineUsingNodejs": "使用 Node.js 向命令行输出", - "acceptInputFromTheCommandLineInNodejs": "在 Node.js 中接受命令行输入" - } - }, - "modules": { - "links": { - "modules": "模块", - "publishingAPackage": "发布包", - "publishingNodeApiModules": "如何发布一个 Node-API 包", - "anatomyOfAnHttpTransaction": "HTTP 事务剖析", - "abiStability": "ABI 稳定性", - "howToUseStreams": "如何使用流", - "backpressuringInStreams": "流处理中的反压机制" - } - }, - "diagnostics": { - "links": { - "diagnostics": "诊断", - "userJourney": "用户旅程", - "memory": "内存", - "liveDebugging": "实时调试", - "poorPerformance": "性能分析", - "flameGraphs": "火焰图" - } - }, - "testRunner": { - "links": { - "testRunner": "测试运行程序", - "introduction": "了解 Node.js 测试运行程序", - "usingTestRunner": "使用 Node.js 测试运行程序", - "mocking": "在测试中进行模拟", - "collectingCodeCoverage": "在 Node.js 中收集代码覆盖率" - } - } - }, "about": { "links": { "about": "关于 Node.js", @@ -144,17 +47,7 @@ }, "downloadReleasesTable": { "version": "Node.js", - "npmVersion": "npm", - "codename": "代号", - "actions": { - "changelog": "更新日志", - "releases": "发行版", - "docs": "文档" - } - }, - "pagination": { - "next": "下一页", - "previous": "上一页" + "codename": "代号" }, "common": { "alertBox": { @@ -164,17 +57,11 @@ "breadcrumbs": { "navigateToHome": "导航到首页" }, - "crossLink": { - "previous": "上一个", - "next": "下一个" - }, "codebox": { "copy": "复制到剪贴板", "copied": "已复制到剪贴板!" }, "pagination": { - "prev": "上一页", - "prevAriaLabel": "上一页", "next": "下一页", "nextAriaLabel": "下一页", "defaultLabel": "分页", @@ -185,9 +72,6 @@ }, "languageDropdown": { "label": "选择语言" - }, - "themeToggle": { - "label": "切换深色模式" } }, "metabar": { @@ -199,11 +83,6 @@ "contributeText": "编辑此页", "tableOfContents": "目录" }, - "search": { - "searchBox": { - "placeholder": "请开始输入..." - } - }, "blog": { "blogHeader": { "subtitle": "最新的 Node.js 新闻、研究案例、教程和资源。", diff --git a/packages/i18n/src/locales/zh-tw.json b/packages/i18n/src/locales/zh-tw.json index 946b8683b232a..ed0ad75b4de5b 100644 --- a/packages/i18n/src/locales/zh-tw.json +++ b/packages/i18n/src/locales/zh-tw.json @@ -5,7 +5,6 @@ "links": { "trademarkPolicy": "商標政策", "privacyPolicy": "隱私政策", - "versionSupport": "版本支援", "codeOfConduct": "行為準則", "security": "安全性政策" } @@ -26,104 +25,6 @@ } }, "navigation": { - "learn": { - "gettingStarted": { - "links": { - "gettingStarted": "開始入門", - "introductionToNodejs": "Node.js 介紹", - "howMuchJavascriptDoYouNeedToKnowToUseNodejs": "使用 Node.js 前,需要掌握多少 JavaScript 知識?", - "differencesBetweenNodejsAndTheBrowser": "Node.js 與瀏覽器的差別", - "theV8JavascriptEngine": "JavaScript V8 引擎", - "anIntroductionToTheNpmPackageManager": "Npm 套件管理器介紹", - "ecmascript2015Es6AndBeyond": "ECMAScript 2015 (ES6) 與更高的版本", - "nodejsTheDifferenceBetweenDevelopmentAndProduction": "Node.js 在開發與生產環境的差別", - "nodejsWithWebassembly": "Node.js 搭配 WebAssembly", - "debugging": "Node.js 除錯", - "profiling": "分析 Node.js 應用程式", - "fetch": "以 Node.js 獲取 (fetch) 資料", - "websocket": "Node.js WebSocket 用戶端", - "securityBestPractices": "安全最佳實踐" - } - }, - "typescript": { - "links": { - "typescript": "TypeScript", - "introduction": "TypeScript 介紹", - "transpile": "透過翻譯執行 TypeScript 程式碼。", - "run": "透過執行器執行 TypeScript", - "runNatively": "原生執行 TypeScript", - "publishingTSPackage": "發佈 TypeScript 套件" - } - }, - "asynchronousWork": { - "links": { - "asynchronousWork": "非同步工作", - "asynchronousFlowControl": "非同步流程控制", - "discoverPromisesInNodejs": "探索 Node.js 中的 Promise", - "overviewOfBlockingVsNonBlocking": "阻塞與非阻塞概述", - "javascriptAsynchronousProgrammingAndCallbacks": "JavaScript 中的非同步程式與回呼函式", - "discoverJavascriptTimers": "探索 JavaScript 計時器", - "eventLoopTimersAndNexttick": "Node.js 中的事件循環", - "theNodejsEventEmitter": "Node.js 中的事件發射器", - "understandingProcessnexttick": "理解 process.nextTick()", - "understandingSetimmediate": "理解 setImmediate()", - "dontBlockTheEventLoop": "請勿阻塞事件循環" - } - }, - "manipulatingFiles": { - "links": { - "manipulatingFiles": "檔案操作", - "nodejsFileStats": "Node.js 中的檔案狀態", - "nodejsFilePaths": "Node.js 中的檔案路徑", - "workingWithFileDescriptorsInNodejs": "在 Node.js 中使用檔案描述符", - "readingFilesWithNodejs": "使用 Node.js 讀取檔案", - "writingFilesWithNodejs": "使用 Node.js 寫入檔案", - "workingWithFoldersInNodejs": "在 Node.js 中操作資料夾", - "workingWithDifferentFilesystems": "如何使用不同的檔案系統" - } - }, - "commandLine": { - "links": { - "commandLine": "命令列", - "runNodejsScriptsFromTheCommandLine": "使用命令列執行 Node.js 指令稿", - "howToReadEnvironmentVariablesFromNodejs": "如何從 Node.js 中讀取環境變數", - "howToUseTheNodejsRepl": "如何使用 Node.js REPL", - "outputToTheCommandLineUsingNodejs": "使用 Node.js 輸出到命令列", - "acceptInputFromTheCommandLineInNodejs": "在 Node.js 中接受命令列輸入" - } - }, - "modules": { - "links": { - "modules": "模塊", - "publishingAPackage": "發布套件", - "publishingNodeApiModules": "如何釋出 Node-API 套件", - "anatomyOfAnHttpTransaction": "HTTP 事務解析", - "abiStability": "ABI 穩定性", - "howToUseStreams": "如何使用串流", - "backpressuringInStreams": "串流中的背壓機制" - } - }, - "diagnostics": { - "links": { - "diagnostics": "診斷訊息", - "userJourney": "使用者旅程", - "understandingAndTuningMemory": "深入瞭解並調教記憶體", - "memory": "記憶體", - "liveDebugging": "即時偵錯", - "poorPerformance": "低效能", - "flameGraphs": "火焰圖" - } - }, - "testRunner": { - "links": { - "testRunner": "測試執行器", - "introduction": "探索 Node.js 中的測試執行器", - "usingTestRunner": "使用 Node.js 中的測試執行器", - "mocking": "在測試中模擬物件", - "collectingCodeCoverage": "在 Node.js 中搜集程式碼覆蓋率" - } - } - }, "about": { "links": { "about": "關於 Node.js", @@ -173,10 +74,6 @@ "npmVersion": "npm 版本", "v8Version": "V8 版本" }, - "pagination": { - "next": "下一頁", - "previous": "上一頁" - }, "common": { "alertBox": { "info": "資訊", @@ -185,17 +82,11 @@ "breadcrumbs": { "navigateToHome": "返回首頁" }, - "crossLink": { - "previous": "上一頁", - "next": "下一頁" - }, "codebox": { "copy": "複製到剪貼簿", "copied": "已複製到剪貼簿!" }, "pagination": { - "prev": "上一頁", - "prevAriaLabel": "上一頁", "next": "下一頁", "nextAriaLabel": "下一頁", "defaultLabel": "分頁", @@ -206,9 +97,6 @@ }, "languageDropdown": { "label": "選擇語言" - }, - "themeToggle": { - "label": "切換深色模式" } }, "metabar": { @@ -220,11 +108,6 @@ "contributeText": "編輯此頁面", "tableOfContents": "目錄" }, - "search": { - "searchBox": { - "placeholder": "開始輸入…" - } - }, "blog": { "blogHeader": { "subtitle": "最新的 Node.js 動態、案例研究、教學和資源。", From a37d58a1bcdcb5c6ab38c958bf0b7a7bbfa136c3 Mon Sep 17 00:00:00 2001 From: Jan Amann Date: Fri, 14 Aug 2026 09:53:04 +0000 Subject: [PATCH 4/9] feat(i18n): add eloqnt lint with orphan-message scoped to static keys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds @eloqnt/cli and a config covering the 14 enabled locales from packages/i18n/src/config.json (ar is disabled and deliberately absent). The orphan-message rule resolves a key only when the call site names it as a literal string. This codebase builds some keys at runtime — labels come from navigation.json and constants.json, and several components interpolate a variable into the key — so the rule is turned off for exactly those keys via lint.overrides. Namespaces that also hold statically referenced keys list the dynamic ones individually instead of using a wildcard, so the rule keeps covering the rest. Result: eloqnt lint reports 0 errors and 562 pre-existing missing-translation warnings. --- .eloqnt/config.ts | 57 ++++++++++++ package.json | 1 + pnpm-lock.yaml | 214 ++++++++++++++++++++++++++++++++++++++++++++ pnpm-workspace.yaml | 4 + 4 files changed, 276 insertions(+) create mode 100644 .eloqnt/config.ts diff --git a/.eloqnt/config.ts b/.eloqnt/config.ts new file mode 100644 index 0000000000000..448f11b476dc2 --- /dev/null +++ b/.eloqnt/config.ts @@ -0,0 +1,57 @@ +import { defineConfig } from '@eloqnt/cli'; + +export default defineConfig({ + srcPath: ['./apps/site', './packages/ui-components'], + messages: { + path: './packages/i18n/src/locales', + locales: [ + 'en', + 'es', + 'fr', + 'id', + 'ja', + 'ko', + 'pt-br', + 'pt', + 'ro', + 'ta', + 'tr', + 'uk', + 'zh-cn', + 'zh-tw', + ], + sourceLocale: 'en', + format: 'json', + }, + lint: { + overrides: [ + { + // These keys are built at runtime, so static analysis cannot see + // them being used: labels come from navigation.json and + // constants.json (e.g. t(link.text)), and the remaining keys are + // built from a template with a runtime value, e.g. + // t(`components.eolChip.severity.${severity}`). + keys: [ + 'components.containers.footer.links.*', + 'components.containers.navBar.links.*', + 'components.navigation.about.links.*', + 'components.navigation.getInvolved.links.*', + 'layouts.download.codeBox.platformInfo.*', + 'layouts.blog.categories.*', + 'components.eolChip.severity.*', + + // These namespaces also hold statically referenced keys, so the + // dynamic ones are listed individually. + 'components.metabar.author', + 'components.metabar.authors', + 'components.releaseModal.title', + 'components.releaseModal.titleWithoutCodename', + 'components.banner.default', + 'components.banner.warning', + 'components.banner.error', + ], + rules: { 'orphan-message': 'off' }, + }, + ], + }, +}); diff --git a/package.json b/package.json index 23033abda224e..20053bf977bc7 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "devDependencies": { "@changesets/changelog-github": "^0.7.0", "@changesets/cli": "^2.31.1", + "@eloqnt/cli": "^0.6.9", "@eslint/js": "~10.0.1", "@reporters/github": "^2.0.2", "@testing-library/react": "~16.3.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 39957580697c3..27343f5fe4038 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -250,6 +250,9 @@ importers: '@changesets/cli': specifier: ^2.31.1 version: 2.31.1(@types/node@24.10.1) + '@eloqnt/cli': + specifier: ^0.6.9 + version: 0.6.9 '@eslint/js': specifier: ~10.0.1 version: 10.0.1(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2)) @@ -886,6 +889,22 @@ packages: '@adobe/css-tools@4.5.0': resolution: {integrity: sha512-6OzddxPio9UiWTCemp4N8cYLV2ZN1ncRnV1cVGtve7dhPOtRkleRyx32GQCYSwDYgaHU3USMm84tNsvKzRCa1Q==} + '@ai-sdk/gateway@4.0.51': + resolution: {integrity: sha512-tQxWGUbg/O3A5EgekJo/C2byLVQ1r+vL6QdEVWmxUSnPhdCupcOeDbQO1tv9Um40VrdwYuSWlYzcbWvtlG5bOA==} + engines: {node: '>=22'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/provider-utils@5.0.27': + resolution: {integrity: sha512-EzAn4pdgG5g0xXtH6lE2zyNmfjDQIDjATkfqzuidEI35g++hh4+07vnjzkT/RmGmIClPZiRj/Q2GMPV2V7mkHw==} + engines: {node: '>=22'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/provider@4.0.7': + resolution: {integrity: sha512-6or44XprPzKbr8zkmzosowSE0pxkvJcoojBL+mCZvPUt3kvXp3XSNqeVun9golb1acEfSo6yaEBRT18h2VU+1Q==} + engines: {node: '>=22'} + '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} @@ -1324,6 +1343,14 @@ packages: '@changesets/write@0.4.0': resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} + '@clack/core@1.4.3': + resolution: {integrity: sha512-/kr3UWNtdJfxZtPgDqUOmG2pvwlmcLGheex5yiZKdwbzZJxhV+HMNR9QNmyY5cGwTNV6LrR7Jtp+KjhUAP1qBQ==} + engines: {node: '>= 20.12.0'} + + '@clack/prompts@1.7.0': + resolution: {integrity: sha512-y7/yvZ2TPAnR9+jnc00klvNNLkJiXFFrQA/hlLCcxA9a2A4zQIOimyFQ9XfwYKiGD1fb5GY8vbKIIgO8d5Tb2A==} + engines: {node: '>= 20.12.0'} + '@cloudflare/kv-asset-handler@0.5.0': resolution: {integrity: sha512-jxQYkj8dSIzc0cD6cMMNdOc1UVjqSqu8BZdor5s8cGjW2I8BjODt/kWPVdY+u9zj3ms75Q5qaZgnxUad83+eAg==} engines: {node: '>=22.0.0'} @@ -1439,6 +1466,13 @@ packages: peerDependencies: '@noble/ciphers': ^1.0.0 + '@eloqnt/cli@0.6.9': + resolution: {integrity: sha512-lGxJ48tSzxMD+zwUJ7zPV1tajA1BDpAQQkF2dKoXAupRi5in4xqnzsCSsKY8kZ5nRu6hR1EcP0KdB/JU7JQvWw==} + hasBin: true + + '@eloqnt/sdk@0.6.8': + resolution: {integrity: sha512-HFznFIBioIKqO9lQZvLIp//LN8VqNo5FfryU4biy72+xo0lQbDTo8HPO2UZlyscqhERVNgGbdrHwiYVYH8p9wg==} + '@emnapi/core@1.10.0': resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} @@ -1906,6 +1940,9 @@ packages: '@formatjs/icu-messageformat-parser@3.5.15': resolution: {integrity: sha512-5o4grXKotAB3JqQuisLApHG43g17N+paoRTa92Jiz35Zvfemq0cVf4EDvuxyHAzmsJji7igaEowicLO/VmfJ8Q==} + '@formatjs/icu-messageformat-parser@3.5.16': + resolution: {integrity: sha512-kl6b/4D56gjGZi4ZewSmvXbalHwjOUI5ogEHPZqw42goeXTTrL7/yuPzvdrvr0QigDtvaOeb+UeMf62jks43Yg==} + '@formatjs/icu-skeleton-parser@2.1.11': resolution: {integrity: sha512-j8cUmOJzVgkHuS0QiQ6ga76UIoLOFSAMWhs7aZJztH3aAdCOAE6vpC8KVvFB4cU10ON0y2/5oOVmPJ43s2lTwA==} @@ -4311,6 +4348,9 @@ packages: '@speed-highlight/core@1.2.17': resolution: {integrity: sha512-Z92FwKpCtfaW1V0jTU/fh3QzYEZN8wDwrzRIBoADCJfn4mJCNcJN/XegifX7BDrQ8/h9Xh/JnbyMchL0FqXrkg==} + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + '@storybook/addon-styling-webpack@3.0.2': resolution: {integrity: sha512-u7d5ur+It6XWSwd5yxHN6dTzIfj23as3zHJBf1IfDvi/GWmsW7zrmfsWpRIyBkIhBmdL+oSsTtLLTjuC9HeL8Q==} peerDependencies: @@ -5222,6 +5262,10 @@ packages: vue-router: optional: true + '@vercel/oidc@3.2.0': + resolution: {integrity: sha512-UycprH3T6n3jH0k44NHMa7pnFHGu/N05MjojYr+Mc6I7obkoLIJujSWwin1pCvdy/eOxrI/l3uDLQsmcrOb4ug==} + engines: {node: '>= 20'} + '@vercel/otel@2.1.3': resolution: {integrity: sha512-Ofvzs9qhftRD1YMLuPnhbXjQZG6IKrJ9AmEKmRHRGfoWlV89ed2gAOkvddkFiZDFZJm2rrFNdeZKRVxoCdnWiw==} engines: {node: ^18.19.0 || >=20.6.0} @@ -5320,6 +5364,9 @@ packages: '@webcontainer/env@1.1.1': resolution: {integrity: sha512-6aN99yL695Hi9SuIk1oC88l9o0gmxL1nGWWQ/kNy81HigJ0FoaoTXpytCj6ItzgyCEwA9kF1wixsTuv5cjsgng==} + '@workflow/serde@4.1.0': + resolution: {integrity: sha512-pav4F2BoirECWR7Nf1TKt+2eETcBj7jj4cBefQ8VXQCA6NPkaKeLfj/zMgi+3zYV5ZIBT4GuUiphsj0/b9hPQQ==} + '@xtuc/ieee754@1.2.0': resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} @@ -5357,6 +5404,12 @@ packages: resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} engines: {node: '>= 8.0.0'} + ai@7.0.64: + resolution: {integrity: sha512-29Ufm56e53pRzIPueWzZiwJsgxmZStaBFpwEkVM89sqyIIax/pzDm+ez/ksJ/CcY9UCuYzvCQpE2zkFHICvS3w==} + engines: {node: '>=22'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + ajv-formats@2.1.1: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -5666,6 +5719,9 @@ packages: resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} engines: {node: '>=8'} + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} @@ -5757,6 +5813,10 @@ packages: engines: {node: '>=18'} hasBin: true + consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} + engines: {node: ^14.18.0 || >=16.10.0} + content-disposition@1.0.1: resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==} engines: {node: '>=18'} @@ -6397,6 +6457,10 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} + eventsource-parser@3.1.1: + resolution: {integrity: sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==} + engines: {node: '>=18.0.0'} + execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -6435,9 +6499,18 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-string-truncated-width@3.0.3: + resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==} + + fast-string-width@3.0.2: + resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} + fast-uri@3.1.4: resolution: {integrity: sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==} + fast-wrap-ansi@0.2.2: + resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==} + fast-xml-builder@1.2.0: resolution: {integrity: sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==} @@ -7025,6 +7098,10 @@ packages: is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + is-in-ssh@1.0.0: + resolution: {integrity: sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==} + engines: {node: '>=20'} + is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} @@ -7193,6 +7270,9 @@ packages: json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -7760,6 +7840,9 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + next-intl-swc-plugin-extractor@0.0.0-canary-ada417e: + resolution: {integrity: sha512-o+uoeOwqWIqf6113dtBbXG59up3BUqnJhus/aY3QtD2mYTJjLSEDbt3yT0xjTIEuYkreKAdfp0VNI2L4Bxioiw==} + next-intl-swc-plugin-extractor@4.13.4: resolution: {integrity: sha512-uN1+NMUYbG6YkO3q+rjc2bvAPX9nQ23owemvHJAyW0pRbQjVDwvNhmrV5qaak0oQc/9okbK17KLT49AoMGhVEQ==} @@ -7936,6 +8019,10 @@ packages: resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} engines: {node: '>=18'} + open@11.0.0: + resolution: {integrity: sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==} + engines: {node: '>=20'} + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -8227,6 +8314,10 @@ packages: resolution: {integrity: sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==} engines: {node: ^10 || ^12 || >=14} + powershell-utils@0.1.0: + resolution: {integrity: sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==} + engines: {node: '>=20'} + preact-render-to-string@6.6.7: resolution: {integrity: sha512-3XdbsX3+vn9dQW+jJI/FsI9rlkgl6dbeUpqLsChak6jp3j3auFqBCkno7VChbMFs5Q8ylBj6DrUkKRwtVN3nvw==} peerDependencies: @@ -8890,6 +8981,9 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -9738,6 +9832,10 @@ packages: resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} engines: {node: '>=18'} + wsl-utils@0.3.1: + resolution: {integrity: sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==} + engines: {node: '>=20'} + xml-js@1.6.11: resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} hasBin: true @@ -9823,6 +9921,26 @@ snapshots: '@adobe/css-tools@4.5.0': {} + '@ai-sdk/gateway@4.0.51(zod@4.4.3)': + dependencies: + '@ai-sdk/provider': 4.0.7 + '@ai-sdk/provider-utils': 5.0.27(zod@4.4.3) + '@vercel/oidc': 3.2.0 + zod: 4.4.3 + + '@ai-sdk/provider-utils@5.0.27(zod@4.4.3)': + dependencies: + '@ai-sdk/provider': 4.0.7 + '@standard-schema/spec': 1.1.0 + '@workflow/serde': 4.1.0 + eventsource-parser: 3.1.1 + undici: 7.29.0 + zod: 4.4.3 + + '@ai-sdk/provider@4.0.7': + dependencies: + json-schema: 0.4.0 + '@alloc/quick-lru@5.2.0': {} '@apm-js-collab/code-transformer-bundler-plugins@0.7.1': @@ -10865,6 +10983,18 @@ snapshots: human-id: 4.2.0 prettier: 2.8.8 + '@clack/core@1.4.3': + dependencies: + fast-wrap-ansi: 0.2.2 + sisteransi: 1.0.5 + + '@clack/prompts@1.7.0': + dependencies: + '@clack/core': 1.4.3 + fast-string-width: 3.0.2 + fast-wrap-ansi: 0.2.2 + sisteransi: 1.0.5 + '@cloudflare/kv-asset-handler@0.5.0': {} '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260722.1)': @@ -10947,6 +11077,31 @@ snapshots: dependencies: '@noble/ciphers': 1.3.0 + '@eloqnt/cli@0.6.9': + dependencies: + '@clack/prompts': 1.7.0 + '@eloqnt/sdk': 0.6.8 + citty: 0.1.6 + open: 11.0.0 + picocolors: 1.1.1 + transitivePeerDependencies: + - '@swc/helpers' + + '@eloqnt/sdk@0.6.8': + dependencies: + '@formatjs/icu-messageformat-parser': 3.5.16 + '@swc/core': 1.15.47 + ai: 7.0.64(zod@4.4.3) + jiti: 2.7.0 + magic-string: 0.30.21 + next-intl-swc-plugin-extractor: 0.0.0-canary-ada417e + po-parser: 2.1.1 + tinyglobby: 0.2.17 + yaml: 2.9.0 + zod: 4.4.3 + transitivePeerDependencies: + - '@swc/helpers' + '@emnapi/core@1.10.0': dependencies: '@emnapi/wasi-threads': 1.2.1 @@ -11322,6 +11477,10 @@ snapshots: dependencies: '@formatjs/icu-skeleton-parser': 2.1.11 + '@formatjs/icu-messageformat-parser@3.5.16': + dependencies: + '@formatjs/icu-skeleton-parser': 2.1.11 + '@formatjs/icu-skeleton-parser@2.1.11': {} '@formatjs/intl-localematcher@0.8.13': @@ -13709,6 +13868,8 @@ snapshots: '@speed-highlight/core@1.2.17': {} + '@standard-schema/spec@1.1.0': {} + '@storybook/addon-styling-webpack@3.0.2(storybook@10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8))(webpack@5.109.2(@swc/core@1.15.40)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.25)(uglify-js@3.19.3))': dependencies: storybook: 10.5.4(@types/react@19.2.18)(prettier@3.9.6)(react@19.2.8) @@ -14560,6 +14721,8 @@ snapshots: next: 16.3.0-preview.9(@babel/core@7.29.7(supports-color@10.2.2))(@opentelemetry/api@1.9.1)(@playwright/test@1.62.0)(@types/node@26.1.2)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) react: 19.2.8 + '@vercel/oidc@3.2.0': {} + '@vercel/otel@2.1.3(@opentelemetry/api-logs@0.221.0)(@opentelemetry/api@1.9.1)(@opentelemetry/instrumentation@0.221.0(@opentelemetry/api@1.9.1)(supports-color@10.2.2))(@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-logs@0.221.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-metrics@2.10.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))': dependencies: '@opentelemetry/api': 1.9.1 @@ -14675,6 +14838,8 @@ snapshots: '@webcontainer/env@1.1.1': {} + '@workflow/serde@4.1.0': {} + '@xtuc/ieee754@1.2.0': {} '@xtuc/long@4.2.2': {} @@ -14706,6 +14871,13 @@ snapshots: dependencies: humanize-ms: 1.2.1 + ai@7.0.64(zod@4.4.3): + dependencies: + '@ai-sdk/gateway': 4.0.51(zod@4.4.3) + '@ai-sdk/provider': 4.0.7 + '@ai-sdk/provider-utils': 5.0.27(zod@4.4.3) + zod: 4.4.3 + ajv-formats@2.1.1(ajv@8.20.0): optionalDependencies: ajv: 8.20.0 @@ -15030,6 +15202,10 @@ snapshots: ci-info@4.4.0: {} + citty@0.1.6: + dependencies: + consola: 3.4.2 + cjs-module-lexer@1.4.3: {} cjs-module-lexer@2.2.0: {} @@ -15121,6 +15297,8 @@ snapshots: tree-kill: 1.2.2 yargs: 17.7.2 + consola@3.4.2: {} + content-disposition@1.0.1: {} content-type@1.0.5: {} @@ -15993,6 +16171,8 @@ snapshots: events@3.3.0: {} + eventsource-parser@3.1.1: {} + execa@5.1.1: dependencies: cross-spawn: 7.0.6 @@ -16070,8 +16250,18 @@ snapshots: fast-levenshtein@2.0.6: {} + fast-string-truncated-width@3.0.3: {} + + fast-string-width@3.0.2: + dependencies: + fast-string-truncated-width: 3.0.3 + fast-uri@3.1.4: {} + fast-wrap-ansi@0.2.2: + dependencies: + fast-string-width: 3.0.2 + fast-xml-builder@1.2.0: dependencies: path-expression-matcher: 1.5.0 @@ -16782,6 +16972,8 @@ snapshots: is-hexadecimal@2.0.1: {} + is-in-ssh@1.0.0: {} + is-inside-container@1.0.0: dependencies: is-docker: 3.0.0 @@ -16948,6 +17140,8 @@ snapshots: json-schema-traverse@1.0.0: {} + json-schema@0.4.0: {} + json-stable-stringify-without-jsonify@1.0.1: {} json-stringify-safe@5.0.1: {} @@ -17712,6 +17906,8 @@ snapshots: neo-async@2.6.2: {} + next-intl-swc-plugin-extractor@0.0.0-canary-ada417e: {} + next-intl-swc-plugin-extractor@4.13.4: {} next-intl@4.13.4(next@16.3.0-preview.9(@babel/core@7.29.7(supports-color@10.2.2))(@opentelemetry/api@1.9.1)(@playwright/test@1.62.0)(@types/node@24.10.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)(typescript@5.9.3): @@ -17939,6 +18135,15 @@ snapshots: is-inside-container: 1.0.0 wsl-utils: 0.1.0 + open@11.0.0: + dependencies: + default-browser: 5.5.0 + define-lazy-prop: 3.0.0 + is-in-ssh: 1.0.0 + is-inside-container: 1.0.0 + powershell-utils: 0.1.0 + wsl-utils: 0.3.1 + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -18264,6 +18469,8 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + powershell-utils@0.1.0: {} + preact-render-to-string@6.6.7(preact@10.29.0): dependencies: preact: 10.29.0 @@ -19434,6 +19641,8 @@ snapshots: signal-exit@4.1.0: {} + sisteransi@1.0.5: {} + slash@3.0.0: {} slash@5.1.0: {} @@ -20462,6 +20671,11 @@ snapshots: dependencies: is-wsl: 3.1.1 + wsl-utils@0.3.1: + dependencies: + is-wsl: 3.1.1 + powershell-utils: 0.1.0 + xml-js@1.6.11: dependencies: sax: 1.6.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 160436a8d276d..e6fa204226570 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -21,3 +21,7 @@ catalog: react: ^19.2.8 tailwindcss: ~4.1.17 typescript: 5.9.3 + +minimumReleaseAgeExclude: + - '@eloqnt/cli@0.6.9' + - '@eloqnt/sdk@0.6.8' From 7329aab3b36c5969b6e74c64109d388ff32fadd9 Mon Sep 17 00:00:00 2001 From: Jan Amann Date: Fri, 14 Aug 2026 10:05:35 +0000 Subject: [PATCH 5/9] chore: add changeset for i18n message cleanup --- .changeset/eloqnt-lint-i18n-cleanup.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/eloqnt-lint-i18n-cleanup.md diff --git a/.changeset/eloqnt-lint-i18n-cleanup.md b/.changeset/eloqnt-lint-i18n-cleanup.md new file mode 100644 index 0000000000000..e1d36621a390a --- /dev/null +++ b/.changeset/eloqnt-lint-i18n-cleanup.md @@ -0,0 +1,7 @@ +--- +'@node-core/website-i18n': patch +--- + +Remove unused and superfluous message keys from all locales, and restore +dropped ICU arguments in the Spanish EOL warning and the Traditional Chinese +package-manager notice, as reported by `eloqnt lint`. From f67947d7a4fd7cedb1fe6ca221721ffa73a9ed7c Mon Sep 17 00:00:00 2001 From: Jan Amann Date: Fri, 14 Aug 2026 10:10:37 +0000 Subject: [PATCH 6/9] refactor(i18n): derive eloqnt locales from i18n config, drop ui-components from srcPath MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The locale list now comes from packages/i18n/src/config.json (enabled locales only) instead of being duplicated. 'infer' is not used because it would pick up the disabled ar.json from disk. packages/ui-components does not use next-intl — components receive translated strings as props — and removing it from srcPath leaves the lint result unchanged (verified: 0 errors, 562 warnings). --- .eloqnt/config.ts | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/.eloqnt/config.ts b/.eloqnt/config.ts index 448f11b476dc2..03f8e9e3a3ae5 100644 --- a/.eloqnt/config.ts +++ b/.eloqnt/config.ts @@ -1,25 +1,13 @@ import { defineConfig } from '@eloqnt/cli'; +import localeConfig from '../packages/i18n/src/config.json' with { type: 'json' }; export default defineConfig({ - srcPath: ['./apps/site', './packages/ui-components'], + srcPath: ['./apps/site'], messages: { path: './packages/i18n/src/locales', - locales: [ - 'en', - 'es', - 'fr', - 'id', - 'ja', - 'ko', - 'pt-br', - 'pt', - 'ro', - 'ta', - 'tr', - 'uk', - 'zh-cn', - 'zh-tw', - ], + locales: localeConfig + .filter(locale => locale.enabled) + .map(locale => locale.code), sourceLocale: 'en', format: 'json', }, From 6d81cb38d048ff139d25ae65faa65cee3794119c Mon Sep 17 00:00:00 2001 From: Jan Amann Date: Fri, 14 Aug 2026 10:49:42 +0000 Subject: [PATCH 7/9] chore: replace changeset with an empty one The i18n message cleanup does not need a release; the empty changeset keeps the Changesets CI check satisfied without bumping the package. --- .changeset/eloqnt-lint-i18n-cleanup.md | 7 ------- .changeset/open-boats-work.md | 2 ++ 2 files changed, 2 insertions(+), 7 deletions(-) delete mode 100644 .changeset/eloqnt-lint-i18n-cleanup.md create mode 100644 .changeset/open-boats-work.md diff --git a/.changeset/eloqnt-lint-i18n-cleanup.md b/.changeset/eloqnt-lint-i18n-cleanup.md deleted file mode 100644 index e1d36621a390a..0000000000000 --- a/.changeset/eloqnt-lint-i18n-cleanup.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@node-core/website-i18n': patch ---- - -Remove unused and superfluous message keys from all locales, and restore -dropped ICU arguments in the Spanish EOL warning and the Traditional Chinese -package-manager notice, as reported by `eloqnt lint`. diff --git a/.changeset/open-boats-work.md b/.changeset/open-boats-work.md new file mode 100644 index 0000000000000..a845151cc8400 --- /dev/null +++ b/.changeset/open-boats-work.md @@ -0,0 +1,2 @@ +--- +--- From 7576a58cbb1b68d161b18ce976c81c632ab20eba Mon Sep 17 00:00:00 2001 From: Jan Amann Date: Fri, 14 Aug 2026 10:50:52 +0000 Subject: [PATCH 8/9] feat(i18n): run eloqnt lint in CI quality checks Adds a root lint:i18n script following the same pattern as the root prettier task: the tool spans apps/site and packages/i18n, so it is installed at the workspace root and wired into the Quality checks job via a turbo root task. Also shortens the config comment per review. --- .eloqnt/config.ts | 7 ++----- .github/workflows/lint-and-tests.yml | 2 +- package.json | 1 + turbo.json | 3 +++ 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.eloqnt/config.ts b/.eloqnt/config.ts index 03f8e9e3a3ae5..40d11767bb44a 100644 --- a/.eloqnt/config.ts +++ b/.eloqnt/config.ts @@ -14,11 +14,8 @@ export default defineConfig({ lint: { overrides: [ { - // These keys are built at runtime, so static analysis cannot see - // them being used: labels come from navigation.json and - // constants.json (e.g. t(link.text)), and the remaining keys are - // built from a template with a runtime value, e.g. - // t(`components.eolChip.severity.${severity}`). + // These keys are built at runtime, so static analysis cannot + // see which ones are in use. keys: [ 'components.containers.footer.links.*', 'components.containers.navBar.links.*', diff --git a/.github/workflows/lint-and-tests.yml b/.github/workflows/lint-and-tests.yml index c61cfafcdb3fb..4a8bd6995e4a1 100644 --- a/.github/workflows/lint-and-tests.yml +++ b/.github/workflows/lint-and-tests.yml @@ -73,7 +73,7 @@ jobs: if: | (github.event_name == 'push' || github.event_name == 'merge_group') || (github.event_name == 'pull_request' && github.event.pull_request.head.ref != 'chore/crowdin') - run: node_modules/.bin/turbo lint lint:types prettier --cache-dir=.turbo/cache + run: node_modules/.bin/turbo lint lint:types prettier //#lint:i18n --cache-dir=.turbo/cache - name: Save Lint Cache # We only want to save caches on `push` events or `pull_request_target` events diff --git a/package.json b/package.json index 20053bf977bc7..f4b4c47ead115 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "format": "turbo //#prettier:fix prettier:fix lint:fix", "lint": "turbo lint", "lint:fix": "turbo lint:fix", + "lint:i18n": "eloqnt lint", "lint:staged": "lint-staged", "lint:types": "turbo lint:types", "prepare": "husky", diff --git a/turbo.json b/turbo.json index a005c9caccc9e..69b12945fc36b 100644 --- a/turbo.json +++ b/turbo.json @@ -2,6 +2,9 @@ "$schema": "https://turbo.build/schema.json", "dangerouslyDisablePackageManagerCheck": true, "tasks": { + "//#lint:i18n": { + "inputs": [".eloqnt/**", "apps/site/**", "packages/i18n/src/**"] + }, "//#prettier": { "outputs": [".prettiercache"] }, From db0b4dbf26d9f6fd4b1334aaafa518ec6f4b4b90 Mon Sep 17 00:00:00 2001 From: Jan Amann Date: Fri, 14 Aug 2026 13:10:57 +0200 Subject: [PATCH 9/9] wip --- .changeset/eloqnt-lint-i18n-cleanup.md | 7 +++++++ .changeset/open-boats-work.md | 2 -- .eloqnt/config.ts | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 .changeset/eloqnt-lint-i18n-cleanup.md delete mode 100644 .changeset/open-boats-work.md diff --git a/.changeset/eloqnt-lint-i18n-cleanup.md b/.changeset/eloqnt-lint-i18n-cleanup.md new file mode 100644 index 0000000000000..e1d36621a390a --- /dev/null +++ b/.changeset/eloqnt-lint-i18n-cleanup.md @@ -0,0 +1,7 @@ +--- +'@node-core/website-i18n': patch +--- + +Remove unused and superfluous message keys from all locales, and restore +dropped ICU arguments in the Spanish EOL warning and the Traditional Chinese +package-manager notice, as reported by `eloqnt lint`. diff --git a/.changeset/open-boats-work.md b/.changeset/open-boats-work.md deleted file mode 100644 index a845151cc8400..0000000000000 --- a/.changeset/open-boats-work.md +++ /dev/null @@ -1,2 +0,0 @@ ---- ---- diff --git a/.eloqnt/config.ts b/.eloqnt/config.ts index 40d11767bb44a..1cd9ffc516af0 100644 --- a/.eloqnt/config.ts +++ b/.eloqnt/config.ts @@ -1,4 +1,5 @@ import { defineConfig } from '@eloqnt/cli'; + import localeConfig from '../packages/i18n/src/config.json' with { type: 'json' }; export default defineConfig({