32b4460b66
Добавляет zh-CN, fa, ar, tr, uk, be, vi, uz словари (170 ключей, идентичная
вложенная структура) к существующим en/ru. lib/locales.ts — единый источник
списка локалей/дефолтной локали/RTL-набора вместо захардкоженного ["en","ru"]
в proxy.ts. language-switcher.tsx: переключение языка резало только
двухбуквенные коды регэкспом (/^\/[a-z]{2}/), из-за чего zh-CN никогда не
матчился и путь задваивался — заменено на honest-поиск по списку locales.
app/[lang]/layout.tsx — dir="rtl"/"ltr" на <html> по локали (SSR, в отличие
от реактивного клиентского переключения в netrunner-app). Header.tsx/
Footer.tsx — разбитое на три <span> имя бренда визуально переворачивалось
Flexbox'ом под dir=rtl ("VPNrunnerNet"), исправлено через dir="ltr" на
самом враппере.
BlogPreview/Faq/Pricing и обе blog-страницы: fallback на *_en-коллекцию
PocketBase, если для языка ещё нет переведённого контента (FAQ-ответы,
детали тарифов, посты блога не тянутся автоматически — это отдельный от
статических словарей CMS-контент), плюс i18n-ключи period1m/period6m/
period1y вместо захардкоженных ru/en-подписей периодов в Pricing.tsx.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
243 lines
12 KiB
JSON
243 lines
12 KiB
JSON
{
|
|
"nav": {
|
|
"features": "الميزات",
|
|
"pricing": "الأسعار",
|
|
"faq": "الأسئلة الشائعة",
|
|
"blog": "السجلات",
|
|
"terminal": "الطرفية",
|
|
"docs": "التوثيق",
|
|
"cta": "احصل على Netrunner",
|
|
"profile": "الملف الشخصي",
|
|
"menu": "Menu.exe",
|
|
"speedtest": "التشخيص",
|
|
"doom": "DOOM OS"
|
|
},
|
|
"hero": {
|
|
"badge": "النظام يراقب",
|
|
"badgeSecure": "تم إنشاء نفق آمن",
|
|
"titleStart": "النظام يراقب الجميع،",
|
|
"titleHighlight": "ما عداك.",
|
|
"subtitle": "بصمتك الرقمية مخفية. السجلات مدمَّرة. السرعة غير محدودة.",
|
|
"switchLabel": "Netrunner VPN",
|
|
"ctaPrimary": "تنزيل العميل",
|
|
"ctaSecondary": "قائمة العقد"
|
|
},
|
|
"features": {
|
|
"title": "تقنيات الوصول",
|
|
"items": [
|
|
{
|
|
"title": "تجاوز DPI وتقنية uTLS",
|
|
"description": "يُخفي Netrunner حركة البيانات كأنها HTTPS عادية. أنظمة الفحص العميق للحزم لا ترى سوى ضوضاء بيضاء."
|
|
},
|
|
{
|
|
"title": "تشفير ChaCha20-Poly1305",
|
|
"description": "تشفير تدفقي متطور مع سرية تامة إلى الأمام. مفاتيح الجلسات تُولَّد ديناميكياً."
|
|
},
|
|
{
|
|
"title": "ضغط عكسي تكيفي",
|
|
"description": "يتم ضبط حجم المخزن المؤقت ديناميكياً حسب زمن الاستجابة، ما يمنع تلقائياً ارتفاعات التأخير."
|
|
},
|
|
{
|
|
"title": "نواة متعددة المنصات",
|
|
"description": "نواة Rust منخفضة المستوى تضمن توافقاً مثالياً وبلا أي عبء إضافي على أندرويد وويندوز ولينكس. دعم macOS وiOS قيد التطوير."
|
|
},
|
|
{
|
|
"title": "بنية تحتية خاصة بنا",
|
|
"description": "نُشغّل خوادمنا الخاصة بدلاً من استئجارها من مزودي السحابة الكبار، مع تعدد إرسال التدفقات عبر العقد للحصول على اتصال مستقر يصعب حظره."
|
|
}
|
|
]
|
|
},
|
|
"pricing": {
|
|
"badge": "بروتوكولات التسعير",
|
|
"title": "اختر Uplink الخاص بك",
|
|
"perMonth": "/شهرياً",
|
|
"recommend": "موصى به",
|
|
"syncing": "جارٍ مزامنة العقد...",
|
|
"empty": "لم يتم العثور على اتصالات متاحة.",
|
|
"discount": "خصم",
|
|
"mo": "/شهرياً",
|
|
"billedOnce": "يُدفع دفعة واحدة:",
|
|
"period1m": "شهر واحد",
|
|
"period6m": "6 أشهر",
|
|
"period1y": "سنة واحدة"
|
|
},
|
|
"faq": {
|
|
"title": "استعلامات النظام (الأسئلة الشائعة)",
|
|
"empty": "لم يتم العثور على سجلات."
|
|
},
|
|
"blog": {
|
|
"badge": "سجلات البيانات",
|
|
"title": "سجلات الشبكة",
|
|
"more": "جميع المقالات",
|
|
"readMore": "اقرأ المزيد",
|
|
"empty": "لم يتم العثور على إشارات.",
|
|
"archive": "أرشيف الطرفية",
|
|
"systemLogs": "سجلات النظام",
|
|
"emptySector": "[لم يتم العثور على سجلات في هذا القطاع]",
|
|
"decrypt": "فك تشفير المقال ←",
|
|
"backBtn": "cd ../logs",
|
|
"readTime": "وقت القراءة: 4 دقائق",
|
|
"verified": "موثّق: Netrunner",
|
|
"endTransmission": "نهاية الإرسال // node_th_01"
|
|
},
|
|
"footer": {
|
|
"brand": "Netrunner VPN",
|
|
"tagline": "النظام يراقب الجميع، ما عداك.",
|
|
"sections": {
|
|
"product": "المنتج",
|
|
"resources": "الموارد",
|
|
"legal": "قانوني"
|
|
},
|
|
"links": {
|
|
"features": "الميزات",
|
|
"pricing": "الأسعار",
|
|
"faq": "الأسئلة الشائعة",
|
|
"protocol": "البروتوكول",
|
|
"comms": "المدونة",
|
|
"privacy": "الخصوصية",
|
|
"terms": "الشروط",
|
|
"profile": "الملف الشخصي"
|
|
},
|
|
"rights": "© 2026 Netrunner VPN. جميع الحزم مشفّرة.",
|
|
"protocolStatus": "البروتوكول // وصول مشفّر",
|
|
"uplinkStatus": "حالة Uplink",
|
|
"activeNode": "العقدة النشطة",
|
|
"latency": "زمن الاستجابة (RTT)"
|
|
},
|
|
"download": {
|
|
"title": "نشر العقدة",
|
|
"subtitle": "اختر منصتك لنشر عميل Netrunner.",
|
|
"badges": {
|
|
"active": "إصدار مستقر",
|
|
"dev": "قيد التطوير"
|
|
},
|
|
"buttons": {
|
|
"direct": "تنزيل مباشر",
|
|
"store": "رابط المتجر",
|
|
"github": "الكود المصدري",
|
|
"notify": "أعلمني",
|
|
"soon": "قريباً في المتجر",
|
|
"pending": "بانتظار البناء"
|
|
},
|
|
"platforms": {
|
|
"windows": "Windows 10 / 11",
|
|
"android": "Android 8.0+",
|
|
"linux": "Ubuntu / Debian / Arch",
|
|
"macos": "macOS 12.0+",
|
|
"ios": "iOS 15.0+"
|
|
},
|
|
"accessingBuild": "جارٍ الوصول إلى خادم البناء..."
|
|
},
|
|
"terminal": {
|
|
"title": "قناة الاتصال العالمية",
|
|
"description": "قناة اتصال عامة. سجل غير محدود.",
|
|
"alias": "الاسم المستعار",
|
|
"message": "أدخل البيانات...",
|
|
"send": "بث",
|
|
"systemReady": "SYSTEM_READY // UPLINK_SECURED",
|
|
"loadingHistory": "جارٍ تحميل الأرشيف...",
|
|
"noMoreLogs": "تم الوصول إلى نهاية الأرشيف",
|
|
"encrypting": "جارٍ التشفير...",
|
|
"cooldown": "فترة التهدئة: {{time}} ث",
|
|
"manifestoTitle": "بيان قناة الاتصال الحرة // الإصدار 1.0",
|
|
"manifestoText": "هذه الطرفية قناة مباشرة إلى نواة Netrunner. نبث السجلات دون رقابة وبشكل مباشر، لأن بروتوكولاً قادراً على تجاوز DPI لا ينبغي أن يخشى الحقيقة.",
|
|
"rulesTitle": "بروتوكول السلوك:",
|
|
"rule1": "— لا إشراف مسبق. تصل رسالتك إلى الشبكة فوراً.",
|
|
"rule2": "— انتقاد الـ VPN، تقارير الأخطاء، أو الأسئلة الصعبة — كل شيء مسموح.",
|
|
"rule3": "— القيد الوحيد: الإهانات المباشرة لأعضاء الشبكة الآخرين والبريد المزعج. كن سايبربانك، لا متصيداً.",
|
|
"statusReady": "UPLINK_ESTABLISHED // NO_FILTERS_DETECTED"
|
|
},
|
|
"loading": {
|
|
"establishing": "جارٍ إنشاء الاتصال"
|
|
},
|
|
"notFound": {
|
|
"errorBadge": "[ خطأ: العقدة غير موجودة ]",
|
|
"message": "جدول التوجيه لا يحتوي على العقدة المطلوبة. تم إسقاط الإرسال. عد إلى الشبكة الآمنة.",
|
|
"returnHome": "العودة إلى الرئيسية"
|
|
},
|
|
"nodes": {
|
|
"title": "شبكة العقد العالمية",
|
|
"subtitle": "الطوبولوجيا اللحظية لخوادم Netrunner.",
|
|
"status": {
|
|
"online": "متصل",
|
|
"full": "ممتلئ",
|
|
"maintenance": "قيد الصيانة"
|
|
},
|
|
"labels": {
|
|
"load": "حمل الخادم",
|
|
"latency": "زمن الاستجابة"
|
|
}
|
|
},
|
|
"guestbook": {
|
|
"title": "COMM-LINK_",
|
|
"subtitle": "طرفية الاتصال",
|
|
"description": "قناة مباشرة إلى عقد Netrunner.",
|
|
"philosophyTitle": "رقابة صفرية",
|
|
"philosophyText": "بنينا Netrunner لتجاوز كل الحواجز، لذا لا نخشى كلماتك. هذا العرض شهادة حية على حرية التعبير. بينما يخفي الآخرون الملاحظات، نبثّها مباشرة. إذا كان بروتوكولنا يصمد أمام DPI، فسيصمد أمام صدقك أيضاً.",
|
|
"liveFeed": "البث المباشر (آخر 50)",
|
|
"noTransmissions": "لم يتم العثور على إرسالات نشطة.",
|
|
"labelAlias": "الاسم المستعار",
|
|
"labelPayload": "المحتوى",
|
|
"placeholderAlias": "Guest_77",
|
|
"placeholderPayload": "أدخل بيانات الإرسال...",
|
|
"statusSuccess": "تم تسليم البيانات بنجاح.",
|
|
"statusErrorBreach": "خرق أمني. تم قطع الاتصال.",
|
|
"statusErrorEmpty": "يتطلب اسماً مستعاراً ومحتوى.",
|
|
"statusErrorSize": "حجم المحتوى يتجاوز الحد الأقصى.",
|
|
"statusErrorFirewall": "جدار الحماية نشط. انتظر {{time}} ث.",
|
|
"statusErrorOffline": "فشل الإرسال. العقدة غير متصلة.",
|
|
"statusErrorFilter": "⛔ مرفوض: رسالتك تنتهك سياستنا الأمنية (ألفاظ نابية، بريد مزعج، أو محتوى مسيء). يرجى إعادة الصياغة.",
|
|
"btnEncrypting": "جارٍ التشفير...",
|
|
"btnBroadcast": "بث",
|
|
"cooldown": "فترة التهدئة: {{time}} ث"
|
|
},
|
|
"auth": {
|
|
"title": "تفويض UPLINK",
|
|
"processing": "جارٍ معالجة بيانات الاعتماد...",
|
|
"verifying": "جارٍ التحقق من التوقيع التشفيري...",
|
|
"granted": "تم منح الوصول",
|
|
"denied": "تم رفض الوصول",
|
|
"noToken": "لم يتم العثور على رمز تفويض. يرجى المصادقة عبر طرفية Netrunner في تيليجرام.",
|
|
"redirecting": "جارٍ إعادة التوجيه إلى القطاع الآمن...",
|
|
"toBot": "فتح طرفية تيليجرام",
|
|
"awaiting": "بانتظار بيانات الاعتماد",
|
|
"authPrompt": "قم بتهيئة اتصال آمن عبر تيليجرام للوصول إلى لوحة التحكم.",
|
|
"logs": {
|
|
"waitInit": "> [بانتظار] تهيئة تسجيل الدخول الآمن عبر تيليجرام...",
|
|
"sigValid": "> [OK] التوقيع صالح",
|
|
"apiRejected": "> [فشل] رفض الـ API الرمز",
|
|
"coreOffline": "> [فشل] النواة غير متصلة",
|
|
"authPayload": "> [AUTH] تم استلام بيانات تيليجرام",
|
|
"verifyHmac": "> جارٍ التحقق من توقيع HMAC-SHA256...",
|
|
"invalidSig": "> [فشل] توقيع غير صالح أو منتهي الصلاحية",
|
|
"networkError": "> [فشل] خطأ في الشبكة"
|
|
}
|
|
},
|
|
"docs": {
|
|
"establishing": "جارٍ إنشاء اتصال آمن...",
|
|
"vaultTitle": "DATA_VAULT",
|
|
"vaultSubtitle": "سجلات النظام والتوثيق // V4.2",
|
|
"searchPlaceholder": "root@nrxp:~# grep -i ...",
|
|
"empty": "تم العثور على 0 سجل لهذا البحث",
|
|
"closeSession": "إغلاق الجلسة",
|
|
"noContent": "لم يتم العثور على محتوى",
|
|
"eof": "EOF"
|
|
},
|
|
"speedtest": {
|
|
"title": "تشخيص Uplink",
|
|
"mockMode": "وضع المحاكاة المحلية",
|
|
"prodMode": "قياس مباشر مقابل بوابة شبكة Netrunner.",
|
|
"btnError": "إعادة المحاولة",
|
|
"btnDone": "إعادة تشغيل Uplink",
|
|
"btnIdle": "بدء الاختبار",
|
|
"statusPinging": "جارٍ قياس الپينغ",
|
|
"statusDownloading": "جارٍ التنزيل",
|
|
"statusUploading": "جارٍ الرفع",
|
|
"latency": "زمن الاستجابة",
|
|
"download": "التنزيل",
|
|
"upload": "الرفع",
|
|
"unitMs": "مللي ثانية",
|
|
"unitMbps": "ميجابت/ث"
|
|
}
|
|
}
|