From bcf75f63815eedfcc0c66393a1d0dc8ee578932d Mon Sep 17 00:00:00 2001 From: Hamed Mohamed Date: Mon, 2 Feb 2026 02:15:58 +0300 Subject: [PATCH 1/3] feat(i18n): add Arabic and Turkish languages --- i18n/arabic.js | 239 ++++++++++++++++++++++++++++++++++++++++++++++++ i18n/turkish.js | 239 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 478 insertions(+) create mode 100644 i18n/arabic.js create mode 100644 i18n/turkish.js diff --git a/i18n/arabic.js b/i18n/arabic.js new file mode 100644 index 00000000..ae10587b --- /dev/null +++ b/i18n/arabic.js @@ -0,0 +1,239 @@ +/* eslint-disable @stylistic/max-len */ + +// Import Third-party Dependencies +import { taggedString as tS } from "@nodesecure/i18n"; + +const cli = { + executing_at: "تنفيذ node-secure في", + min_nodejs_version: tS`يتطلب node-secure على الأقل Node.js ${0} للعمل! يرجى ترقية إصدار Node.js الخاص بك.`, + no_dep_to_proceed: "لا توجد تبعيات للمتابعة!", + successfully_written_json: tS`تم كتابة ملف النتائج بنجاح في: ${0}`, + http_server_started: "تم تشغيل خادم HTTP على:", + missingEnv: tS`متغير البيئة ${0} مفقود!`, + commands: { + option_depth: "أقصى عمق للتبعيات لجلبه", + option_output: "اسم ملف JSON الناتج", + option_silent: "تفعيل الوضع الصامت الذي يعطل مؤشرات CLI", + option_contacts: "قائمة جهات الاتصال للتمييز", + strategy: "مصدر الثغرات للاستخدام", + cwd: { + desc: "تشغيل تحليل الأمان على دليل العمل الحالي", + option_nolock: "تعطيل استخدام package-lock.json", + option_full: "تفعيل التحليل الكامل للحزم في ملف package-lock.json" + }, + from: { + desc: "تشغيل تحليل الأمان على حزمة معينة من سجل npm", + searching: tS`جاري البحث عن بيان '${0}' في سجل npm...`, + fetched: tS`تم جلب بيان ${0} من npm في ${1}` + }, + auto: { + desc: "تشغيل تحليل الأمان على دليل العمل الحالي أو حزمة معينة وفتح واجهة الويب تلقائياً", + option_keep: "الاحتفاظ بملف nsecure-result.json على النظام بعد التنفيذ" + }, + open: { + desc: "تشغيل خادم HTTP مع ملف JSON nsecure معين", + option_port: "تحديد المنفذ", + option_fresh_start: "تشغيل الخادم من الصفر، متجاهلاً أي ملف حمولة موجود", + option_developer: "تشغيل الخادم في وضع المطور، مما يتيح التحديث التلقائي لمكونات HTML" + }, + verify: { + desc: "تشغيل تحليل متقدم كامل لحزمة npm معينة", + option_json: "إخراج حمولة التحليل إلى stdout" + }, + summary: { + desc: "عرض نتائج التحليل", + warnings: "التحذيرات" + }, + lang: { + desc: "تكوين اللغة الافتراضية لـ CLI", + question_text: "ما اللغة التي تريد استخدامها؟", + new_selection: tS`تم اختيار '${0}' كلغة جديدة لـ CLI!` + }, + scorecard: { + desc: "عرض بطاقة أداء OSSF لمستودع معين أو دليل العمل الحالي (GitHub فقط، مثال: fastify/fastify)", + option_vcs: "منصة التحكم في الإصدار (GitHub، GitLab)" + }, + report: { + desc: "إنشاء تقرير من حزمة", + option_includesAllDeps: "تضمين جميع التبعيات", + option_theme: "سمة التقرير ('dark'، 'light')", + option_title: "عنوان التقرير", + option_reporters: "قائمة المراسلين للاستخدام: 'html'، 'pdf'" + }, + config: { + desc: "تحرير ملف تكوين NodeSecure" + }, + configCreate: { + desc: "تهيئة ملف تكوين NodeSecure", + option_cwd: "إنشاء ملف التكوين في دليل العمل الحالي" + }, + cache: { + desc: "إدارة ذاكرة التخزين المؤقت لـ NodeSecure", + missingAction: "لم يتم تحديد إجراء صالح. استخدم --help لرؤية الخيارات.", + option_list: "عرض ملفات ذاكرة التخزين المؤقت", + option_clear: "مسح ذاكرة التخزين المؤقت", + option_full: "مسح أو عرض ذاكرة التخزين المؤقت الكاملة، بما في ذلك الحمولات", + cacheTitle: "ذاكرة التخزين المؤقت لـ NodeSecure:", + scannedPayloadsTitle: "الحمولات الممسوحة المتاحة على القرص:", + cleared: "تم مسح ذاكرة التخزين المؤقت بنجاح!" + }, + extractIntegrity: { + desc: "استخراج سلامة حزمة من بيانها وملف tarball ومقارنة السلامتين إذا كانتا مختلفتين.", + missingSpecVersion: tS`يجب تحديد إصدار لحزمة '${0}'.`, + invalidSpec: tS`مواصفات الحزمة '${0}' غير صالحة.`, + specNotFound: tS`لم يتم العثور على مواصفات الحزمة '${0}' في سجل npm.` + } + }, + startHttp: { + invalidScannerVersion: tS`تم فحص الحمولة بالإصدار '${0}' ولا تلبي نطاق CLI المطلوب '${1}'`, + regenerate: "يرجى إعادة إنشاء حمولة JSON جديدة باستخدام CLI" + } +}; + +const ui = { + stats: { + title: "الإحصائيات العامة", + total_packages: "إجمالي الحزم", + total_size: "الحجم الإجمالي", + indirect_deps: "الحزم ذات التبعيات غير المباشرة", + extensions: "الامتدادات", + licenses: "التراخيص", + maintainers: "المشرفون" + }, + package_info: { + navigation: { + overview: "نظرة عامة", + files: "الملفات", + dependencies: "البرامج النصية والتبعيات", + warnings: "التهديدات في الكود المصدري", + vulnerabilities: "الثغرات الأمنية (CVE)", + licenses: "مطابقة التراخيص (SPDX)", + dark: "داكن", + light: "فاتح" + }, + title: { + maintainers: "المشرفون", + releases: "الإصدارات", + files: "الملفات", + files_extensions: "امتدادات الملفات", + unused_deps: "التبعيات غير المستخدمة", + missing_deps: "التبعيات المفقودة", + minified_files: "الملفات المضغوطة", + node_deps: "تبعيات node.js", + third_party_deps: "تبعيات الطرف الثالث", + required_files: "الملفات المطلوبة", + used_by: "مستخدم بواسطة", + openSsfScorecard: "بطاقة أداء الأمان" + }, + overview: { + homepage: "الصفحة الرئيسية", + author: "المؤلف", + size: "الحجم على النظام", + dependencies: "عدد التبعيات", + files: "عدد الملفات", + tsTypings: "تعريفات TS", + node: "توافق Node.js", + npm: "توافق NPM", + type: "نوع الوحدة", + lastReleaseVersion: "إصدار آخر إصدار", + lastReleaseDate: "تاريخ آخر إصدار", + publishedReleases: "عدد الإصدارات المنشورة", + numberPublishers: "عدد الناشرين", + weeklyDownloads: "التنزيلات الأسبوعية", + weeklyTraffic: "حركة المرور الأسبوعية", + downloadsAndTraffic: "التنزيلات وحركة المرور" + }, + helpers: { + warnings: "تعرف على المزيد حول التحذيرات في", + spdx: "تعرف على المزيد حول مشروع SPDX", + here: "هنا", + openSsf: "تعرف على المزيد حول بطاقات أداء OpenSSF", + thirdPartyTools: "أدوات الطرف الثالث" + } + }, + searchbar_placeholder: "بحث", + loading_nodes: "... جاري تحميل العقد ...", + please_wait: "(يرجى الانتظار)", + popup: { + maintainer: { + intree: "حزم في شجرة التبعيات" + }, + report: { + title: "إنشاء تقرير", + form: { + title: "عنوان التقرير", + includesAllDeps: "تضمين جميع التبعيات", + dark_theme: "السمة الداكنة", + light_theme: "السمة الفاتحة", + submit: "إنشاء" + } + } + }, + home: { + overview: { + title: "نظرة عامة", + dependencies: "التبعيات", + totalSize: "الحجم الإجمالي", + directDeps: "التبعيات المباشرة", + transitiveDeps: "التبعيات المتعدية", + downloadsLastWeek: "التنزيلات الأسبوع الماضي", + generateReport: "إنشاء تقرير" + }, + watch: "الحزم في شجرة التبعيات التي تتطلب اهتماماً أكبر", + criticalWarnings: "التحذيرات الحرجة", + moduleTypes: "أنواع الوحدات", + maintainers: "المشرفون", + showMore: "عرض المزيد", + showLess: "عرض أقل" + }, + settings: { + general: { + title: "عام", + save: "حفظ", + defaultPannel: "قائمة الحزمة الافتراضية", + themePannel: "سمة الواجهة", + warnings: "تحذيرات SAST للتجاهل", + flags: "الأعلام (الرموز التعبيرية) للتجاهل", + network: "الشبكة", + showFriendly: "عرض التبعيات الودية", + security: "الأمان", + disableExternalRequests: "تعطيل الطلبات الخارجية" + }, + shortcuts: { + title: "اختصارات لوحة المفاتيح", + blockquote: "انقر على مفتاح الاختصار للتحديث", + goto: "انتقال إلى", + openCloseWiki: "فتح/إغلاق الويكي", + lock: "قفل/فتح قفل الشبكة" + } + }, + network: { + childOf: "ابن", + parentOf: "أب", + unlocked: "غير مقفل", + locked: "مقفل" + }, + search: { + "File extensions": "امتدادات الملفات", + "Node.js core modules": "وحدات Node.js الأساسية", + "Available licenses": "التراخيص المتاحة", + "Available flags": "الأعلام المتاحة", + default: "خيارات البحث", + recentPackages: "الحزم الأخيرة", + packagesCache: "الحزم المتاحة في ذاكرة التخزين المؤقت", + noPackageFound: "لم يتم العثور على حزمة", + packageLengthErr: "يجب أن يكون اسم الحزمة بين 2 و 64 حرفاً.", + registryPlaceholder: "البحث عن الحزم" + }, + legend: { + default: "الحزمة بخير.", + warn: "الحزمة بها تحذيرات.", + friendly: "الحزمة تتم صيانتها بواسطة نفس مؤلفي الحزمة الجذرية." + }, + lockedNavigation: { + next: "التالي", + prev: "السابق" + } +}; + +export default { cli, ui }; \ No newline at end of file diff --git a/i18n/turkish.js b/i18n/turkish.js new file mode 100644 index 00000000..58ce754e --- /dev/null +++ b/i18n/turkish.js @@ -0,0 +1,239 @@ +/* eslint-disable @stylistic/max-len */ + +// Import Third-party Dependencies +import { taggedString as tS } from "@nodesecure/i18n"; + +const cli = { + executing_at: "node-secure çalıştırılıyor", + min_nodejs_version: tS`node-secure çalışması için en az Node.js ${0} gereklidir! Lütfen Node.js sürümünüzü yükseltin.`, + no_dep_to_proceed: "İşlenecek bağımlılık yok!", + successfully_written_json: tS`Sonuç dosyası başarıyla yazıldı: ${0}`, + http_server_started: "HTTP Sunucusu başlatıldı:", + missingEnv: tS`${0} ortam değişkeni eksik!`, + commands: { + option_depth: "Getirilecek maksimum bağımlılık derinliği", + option_output: "JSON dosyası çıktı adı", + option_silent: "CLI döndürücülerini devre dışı bırakan sessiz modu etkinleştir", + option_contacts: "Vurgulanacak kişilerin listesi", + strategy: "Kullanılacak güvenlik açığı kaynağı", + cwd: { + desc: "Geçerli çalışma dizininde güvenlik analizi çalıştır", + option_nolock: "package-lock.json kullanımını devre dışı bırak", + option_full: "package-lock.json dosyasındaki paketlerin tam analizini etkinleştir" + }, + from: { + desc: "npm kayıt defterinden belirli bir paket üzerinde güvenlik analizi çalıştır", + searching: tS`npm kayıt defterinde '${0}' bildirimi aranıyor...`, + fetched: tS`${0} bildirimi npm'den ${1} sürede alındı` + }, + auto: { + desc: "Geçerli çalışma dizini veya belirli bir paket üzerinde güvenlik analizi çalıştır ve web arayüzünü otomatik olarak aç", + option_keep: "Çalıştırmadan sonra nsecure-result.json dosyasını sistemde tut" + }, + open: { + desc: "Belirli bir nsecure JSON dosyasıyla HTTP Sunucusu çalıştır", + option_port: "Çalışma portunu tanımla", + option_fresh_start: "Mevcut yük dosyasını yok sayarak sunucuyu sıfırdan başlat", + option_developer: "Otomatik HTML bileşen yenilemesini etkinleştirerek sunucuyu geliştirici modunda başlat" + }, + verify: { + desc: "Belirli bir npm paketi için kapsamlı gelişmiş analiz çalıştır", + option_json: "Analiz yükünü stdout'a yaz" + }, + summary: { + desc: "Analiz sonuçlarınızı görüntüleyin", + warnings: "Uyarılar" + }, + lang: { + desc: "CLI varsayılan dilini yapılandır", + question_text: "Hangi dili kullanmak istiyorsunuz?", + new_selection: tS`'${0}' yeni CLI dili olarak seçildi!` + }, + scorecard: { + desc: "Belirli bir depo veya geçerli çalışma dizini için OSSF Puan Kartını görüntüle (Yalnızca GitHub, örn. fastify/fastify)", + option_vcs: "Sürüm kontrol platformu (GitHub, GitLab)" + }, + report: { + desc: "Bir paketten rapor oluştur", + option_includesAllDeps: "Tüm bağımlılıkları dahil et", + option_theme: "Rapor teması ('dark', 'light')", + option_title: "Rapor başlığı", + option_reporters: "Kullanılacak raporlayıcıların listesi: 'html', 'pdf'" + }, + config: { + desc: "NodeSecure yapılandırma dosyanızı düzenleyin" + }, + configCreate: { + desc: "NodeSecure yapılandırma dosyanızı başlatın", + option_cwd: "Yapılandırma dosyasını geçerli çalışma dizininde oluştur" + }, + cache: { + desc: "NodeSecure önbelleğini yönet", + missingAction: "Geçerli bir işlem belirtilmedi. Seçenekleri görmek için --help kullanın.", + option_list: "Önbellek dosyalarını listele", + option_clear: "Önbelleği temizle", + option_full: "Yükler dahil tam önbelleği temizle veya listele", + cacheTitle: "NodeSecure Önbelleği:", + scannedPayloadsTitle: "Diskte mevcut taranan yükler:", + cleared: "Önbellek başarıyla temizlendi!" + }, + extractIntegrity: { + desc: "Bir paketin bildiriminden ve tarball'ından bütünlüğünü çıkar ve farklıysa iki bütünlüğü karşılaştır.", + missingSpecVersion: tS`'${0}' paketi için bir sürüm belirtmelisiniz.`, + invalidSpec: tS`'${0}' paket özelliği geçersiz.`, + specNotFound: tS`'${0}' paket özelliği npm kayıt defterinde bulunamadı.` + } + }, + startHttp: { + invalidScannerVersion: tS`yük '${0}' sürümüyle tarandı ve gerekli CLI aralığı '${1}' karşılamıyor`, + regenerate: "lütfen CLI kullanarak yeni bir JSON yükü oluşturun" + } +}; + +const ui = { + stats: { + title: "Genel İstatistikler", + total_packages: "Toplam paket sayısı", + total_size: "Toplam boyut", + indirect_deps: "Dolaylı bağımlılıkları olan paketler", + extensions: "Uzantılar", + licenses: "Lisanslar", + maintainers: "Bakımcılar" + }, + package_info: { + navigation: { + overview: "genel bakış", + files: "dosyalar", + dependencies: "betikler ve bağımlılıklar", + warnings: "kaynak kodundaki tehditler", + vulnerabilities: "güvenlik açıkları (CVE)", + licenses: "lisans uyumluluğu (SPDX)", + dark: "koyu", + light: "açık" + }, + title: { + maintainers: "bakımcılar", + releases: "sürümler", + files: "dosyalar", + files_extensions: "dosya uzantıları", + unused_deps: "kullanılmayan bağımlılıklar", + missing_deps: "eksik bağımlılıklar", + minified_files: "küçültülmüş dosyalar", + node_deps: "node.js bağımlılıkları", + third_party_deps: "üçüncü taraf bağımlılıklar", + required_files: "gerekli dosyalar", + used_by: "kullanan", + openSsfScorecard: "Güvenlik Puan Kartı" + }, + overview: { + homepage: "Ana Sayfa", + author: "Yazar", + size: "Sistemdeki boyut", + dependencies: "Bağımlılık sayısı", + files: "Dosya sayısı", + tsTypings: "TS Tipleri", + node: "Node.js Uyumluluğu", + npm: "NPM Uyumluluğu", + type: "Modül tipi", + lastReleaseVersion: "Son sürüm versiyonu", + lastReleaseDate: "Son sürüm tarihi", + publishedReleases: "Yayınlanan sürüm sayısı", + numberPublishers: "Yayıncı sayısı", + weeklyDownloads: "Haftalık indirmeler", + weeklyTraffic: "Haftalık trafik", + downloadsAndTraffic: "İndirmeler ve trafik" + }, + helpers: { + warnings: "Uyarılar hakkında daha fazla bilgi edinin", + spdx: "SPDX projesi hakkında daha fazla bilgi edinin", + here: "burada", + openSsf: "OpenSSF Puan Kartları hakkında daha fazla bilgi edinin", + thirdPartyTools: "Üçüncü taraf araçlar" + } + }, + searchbar_placeholder: "Ara", + loading_nodes: "... Düğümler yükleniyor ...", + please_wait: "(Lütfen bekleyin)", + popup: { + maintainer: { + intree: "bağımlılık ağacındaki paketler" + }, + report: { + title: "Rapor oluştur", + form: { + title: "Rapor başlığı", + includesAllDeps: "Tüm bağımlılıkları dahil et", + dark_theme: "Koyu tema", + light_theme: "Açık tema", + submit: "Oluştur" + } + } + }, + home: { + overview: { + title: "Genel Bakış", + dependencies: "bağımlılıklar", + totalSize: "toplam boyut", + directDeps: "doğrudan bağımlılıklar", + transitiveDeps: "geçişli bağımlılıklar", + downloadsLastWeek: "geçen hafta indirmeler", + generateReport: "Rapor oluştur" + }, + watch: "Bağımlılık ağacında daha fazla dikkat gerektiren paketler", + criticalWarnings: "Kritik Uyarılar", + moduleTypes: "Modül Tipleri", + maintainers: "Bakımcılar", + showMore: "daha fazla göster", + showLess: "daha az göster" + }, + settings: { + general: { + title: "Genel", + save: "kaydet", + defaultPannel: "Varsayılan Paket Menüsü", + themePannel: "Arayüz teması", + warnings: "Yok sayılacak SAST Uyarıları", + flags: "Yok sayılacak Bayraklar (emojiler)", + network: "Ağ", + showFriendly: "Dost bağımlılıkları göster", + security: "Güvenlik", + disableExternalRequests: "Harici istekleri devre dışı bırak" + }, + shortcuts: { + title: "Kısayollar", + blockquote: "Güncellemek için kısayol tuşuna tıklayın", + goto: "Git", + openCloseWiki: "Wiki'yi aç/kapat", + lock: "Ağı kilitle/kilidini aç" + } + }, + network: { + childOf: "alt öğesi", + parentOf: "üst öğesi", + unlocked: "kilitsiz", + locked: "kilitli" + }, + search: { + "File extensions": "Dosya uzantıları", + "Node.js core modules": "Node.js çekirdek modülleri", + "Available licenses": "Mevcut lisanslar", + "Available flags": "Mevcut bayraklar", + default: "Arama seçenekleri", + recentPackages: "Son paketler", + packagesCache: "Önbellekte mevcut paketler", + noPackageFound: "Paket bulunamadı", + packageLengthErr: "Paket adı 2 ile 64 karakter arasında olmalıdır.", + registryPlaceholder: "Paket ara" + }, + legend: { + default: "Paket sorunsuz.", + warn: "Pakette uyarılar var.", + friendly: "Paket, kök paketin yazarlarıyla aynı kişiler tarafından bakılmaktadır." + }, + lockedNavigation: { + next: "Sonraki", + prev: "Önceki" + } +}; + +export default { cli, ui }; \ No newline at end of file From ea355b7f0d4243faf36d71ff66fba7c831bd4041 Mon Sep 17 00:00:00 2001 From: Hamed Mohamed Date: Mon, 2 Feb 2026 15:20:57 +0300 Subject: [PATCH 2/3] Update arabic.js --- i18n/arabic.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/arabic.js b/i18n/arabic.js index ae10587b..532e70ac 100644 --- a/i18n/arabic.js +++ b/i18n/arabic.js @@ -236,4 +236,4 @@ const ui = { } }; -export default { cli, ui }; \ No newline at end of file +export default { cli, ui }; From 48188f50cb600b5444bd0ec428f71ab7bb2214ff Mon Sep 17 00:00:00 2001 From: Hamed Mohamed Date: Mon, 2 Feb 2026 15:21:42 +0300 Subject: [PATCH 3/3] Update turkish.js --- i18n/turkish.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/turkish.js b/i18n/turkish.js index 58ce754e..fadb9aaa 100644 --- a/i18n/turkish.js +++ b/i18n/turkish.js @@ -236,4 +236,4 @@ const ui = { } }; -export default { cli, ui }; \ No newline at end of file +export default { cli, ui };