[READ-ONLY] a fast, modern browser for the npm registry
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: arabic i18n (#274)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe <daniel@roe.dev>

authored by

Houssam Elbadissi
autofix-ci[bot]
Daniel Roe
and committed by
GitHub
0805720c 6378beec

+1535 -62
+7 -1
app/components/PackageVersions.vue
··· 508 508 <span class="text-xs text-fg-muted py-1.5"> 509 509 {{ $t('package.versions.other_versions') }} 510 510 <span v-if="hiddenTagRows.length > 0" class="text-fg-subtle"> 511 - ({{ $t('package.versions.more_tagged', { count: hiddenTagRows.length }) }}) 511 + ({{ 512 + $t( 513 + 'package.versions.more_tagged', 514 + { count: hiddenTagRows.length }, 515 + hiddenTagRows.length, 516 + ) 517 + }}) 512 518 </span> 513 519 </span> 514 520 </button>
+7 -1
app/pages/search.vue
··· 886 886 role="status" 887 887 class="text-fg-muted text-sm mt-4 font-mono" 888 888 > 889 - {{ $t('search.found_packages', { count: formatNumber(visibleResults.total) }) }} 889 + {{ 890 + $t( 891 + 'search.found_packages', 892 + { count: formatNumber(visibleResults.total) }, 893 + visibleResults.total, 894 + ) 895 + }} 890 896 <span v-if="status === 'pending'" class="text-fg-subtle">{{ 891 897 $t('search.updating') 892 898 }}</span>
+57 -58
config/i18n.ts
··· 13 13 } 14 14 15 15 export const countryLocaleVariants: Record<string, (LocaleObjectData & { country?: boolean })[]> = { 16 - /*ar: [ 17 - // ar.json contains ar-EG translations 18 - // { code: 'ar-DZ', name: 'Arabic (Algeria)' }, 19 - // { code: 'ar-BH', name: 'Arabic (Bahrain)' }, 20 - { country: true, code: 'ar-EG', name: 'العربية' }, 21 - // { code: 'ar-EG', name: 'Arabic (Egypt)' }, 22 - // { code: 'ar-IQ', name: 'Arabic (Iraq)' }, 23 - // { code: 'ar-JO', name: 'Arabic (Jordan)' }, 24 - // { code: 'ar-KW', name: 'Arabic (Kuwait)' }, 25 - // { code: 'ar-LB', name: 'Arabic (Lebanon)' }, 26 - // { code: 'ar-LY', name: 'Arabic (Libya)' }, 27 - // { code: 'ar-MA', name: 'Arabic (Morocco)' }, 28 - // { code: 'ar-OM', name: 'Arabic (Oman)' }, 29 - // { code: 'ar-QA', name: 'Arabic (Qatar)' }, 30 - // { code: 'ar-SA', name: 'Arabic (Saudi Arabia)' }, 31 - // { code: 'ar-SY', name: 'Arabic (Syria)' }, 32 - // { code: 'ar-TN', name: 'Arabic (Tunisia)' }, 33 - // { code: 'ar-AE', name: 'Arabic (U.A.E.)' }, 34 - // { code: 'ar-YE', name: 'Arabic (Yemen)' }, 35 - ],*/ 16 + ar: [ 17 + // ar.json contains ar-EG translations 18 + // { code: 'ar-DZ', name: 'Arabic (Algeria)' }, 19 + // { code: 'ar-BH', name: 'Arabic (Bahrain)' }, 20 + { country: true, code: 'ar-EG', name: 'العربية' }, 21 + // { code: 'ar-EG', name: 'Arabic (Egypt)' }, 22 + // { code: 'ar-IQ', name: 'Arabic (Iraq)' }, 23 + // { code: 'ar-JO', name: 'Arabic (Jordan)' }, 24 + // { code: 'ar-KW', name: 'Arabic (Kuwait)' }, 25 + // { code: 'ar-LB', name: 'Arabic (Lebanon)' }, 26 + // { code: 'ar-LY', name: 'Arabic (Libya)' }, 27 + // { code: 'ar-MA', name: 'Arabic (Morocco)' }, 28 + // { code: 'ar-OM', name: 'Arabic (Oman)' }, 29 + // { code: 'ar-QA', name: 'Arabic (Qatar)' }, 30 + // { code: 'ar-SA', name: 'Arabic (Saudi Arabia)' }, 31 + // { code: 'ar-SY', name: 'Arabic (Syria)' }, 32 + // { code: 'ar-TN', name: 'Arabic (Tunisia)' }, 33 + // { code: 'ar-AE', name: 'Arabic (U.A.E.)' }, 34 + // { code: 'ar-YE', name: 'Arabic (Yemen)' }, 35 + ], 36 36 en: [ 37 37 // en.json contains en-US translations 38 38 { country: true, code: 'en-US', name: 'English (US)' }, ··· 84 84 file: 'en.json', 85 85 name: 'English', 86 86 }, 87 + { 88 + code: 'ar-EG', 89 + file: 'ar.json', 90 + name: 'العربية', 91 + dir: 'rtl', 92 + pluralRule: (choice: number) => { 93 + const name = new Intl.PluralRules('ar-EG').select(choice) 94 + return { zero: 0, one: 1, two: 2, few: 3, many: 4, other: 5 }[name] 95 + }, 96 + } satisfies LocaleObjectData, 87 97 /*{ 88 - code: 'ar', 89 - file: 'ar.json', 90 - name: 'العربية', 91 - dir: 'rtl', 92 - pluralRule: (choice: number) => { 93 - const name = new Intl.PluralRules('ar-EG').select(choice) 94 - return { zero: 0, one: 1, two: 2, few: 3, many: 4, other: 5 }[name] 95 - }, 96 - } satisfies LocaleObjectData, 97 - { 98 - code: 'ckb', 99 - file: 'ckb.json', 100 - name: 'کوردیی ناوەندی', 101 - dir: 'rtl', 102 - pluralRule: (choice: number) => { 103 - const name = new Intl.PluralRules('ckb').select(choice) 104 - return { zero: 0, one: 1, two: 2, few: 3, many: 4, other: 5 }[name] 105 - }, 106 - } satisfies LocaleObjectData, 107 - { 108 - code: 'fa-IR', 109 - file: 'fa-IR.json', 110 - name: 'فارسی', 111 - dir: 'rtl', 112 - pluralRule: (choice: number) => { 113 - const name = new Intl.PluralRules('fa-IR').select(choice) 114 - return { zero: 0, one: 1, two: 2, few: 3, many: 4, other: 5 }[name] 115 - }, 116 - } satisfies LocaleObjectData, 117 - { 118 - code: 'ca', 119 - file: 'ca.json', 120 - name: 'Català', 98 + code: 'ckb', 99 + file: 'ckb.json', 100 + name: 'کوردیی ناوەندی', 101 + dir: 'rtl', 102 + pluralRule: (choice: number) => { 103 + const name = new Intl.PluralRules('ckb').select(choice) 104 + return { zero: 0, one: 1, two: 2, few: 3, many: 4, other: 5 }[name] 121 105 }, 122 - { 123 - code: 'el-GR', 124 - file: 'el-GR.json', 125 - name: 'Ελληνικά', 106 + } satisfies LocaleObjectData, 107 + { 108 + code: 'fa-IR', 109 + file: 'fa-IR.json', 110 + name: 'فارسی', 111 + dir: 'rtl', 112 + pluralRule: (choice: number) => { 113 + const name = new Intl.PluralRules('fa-IR').select(choice) 114 + return { zero: 0, one: 1, two: 2, few: 3, many: 4, other: 5 }[name] 126 115 }, 127 - */ 116 + } satisfies LocaleObjectData, 117 + { 118 + code: 'ca', 119 + file: 'ca.json', 120 + name: 'Català', 121 + }, 122 + { 123 + code: 'el-GR', 124 + file: 'el-GR.json', 125 + name: 'Ελληνικά', 126 + },*/ 128 127 { 129 128 code: 'de-DE', 130 129 file: 'de-DE.json',
+1
i18n/locales/ar-EG.json
··· 1 + {}
+728
i18n/locales/ar.json
··· 1 + { 2 + "seo": { 3 + "home": { 4 + "title": "npmx - متصفح الحزم لسجل npm", 5 + "description": "متصفح أفضل لسجل npm. ابحث عن الحزم واستعرضها واستكشفها عبر واجهة حديثة." 6 + } 7 + }, 8 + "tagline": "متصفح أفضل لسجل npm", 9 + "non_affiliation_disclaimer": "غير مرتبط بشركة npm, Inc.", 10 + "trademark_disclaimer": "npm علامة تجارية مسجلة لشركة npm, Inc. هذا الموقع غير مرتبط بشركة npm, Inc.", 11 + "footer": { 12 + "about": "حول", 13 + "docs": "التوثيق", 14 + "source": "المصدر", 15 + "social": "اجتماعي", 16 + "chat": "الدردشة" 17 + }, 18 + "search": { 19 + "label": "ابحث عن حزم npm", 20 + "placeholder": "ابحث عن الحزم...", 21 + "button": "بحث", 22 + "clear": "مسح البحث", 23 + "searching": "جارٍ البحث...", 24 + "found_packages": "تم العثور على {count} حزمة | تم العثور على حزمة واحدة | تم العثور على حزمتين | تم العثور على {count} حزم | تم العثور على {count} حزمة | تم العثور على {count} حزمة", 25 + "updating": "(جارٍ التحديث...)", 26 + "no_results": "لم يتم العثور على حزم لـ \"{query}\"", 27 + "results": "نتائج البحث", 28 + "not_taken": "الاسم {name} غير مأخوذ", 29 + "claim_prompt": "احجز اسم هذه الحزمة على npm", 30 + "claim_button": "احجز \"{name}\"", 31 + "want_to_claim": "هل تريد حجز اسم هذه الحزمة؟", 32 + "start_typing": "ابدأ الكتابة للبحث عن الحزم", 33 + "exact_match": "مطابقة تامة", 34 + "suggestion": { 35 + "user": "مستخدم", 36 + "org": "مؤسسة", 37 + "view_user_packages": "عرض حزم هذا المستخدم", 38 + "view_org_packages": "عرض حزم هذه المؤسسة" 39 + } 40 + }, 41 + "nav": { 42 + "main_navigation": "الصفحة الرئيسية", 43 + "popular_packages": "الحزم الشائعة", 44 + "search": "بحث", 45 + "settings": "الإعدادات", 46 + "back": "عودة" 47 + }, 48 + "settings": { 49 + "title": "الإعدادات", 50 + "tagline": "تخصيص تجربتك على npmx", 51 + "meta_description": "قم بتخصيص تجربتك على npmx من خلال إعدادات مثل السمة، اللغة، وتفضيلات العرض.", 52 + "sections": { 53 + "appearance": "المظهر", 54 + "display": "العرض", 55 + "language": "اللغة" 56 + }, 57 + "relative_dates": "تواريخ نسبية", 58 + "relative_dates_description": "عرض التواريخ مثل \"منذ 3 أيام\" بدلًا من التاريخ كاملا.", 59 + "include_types": "تضمين {'@'}types في التثبيت", 60 + "include_types_description": "إضافة حزمة {'@'}types إلى أوامر التثبيت للحزم غير المرفقة بأنواع TypeScript.", 61 + "hide_platform_packages": "إخفاء الحزم الخاصة بالمنصة في البحث", 62 + "hide_platform_packages_description": "إخفاء الحزم الـ binary native مثل {'@'}esbuild/linux-x64 من النتائج", 63 + "theme": "السمة", 64 + "theme_light": "فاتحة", 65 + "theme_dark": "داكنة", 66 + "theme_system": "سمة النظام", 67 + "language": "اللغة", 68 + "help_translate": "ساهم في ترجمة npmx", 69 + "accent_colors": "ألوان الموقع", 70 + "clear_accent": "مسح لون التمييز", 71 + "translation_progress": "تقدم الترجمة" 72 + }, 73 + "i18n": { 74 + "missing_keys": "{count} ترجمات مفقودة | ترجمة واحدة مفقودة | ترجمتان مفقودتان | {count} ترجمات مفقودة | {count} ترجمة مفقودة | {count} ترجمة مفقودة", 75 + "copy_keys": "نسخ المفاتيح", 76 + "show_more_keys": "عرض المزيد ({count})...", 77 + "contribute_hint": "ساعد في تحسين هذه الترجمة عن طريق إضافة المفاتيح المفقودة.", 78 + "edit_on_github": "تعديل على GitHub", 79 + "view_guide": "دليل الترجمة" 80 + }, 81 + "common": { 82 + "loading": "جارٍ التحميل...", 83 + "loading_more": "جارٍ تحميل المزيد...", 84 + "loading_packages": "جارٍ تحميل الحزم...", 85 + "end_of_results": "نهاية النتائج", 86 + "try_again": "حاول مرة أخرى", 87 + "close": "إغلاق", 88 + "retry": "إعادة المحاولة", 89 + "copy": "نسخ", 90 + "copied": "تم النسخ!", 91 + "skip_link": "تخطي إلى المحتوى الرئيسي", 92 + "close_modal": "إغلاق النافذة", 93 + "show_more": "عرض المزيد", 94 + "warnings": "تحذيرات:", 95 + "go_back_home": "العودة إلى الصفحة الرئيسية", 96 + "view_on_npm": "عرض على npm", 97 + "per_week": "/ أسبوع", 98 + "sort": { 99 + "name": "الاسم", 100 + "role": "الدور", 101 + "members": "الأعضاء" 102 + }, 103 + "scroll_to_top": "التمرير إلى الأعلى" 104 + }, 105 + "package": { 106 + "not_found": "لم يتم العثور على الحزمة", 107 + "not_found_message": "تعذّر العثور على الحزمة.", 108 + "no_description": "لا يوجد وصف", 109 + "show_full_description": "عرض الوصف بالكامل", 110 + "not_latest": "(ليست الأحدث)", 111 + "verified_provenance": "مصدر موثّق", 112 + "view_permalink": "عرض الرابط الدائم لهذا الإصدار", 113 + "navigation": "تصفح الحزمة", 114 + "deprecation": { 115 + "package": "تم إهمال هذه الحزمة.", 116 + "version": "تم إهمال هذا الإصدار.", 117 + "no_reason": "لم يتم تقديم سبب" 118 + }, 119 + "stats": { 120 + "license": "الترخيص", 121 + "deps": "الاعتماديات", 122 + "install_size": "حجم التثبيت", 123 + "vulns": "الثغرات", 124 + "updated": "آخر تحديث", 125 + "view_dependency_graph": "عرض مخطط الاعتماديات", 126 + "inspect_dependency_tree": "فحص شجرة الاعتماديات" 127 + }, 128 + "links": { 129 + "repo": "المستودع", 130 + "homepage": "الصفحة الرئيسية", 131 + "issues": "المشكلات", 132 + "jsr": "jsr", 133 + "code": "الكود", 134 + "docs": "التوثيق", 135 + "fund": "التمويل" 136 + }, 137 + "docs": { 138 + "not_available": "التوثيق غير متوفر", 139 + "not_available_detail": "لم نتمكن من إنشاء التوثيق لهذا الإصدار." 140 + }, 141 + "get_started": { 142 + "title": "البدء", 143 + "pm_label": "مدير الحزم", 144 + "copy_command": "نسخ أمر التثبيت", 145 + "view_types": "عرض {package}" 146 + }, 147 + "create": { 148 + "title": "إنشاء مشروع جديد", 149 + "copy_command": "نسخ أمر الإنشاء" 150 + }, 151 + "run": { 152 + "title": "تشغيل", 153 + "locally": "تشغيل محليًا" 154 + }, 155 + "readme": { 156 + "title": "README (إقرأني)", 157 + "no_readme": "لا يتوفر README.", 158 + "view_on_github": "عرض على GitHub" 159 + }, 160 + "keywords_title": "الكلمات المفتاحية", 161 + "compatibility": "التوافق", 162 + "card": { 163 + "publisher": "الناشر", 164 + "updated": "آخر تحديث", 165 + "weekly_downloads": "التنزيلات الأسبوعية", 166 + "keywords": "الكلمات المفتاحية", 167 + "license": "الترخيص" 168 + }, 169 + "versions": { 170 + "title": "الإصدارات", 171 + "collapse": "طي {tag}", 172 + "expand": "توسيع {tag}", 173 + "collapse_other": "طي الإصدارات الأخرى", 174 + "expand_other": "توسيع الإصدارات الأخرى", 175 + "collapse_major": "طي الرئيسي {major}", 176 + "expand_major": "توسيع الرئيسي {major}", 177 + "other_versions": "إصدارات أخرى", 178 + "more_tagged": "{count} إصدار موسوم آخر | إصدار موسوم آخر | إصدارين موسومين أخريين | {count} إصدارات موسومة أخرى | {count} إصدار موسوم آخر | {count} إصدار موسوم آخر", 179 + "all_covered": "جميع الإصدارات مشمولة بالوسوم أعلاه", 180 + "deprecated_title": "{version} (مهمل)" 181 + }, 182 + "dependencies": { 183 + "title": "الاعتماديات ({count})", 184 + "list_label": "اعتماديات الحزمة", 185 + "show_all": "عرض كل الاعتماديات ({count})", 186 + "optional": "اختياري", 187 + "view_vulnerabilities": "عرض الثغرات" 188 + }, 189 + "peer_dependencies": { 190 + "title": "اعتماديات النظير ({count})", 191 + "list_label": "اعتماديات نظير الحزمة", 192 + "show_all": "عرض كل اعتماديات النظير ({count})" 193 + }, 194 + "optional_dependencies": { 195 + "title": "اعتماديات اختيارية ({count})", 196 + "list_label": "اعتماديات الحزمة الاختيارية", 197 + "show_all": "عرض كل الاعتماديات الاختيارية ({count})" 198 + }, 199 + "maintainers": { 200 + "title": "المشرفون", 201 + "list_label": "مشرفو الحزمة", 202 + "you": "(أنت)", 203 + "via": "عبر {teams}", 204 + "remove_owner": "إزالة {name} كمالك", 205 + "username_to_add": "اسم المستخدم لإضافته كمالك", 206 + "username_placeholder": "اسم المستخدم...", 207 + "add_button": "إضافة", 208 + "cancel_add": "إلغاء إضافة المالك", 209 + "add_owner": "+ إضافة مالك", 210 + "show_more": "(عرض المزيد ({count}))", 211 + "show_less": "(عرض أقل)" 212 + }, 213 + "downloads": { 214 + "title": "التنزيلات الأسبوعية", 215 + "date_range": "من {start} إلى {end}", 216 + "analyze": "تحليل التنزيلات", 217 + "modal_title": "التنزيلات", 218 + "granularity": "مستوى التفصيل", 219 + "granularity_daily": "يومي", 220 + "granularity_weekly": "أسبوعي", 221 + "granularity_monthly": "شهري", 222 + "granularity_yearly": "سنوي", 223 + "start_date": "البداية", 224 + "end_date": "النهاية", 225 + "no_data": "لا تتوفر بيانات تنزيل", 226 + "loading": "جارٍ التحميل...", 227 + "y_axis_label": "تنزيلات {granularity}ة", 228 + "download_file": "تنزيل {fileType}", 229 + "toggle_annotator": "إظهار/إخفاء الشروح التوضيحية" 230 + }, 231 + "install_scripts": { 232 + "title": "سكربتات التثبيت", 233 + "script_label": "(سكربت)", 234 + "npx_packages": "{count} حزم npx | حزمة npx واحدة | حزمتي npx | {count} حزم npx | {count} حزمة npx | {count} حزمة npx", 235 + "currently": "حاليًا {version}" 236 + }, 237 + "playgrounds": { 238 + "title": "جرّبه", 239 + "choose": "اختر بيئة تجريب" 240 + }, 241 + "metrics": { 242 + "esm": "ES Modules مدعومة", 243 + "cjs": "CommonJS مدعومة", 244 + "no_esm": "لا تدعم ES Modules", 245 + "types_included": "أنواع TypeScript مضمّنة", 246 + "types_available": "أنواع TypeScript متوفرة عبر {package}", 247 + "no_types": "لا توجد أنواع TypeScript" 248 + }, 249 + "license": { 250 + "view_spdx": "عرض نص الترخيص على SPDX" 251 + }, 252 + "vulnerabilities": { 253 + "no_description": "لا يتوفر وصف", 254 + "found": "تم العثور على {count} ثغرة | تم العثور على ثغرة واحدة | تم العثور على ثغرتين | تم العثور على {count} ثغرات | تم العثور على {count} ثغرة | تم العثور على {count} ثغرة", 255 + "deps_found": "تم العثور على {count} ثغرة | تم العثور على ثغرة واحدة | تم العثور على ثغرتين | تم العثور على {count} ثغرات | تم العثور على {count} ثغرة | تم العثور على {count} ثغرة", 256 + "deps_affected": "تأثرت {count} تبعية | تأثرت تبعية واحدة | تأثرت تبعيتان | تأثرت {count} تبعيات | تأثرت {count} تبعية | تأثرت {count} تبعية", 257 + "tree_found": "{vulns} ثغرة في {packages}/{total} حزمة | ثغرة واحدة في {packages}/{total} حزمة | ثغرتان في {packages}/{total} حزمة | {vulns} ثغرات في {packages}/{total} حزمة | {vulns} ثغرة في {packages}/{total} حزمة | {vulns} ثغرة في {packages}/{total} حزمة", 258 + "scanning_tree": "جارٍ فحص شجرة الاعتماديات...", 259 + "show_all_packages": "عرض كل الحزم المتأثرة ({count})", 260 + "no_summary": "لا يوجد ملخص", 261 + "view_details": "عرض تفاصيل الثغرة", 262 + "path": "المسار", 263 + "more": "+{count} أخرى", 264 + "packages_failed": "تعذر فحص {count} حزمة | تعذر فحص الحزمة | تعذر فحص الحزمتين | تعذر فحص {count} حزم | تعذر فحص {count} حزمة | تعذر فحص {count} حزمة", 265 + "no_known": "لا توجد ثغرات معروفة في {count} حزمة | لا توجد ثغرات معروفة في الحزمة | لا توجد ثغرات معروفة في الحزمتين | لا توجد ثغرات معروفة في {count} حزم | لا توجد ثغرات معروفة في {count} حزمة | لا توجد ثغرات معروفة في {count} حزمة", 266 + "scan_failed": "تعذر فحص الثغرات", 267 + "depth": { 268 + "root": "هذه الحزمة", 269 + "direct": "تبعية مباشرة", 270 + "transitive": "تبعية غير مباشرة" 271 + }, 272 + "severity": { 273 + "critical": "حرجة", 274 + "high": "عالية", 275 + "moderate": "متوسطة", 276 + "low": "منخفضة" 277 + } 278 + }, 279 + "access": { 280 + "title": "وصول الفريق", 281 + "refresh": "تحديث وصول الفريق", 282 + "list_label": "قائمة وصول الفريق", 283 + "owner": "مالك", 284 + "rw": "قراءة/كتابة", 285 + "ro": "قراءة فقط", 286 + "revoke_access": "سحب وصول {name}", 287 + "no_access": "لا يوجد وصول فريق مُعدّ", 288 + "select_team_label": "اختر فريقًا", 289 + "loading_teams": "جارٍ تحميل الفرق...", 290 + "select_team": "اختر فريقًا", 291 + "permission_label": "مستوى الصلاحية", 292 + "permission": { 293 + "read_only": "قراءة فقط", 294 + "read_write": "قراءة/كتابة" 295 + }, 296 + "grant_button": "منح", 297 + "cancel_grant": "إلغاء منح الوصول", 298 + "grant_access": "+ منح وصول للفريق" 299 + }, 300 + "list": { 301 + "filter_label": "فلترة الحزم", 302 + "filter_placeholder": "فلتر الحزم...", 303 + "sort_label": "ترتيب الحزم", 304 + "showing_count": "يعرض {filtered} من أصل {total} حزمة" 305 + }, 306 + "skeleton": { 307 + "loading": "جارٍ تحميل تفاصيل الحزمة", 308 + "license": "الترخيص", 309 + "weekly": "أسبوعيًا", 310 + "size": "الحجم", 311 + "deps": "الاعتماديات", 312 + "updated": "آخر تحديث", 313 + "install": "تثبيت", 314 + "readme": "README", 315 + "maintainers": "المشرفون", 316 + "keywords": "الكلمات المفتاحية", 317 + "versions": "الإصدارات", 318 + "dependencies": "الاعتماديات" 319 + }, 320 + "sort": { 321 + "downloads": "الأكثر تنزيلًا", 322 + "updated": "مُحدَّثة مؤخرًا", 323 + "name_asc": "الاسم (A-Z)", 324 + "name_desc": "الاسم (Z-A)" 325 + } 326 + }, 327 + "connector": { 328 + "status": { 329 + "connecting": "جارٍ الاتصال...", 330 + "connected_as": "متصل كـ {'@'}{user}", 331 + "connected": "متصل", 332 + "connect_cli": "ربط واجهة سطر الأوامر المحلية", 333 + "aria_connecting": "جارٍ الاتصال بالموصل المحلي", 334 + "aria_connected": "تم الاتصال بالموصل المحلي", 335 + "aria_click_to_connect": "انقر للاتصال بالموصل المحلي", 336 + "avatar_alt": "صورة {user} الرمزية" 337 + }, 338 + "modal": { 339 + "title": "الموصل المحلي", 340 + "close_modal": "إغلاق النافذة", 341 + "connected": "متصل", 342 + "logged_in_as": "تم تسجيل الدخول كـ {'@'}{user}", 343 + "connected_hint": "يمكنك الآن إدارة الحزم والمؤسسات من واجهة الويب.", 344 + "disconnect": "قطع الاتصال", 345 + "run_hint": "شغّل الموصل على جهازك لتمكين ميزات الإدارة.", 346 + "copy_command": "نسخ الأمر", 347 + "copied": "تم النسخ", 348 + "paste_token": "ثم الصق الرمز أدناه للاتصال:", 349 + "token_label": "الرمز", 350 + "token_placeholder": "الصق الرمز هنا...", 351 + "advanced": "خيارات متقدمة", 352 + "port_label": "المنفذ", 353 + "warning": "تحذير!", 354 + "warning_text": "يسمح هذا لـ npmx بالوصول إلى npm CLI لديك. لا تتصل إلا بالمواقع التي تثق بها.", 355 + "connect": "اتصال", 356 + "connecting": "جارٍ الاتصال..." 357 + } 358 + }, 359 + "operations": { 360 + "queue": { 361 + "title": "قائمة العمليات", 362 + "clear_all": "مسح الكل", 363 + "refresh": "تحديث العمليات", 364 + "empty": "لا توجد عمليات في القائمة", 365 + "empty_hint": "أضف عمليات من صفحات الحزمة أو المؤسسة", 366 + "active_label": "العمليات النشطة", 367 + "otp_required": "رمز OTP مطلوب", 368 + "otp_prompt": "أدخل رمز OTP للمتابعة", 369 + "otp_placeholder": "أدخل رمز OTP...", 370 + "otp_label": "كلمة المرور وحيدة الاستخدام (OTP)", 371 + "retry_otp": "إعادة المحاولة باستخدام OTP", 372 + "retrying": "جارٍ إعادة المحاولة...", 373 + "approve_operation": "الموافقة على العملية", 374 + "remove_operation": "إزالة العملية", 375 + "approve_all": "الموافقة على الكل", 376 + "execute": "تنفيذ", 377 + "executing": "جارٍ التنفيذ...", 378 + "log": "السجل", 379 + "log_label": "سجل العمليات المكتملة", 380 + "remove_from_log": "إزالة من السجل" 381 + } 382 + }, 383 + "org": { 384 + "teams": { 385 + "title": "الفرق", 386 + "refresh": "تحديث الفرق", 387 + "filter_label": "فلترة الفرق", 388 + "filter_placeholder": "فلتر الفرق...", 389 + "sort_by": "الترتيب حسب", 390 + "loading": "جارٍ تحميل الفرق...", 391 + "no_teams": "لم يتم العثور على فرق", 392 + "list_label": "فرق المؤسسة", 393 + "delete_team": "حذف الفريق {name}", 394 + "member_count": "{count} أعضاء | عضو واحد | عضوان | {count} أعضاء | {count} عضواً | {count} عضواً", 395 + "members_of": "أعضاء {team}", 396 + "no_members": "لا يوجد أعضاء", 397 + "remove_user": "إزالة {user} من الفريق", 398 + "username_to_add": "اسم المستخدم لإضافته إلى {team}", 399 + "username_placeholder": "اسم المستخدم...", 400 + "add_button": "إضافة", 401 + "cancel_add_user": "إلغاء إضافة المستخدم", 402 + "add_member": "+ إضافة عضو", 403 + "team_name_label": "اسم الفريق", 404 + "team_name_placeholder": "اسم الفريق...", 405 + "create_button": "إنشاء", 406 + "no_match": "لا توجد فرق تطابق \"{query}\"", 407 + "cancel_create": "إلغاء إنشاء الفريق", 408 + "create_team": "+ إنشاء فريق" 409 + }, 410 + "members": { 411 + "title": "الأعضاء", 412 + "refresh": "تحديث الأعضاء", 413 + "filter_label": "فلترة الأعضاء", 414 + "filter_placeholder": "فلتر الأعضاء...", 415 + "filter_by_role": "فلترة حسب الدور", 416 + "filter_by_team": "فلترة حسب الفريق", 417 + "all_teams": "كل الفرق", 418 + "sort_by": "الترتيب حسب", 419 + "loading": "جارٍ تحميل الأعضاء...", 420 + "no_members": "لم يتم العثور على أعضاء", 421 + "list_label": "أعضاء المؤسسة", 422 + "change_role_for": "تغيير الدور لـ {name}", 423 + "remove_from_org": "إزالة {name} من المؤسسة", 424 + "view_team": "عرض فريق {team}", 425 + "no_match": "لا يوجد أعضاء يطابقون عوامل الفلترة", 426 + "username_label": "اسم المستخدم", 427 + "username_placeholder": "اسم المستخدم...", 428 + "role_label": "الدور", 429 + "role": { 430 + "all": "الكل", 431 + "developer": "مطور", 432 + "admin": "مدير", 433 + "owner": "مالك" 434 + }, 435 + "team_label": "الفريق", 436 + "no_team": "بدون فريق", 437 + "add_button": "إضافة", 438 + "cancel_add": "إلغاء إضافة عضو", 439 + "add_member": "+ إضافة عضو" 440 + }, 441 + "public_packages": "{count} حزم عامة | حزمة عامة واحدة | حزمتان عامتان | {count} حزم عامة | {count} حزمة عامة | {count} حزمة عامة", 442 + "page": { 443 + "packages_title": "الحزم", 444 + "members_tab": "الأعضاء", 445 + "teams_tab": "الفرق", 446 + "no_packages": "لم يتم العثور على حزم عامة لـ", 447 + "no_packages_hint": "قد لا تكون هذه المؤسسة موجودة أو قد لا تحتوي على حزم عامة.", 448 + "failed_to_load": "فشل تحميل حزم المؤسسة", 449 + "no_match": "لا توجد حزم تطابق \"{query}\"", 450 + "not_found": "لم يتم العثور على المؤسسة", 451 + "not_found_message": "المؤسسة \"{'@'}{name}\" غير موجودة على npm", 452 + "filter_placeholder": "فلتر {count} حزمة..." 453 + } 454 + }, 455 + "user": { 456 + "combobox": { 457 + "add_to_org_hint": "(سيُضاف أيضًا إلى المؤسسة)", 458 + "press_enter_to_add": "اضغط Enter لإضافة {'@'}{username}", 459 + "default_placeholder": "اسم المستخدم...", 460 + "suggestions_label": "اقتراحات المستخدمين" 461 + }, 462 + "page": { 463 + "packages_title": "الحزم", 464 + "no_packages": "لم يتم العثور على حزم عامة لـ", 465 + "no_packages_hint": "قد لا يكون هذا المستخدم موجودًا أو قد لا يحتوي على حزم عامة.", 466 + "failed_to_load": "فشل تحميل حزم المستخدم", 467 + "no_match": "لا توجد حزم تطابق \"{query}\"", 468 + "filter_placeholder": "فلتر {count} حزمة..." 469 + }, 470 + "orgs_page": { 471 + "title": "المؤسسات", 472 + "back_to_profile": "العودة إلى الملف الشخصي", 473 + "connect_required": "اربط واجهة سطر الأوامر المحلية لعرض مؤسساتك.", 474 + "connect_hint_prefix": "شغّل", 475 + "connect_hint_suffix": "للبدء.", 476 + "own_orgs_only": "يمكنك عرض مؤسساتك أنت فقط.", 477 + "view_your_orgs": "عرض مؤسساتك", 478 + "loading": "جارٍ تحميل المؤسسات...", 479 + "empty": "لم يتم العثور على مؤسسات.", 480 + "empty_hint": "يتم اكتشاف المؤسسات من حزمك ذات النطاق (scoped).", 481 + "count": "{count} مؤسسة | مؤسسة واحدة | مؤسستان | {count} مؤسسات | {count} مؤسسة | {count} مؤسسة", 482 + "packages_count": "{count} حزمة | حزمة واحدة | حزمتان | {count} حزم | {count} حزمة | {count} حزمة" 483 + } 484 + }, 485 + "claim": { 486 + "modal": { 487 + "title": "حجز اسم حزمة", 488 + "close_modal": "إغلاق النافذة", 489 + "success": "تم حجز الحزمة!", 490 + "success_detail": "تم نشر {name}{'@'}0.0.0 على npm.", 491 + "success_hint": "يمكنك الآن نشر إصدارات جديدة لهذه الحزمة باستخدام npm publish.", 492 + "view_package": "عرض الحزمة", 493 + "invalid_name": "اسم حزمة غير صالح:", 494 + "available": "هذا الاسم متاح!", 495 + "taken": "هذا الاسم مستخدم بالفعل.", 496 + "similar_warning": "توجد حزم مشابهة — قد يرفض npm هذا الاسم:", 497 + "related": "حزم ذات صلة:", 498 + "scope_warning_title": "فكّر في استخدام حزمة بنطاق (scoped) بدلًا من ذلك", 499 + "scope_warning_text": "أسماء الحزم غير ذات النطاق هي مورد مشترك. لا تحجز اسمًا إلا إذا كنت تنوي نشر حزمة وصيانتها. للمشاريع الشخصية أو المؤسسية، استخدم اسمًا ذا نطاق مثل {'@'}{username}/{name}.", 500 + "connect_required": "اربط الموصل المحلي لحجز اسم هذه الحزمة.", 501 + "connect_button": "الاتصال بالموصل", 502 + "publish_hint": "سيؤدي هذا إلى نشر حزمة مصغرة كعنصر نائب (placeholder).", 503 + "preview_json": "معاينة package.json", 504 + "claim_button": "حجز اسم الحزمة", 505 + "publishing": "جارٍ النشر...", 506 + "checking": "جارٍ التحقق من التوفر...", 507 + "failed_to_check": "فشل التحقق من توفر الاسم", 508 + "failed_to_claim": "فشل حجز الحزمة" 509 + } 510 + }, 511 + "code": { 512 + "files_label": "الملفات", 513 + "no_files": "لا توجد ملفات في هذا المجلد", 514 + "select_version": "اختر إصدارًا", 515 + "root": "الجذر", 516 + "lines": "{count} سطر", 517 + "toggle_tree": "إظهار/إخفاء شجرة الملفات", 518 + "close_tree": "إغلاق شجرة الملفات", 519 + "copy_link": "نسخ الرابط", 520 + "raw": "خام (Raw)", 521 + "view_raw": "عرض الملف الخام (Raw)", 522 + "file_too_large": "الملف كبير جدًا للمعاينة", 523 + "file_size_warning": "{size} يتجاوز حد 500KB للتظليل النحوي (syntax highlighting)", 524 + "load_anyway": "تحميل على أي حال", 525 + "failed_to_load": "فشل تحميل الملف", 526 + "unavailable_hint": "قد يكون الملف كبيرًا جدًا أو غير متاح", 527 + "version_required": "الإصدار مطلوب لتصفح الكود", 528 + "go_to_package": "الانتقال إلى الحزمة", 529 + "loading_tree": "جارٍ تحميل شجرة الملفات...", 530 + "failed_to_load_tree": "فشل تحميل الملفات لهذا الإصدار من الحزمة", 531 + "back_to_package": "العودة إلى الحزمة", 532 + "table": { 533 + "name": "الاسم", 534 + "size": "الحجم" 535 + } 536 + }, 537 + "badges": { 538 + "provenance": { 539 + "verified": "موثّق", 540 + "verified_title": "مصدر موثّق", 541 + "verified_via": "موثّق: تم النشر عبر {provider}" 542 + }, 543 + "jsr": { 544 + "title": "متوفر أيضًا على JSR", 545 + "label": "jsr" 546 + } 547 + }, 548 + "filters": { 549 + "title": "فلاتر", 550 + "search": "بحث", 551 + "search_scope": "نطاق البحث", 552 + "search_placeholder_name": "فلترة حسب اسم الحزمة...", 553 + "search_placeholder_description": "فلترة حسب الوصف...", 554 + "search_placeholder_keywords": "فلترة حسب الكلمات المفتاحية...", 555 + "search_placeholder_all": "فلترة حسب الكل أو استخدم name: desc: kw:", 556 + "scope_name": "الإسم", 557 + "scope_name_description": "بحث في أسماء الحزم فقط", 558 + "scope_description": "الوصف", 559 + "scope_description_description": "بحث في الأوصاف فقط", 560 + "scope_keywords": "الكلمات المفتاحية", 561 + "scope_keywords_description": "بحث في الكلمات المفتاحية فقط", 562 + "scope_all": "الكل", 563 + "scope_all_description": "بحث في جميع الحقول، يدعم المحددات name: desc: kw:", 564 + "weekly_downloads": "التنزيلات الأسبوعية", 565 + "updated_within": "تم التحديث خلال", 566 + "security": "الأمان", 567 + "keywords": "الكلمات المفتاحية", 568 + "more_keywords": "+{count} المزيد", 569 + "clear_all": "مسح الكل", 570 + "remove_filter": "إزالة فلتر {label}", 571 + "download_range": { 572 + "any": "أي", 573 + "lt100": "< 100", 574 + "100_1k": "100 - 1K", 575 + "1k_10k": "1K - 10K", 576 + "10k_100k": "10K - 100K", 577 + "gt100k": "> 100K" 578 + }, 579 + "updated": { 580 + "any": "أي وقت", 581 + "week": "الأسبوع الماضي", 582 + "month": "الشهر الماضي", 583 + "quarter": "آخر 3 أشهر", 584 + "year": "السنة الماضية" 585 + }, 586 + "security_options": { 587 + "all": "جميع الحزم", 588 + "secure": "بدون تحذيرات", 589 + "insecure": "مع التحذيرات" 590 + }, 591 + "sort": { 592 + "label": "فرز الحزم", 593 + "toggle_direction": "قلب اتجاه الفرز", 594 + "ascending": "تصاعدي", 595 + "descending": "تنازلي", 596 + "relevance": "الصلة", 597 + "downloads_week": "التنزيلات/الأسبوع", 598 + "downloads_day": "التنزيلات/اليوم", 599 + "downloads_month": "التنزيلات/الشهر", 600 + "downloads_year": "التنزيلات/السنة", 601 + "updated": "آخر تحديث", 602 + "name": "الاسم", 603 + "quality": "الجودة", 604 + "popularity": "الشعبية", 605 + "maintenance": "الصيانة", 606 + "score": "التنقيط" 607 + }, 608 + "columns": { 609 + "title": "الأعمدة", 610 + "show": "عرض الأعمدة", 611 + "reset": "إعادة التعيين إلى الافتراضيات", 612 + "coming_soon": "قريبًا", 613 + "name": "الاسم", 614 + "version": "الإصدار", 615 + "description": "الوصف", 616 + "downloads": "التنزيلات/الأسبوع", 617 + "updated": "آخر تحديث", 618 + "maintainers": "المشرفون", 619 + "keywords": "الكلمات المفتاحية", 620 + "quality_score": "درجة الجودة", 621 + "popularity_score": "درجة الشعبية", 622 + "maintenance_score": "درجة الصيانة", 623 + "combined_score": "الدرجة المجمعة", 624 + "security": "الأمان" 625 + }, 626 + "view_mode": { 627 + "label": "وضع العرض", 628 + "cards": "عرض البطاقات", 629 + "table": "عرض الجدول" 630 + }, 631 + "pagination": { 632 + "mode_label": "وضع التصفح", 633 + "infinite": "غير منتهي", 634 + "paginated": "مقسم إلى صفحات", 635 + "items_per_page": "عدد العناصر في الصفحة", 636 + "per_page": "{count} / صفحة", 637 + "all_yolo": "الكل (إنما هي حياة واحدة)", 638 + "showing": "{start}-{end} من {total}", 639 + "previous": "الصفحة السابقة", 640 + "next": "الصفحة التالية", 641 + "nav_label": "التصفح" 642 + }, 643 + "count": { 644 + "showing_filtered": "{filtered} من {total} حزمة", 645 + "showing_all": "{total} حزمة | حزمة واحدة | حزمتان | {total} حزم | {total} حزمة | {total} حزمة", 646 + "showing_paginated": "{pageSize} من {total} حزمة" 647 + }, 648 + "table": { 649 + "security_warning": "تحذير أمني", 650 + "secure": "آمن", 651 + "no_packages": "لم يتم العثور على حزم" 652 + } 653 + }, 654 + "about": { 655 + "title": "حول", 656 + "heading": "حول", 657 + "meta_description": "npmx هو متصفح سريع وحديث لسجل npm. تجربة مستخدم أفضل لاستكشاف حزم npm.", 658 + "back_home": "العودة إلى الصفحة الرئيسية", 659 + "what_we_are": { 660 + "title": "ما هو npmx", 661 + "better_ux_dx": "تجربة مستخدم/مطور أفضل", 662 + "admin_ui": "واجهة إدارة", 663 + "description": "npmx هو {betterUxDx} لسجل حزم npm وأدواته. نحن نوفر واجهة سريعة وحديثة لاستكشاف الحزم، مع ميزات مثل الوضع الداكن، التنقل عبر لوحة المفاتيح، تصفح الكود، والاتصالات بسجلات بديلة مثل {jsr}.", 664 + "admin_description": "نهدف أيضًا إلى توفير {adminUi} أفضل لإدارة حزمك، فرقك، ومنظماتك — كل ذلك من المتصفح، مدعومًا بواسطة npm CLI المحلي الخاص بك." 665 + }, 666 + "what_we_are_not": { 667 + "title": "ما ليس هو npmx", 668 + "not_package_manager": "ليس مدير حزم.", 669 + "not_registry": "ليس سجلًا.", 670 + "registry_description": "نحن لا نستضيف الحزم. نحن مجرد طريقة أفضل لتصفحها.", 671 + "package_managers_exist": "{already} {people} {building} {managers} {package} {cool} {really}.", 672 + "words": { 673 + "already": "هناك بالفعل", 674 + "people": "أشخاص", 675 + "building": "يبنون", 676 + "really": "بحقّ", 677 + "cool": "رائعة", 678 + "package": "حزم", 679 + "managers": "مديري" 680 + } 681 + }, 682 + "contributors": { 683 + "title": "المساهمون", 684 + "description": "npmx هو مشروع مفتوح المصدر بالكامل، تم بناؤه بواسطة مجتمع مذهل من المساهمين.", 685 + "loading": "جارٍ تحميل المساهمين...", 686 + "error": "فشل تحميل المساهمين", 687 + "view_profile": "عرض بروفايل {name} على GitHub" 688 + }, 689 + "get_involved": { 690 + "title": "كن جزءًا من npmx", 691 + "contribute": { 692 + "title": "المساهمة", 693 + "description": "ساعدنا في بناء تجربة npm أفضل.", 694 + "cta": "عرض على GitHub" 695 + }, 696 + "community": { 697 + "title": "انضم إلى المجتمع", 698 + "description": "تحدث، اطرح الأسئلة، وشارك الأفكار.", 699 + "cta": "انضم إلى Discord" 700 + }, 701 + "follow": { 702 + "title": "ابقَ على اطلاع", 703 + "description": "اكتشف آخر الأخبار عن npmx.", 704 + "cta": "تابع على Bluesky" 705 + } 706 + } 707 + }, 708 + "header": { 709 + "home": "الصفحة الرئيسية لـ npmx", 710 + "github": "GitHub", 711 + "packages": "الحزم", 712 + "packages_dropdown": { 713 + "title": "حزمك", 714 + "loading": "جارٍ التحميل...", 715 + "error": "فشل تحميل الحزم", 716 + "empty": "لا توجد حزم", 717 + "view_all": "عرض الكل" 718 + }, 719 + "orgs": "المؤسسات", 720 + "orgs_dropdown": { 721 + "title": "مؤسساتك", 722 + "loading": "جارٍ التحميل...", 723 + "error": "فشل تحميل المؤسسات", 724 + "empty": "لا توجد مؤسسات", 725 + "view_all": "عرض الكل" 726 + } 727 + } 728 + }
+1 -1
i18n/locales/en.json
··· 21 21 "button": "search", 22 22 "clear": "Clear search", 23 23 "searching": "Searching...", 24 - "found_packages": "Found {count} packages", 24 + "found_packages": "No packages found | Found 1 package | Found {count} packages", 25 25 "updating": "(updating...)", 26 26 "no_results": "No packages found for \"{query}\"", 27 27 "results": "Search results",
+1
knip.json
··· 19 19 "app/utils/**/*.ts!", 20 20 "app/plugins/**/*.ts!", 21 21 "app/components/**/*.vue!", 22 + "config/**/*.ts!", 22 23 "server/utils/**/*.ts!", 23 24 "shared/**/*.ts!" 24 25 ],
+728
lunaria/files/ar.json
··· 1 + { 2 + "seo": { 3 + "home": { 4 + "title": "npmx - متصفح الحزم لسجل npm", 5 + "description": "متصفح أفضل لسجل npm. ابحث عن الحزم واستعرضها واستكشفها عبر واجهة حديثة." 6 + } 7 + }, 8 + "tagline": "متصفح أفضل لسجل npm", 9 + "non_affiliation_disclaimer": "غير مرتبط بشركة npm, Inc.", 10 + "trademark_disclaimer": "npm علامة تجارية مسجلة لشركة npm, Inc. هذا الموقع غير مرتبط بشركة npm, Inc.", 11 + "footer": { 12 + "about": "حول", 13 + "docs": "التوثيق", 14 + "source": "المصدر", 15 + "social": "اجتماعي", 16 + "chat": "الدردشة" 17 + }, 18 + "search": { 19 + "label": "ابحث عن حزم npm", 20 + "placeholder": "ابحث عن الحزم...", 21 + "button": "بحث", 22 + "clear": "مسح البحث", 23 + "searching": "جارٍ البحث...", 24 + "found_packages": "تم العثور على {count} حزمة | تم العثور على حزمة واحدة | تم العثور على حزمتين | تم العثور على {count} حزم | تم العثور على {count} حزمة | تم العثور على {count} حزمة", 25 + "updating": "(جارٍ التحديث...)", 26 + "no_results": "لم يتم العثور على حزم لـ \"{query}\"", 27 + "results": "نتائج البحث", 28 + "not_taken": "الاسم {name} غير مأخوذ", 29 + "claim_prompt": "احجز اسم هذه الحزمة على npm", 30 + "claim_button": "احجز \"{name}\"", 31 + "want_to_claim": "هل تريد حجز اسم هذه الحزمة؟", 32 + "start_typing": "ابدأ الكتابة للبحث عن الحزم", 33 + "exact_match": "مطابقة تامة", 34 + "suggestion": { 35 + "user": "مستخدم", 36 + "org": "مؤسسة", 37 + "view_user_packages": "عرض حزم هذا المستخدم", 38 + "view_org_packages": "عرض حزم هذه المؤسسة" 39 + } 40 + }, 41 + "nav": { 42 + "main_navigation": "الصفحة الرئيسية", 43 + "popular_packages": "الحزم الشائعة", 44 + "search": "بحث", 45 + "settings": "الإعدادات", 46 + "back": "عودة" 47 + }, 48 + "settings": { 49 + "title": "الإعدادات", 50 + "tagline": "تخصيص تجربتك على npmx", 51 + "meta_description": "قم بتخصيص تجربتك على npmx من خلال إعدادات مثل السمة، اللغة، وتفضيلات العرض.", 52 + "sections": { 53 + "appearance": "المظهر", 54 + "display": "العرض", 55 + "language": "اللغة" 56 + }, 57 + "relative_dates": "تواريخ نسبية", 58 + "relative_dates_description": "عرض التواريخ مثل \"منذ 3 أيام\" بدلًا من التاريخ كاملا.", 59 + "include_types": "تضمين {'@'}types في التثبيت", 60 + "include_types_description": "إضافة حزمة {'@'}types إلى أوامر التثبيت للحزم غير المرفقة بأنواع TypeScript.", 61 + "hide_platform_packages": "إخفاء الحزم الخاصة بالمنصة في البحث", 62 + "hide_platform_packages_description": "إخفاء الحزم الـ binary native مثل {'@'}esbuild/linux-x64 من النتائج", 63 + "theme": "السمة", 64 + "theme_light": "فاتحة", 65 + "theme_dark": "داكنة", 66 + "theme_system": "سمة النظام", 67 + "language": "اللغة", 68 + "help_translate": "ساهم في ترجمة npmx", 69 + "accent_colors": "ألوان الموقع", 70 + "clear_accent": "مسح لون التمييز", 71 + "translation_progress": "تقدم الترجمة" 72 + }, 73 + "i18n": { 74 + "missing_keys": "{count} ترجمات مفقودة | ترجمة واحدة مفقودة | ترجمتان مفقودتان | {count} ترجمات مفقودة | {count} ترجمة مفقودة | {count} ترجمة مفقودة", 75 + "copy_keys": "نسخ المفاتيح", 76 + "show_more_keys": "عرض المزيد ({count})...", 77 + "contribute_hint": "ساعد في تحسين هذه الترجمة عن طريق إضافة المفاتيح المفقودة.", 78 + "edit_on_github": "تعديل على GitHub", 79 + "view_guide": "دليل الترجمة" 80 + }, 81 + "common": { 82 + "loading": "جارٍ التحميل...", 83 + "loading_more": "جارٍ تحميل المزيد...", 84 + "loading_packages": "جارٍ تحميل الحزم...", 85 + "end_of_results": "نهاية النتائج", 86 + "try_again": "حاول مرة أخرى", 87 + "close": "إغلاق", 88 + "retry": "إعادة المحاولة", 89 + "copy": "نسخ", 90 + "copied": "تم النسخ!", 91 + "skip_link": "تخطي إلى المحتوى الرئيسي", 92 + "close_modal": "إغلاق النافذة", 93 + "show_more": "عرض المزيد", 94 + "warnings": "تحذيرات:", 95 + "go_back_home": "العودة إلى الصفحة الرئيسية", 96 + "view_on_npm": "عرض على npm", 97 + "per_week": "/ أسبوع", 98 + "sort": { 99 + "name": "الاسم", 100 + "role": "الدور", 101 + "members": "الأعضاء" 102 + }, 103 + "scroll_to_top": "التمرير إلى الأعلى" 104 + }, 105 + "package": { 106 + "not_found": "لم يتم العثور على الحزمة", 107 + "not_found_message": "تعذّر العثور على الحزمة.", 108 + "no_description": "لا يوجد وصف", 109 + "show_full_description": "عرض الوصف بالكامل", 110 + "not_latest": "(ليست الأحدث)", 111 + "verified_provenance": "مصدر موثّق", 112 + "view_permalink": "عرض الرابط الدائم لهذا الإصدار", 113 + "navigation": "تصفح الحزمة", 114 + "deprecation": { 115 + "package": "تم إهمال هذه الحزمة.", 116 + "version": "تم إهمال هذا الإصدار.", 117 + "no_reason": "لم يتم تقديم سبب" 118 + }, 119 + "stats": { 120 + "license": "الترخيص", 121 + "deps": "الاعتماديات", 122 + "install_size": "حجم التثبيت", 123 + "vulns": "الثغرات", 124 + "updated": "آخر تحديث", 125 + "view_dependency_graph": "عرض مخطط الاعتماديات", 126 + "inspect_dependency_tree": "فحص شجرة الاعتماديات" 127 + }, 128 + "links": { 129 + "repo": "المستودع", 130 + "homepage": "الصفحة الرئيسية", 131 + "issues": "المشكلات", 132 + "jsr": "jsr", 133 + "code": "الكود", 134 + "docs": "التوثيق", 135 + "fund": "التمويل" 136 + }, 137 + "docs": { 138 + "not_available": "التوثيق غير متوفر", 139 + "not_available_detail": "لم نتمكن من إنشاء التوثيق لهذا الإصدار." 140 + }, 141 + "get_started": { 142 + "title": "البدء", 143 + "pm_label": "مدير الحزم", 144 + "copy_command": "نسخ أمر التثبيت", 145 + "view_types": "عرض {package}" 146 + }, 147 + "create": { 148 + "title": "إنشاء مشروع جديد", 149 + "copy_command": "نسخ أمر الإنشاء" 150 + }, 151 + "run": { 152 + "title": "تشغيل", 153 + "locally": "تشغيل محليًا" 154 + }, 155 + "readme": { 156 + "title": "README (إقرأني)", 157 + "no_readme": "لا يتوفر README.", 158 + "view_on_github": "عرض على GitHub" 159 + }, 160 + "keywords_title": "الكلمات المفتاحية", 161 + "compatibility": "التوافق", 162 + "card": { 163 + "publisher": "الناشر", 164 + "updated": "آخر تحديث", 165 + "weekly_downloads": "التنزيلات الأسبوعية", 166 + "keywords": "الكلمات المفتاحية", 167 + "license": "الترخيص" 168 + }, 169 + "versions": { 170 + "title": "الإصدارات", 171 + "collapse": "طي {tag}", 172 + "expand": "توسيع {tag}", 173 + "collapse_other": "طي الإصدارات الأخرى", 174 + "expand_other": "توسيع الإصدارات الأخرى", 175 + "collapse_major": "طي الرئيسي {major}", 176 + "expand_major": "توسيع الرئيسي {major}", 177 + "other_versions": "إصدارات أخرى", 178 + "more_tagged": "{count} إصدار موسوم آخر | إصدار موسوم آخر | إصدارين موسومين أخريين | {count} إصدارات موسومة أخرى | {count} إصدار موسوم آخر | {count} إصدار موسوم آخر", 179 + "all_covered": "جميع الإصدارات مشمولة بالوسوم أعلاه", 180 + "deprecated_title": "{version} (مهمل)" 181 + }, 182 + "dependencies": { 183 + "title": "الاعتماديات ({count})", 184 + "list_label": "اعتماديات الحزمة", 185 + "show_all": "عرض كل الاعتماديات ({count})", 186 + "optional": "اختياري", 187 + "view_vulnerabilities": "عرض الثغرات" 188 + }, 189 + "peer_dependencies": { 190 + "title": "اعتماديات النظير ({count})", 191 + "list_label": "اعتماديات نظير الحزمة", 192 + "show_all": "عرض كل اعتماديات النظير ({count})" 193 + }, 194 + "optional_dependencies": { 195 + "title": "اعتماديات اختيارية ({count})", 196 + "list_label": "اعتماديات الحزمة الاختيارية", 197 + "show_all": "عرض كل الاعتماديات الاختيارية ({count})" 198 + }, 199 + "maintainers": { 200 + "title": "المشرفون", 201 + "list_label": "مشرفو الحزمة", 202 + "you": "(أنت)", 203 + "via": "عبر {teams}", 204 + "remove_owner": "إزالة {name} كمالك", 205 + "username_to_add": "اسم المستخدم لإضافته كمالك", 206 + "username_placeholder": "اسم المستخدم...", 207 + "add_button": "إضافة", 208 + "cancel_add": "إلغاء إضافة المالك", 209 + "add_owner": "+ إضافة مالك", 210 + "show_more": "(عرض المزيد ({count}))", 211 + "show_less": "(عرض أقل)" 212 + }, 213 + "downloads": { 214 + "title": "التنزيلات الأسبوعية", 215 + "date_range": "من {start} إلى {end}", 216 + "analyze": "تحليل التنزيلات", 217 + "modal_title": "التنزيلات", 218 + "granularity": "مستوى التفصيل", 219 + "granularity_daily": "يومي", 220 + "granularity_weekly": "أسبوعي", 221 + "granularity_monthly": "شهري", 222 + "granularity_yearly": "سنوي", 223 + "start_date": "البداية", 224 + "end_date": "النهاية", 225 + "no_data": "لا تتوفر بيانات تنزيل", 226 + "loading": "جارٍ التحميل...", 227 + "y_axis_label": "تنزيلات {granularity}ة", 228 + "download_file": "تنزيل {fileType}", 229 + "toggle_annotator": "إظهار/إخفاء الشروح التوضيحية" 230 + }, 231 + "install_scripts": { 232 + "title": "سكربتات التثبيت", 233 + "script_label": "(سكربت)", 234 + "npx_packages": "{count} حزم npx | حزمة npx واحدة | حزمتي npx | {count} حزم npx | {count} حزمة npx | {count} حزمة npx", 235 + "currently": "حاليًا {version}" 236 + }, 237 + "playgrounds": { 238 + "title": "جرّبه", 239 + "choose": "اختر بيئة تجريب" 240 + }, 241 + "metrics": { 242 + "esm": "ES Modules مدعومة", 243 + "cjs": "CommonJS مدعومة", 244 + "no_esm": "لا تدعم ES Modules", 245 + "types_included": "أنواع TypeScript مضمّنة", 246 + "types_available": "أنواع TypeScript متوفرة عبر {package}", 247 + "no_types": "لا توجد أنواع TypeScript" 248 + }, 249 + "license": { 250 + "view_spdx": "عرض نص الترخيص على SPDX" 251 + }, 252 + "vulnerabilities": { 253 + "no_description": "لا يتوفر وصف", 254 + "found": "تم العثور على {count} ثغرة | تم العثور على ثغرة واحدة | تم العثور على ثغرتين | تم العثور على {count} ثغرات | تم العثور على {count} ثغرة | تم العثور على {count} ثغرة", 255 + "deps_found": "تم العثور على {count} ثغرة | تم العثور على ثغرة واحدة | تم العثور على ثغرتين | تم العثور على {count} ثغرات | تم العثور على {count} ثغرة | تم العثور على {count} ثغرة", 256 + "deps_affected": "تأثرت {count} تبعية | تأثرت تبعية واحدة | تأثرت تبعيتان | تأثرت {count} تبعيات | تأثرت {count} تبعية | تأثرت {count} تبعية", 257 + "tree_found": "{vulns} ثغرة في {packages}/{total} حزمة | ثغرة واحدة في {packages}/{total} حزمة | ثغرتان في {packages}/{total} حزمة | {vulns} ثغرات في {packages}/{total} حزمة | {vulns} ثغرة في {packages}/{total} حزمة | {vulns} ثغرة في {packages}/{total} حزمة", 258 + "scanning_tree": "جارٍ فحص شجرة الاعتماديات...", 259 + "show_all_packages": "عرض كل الحزم المتأثرة ({count})", 260 + "no_summary": "لا يوجد ملخص", 261 + "view_details": "عرض تفاصيل الثغرة", 262 + "path": "المسار", 263 + "more": "+{count} أخرى", 264 + "packages_failed": "تعذر فحص {count} حزمة | تعذر فحص الحزمة | تعذر فحص الحزمتين | تعذر فحص {count} حزم | تعذر فحص {count} حزمة | تعذر فحص {count} حزمة", 265 + "no_known": "لا توجد ثغرات معروفة في {count} حزمة | لا توجد ثغرات معروفة في الحزمة | لا توجد ثغرات معروفة في الحزمتين | لا توجد ثغرات معروفة في {count} حزم | لا توجد ثغرات معروفة في {count} حزمة | لا توجد ثغرات معروفة في {count} حزمة", 266 + "scan_failed": "تعذر فحص الثغرات", 267 + "depth": { 268 + "root": "هذه الحزمة", 269 + "direct": "تبعية مباشرة", 270 + "transitive": "تبعية غير مباشرة" 271 + }, 272 + "severity": { 273 + "critical": "حرجة", 274 + "high": "عالية", 275 + "moderate": "متوسطة", 276 + "low": "منخفضة" 277 + } 278 + }, 279 + "access": { 280 + "title": "وصول الفريق", 281 + "refresh": "تحديث وصول الفريق", 282 + "list_label": "قائمة وصول الفريق", 283 + "owner": "مالك", 284 + "rw": "قراءة/كتابة", 285 + "ro": "قراءة فقط", 286 + "revoke_access": "سحب وصول {name}", 287 + "no_access": "لا يوجد وصول فريق مُعدّ", 288 + "select_team_label": "اختر فريقًا", 289 + "loading_teams": "جارٍ تحميل الفرق...", 290 + "select_team": "اختر فريقًا", 291 + "permission_label": "مستوى الصلاحية", 292 + "permission": { 293 + "read_only": "قراءة فقط", 294 + "read_write": "قراءة/كتابة" 295 + }, 296 + "grant_button": "منح", 297 + "cancel_grant": "إلغاء منح الوصول", 298 + "grant_access": "+ منح وصول للفريق" 299 + }, 300 + "list": { 301 + "filter_label": "فلترة الحزم", 302 + "filter_placeholder": "فلتر الحزم...", 303 + "sort_label": "ترتيب الحزم", 304 + "showing_count": "يعرض {filtered} من أصل {total} حزمة" 305 + }, 306 + "skeleton": { 307 + "loading": "جارٍ تحميل تفاصيل الحزمة", 308 + "license": "الترخيص", 309 + "weekly": "أسبوعيًا", 310 + "size": "الحجم", 311 + "deps": "الاعتماديات", 312 + "updated": "آخر تحديث", 313 + "install": "تثبيت", 314 + "readme": "README", 315 + "maintainers": "المشرفون", 316 + "keywords": "الكلمات المفتاحية", 317 + "versions": "الإصدارات", 318 + "dependencies": "الاعتماديات" 319 + }, 320 + "sort": { 321 + "downloads": "الأكثر تنزيلًا", 322 + "updated": "مُحدَّثة مؤخرًا", 323 + "name_asc": "الاسم (A-Z)", 324 + "name_desc": "الاسم (Z-A)" 325 + } 326 + }, 327 + "connector": { 328 + "status": { 329 + "connecting": "جارٍ الاتصال...", 330 + "connected_as": "متصل كـ {'@'}{user}", 331 + "connected": "متصل", 332 + "connect_cli": "ربط واجهة سطر الأوامر المحلية", 333 + "aria_connecting": "جارٍ الاتصال بالموصل المحلي", 334 + "aria_connected": "تم الاتصال بالموصل المحلي", 335 + "aria_click_to_connect": "انقر للاتصال بالموصل المحلي", 336 + "avatar_alt": "صورة {user} الرمزية" 337 + }, 338 + "modal": { 339 + "title": "الموصل المحلي", 340 + "close_modal": "إغلاق النافذة", 341 + "connected": "متصل", 342 + "logged_in_as": "تم تسجيل الدخول كـ {'@'}{user}", 343 + "connected_hint": "يمكنك الآن إدارة الحزم والمؤسسات من واجهة الويب.", 344 + "disconnect": "قطع الاتصال", 345 + "run_hint": "شغّل الموصل على جهازك لتمكين ميزات الإدارة.", 346 + "copy_command": "نسخ الأمر", 347 + "copied": "تم النسخ", 348 + "paste_token": "ثم الصق الرمز أدناه للاتصال:", 349 + "token_label": "الرمز", 350 + "token_placeholder": "الصق الرمز هنا...", 351 + "advanced": "خيارات متقدمة", 352 + "port_label": "المنفذ", 353 + "warning": "تحذير!", 354 + "warning_text": "يسمح هذا لـ npmx بالوصول إلى npm CLI لديك. لا تتصل إلا بالمواقع التي تثق بها.", 355 + "connect": "اتصال", 356 + "connecting": "جارٍ الاتصال..." 357 + } 358 + }, 359 + "operations": { 360 + "queue": { 361 + "title": "قائمة العمليات", 362 + "clear_all": "مسح الكل", 363 + "refresh": "تحديث العمليات", 364 + "empty": "لا توجد عمليات في القائمة", 365 + "empty_hint": "أضف عمليات من صفحات الحزمة أو المؤسسة", 366 + "active_label": "العمليات النشطة", 367 + "otp_required": "رمز OTP مطلوب", 368 + "otp_prompt": "أدخل رمز OTP للمتابعة", 369 + "otp_placeholder": "أدخل رمز OTP...", 370 + "otp_label": "كلمة المرور وحيدة الاستخدام (OTP)", 371 + "retry_otp": "إعادة المحاولة باستخدام OTP", 372 + "retrying": "جارٍ إعادة المحاولة...", 373 + "approve_operation": "الموافقة على العملية", 374 + "remove_operation": "إزالة العملية", 375 + "approve_all": "الموافقة على الكل", 376 + "execute": "تنفيذ", 377 + "executing": "جارٍ التنفيذ...", 378 + "log": "السجل", 379 + "log_label": "سجل العمليات المكتملة", 380 + "remove_from_log": "إزالة من السجل" 381 + } 382 + }, 383 + "org": { 384 + "teams": { 385 + "title": "الفرق", 386 + "refresh": "تحديث الفرق", 387 + "filter_label": "فلترة الفرق", 388 + "filter_placeholder": "فلتر الفرق...", 389 + "sort_by": "الترتيب حسب", 390 + "loading": "جارٍ تحميل الفرق...", 391 + "no_teams": "لم يتم العثور على فرق", 392 + "list_label": "فرق المؤسسة", 393 + "delete_team": "حذف الفريق {name}", 394 + "member_count": "{count} أعضاء | عضو واحد | عضوان | {count} أعضاء | {count} عضواً | {count} عضواً", 395 + "members_of": "أعضاء {team}", 396 + "no_members": "لا يوجد أعضاء", 397 + "remove_user": "إزالة {user} من الفريق", 398 + "username_to_add": "اسم المستخدم لإضافته إلى {team}", 399 + "username_placeholder": "اسم المستخدم...", 400 + "add_button": "إضافة", 401 + "cancel_add_user": "إلغاء إضافة المستخدم", 402 + "add_member": "+ إضافة عضو", 403 + "team_name_label": "اسم الفريق", 404 + "team_name_placeholder": "اسم الفريق...", 405 + "create_button": "إنشاء", 406 + "no_match": "لا توجد فرق تطابق \"{query}\"", 407 + "cancel_create": "إلغاء إنشاء الفريق", 408 + "create_team": "+ إنشاء فريق" 409 + }, 410 + "members": { 411 + "title": "الأعضاء", 412 + "refresh": "تحديث الأعضاء", 413 + "filter_label": "فلترة الأعضاء", 414 + "filter_placeholder": "فلتر الأعضاء...", 415 + "filter_by_role": "فلترة حسب الدور", 416 + "filter_by_team": "فلترة حسب الفريق", 417 + "all_teams": "كل الفرق", 418 + "sort_by": "الترتيب حسب", 419 + "loading": "جارٍ تحميل الأعضاء...", 420 + "no_members": "لم يتم العثور على أعضاء", 421 + "list_label": "أعضاء المؤسسة", 422 + "change_role_for": "تغيير الدور لـ {name}", 423 + "remove_from_org": "إزالة {name} من المؤسسة", 424 + "view_team": "عرض فريق {team}", 425 + "no_match": "لا يوجد أعضاء يطابقون عوامل الفلترة", 426 + "username_label": "اسم المستخدم", 427 + "username_placeholder": "اسم المستخدم...", 428 + "role_label": "الدور", 429 + "role": { 430 + "all": "الكل", 431 + "developer": "مطور", 432 + "admin": "مدير", 433 + "owner": "مالك" 434 + }, 435 + "team_label": "الفريق", 436 + "no_team": "بدون فريق", 437 + "add_button": "إضافة", 438 + "cancel_add": "إلغاء إضافة عضو", 439 + "add_member": "+ إضافة عضو" 440 + }, 441 + "public_packages": "{count} حزم عامة | حزمة عامة واحدة | حزمتان عامتان | {count} حزم عامة | {count} حزمة عامة | {count} حزمة عامة", 442 + "page": { 443 + "packages_title": "الحزم", 444 + "members_tab": "الأعضاء", 445 + "teams_tab": "الفرق", 446 + "no_packages": "لم يتم العثور على حزم عامة لـ", 447 + "no_packages_hint": "قد لا تكون هذه المؤسسة موجودة أو قد لا تحتوي على حزم عامة.", 448 + "failed_to_load": "فشل تحميل حزم المؤسسة", 449 + "no_match": "لا توجد حزم تطابق \"{query}\"", 450 + "not_found": "لم يتم العثور على المؤسسة", 451 + "not_found_message": "المؤسسة \"{'@'}{name}\" غير موجودة على npm", 452 + "filter_placeholder": "فلتر {count} حزمة..." 453 + } 454 + }, 455 + "user": { 456 + "combobox": { 457 + "add_to_org_hint": "(سيُضاف أيضًا إلى المؤسسة)", 458 + "press_enter_to_add": "اضغط Enter لإضافة {'@'}{username}", 459 + "default_placeholder": "اسم المستخدم...", 460 + "suggestions_label": "اقتراحات المستخدمين" 461 + }, 462 + "page": { 463 + "packages_title": "الحزم", 464 + "no_packages": "لم يتم العثور على حزم عامة لـ", 465 + "no_packages_hint": "قد لا يكون هذا المستخدم موجودًا أو قد لا يحتوي على حزم عامة.", 466 + "failed_to_load": "فشل تحميل حزم المستخدم", 467 + "no_match": "لا توجد حزم تطابق \"{query}\"", 468 + "filter_placeholder": "فلتر {count} حزمة..." 469 + }, 470 + "orgs_page": { 471 + "title": "المؤسسات", 472 + "back_to_profile": "العودة إلى الملف الشخصي", 473 + "connect_required": "اربط واجهة سطر الأوامر المحلية لعرض مؤسساتك.", 474 + "connect_hint_prefix": "شغّل", 475 + "connect_hint_suffix": "للبدء.", 476 + "own_orgs_only": "يمكنك عرض مؤسساتك أنت فقط.", 477 + "view_your_orgs": "عرض مؤسساتك", 478 + "loading": "جارٍ تحميل المؤسسات...", 479 + "empty": "لم يتم العثور على مؤسسات.", 480 + "empty_hint": "يتم اكتشاف المؤسسات من حزمك ذات النطاق (scoped).", 481 + "count": "{count} مؤسسة | مؤسسة واحدة | مؤسستان | {count} مؤسسات | {count} مؤسسة | {count} مؤسسة", 482 + "packages_count": "{count} حزمة | حزمة واحدة | حزمتان | {count} حزم | {count} حزمة | {count} حزمة" 483 + } 484 + }, 485 + "claim": { 486 + "modal": { 487 + "title": "حجز اسم حزمة", 488 + "close_modal": "إغلاق النافذة", 489 + "success": "تم حجز الحزمة!", 490 + "success_detail": "تم نشر {name}{'@'}0.0.0 على npm.", 491 + "success_hint": "يمكنك الآن نشر إصدارات جديدة لهذه الحزمة باستخدام npm publish.", 492 + "view_package": "عرض الحزمة", 493 + "invalid_name": "اسم حزمة غير صالح:", 494 + "available": "هذا الاسم متاح!", 495 + "taken": "هذا الاسم مستخدم بالفعل.", 496 + "similar_warning": "توجد حزم مشابهة — قد يرفض npm هذا الاسم:", 497 + "related": "حزم ذات صلة:", 498 + "scope_warning_title": "فكّر في استخدام حزمة بنطاق (scoped) بدلًا من ذلك", 499 + "scope_warning_text": "أسماء الحزم غير ذات النطاق هي مورد مشترك. لا تحجز اسمًا إلا إذا كنت تنوي نشر حزمة وصيانتها. للمشاريع الشخصية أو المؤسسية، استخدم اسمًا ذا نطاق مثل {'@'}{username}/{name}.", 500 + "connect_required": "اربط الموصل المحلي لحجز اسم هذه الحزمة.", 501 + "connect_button": "الاتصال بالموصل", 502 + "publish_hint": "سيؤدي هذا إلى نشر حزمة مصغرة كعنصر نائب (placeholder).", 503 + "preview_json": "معاينة package.json", 504 + "claim_button": "حجز اسم الحزمة", 505 + "publishing": "جارٍ النشر...", 506 + "checking": "جارٍ التحقق من التوفر...", 507 + "failed_to_check": "فشل التحقق من توفر الاسم", 508 + "failed_to_claim": "فشل حجز الحزمة" 509 + } 510 + }, 511 + "code": { 512 + "files_label": "الملفات", 513 + "no_files": "لا توجد ملفات في هذا المجلد", 514 + "select_version": "اختر إصدارًا", 515 + "root": "الجذر", 516 + "lines": "{count} سطر", 517 + "toggle_tree": "إظهار/إخفاء شجرة الملفات", 518 + "close_tree": "إغلاق شجرة الملفات", 519 + "copy_link": "نسخ الرابط", 520 + "raw": "خام (Raw)", 521 + "view_raw": "عرض الملف الخام (Raw)", 522 + "file_too_large": "الملف كبير جدًا للمعاينة", 523 + "file_size_warning": "{size} يتجاوز حد 500KB للتظليل النحوي (syntax highlighting)", 524 + "load_anyway": "تحميل على أي حال", 525 + "failed_to_load": "فشل تحميل الملف", 526 + "unavailable_hint": "قد يكون الملف كبيرًا جدًا أو غير متاح", 527 + "version_required": "الإصدار مطلوب لتصفح الكود", 528 + "go_to_package": "الانتقال إلى الحزمة", 529 + "loading_tree": "جارٍ تحميل شجرة الملفات...", 530 + "failed_to_load_tree": "فشل تحميل الملفات لهذا الإصدار من الحزمة", 531 + "back_to_package": "العودة إلى الحزمة", 532 + "table": { 533 + "name": "الاسم", 534 + "size": "الحجم" 535 + } 536 + }, 537 + "badges": { 538 + "provenance": { 539 + "verified": "موثّق", 540 + "verified_title": "مصدر موثّق", 541 + "verified_via": "موثّق: تم النشر عبر {provider}" 542 + }, 543 + "jsr": { 544 + "title": "متوفر أيضًا على JSR", 545 + "label": "jsr" 546 + } 547 + }, 548 + "filters": { 549 + "title": "فلاتر", 550 + "search": "بحث", 551 + "search_scope": "نطاق البحث", 552 + "search_placeholder_name": "فلترة حسب اسم الحزمة...", 553 + "search_placeholder_description": "فلترة حسب الوصف...", 554 + "search_placeholder_keywords": "فلترة حسب الكلمات المفتاحية...", 555 + "search_placeholder_all": "فلترة حسب الكل أو استخدم name: desc: kw:", 556 + "scope_name": "الإسم", 557 + "scope_name_description": "بحث في أسماء الحزم فقط", 558 + "scope_description": "الوصف", 559 + "scope_description_description": "بحث في الأوصاف فقط", 560 + "scope_keywords": "الكلمات المفتاحية", 561 + "scope_keywords_description": "بحث في الكلمات المفتاحية فقط", 562 + "scope_all": "الكل", 563 + "scope_all_description": "بحث في جميع الحقول، يدعم المحددات name: desc: kw:", 564 + "weekly_downloads": "التنزيلات الأسبوعية", 565 + "updated_within": "تم التحديث خلال", 566 + "security": "الأمان", 567 + "keywords": "الكلمات المفتاحية", 568 + "more_keywords": "+{count} المزيد", 569 + "clear_all": "مسح الكل", 570 + "remove_filter": "إزالة فلتر {label}", 571 + "download_range": { 572 + "any": "أي", 573 + "lt100": "< 100", 574 + "100_1k": "100 - 1K", 575 + "1k_10k": "1K - 10K", 576 + "10k_100k": "10K - 100K", 577 + "gt100k": "> 100K" 578 + }, 579 + "updated": { 580 + "any": "أي وقت", 581 + "week": "الأسبوع الماضي", 582 + "month": "الشهر الماضي", 583 + "quarter": "آخر 3 أشهر", 584 + "year": "السنة الماضية" 585 + }, 586 + "security_options": { 587 + "all": "جميع الحزم", 588 + "secure": "بدون تحذيرات", 589 + "insecure": "مع التحذيرات" 590 + }, 591 + "sort": { 592 + "label": "فرز الحزم", 593 + "toggle_direction": "قلب اتجاه الفرز", 594 + "ascending": "تصاعدي", 595 + "descending": "تنازلي", 596 + "relevance": "الصلة", 597 + "downloads_week": "التنزيلات/الأسبوع", 598 + "downloads_day": "التنزيلات/اليوم", 599 + "downloads_month": "التنزيلات/الشهر", 600 + "downloads_year": "التنزيلات/السنة", 601 + "updated": "آخر تحديث", 602 + "name": "الاسم", 603 + "quality": "الجودة", 604 + "popularity": "الشعبية", 605 + "maintenance": "الصيانة", 606 + "score": "التنقيط" 607 + }, 608 + "columns": { 609 + "title": "الأعمدة", 610 + "show": "عرض الأعمدة", 611 + "reset": "إعادة التعيين إلى الافتراضيات", 612 + "coming_soon": "قريبًا", 613 + "name": "الاسم", 614 + "version": "الإصدار", 615 + "description": "الوصف", 616 + "downloads": "التنزيلات/الأسبوع", 617 + "updated": "آخر تحديث", 618 + "maintainers": "المشرفون", 619 + "keywords": "الكلمات المفتاحية", 620 + "quality_score": "درجة الجودة", 621 + "popularity_score": "درجة الشعبية", 622 + "maintenance_score": "درجة الصيانة", 623 + "combined_score": "الدرجة المجمعة", 624 + "security": "الأمان" 625 + }, 626 + "view_mode": { 627 + "label": "وضع العرض", 628 + "cards": "عرض البطاقات", 629 + "table": "عرض الجدول" 630 + }, 631 + "pagination": { 632 + "mode_label": "وضع التصفح", 633 + "infinite": "غير منتهي", 634 + "paginated": "مقسم إلى صفحات", 635 + "items_per_page": "عدد العناصر في الصفحة", 636 + "per_page": "{count} / صفحة", 637 + "all_yolo": "الكل (إنما هي حياة واحدة)", 638 + "showing": "{start}-{end} من {total}", 639 + "previous": "الصفحة السابقة", 640 + "next": "الصفحة التالية", 641 + "nav_label": "التصفح" 642 + }, 643 + "count": { 644 + "showing_filtered": "{filtered} من {total} حزمة", 645 + "showing_all": "{total} حزمة | حزمة واحدة | حزمتان | {total} حزم | {total} حزمة | {total} حزمة", 646 + "showing_paginated": "{pageSize} من {total} حزمة" 647 + }, 648 + "table": { 649 + "security_warning": "تحذير أمني", 650 + "secure": "آمن", 651 + "no_packages": "لم يتم العثور على حزم" 652 + } 653 + }, 654 + "about": { 655 + "title": "حول", 656 + "heading": "حول", 657 + "meta_description": "npmx هو متصفح سريع وحديث لسجل npm. تجربة مستخدم أفضل لاستكشاف حزم npm.", 658 + "back_home": "العودة إلى الصفحة الرئيسية", 659 + "what_we_are": { 660 + "title": "ما هو npmx", 661 + "better_ux_dx": "تجربة مستخدم/مطور أفضل", 662 + "admin_ui": "واجهة إدارة", 663 + "description": "npmx هو {betterUxDx} لسجل حزم npm وأدواته. نحن نوفر واجهة سريعة وحديثة لاستكشاف الحزم، مع ميزات مثل الوضع الداكن، التنقل عبر لوحة المفاتيح، تصفح الكود، والاتصالات بسجلات بديلة مثل {jsr}.", 664 + "admin_description": "نهدف أيضًا إلى توفير {adminUi} أفضل لإدارة حزمك، فرقك، ومنظماتك — كل ذلك من المتصفح، مدعومًا بواسطة npm CLI المحلي الخاص بك." 665 + }, 666 + "what_we_are_not": { 667 + "title": "ما ليس هو npmx", 668 + "not_package_manager": "ليس مدير حزم.", 669 + "not_registry": "ليس سجلًا.", 670 + "registry_description": "نحن لا نستضيف الحزم. نحن مجرد طريقة أفضل لتصفحها.", 671 + "package_managers_exist": "{already} {people} {building} {managers} {package} {cool} {really}.", 672 + "words": { 673 + "already": "هناك بالفعل", 674 + "people": "أشخاص", 675 + "building": "يبنون", 676 + "really": "بحقّ", 677 + "cool": "رائعة", 678 + "package": "حزم", 679 + "managers": "مديري" 680 + } 681 + }, 682 + "contributors": { 683 + "title": "المساهمون", 684 + "description": "npmx هو مشروع مفتوح المصدر بالكامل، تم بناؤه بواسطة مجتمع مذهل من المساهمين.", 685 + "loading": "جارٍ تحميل المساهمين...", 686 + "error": "فشل تحميل المساهمين", 687 + "view_profile": "عرض بروفايل {name} على GitHub" 688 + }, 689 + "get_involved": { 690 + "title": "كن جزءًا من npmx", 691 + "contribute": { 692 + "title": "المساهمة", 693 + "description": "ساعدنا في بناء تجربة npm أفضل.", 694 + "cta": "عرض على GitHub" 695 + }, 696 + "community": { 697 + "title": "انضم إلى المجتمع", 698 + "description": "تحدث، اطرح الأسئلة، وشارك الأفكار.", 699 + "cta": "انضم إلى Discord" 700 + }, 701 + "follow": { 702 + "title": "ابقَ على اطلاع", 703 + "description": "اكتشف آخر الأخبار عن npmx.", 704 + "cta": "تابع على Bluesky" 705 + } 706 + } 707 + }, 708 + "header": { 709 + "home": "الصفحة الرئيسية لـ npmx", 710 + "github": "GitHub", 711 + "packages": "الحزم", 712 + "packages_dropdown": { 713 + "title": "حزمك", 714 + "loading": "جارٍ التحميل...", 715 + "error": "فشل تحميل الحزم", 716 + "empty": "لا توجد حزم", 717 + "view_all": "عرض الكل" 718 + }, 719 + "orgs": "المؤسسات", 720 + "orgs_dropdown": { 721 + "title": "مؤسساتك", 722 + "loading": "جارٍ التحميل...", 723 + "error": "فشل تحميل المؤسسات", 724 + "empty": "لا توجد مؤسسات", 725 + "view_all": "عرض الكل" 726 + } 727 + } 728 + }
+1 -1
lunaria/files/en-US.json
··· 21 21 "button": "search", 22 22 "clear": "Clear search", 23 23 "searching": "Searching...", 24 - "found_packages": "Found {count} packages", 24 + "found_packages": "No packages found | Found 1 package | Found {count} packages", 25 25 "updating": "(updating...)", 26 26 "no_results": "No packages found for \"{query}\"", 27 27 "results": "Search results",
+1
package.json
··· 36 36 "@deno/doc": "jsr:^0.189.1", 37 37 "@iconify-json/simple-icons": "^1.2.67", 38 38 "@iconify-json/vscode-icons": "^1.2.40", 39 + "@intlify/core-base": "^11.2.8", 39 40 "@intlify/shared": "^11.2.8", 40 41 "@lunariajs/core": "https://pkg.pr.new/lunariajs/lunaria/@lunariajs/core@f07e1a3", 41 42 "@nuxt/a11y": "1.0.0-alpha.1",
+3
pnpm-lock.yaml
··· 32 32 '@iconify-json/vscode-icons': 33 33 specifier: ^1.2.40 34 34 version: 1.2.40 35 + '@intlify/core-base': 36 + specifier: ^11.2.8 37 + version: 11.2.8 35 38 '@intlify/shared': 36 39 specifier: ^11.2.8 37 40 version: 11.2.8