Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions src/theme/Playground/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,19 @@ function ResultWithHeader({ title, codeEnv, hidden, code }) {
await navigator.clipboard.writeText(extractedCode);
setCopied(true);
setTimeout(() => setCopied(false), 2000); // reset after 2s

// Track copy event
if (typeof window !== 'undefined' && window.gtag) {
const pageUrl = window.location.pathname;
const codeHash = extractedCode.substring(0, 50).replace(/\s+/g, '_');
window.gtag('event', 'code_snippet_copy', {
event_category: 'code_playground',
event_label: `${pageUrl}::${codeHash}`,
page_url: pageUrl,
snippet_preview: codeHash,
code_env: codeEnv,
});
}
} catch (err) {
console.error('Failed to copy', err);
}
Expand All @@ -126,6 +139,17 @@ function ResultWithHeader({ title, codeEnv, hidden, code }) {
await navigator.clipboard.writeText(shareUrl);
setShared(true);
setTimeout(() => setShared(false), 2000); // reset after 2s

// Track share event
if (typeof window !== 'undefined' && window.gtag) {
window.gtag('event', 'code_snippet_share', {
event_category: 'code_playground',
event_label: shareUrl,
share_url: shareUrl,
code_env: codeEnv,
page_url: window.location.pathname,
});
}
} catch (err) {
console.error('Failed to share', err);
}
Expand Down Expand Up @@ -197,6 +221,19 @@ function EditorWithHeader({ minimized, code, title, codeEnv }) {
await navigator.clipboard.writeText(code);
setCopied(true);
setTimeout(() => setCopied(false), 2000); // reset after 2s

// Track copy event
if (typeof window !== 'undefined' && window.gtag) {
const pageUrl = window.location.pathname;
const codeHash = code.substring(0, 50).replace(/\s+/g, '_');
window.gtag('event', 'code_snippet_copy', {
event_category: 'code_playground',
event_label: `${pageUrl}::${codeHash}`,
page_url: pageUrl,
snippet_preview: codeHash,
code_env: codeEnv,
});
}
} catch (err) {
console.error('Failed to copy', err);
}
Expand Down Expand Up @@ -224,6 +261,17 @@ function EditorWithHeader({ minimized, code, title, codeEnv }) {
await navigator.clipboard.writeText(shareUrl);
setShared(true);
setTimeout(() => setShared(false), 2000); // reset after 2s

// Track share event
if (typeof window !== 'undefined' && window.gtag) {
window.gtag('event', 'code_snippet_share', {
event_category: 'code_playground',
event_label: shareUrl,
share_url: shareUrl,
code_env: codeEnv,
page_url: window.location.pathname,
});
}
} catch (err) {
console.error('Failed to share', err);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,22 @@
"pages": {
"knowledge": {
"deepdives": {
"seo": {
"title": "غوص عميق — المفاهيم والهيكلة",
"description": "شروحات سهلة للقراءة حول الحالة المشتركة (shared state)، وتجريد الرسوم (fee abstraction)، و USV/UEA، وطبقة التنفيذ الشاملة (universal execution layer).",
"og-title": "تعمق - المفاهيم والهيكلة",
"og-description": "مقالات متعمقة حول وحدات Push Chain، وقرارات التصميم، والأداء.",
"twitter-title": "غوص عميق - ما وراء الكواليس",
"twitter-description": "شرح مفصل لكيفية عمل <keep>Push Chain</keep>."
},
"explainer-section": {
"breadcrumbs": {
"knowledge-base": "قاعدة المعرفة"
},
"blocks": {
"title": "غوص عميق",
"sections": {
"architecture-deep-dives": {
"items": {
"intro": "## Architecture Deep Dives\n\nتعرّف على تعقيدات بنية Push Chain وكيفية عملها - وحدة تلو الأخرى.",
"curated-reads": "## قراءات مُختارة 👇"
}
},
"learn-push-chain": {
"title": "تعرّف على ما يجعل بلوكشين Push Chain يعمل!",
"items": {
"interop-spectrum": {
"title": "التشغيل البيني كطيف"
"what-is-universal-fee-abstraction": {
"title": "ما هي تجريد الرسوم الشاملة (Universal Fee Abstraction) وكيف تعمل؟"
},
"what-are-universal-executor-accounts": {
"title": "ما هي الحسابات التنفيذية الشاملة (UEAs) وكيف تعمل؟"
},
"how-universal-transaction-works": {
"title": "كيف تعمل المعاملة العالمية"
},
"understand-proof-of-stake-part-1": {
"title": "فهم إثبات الحصة (POS) - الجزء الأول"
"push-chain-silence-labs": {
"title": "بلوكشين × Silence Labs: بناء آلية التوقيع الموزعة"
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
{
"pages": {
"knowledge": {
"report": {
"seo": {
"twitter-title": "تحديثات شبكة بلوكشين",
"twitter-description": "تحديثات مباشرة حول حالة شبكة بلوكشين وحالة صيانتها."
},
"explainer-section": {
"breadcrumbs": {
"knowledge-base": "قاعدة المعرفة",
"donut-testnet": "Donut Testnet",
"report": "تحديثات الشبكة"
},
"blocks": {
"title": "تحديثات الشبكة",
"sections": {
"updates-overview": {
"items": {
"intro": "محتوى"
}
},
"chain-upgrade-token-rebalance-25-feb-2026": {
"title": "ترقية الـ بلوكشين - إعادة توازن الـ توكن - 10 مليار توكن $PC",
"items": {
"status-heading": "## الحالة",
"status-timeline": "25 فبراير 2026 - بدأ<br />25 فبراير 2026 - ✅ اكتمل",
"overview-heading": "## نظرة عامة",
"overview-text": "Push Chain نفذ اقتراح إعادة توازن <token> لتقليل إجمالي عدد <token> من أكثر من 75 تريليون <token> إلى حوالي 10 مليارات <token>. يهدف هذا التحديث إلى معالجة دين فني من الأيام الأولى لشبكة الاختبار وإعداد الشبكة لبيئة تشبه البيئة الرئيسية.",
"why-heading": "### لماذا تم ذلك؟",
"why-text": "في الأيام الأولى من شبكة اختبار Push Chain، لم تكن هناك عملية حرق وتعدين لـ PC tokens. أدى ذلك إلى حسابات أسعار منخفضة للغاية للمعاملات <universal> وأتاح لحفنة من حاملي الـ <token> تجميع إمدادات <token> هائلة (تصل إلى تريليونات). هذا خلق اقتصاد <token> غير متوازن احتاج إلى تصحيح قبل إطلاق الشبكة الرئيسية.",
"why-necessary": "كان إعادة التوازن ضروريًا لـ:",
"reason-mainnet": "- الاستعداد لبيئة مماثلة للـ mainnet",
"reason-season3": "- تفعيل توزيع مكافآت الموسم الثالث",
"reason-tech-debt": "- إزالة الديون التقنية القديمة من شبكة الاختبار المبكرة",
"reason-token-economy": "- تأسيس اقتصاد توكن عادل ومستدام",
"what-changed-heading": "### ما الذي تغير؟",
"what-changed-text": "تأثر الاقتراح بأعلى 1,950 <wallet> من أصل 1.178 مليون عنوان إجمالي. تم إعادة توازن <wallet> التي تحتفظ بـ 1,100 <token> أو أكثر (بما في ذلك تلك التي تحتوي على تريليونات) للاحتفاظ بين 1,100-2,000 <token>.",
"key-changes-heading": "**التغييرات الرئيسية:**",
"change-supply": "- إجمالي المعروض انخفض من 75T+ إلى حوالي 10B توكن PC",
"change-wallets": "- تم إعادة توازن أفضل 1,950 <token> إلى نطاق يتراوح بين 1,100 و 2,000 $PC",
"change-percentage": "- يؤثر فقط على 0.17٪ من إجمالي العناوين (1,950 من أصل 1.178 مليون)",
"change-unaffected": "- 99.83٪ من المستخدمين لا يتأثرون",
"why-not-informed-heading": "### لماذا لم يتم إعلام المستخدمين مسبقًا؟",
"why-not-informed-text": "لم يتم إخطار المستخدمين مسبقًا لمنع الجهات الخبيثة من إعادة توزيع <token> إلى محافظ أخرى قبل إعادة التوازن. هذا الإجراء الأمني ​​ضمن سلامة عملية إعادة التوازن ومنع التلاعب بالنظام.",
"validator-period": "فترة اقتراح المُدقّق في شبكة الاختبار حاليًا مُحددة بـ 5 دقائق للمساعدة في القضاء على الحالات المتطرفة مثل هذه قبل تنفيذ ملكية المُدقّق اللامركزية الكاملة.",
"why-52t-heading": "### لماذا ما زلت أرى عرض 52T؟",
"why-52t-text": "عملية إعادة التوازن هي نهج من مرحلتين. يتم الآن جمع الـ<token>s في محفظة خاضعة لسيطرة الفريق وسيتم حرقها قريباً.",
"how-affect-heading": "### كيف يؤثر ذلك عليّ؟",
"affect-majority": "**لـ 99.83% من المستخدمين:** هذا التغيير لا يؤثر عليك. رصيد <token> الخاص بك يظل دون تغيير.",
"affect-top-wallets": "**بالنسبة للمحافظ المتأثرة (أفضل 1,950 محفظة):** إذا كانت محفظتك تحتفظ بأكثر من 1,100 توكن PC (أو تريليونات)، فقد تم إعادة توازن رصيدك إلى نطاق 1,100-2,000 توكن PC.",
"need-help-heading": "**هل تحتاج مساعدة؟**",
"need-help-text": "إذا كنت تعتقد أنك متأثر بإعادة التوازن هذه ولديك أسئلة أو مخاوف، يرجى التواصل مع فريق Push Chain على Discord للحصول على المساعدة."
}
}
}
}
}
}
}
}
}
Loading
Loading