diff --git a/web/src/App.tsx b/web/src/App.tsx index 4e62cb72..443ba26e 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -70,6 +70,8 @@ const AssemblyPage = lazy(() => import('@/pages/governance/AssemblyPage')); const JusticePage = lazy(() => import('@/pages/governance/JusticePage')); const PollsPage = lazy(() => import('@/pages/governance/PollsPage')); const WhatsKURDPage = lazy(() => import('@/pages/social/WhatsKURDPage')); +const KurdMediaPage = lazy(() => import('@/pages/social/KurdMediaPage')); +const HelpPage = lazy(() => import('@/pages/HelpPage')); // Network pages const Mainnet = lazy(() => import('@/pages/networks/Mainnet')); @@ -238,6 +240,8 @@ function App() { } /> } /> } /> + } /> + } /> } /> } /> } /> diff --git a/web/src/components/MobileHomeLayout.tsx b/web/src/components/MobileHomeLayout.tsx index 7439b29a..944c8d66 100644 --- a/web/src/components/MobileHomeLayout.tsx +++ b/web/src/components/MobileHomeLayout.tsx @@ -83,9 +83,9 @@ const APP_SECTIONS: AppSection[] = [ apps: [ { title: 'mobile.app.whatsKurd', icon: '💬', route: '/social/whatskurd' }, { title: 'mobile.app.forum', icon: '📰', route: '/forum' }, - { title: 'mobile.app.kurdMedia', icon: '📺', route: '/forum', comingSoon: true }, + { title: 'mobile.app.kurdMedia', icon: '📺', route: '/social/kurdmedia' }, { title: 'mobile.app.events', icon: '📅', route: '/forum', comingSoon: true }, - { title: 'mobile.app.help', icon: '❓', route: '/docs' }, + { title: 'mobile.app.help', icon: '❓', route: '/help' }, { title: 'mobile.app.music', icon: '🎵', route: '/forum', comingSoon: true }, { title: 'mobile.app.vpn', icon: '🛡️', route: '/forum', comingSoon: true }, { title: 'mobile.app.referral', icon: '👥', route: '/dashboard', requiresAuth: true }, diff --git a/web/src/i18n/locales/ar.ts b/web/src/i18n/locales/ar.ts index 994e5092..88e32177 100644 --- a/web/src/i18n/locales/ar.ts +++ b/web/src/i18n/locales/ar.ts @@ -3757,6 +3757,7 @@ export default { 'messaging.checkingKey': 'جاري التحقق من مفتاح التشفير...', 'messaging.send': 'إرسال', 'messaging.sending': 'جاري الإرسال...', + 'messaging.palletNotReady': 'حزمة المراسلة غير متاحة بعد على People Chain. يلزم تحديث وقت التشغيل.', // Mobile Home Layout 'mobile.greeting': 'مرحباً', @@ -3904,4 +3905,37 @@ export default { 'taxZekat.confirm.cancel': 'إلغاء', 'taxZekat.confirm.confirm': 'تأكيد', 'taxZekat.success': 'تم إرسال {{amount}} HEZ بنجاح. شكراً!', + + // Messaging + 'messaging.palletNotReady': 'حزمة المراسلة غير متاحة بعد على People Chain. يلزم تحديث وقت التشغيل.', + + // KurdMedia page + 'kurdMedia.title': 'KurdMedia', + 'kurdMedia.subtitle': 'الإعلام الرقمي الكردي', + 'kurdMedia.channels.title': 'الإعلام الكردي', + 'kurdMedia.channels.subtitle': 'الإعلام الكردي', + 'kurdMedia.channels.desc': 'البث الرسمي لدولة كردستان الرقمية.', + 'kurdMedia.channels.descEn': 'البث الرسمي لـ DKS. تلفزيون، راديو، أخبار والمزيد.', + 'kurdMedia.soon': 'قريباً', + 'kurdMedia.social.title': 'دعم PezkuwiChain', + 'kurdMedia.social.subtitle': 'دعم PezkuwiChain', + 'kurdMedia.social.desc': 'تواصل معنا على منصات التواصل الاجتماعي.', + 'kurdMedia.social.descEn': 'اطرح أسئلتك، تابع الأخبار وانضم إلى مجتمعنا.', + 'kurdMedia.stats.kurds': 'كردي في العالم', + 'kurdMedia.stats.hope': 'أمل', + 'kurdMedia.banner': 'PezkuwiChain - أول بلوك تشين وطني للأكراد', + 'kurdMedia.bannerEn': 'PezkuwiChain - أول بلوك تشين وطني للأكراد', + + // Help page + 'help.title': 'المساعدة والدعم', + 'help.breadcrumb': 'المساعدة والدعم', + 'help.desc': 'سيتم إطلاق نظام المساعدة والدعم قريباً.', + 'help.descEn': 'The help and support system will be launched soon.', + 'help.planned.title': 'الميزات المخططة', + 'help.feature.faq': 'الأسئلة الشائعة (FAQ)', + 'help.feature.live': 'الدعم المباشر', + 'help.feature.guides': 'أدلة المستخدم', + 'help.feature.community': 'التواصل مع المجتمع', + 'help.whatskurd.title': 'مراسلة WhatsKURD', + 'help.whatskurd.desc': 'تواصل معنا عبر نظام المراسلة على البلوك تشين', }; diff --git a/web/src/i18n/locales/ckb.ts b/web/src/i18n/locales/ckb.ts index 2e88684f..206977a3 100644 --- a/web/src/i18n/locales/ckb.ts +++ b/web/src/i18n/locales/ckb.ts @@ -3747,6 +3747,7 @@ export default { 'messaging.checkingKey': 'کلیلی شفرکردن پشکنین دەکرێت...', 'messaging.send': 'بنێرە', 'messaging.sending': 'دەنێردرێت...', + 'messaging.palletNotReady': 'پاڵێتی پەیامگێڕی هێشتا لەسەر People Chain بەردەست نییە. نوێکردنەوەی ڕانتایم پێویستە.', // Mobile Home Layout 'mobile.greeting': 'ڕۆژباش', @@ -3894,4 +3895,37 @@ export default { 'taxZekat.confirm.cancel': 'هەڵوەشاندنەوە', 'taxZekat.confirm.confirm': 'پشتڕاست', 'taxZekat.success': '{{amount}} HEZ بە سەرکەوتوویی نێردرا. سوپاس!', + + // Messaging + 'messaging.palletNotReady': 'پاڵێتی پەیامگێڕی هێشتا لەسەر People Chain بەردەست نییە. نوێکردنەوەی ڕانتایم پێویستە.', + + // KurdMedia page + 'kurdMedia.title': 'KurdMedia', + 'kurdMedia.subtitle': 'میدیای دیجیتاڵی کوردی', + 'kurdMedia.channels.title': 'میدیای کوردی', + 'kurdMedia.channels.subtitle': 'میدیای کوردی', + 'kurdMedia.channels.desc': 'وەشانە فەرمییەکانی دەوڵەتی دیجیتاڵی کوردستان.', + 'kurdMedia.channels.descEn': 'وەشانە فەرمییەکانی DKS. TV، ڕادیۆ، هەواڵ و زیاتر.', + 'kurdMedia.soon': 'بەزووی', + 'kurdMedia.social.title': 'پشتیوانی PezkuwiChain', + 'kurdMedia.social.subtitle': 'پشتیوانی PezkuwiChain', + 'kurdMedia.social.desc': 'پەیوەندیمان پێوە بکەن لەسەر پلاتفۆرمە کۆمەڵایەتییەکان.', + 'kurdMedia.social.descEn': 'پرسیارەکانتان بپرسن، هەواڵ بشوێنەوە و بەشداری کۆمەڵگەمان بکەن.', + 'kurdMedia.stats.kurds': 'کورد لە جیهاندا', + 'kurdMedia.stats.hope': 'هیوا', + 'kurdMedia.banner': 'PezkuwiChain - یەکەم بلۆکچێینی نەتەوەیی کوردان', + 'kurdMedia.bannerEn': 'PezkuwiChain - یەکەم بلۆکچێینی نەتەوەیی کوردان', + + // Help page + 'help.title': 'یارمەتی و پشتیوانی', + 'help.breadcrumb': 'یارمەتی و پشتیوانی', + 'help.desc': 'سیستەمی یارمەتی بەم زووییە دەستی پێدەکات.', + 'help.descEn': 'The help and support system will be launched soon.', + 'help.planned.title': 'تایبەتمەندییە پلانکراوەکان', + 'help.feature.faq': 'پرسیارە زۆرپرسراوەکان (FAQ)', + 'help.feature.live': 'پشتیوانی زیندوو', + 'help.feature.guides': 'ڕێنماییەکانی بەکارهێنەر', + 'help.feature.community': 'پەیوەندی کۆمەڵگە', + 'help.whatskurd.title': 'WhatsKURD پەیامگێڕ', + 'help.whatskurd.desc': 'لەڕێگەی سیستەمی پەیامگێڕی بلۆکچێیندا پەیوەندیمان پێوە بکە', }; diff --git a/web/src/i18n/locales/en.ts b/web/src/i18n/locales/en.ts index 204b7558..d326dc24 100644 --- a/web/src/i18n/locales/en.ts +++ b/web/src/i18n/locales/en.ts @@ -3037,11 +3037,25 @@ export default { 'docs.loading': 'Loading...', 'docs.error': 'Error:', 'docs.title': 'PezkuwiChain Documentation', - 'docs.subtitle': 'Learn how to build on PezkuwiChain', + 'docs.subtitle': 'Everything you need to build on the Kurdish national blockchain', 'docs.selectDoc': 'Select a document from the sidebar to get started.', 'docs.introduction': 'Introduction', 'docs.sdkDocs': 'SDK Docs', 'docs.whitepaper': 'Whitepaper', + 'docs.fullDocsNote': 'For complete and up-to-date documentation, visit the official documentation portal.', + 'docs.visitFullDocs': 'Visit docs.pezkuwichain.io', + 'docs.section.whitepaper': 'Whitepaper', + 'docs.section.whitepaper.desc': 'The foundational document describing the PezkuwiChain vision, architecture, and tokenomics.', + 'docs.section.architecture': 'Architecture', + 'docs.section.architecture.desc': 'Technical deep-dive into the blockchain architecture, consensus, pallets, and relay chain.', + 'docs.section.gettingStarted': 'Getting Started', + 'docs.section.gettingStarted.desc': 'Set up your wallet, get test tokens from the faucet, and make your first transaction.', + 'docs.section.nodeSetup': 'Node Setup', + 'docs.section.nodeSetup.desc': 'Run a validator or full node on PezkuwiChain mainnet, testnet or local environment.', + 'docs.section.sdk': 'SDK Reference', + 'docs.section.sdk.desc': 'JavaScript/TypeScript SDK for building dApps on PezkuwiChain — API reference and examples.', + 'docs.section.contributing': 'Contributor Guide', + 'docs.section.contributing.desc': 'How to contribute to PezkuwiChain — code, documentation, translations, and governance.', // Wiki 'wiki.title': 'Community Wiki', @@ -3795,6 +3809,7 @@ export default { 'messaging.checkingKey': 'Checking encryption key...', 'messaging.send': 'Send', 'messaging.sending': 'Sending...', + 'messaging.palletNotReady': 'Messaging pallet is not yet available on People Chain. A runtime upgrade is required.', // Mobile Home Layout 'mobile.greeting': 'Rojbaş', @@ -3942,4 +3957,37 @@ export default { 'taxZekat.confirm.cancel': 'Cancel', 'taxZekat.confirm.confirm': 'Confirm', 'taxZekat.success': '{{amount}} HEZ sent successfully. Thank you!', + + // Messaging + 'messaging.palletNotReady': 'Messaging pallet is not yet available on People Chain. A runtime upgrade is required.', + + // KurdMedia page + 'kurdMedia.title': 'KurdMedia', + 'kurdMedia.subtitle': 'Kurdish Digital Media', + 'kurdMedia.channels.title': 'Medyaya Kurdî', + 'kurdMedia.channels.subtitle': 'Kurdish Media', + 'kurdMedia.channels.desc': 'Weşanên fermî yên Dewleta Dijîtal a Kurdistanê.', + 'kurdMedia.channels.descEn': 'Official broadcasts of Digital Kurdistan State. TV, radio, news and more.', + 'kurdMedia.soon': 'Soon', + 'kurdMedia.social.title': 'Piştgirî PezkuwiChain', + 'kurdMedia.social.subtitle': 'Support PezkuwiChain', + 'kurdMedia.social.desc': 'Bi me re têkildar bin li ser platformên civakî.', + 'kurdMedia.social.descEn': 'Connect with us on social platforms. Ask questions, follow news and join our community.', + 'kurdMedia.stats.kurds': 'Kurds worldwide', + 'kurdMedia.stats.hope': 'Hope', + 'kurdMedia.banner': "PezkuwiChain - Blockchain'a yekem a netewî ya Kurdan", + 'kurdMedia.bannerEn': 'PezkuwiChain - The first national blockchain of the Kurds', + + // Help page + 'help.title': 'Help & Support', + 'help.breadcrumb': 'Help & Support', + 'help.desc': 'Sîstema arîkariyê dê di demeke nêzîk de were destpêkirin.', + 'help.descEn': 'The help and support system will be launched soon.', + 'help.planned.title': 'Planned Features', + 'help.feature.faq': 'Frequently Asked Questions (FAQ)', + 'help.feature.live': 'Live Support', + 'help.feature.guides': 'User Guides', + 'help.feature.community': 'Community Contact', + 'help.whatskurd.title': 'WhatsKURD Messaging', + 'help.whatskurd.desc': 'Contact us via the blockchain messaging system', } diff --git a/web/src/i18n/locales/fa.ts b/web/src/i18n/locales/fa.ts index 43f883bc..36785f54 100644 --- a/web/src/i18n/locales/fa.ts +++ b/web/src/i18n/locales/fa.ts @@ -3791,6 +3791,7 @@ export default { 'messaging.checkingKey': 'بررسی کلید رمزنگاری...', 'messaging.send': 'ارسال', 'messaging.sending': 'در حال ارسال...', + 'messaging.palletNotReady': 'پالت پیام‌رسانی هنوز در People Chain موجود نیست. یک به‌روزرسانی runtime لازم است.', // Mobile Home Layout 'mobile.greeting': 'سلام', @@ -3938,4 +3939,37 @@ export default { 'taxZekat.confirm.cancel': 'لغو', 'taxZekat.confirm.confirm': 'تأیید', 'taxZekat.success': '{{amount}} HEZ با موفقیت ارسال شد. ممنون!', + + // Messaging + 'messaging.palletNotReady': 'پالت پیام‌رسانی هنوز در People Chain موجود نیست. یک به‌روزرسانی runtime لازم است.', + + // KurdMedia page + 'kurdMedia.title': 'KurdMedia', + 'kurdMedia.subtitle': 'رسانه دیجیتال کردی', + 'kurdMedia.channels.title': 'رسانه کردی', + 'kurdMedia.channels.subtitle': 'رسانه کردی', + 'kurdMedia.channels.desc': 'پخش رسمی دولت دیجیتال کردستان.', + 'kurdMedia.channels.descEn': 'پخش رسمی DKS. تلویزیون، رادیو، اخبار و بیشتر.', + 'kurdMedia.soon': 'به‌زودی', + 'kurdMedia.social.title': 'حمایت از PezkuwiChain', + 'kurdMedia.social.subtitle': 'حمایت از PezkuwiChain', + 'kurdMedia.social.desc': 'در شبکه‌های اجتماعی با ما در ارتباط باشید.', + 'kurdMedia.social.descEn': 'سوالات خود را بپرسید، اخبار را دنبال کنید و به جامعه ما بپیوندید.', + 'kurdMedia.stats.kurds': 'کرد در جهان', + 'kurdMedia.stats.hope': 'امید', + 'kurdMedia.banner': 'PezkuwiChain - اولین بلاک‌چین ملی کردها', + 'kurdMedia.bannerEn': 'PezkuwiChain - اولین بلاک‌چین ملی کردها', + + // Help page + 'help.title': 'کمک و پشتیبانی', + 'help.breadcrumb': 'کمک و پشتیبانی', + 'help.desc': 'سیستم کمک و پشتیبانی به‌زودی راه‌اندازی می‌شود.', + 'help.descEn': 'The help and support system will be launched soon.', + 'help.planned.title': 'ویژگی‌های برنامه‌ریزی‌شده', + 'help.feature.faq': 'سوالات متداول (FAQ)', + 'help.feature.live': 'پشتیبانی زنده', + 'help.feature.guides': 'راهنمای کاربران', + 'help.feature.community': 'ارتباط با جامعه', + 'help.whatskurd.title': 'پیام‌رسانی WhatsKURD', + 'help.whatskurd.desc': 'از طریق سیستم پیام‌رسانی بلاک‌چین با ما تماس بگیرید', }; diff --git a/web/src/i18n/locales/kmr.ts b/web/src/i18n/locales/kmr.ts index a23d4781..a24ee054 100644 --- a/web/src/i18n/locales/kmr.ts +++ b/web/src/i18n/locales/kmr.ts @@ -3774,6 +3774,7 @@ export default { 'messaging.checkingKey': 'Mifteya şîfrekirinê tê kontrol kirin...', 'messaging.send': 'Bişîne', 'messaging.sending': 'Tê şandin...', + 'messaging.palletNotReady': 'Pergala peyamgehê hîn li ser People Chain tune ye. Nûvekirina runtime lazim e.', // Mobile Home Layout 'mobile.greeting': 'Rojbaş', @@ -3921,4 +3922,37 @@ export default { 'taxZekat.confirm.cancel': 'Betal', 'taxZekat.confirm.confirm': 'Piştrast', 'taxZekat.success': '{{amount}} HEZ bi serfirazî hate şandin. Spas!', + + // Messaging + 'messaging.palletNotReady': 'Pergala peyamgehê hîn li ser People Chain tune ye. Nûvekirina runtime lazim e.', + + // KurdMedia page + 'kurdMedia.title': 'KurdMedia', + 'kurdMedia.subtitle': 'Medyaya Dîjîtal a Kurdî', + 'kurdMedia.channels.title': 'Medyaya Kurdî', + 'kurdMedia.channels.subtitle': 'Medyaya Kurdî', + 'kurdMedia.channels.desc': 'Weşanên fermî yên Dewleta Dijîtal a Kurdistanê.', + 'kurdMedia.channels.descEn': 'Weşanên fermî yên DKS. TV, radyo, nûçe û zêdetir.', + 'kurdMedia.soon': 'Zû tê', + 'kurdMedia.social.title': 'Piştgirî PezkuwiChain', + 'kurdMedia.social.subtitle': 'Piştgirî PezkuwiChain', + 'kurdMedia.social.desc': 'Bi me re têkildar bin li ser platformên civakî.', + 'kurdMedia.social.descEn': 'Bi pirsên xwe, nûçeyan bişopînin û tevlî civaka me bibin.', + 'kurdMedia.stats.kurds': 'Kurd li cîhanê', + 'kurdMedia.stats.hope': 'Hêvî', + 'kurdMedia.banner': "PezkuwiChain - Blockchain'a yekem a netewî ya Kurdan", + 'kurdMedia.bannerEn': 'PezkuwiChain - Yekem blockchain netewî ya Kurdan', + + // Help page + 'help.title': 'Arîkarî û Piştgirî', + 'help.breadcrumb': 'Arîkarî û Piştgirî', + 'help.desc': 'Sîstema arîkariyê dê di demeke nêzîk de were destpêkirin.', + 'help.descEn': 'The help and support system will be launched soon.', + 'help.planned.title': 'Taybetmendiyên Plankirin', + 'help.feature.faq': 'Pirsên pir tên pirsîn (FAQ)', + 'help.feature.live': 'Piştgiriya zindî', + 'help.feature.guides': 'Rêberên bikarhêner', + 'help.feature.community': 'Têkiliya civakê', + 'help.whatskurd.title': 'WhatsKURD Peyamgeh', + 'help.whatskurd.desc': 'Bi pergala peyamgehê ya blockchain re bi me re têkildar bibe', }; diff --git a/web/src/i18n/locales/tr.ts b/web/src/i18n/locales/tr.ts index 43e446c2..469a122c 100644 --- a/web/src/i18n/locales/tr.ts +++ b/web/src/i18n/locales/tr.ts @@ -3777,6 +3777,7 @@ export default { 'messaging.checkingKey': 'Şifreleme anahtarı kontrol ediliyor...', 'messaging.send': 'Gönder', 'messaging.sending': 'Gönderiliyor...', + 'messaging.palletNotReady': 'Mesajlaşma paleti henüz People Chain üzerinde mevcut değil. Bir runtime güncellemesi gerekiyor.', // Mobile Home Layout 'mobile.greeting': 'Rojbaş', @@ -3924,4 +3925,37 @@ export default { 'taxZekat.confirm.cancel': 'İptal', 'taxZekat.confirm.confirm': 'Onayla', 'taxZekat.success': '{{amount}} HEZ başarıyla gönderildi. Teşekkürler!', + + // Messaging + 'messaging.palletNotReady': 'Mesajlaşma paleti henüz People Chain üzerinde mevcut değil. Bir runtime güncellemesi gerekiyor.', + + // KurdMedia page + 'kurdMedia.title': 'KurdMedia', + 'kurdMedia.subtitle': 'Kürt Dijital Medyası', + 'kurdMedia.channels.title': 'Kürt Medyası', + 'kurdMedia.channels.subtitle': 'Kürt Medyası', + 'kurdMedia.channels.desc': 'Dijital Kürdistan Devleti\'nin resmi yayınları.', + 'kurdMedia.channels.descEn': 'DKS\'nin resmi yayınları. TV, radyo, haberler ve daha fazlası.', + 'kurdMedia.soon': 'Yakında', + 'kurdMedia.social.title': 'PezkuwiChain\'i Destekle', + 'kurdMedia.social.subtitle': 'PezkuwiChain\'i Destekle', + 'kurdMedia.social.desc': 'Sosyal platformlarda bizimle iletişime geçin.', + 'kurdMedia.social.descEn': 'Sorularınızı sorun, haberleri takip edin ve topluluğumuza katılın.', + 'kurdMedia.stats.kurds': 'Dünyada Kürt', + 'kurdMedia.stats.hope': 'Umut', + 'kurdMedia.banner': 'PezkuwiChain - Kürtlerin ilk ulusal blockchain\'i', + 'kurdMedia.bannerEn': 'PezkuwiChain - Kürtlerin ilk ulusal blockchain\'i', + + // Help page + 'help.title': 'Yardım ve Destek', + 'help.breadcrumb': 'Yardım ve Destek', + 'help.desc': 'Yardım ve destek sistemi yakında başlatılacak.', + 'help.descEn': 'The help and support system will be launched soon.', + 'help.planned.title': 'Planlanan Özellikler', + 'help.feature.faq': 'Sıkça Sorulan Sorular (SSS)', + 'help.feature.live': 'Canlı Destek', + 'help.feature.guides': 'Kullanıcı Rehberleri', + 'help.feature.community': 'Topluluk İletişimi', + 'help.whatskurd.title': 'WhatsKURD Mesajlaşma', + 'help.whatskurd.desc': 'Blockchain mesajlaşma sistemi aracılığıyla bizimle iletişime geçin', }; diff --git a/web/src/pages/Docs.tsx b/web/src/pages/Docs.tsx index e1e8f6ea..4a488894 100644 --- a/web/src/pages/Docs.tsx +++ b/web/src/pages/Docs.tsx @@ -1,311 +1,159 @@ -import React, { useState, useEffect, useMemo } from 'react'; +import React from 'react'; import { useTranslation } from 'react-i18next'; -import { useParams, useNavigate, Link } from 'react-router-dom'; +import { ExternalLink } from 'lucide-react'; import Layout from '@/components/Layout'; -import { marked } from 'marked'; -import { ChevronRight, Book, ExternalLink } from 'lucide-react'; -import DOMPurify from 'dompurify'; -// SDK Embedded View - shown inline in the content area (window in window style) -const SDKEmbeddedView: React.FC = () => { - const sdkUrl = '/sdk_docs/pezkuwi_sdk_docs/index.html'; +const DOCS_URL = 'https://docs.pezkuwichain.io'; - return ( -
- {/* SDK Panel Header */} -
- Pezkuwi -
-

pezkuwi_sdk_docs

- 0.0.1 -
-
- - - -
-
- {/* SDK Docs iframe */} -
-