mirror of
https://github.com/pezkuwichain/pwap.git
synced 2026-04-22 05:37:56 +00:00
fix: i18n all hard-coded strings in mobile layout
Section titles (FINANCE, GOVERNANCE, SOCIAL, EDUCATION) and all app names are now translated via i18n keys instead of hard-coded English. Added translations for all 6 languages (en, tr, kmr, ckb, ar, fa). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -48,58 +48,58 @@ interface AppSection {
|
||||
|
||||
const APP_SECTIONS: AppSection[] = [
|
||||
{
|
||||
titleKey: 'FINANCE',
|
||||
titleKey: 'mobile.section.finance',
|
||||
emoji: '💰',
|
||||
borderColor: 'border-l-green-500',
|
||||
apps: [
|
||||
{ title: 'Wallet', icon: '👛', route: '/wallet' },
|
||||
{ title: 'Bank', icon: '🏦', route: '/wallet', comingSoon: true },
|
||||
{ title: 'Exchange', icon: '💱', route: '/dex', requiresAuth: true },
|
||||
{ title: 'P2P', icon: '🤝', route: '/p2p', requiresAuth: true },
|
||||
{ title: 'B2B', icon: '🤖', route: '/wallet', comingSoon: true },
|
||||
{ title: 'Bac/Zekat', icon: '💰', route: '/wallet', comingSoon: true },
|
||||
{ title: 'Launchpad', icon: '🚀', route: '/launchpad' },
|
||||
{ title: 'mobile.app.wallet', icon: '👛', route: '/wallet' },
|
||||
{ title: 'mobile.app.bank', icon: '🏦', route: '/wallet', comingSoon: true },
|
||||
{ title: 'mobile.app.exchange', icon: '💱', route: '/dex', requiresAuth: true },
|
||||
{ title: 'mobile.app.p2p', icon: '🤝', route: '/p2p', requiresAuth: true },
|
||||
{ title: 'mobile.app.b2b', icon: '🤖', route: '/wallet', comingSoon: true },
|
||||
{ title: 'mobile.app.bacZekat', icon: '💰', route: '/wallet', comingSoon: true },
|
||||
{ title: 'mobile.app.launchpad', icon: '🚀', route: '/launchpad' },
|
||||
],
|
||||
},
|
||||
{
|
||||
titleKey: 'GOVERNANCE',
|
||||
titleKey: 'mobile.section.governance',
|
||||
emoji: '🏛️',
|
||||
borderColor: 'border-l-red-500',
|
||||
apps: [
|
||||
{ title: 'President', icon: '👑', route: '/elections', requiresAuth: true },
|
||||
{ title: 'Assembly', icon: '🏛️', route: '/citizens/government', comingSoon: true },
|
||||
{ title: 'Vote', icon: '🗳️', route: '/elections', requiresAuth: true },
|
||||
{ title: 'Validators', icon: '🛡️', route: '/wallet' },
|
||||
{ title: 'Justice', icon: '⚖️', route: '/citizens/government', comingSoon: true },
|
||||
{ title: 'Proposals', icon: '📜', route: '/citizens/government' },
|
||||
{ title: 'Polls', icon: '📊', route: '/citizens/government', comingSoon: true },
|
||||
{ title: 'Identity', icon: '🆔', route: '/identity' },
|
||||
{ title: 'mobile.app.president', icon: '👑', route: '/elections', requiresAuth: true },
|
||||
{ title: 'mobile.app.assembly', icon: '🏛️', route: '/citizens/government', comingSoon: true },
|
||||
{ title: 'mobile.app.vote', icon: '🗳️', route: '/elections', requiresAuth: true },
|
||||
{ title: 'mobile.app.validators', icon: '🛡️', route: '/wallet' },
|
||||
{ title: 'mobile.app.justice', icon: '⚖️', route: '/citizens/government', comingSoon: true },
|
||||
{ title: 'mobile.app.proposals', icon: '📜', route: '/citizens/government' },
|
||||
{ title: 'mobile.app.polls', icon: '📊', route: '/citizens/government', comingSoon: true },
|
||||
{ title: 'mobile.app.identity', icon: '🆔', route: '/identity' },
|
||||
],
|
||||
},
|
||||
{
|
||||
titleKey: 'SOCIAL',
|
||||
titleKey: 'mobile.section.social',
|
||||
emoji: '💬',
|
||||
borderColor: 'border-l-blue-500',
|
||||
apps: [
|
||||
{ title: 'whatsKURD', icon: '💬', route: '/message', comingSoon: true },
|
||||
{ title: 'Forum', icon: '📰', route: '/forum' },
|
||||
{ title: 'KurdMedia', icon: '📺', route: '/forum', comingSoon: true },
|
||||
{ title: 'Events', icon: '📅', route: '/forum', comingSoon: true },
|
||||
{ title: 'Help', icon: '❓', route: '/docs' },
|
||||
{ title: 'Music', icon: '🎵', route: '/forum', comingSoon: true },
|
||||
{ title: 'VPN', icon: '🛡️', route: '/forum', comingSoon: true },
|
||||
{ title: 'Referral', icon: '👥', route: '/dashboard', requiresAuth: true },
|
||||
{ title: 'mobile.app.whatsKurd', icon: '💬', route: '/message', comingSoon: true },
|
||||
{ title: 'mobile.app.forum', icon: '📰', route: '/forum' },
|
||||
{ title: 'mobile.app.kurdMedia', icon: '📺', route: '/forum', comingSoon: true },
|
||||
{ title: 'mobile.app.events', icon: '📅', route: '/forum', comingSoon: true },
|
||||
{ title: 'mobile.app.help', icon: '❓', route: '/docs' },
|
||||
{ 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 },
|
||||
],
|
||||
},
|
||||
{
|
||||
titleKey: 'EDUCATION',
|
||||
titleKey: 'mobile.section.education',
|
||||
emoji: '📚',
|
||||
borderColor: 'border-l-yellow-500',
|
||||
apps: [
|
||||
{ title: 'University', icon: '🎓', route: '/education', comingSoon: true },
|
||||
{ title: 'Perwerde', icon: '📖', route: '/education', requiresAuth: true },
|
||||
{ title: 'Certificates', icon: '🏆', route: '/education', comingSoon: true },
|
||||
{ title: 'Research', icon: '🔬', route: '/education', comingSoon: true },
|
||||
{ title: 'mobile.app.university', icon: '🎓', route: '/education', comingSoon: true },
|
||||
{ title: 'mobile.app.perwerde', icon: '📖', route: '/education', requiresAuth: true },
|
||||
{ title: 'mobile.app.certificates', icon: '🏆', route: '/education', comingSoon: true },
|
||||
{ title: 'mobile.app.research', icon: '🔬', route: '/education', comingSoon: true },
|
||||
],
|
||||
},
|
||||
];
|
||||
@@ -284,7 +284,7 @@ const MobileHomeLayout: React.FC = () => {
|
||||
{/* Section header */}
|
||||
<div className={`flex items-center justify-between px-4 py-2.5 border-l-4 ${section.borderColor}`}>
|
||||
<h3 className="text-sm font-bold text-white tracking-wide">
|
||||
{section.titleKey} {section.emoji}
|
||||
{t(section.titleKey)} {section.emoji}
|
||||
</h3>
|
||||
</div>
|
||||
{/* App grid - 4 per row */}
|
||||
@@ -312,7 +312,7 @@ const MobileHomeLayout: React.FC = () => {
|
||||
)}
|
||||
</div>
|
||||
<span className="text-[10px] text-gray-300 font-medium text-center leading-tight">
|
||||
{app.title}
|
||||
{t(app.title)}
|
||||
</span>
|
||||
</button>
|
||||
);
|
||||
|
||||
@@ -3776,4 +3776,35 @@ export default {
|
||||
'mobile.joinUs': 'انضم إلينا',
|
||||
'mobile.signInUp': 'تسجيل الدخول / التسجيل',
|
||||
'mobile.loginToSeeRoles': 'سجل الدخول لرؤية الأدوار',
|
||||
'mobile.section.finance': 'المالية',
|
||||
'mobile.section.governance': 'الحوكمة',
|
||||
'mobile.section.social': 'اجتماعي',
|
||||
'mobile.section.education': 'التعليم',
|
||||
'mobile.app.wallet': 'المحفظة',
|
||||
'mobile.app.bank': 'البنك',
|
||||
'mobile.app.exchange': 'البورصة',
|
||||
'mobile.app.p2p': 'P2P',
|
||||
'mobile.app.b2b': 'B2B',
|
||||
'mobile.app.bacZekat': 'الضريبة/الزكاة',
|
||||
'mobile.app.launchpad': 'منصة الإطلاق',
|
||||
'mobile.app.president': 'الرئيس',
|
||||
'mobile.app.assembly': 'البرلمان',
|
||||
'mobile.app.vote': 'تصويت',
|
||||
'mobile.app.validators': 'المدققون',
|
||||
'mobile.app.justice': 'العدالة',
|
||||
'mobile.app.proposals': 'المقترحات',
|
||||
'mobile.app.polls': 'استطلاعات',
|
||||
'mobile.app.identity': 'الهوية',
|
||||
'mobile.app.whatsKurd': 'واتسكورد',
|
||||
'mobile.app.forum': 'المنتدى',
|
||||
'mobile.app.kurdMedia': 'كورد ميديا',
|
||||
'mobile.app.events': 'الفعاليات',
|
||||
'mobile.app.help': 'المساعدة',
|
||||
'mobile.app.music': 'الموسيقى',
|
||||
'mobile.app.vpn': 'VPN',
|
||||
'mobile.app.referral': 'الإحالة',
|
||||
'mobile.app.university': 'الجامعة',
|
||||
'mobile.app.perwerde': 'التعليم',
|
||||
'mobile.app.certificates': 'الشهادات',
|
||||
'mobile.app.research': 'البحث',
|
||||
};
|
||||
|
||||
@@ -3766,4 +3766,35 @@ export default {
|
||||
'mobile.joinUs': 'پەیوەست ببە',
|
||||
'mobile.signInUp': 'چوونەژوورەوە / تۆمارکردن',
|
||||
'mobile.loginToSeeRoles': 'بۆ بینینی ڕۆڵەکان بچۆ ژوورەوە',
|
||||
'mobile.section.finance': 'دارایی',
|
||||
'mobile.section.governance': 'بەڕێوەبردن',
|
||||
'mobile.section.social': 'کۆمەڵایەتی',
|
||||
'mobile.section.education': 'پەروەردە',
|
||||
'mobile.app.wallet': 'جزدان',
|
||||
'mobile.app.bank': 'بانک',
|
||||
'mobile.app.exchange': 'ئاڵوگۆڕ',
|
||||
'mobile.app.p2p': 'P2P',
|
||||
'mobile.app.b2b': 'B2B',
|
||||
'mobile.app.bacZekat': 'باج/زەکات',
|
||||
'mobile.app.launchpad': 'دەستپێکردن',
|
||||
'mobile.app.president': 'سەرۆک',
|
||||
'mobile.app.assembly': 'پەرلەمان',
|
||||
'mobile.app.vote': 'دەنگدان',
|
||||
'mobile.app.validators': 'پشتڕاستکەرەوە',
|
||||
'mobile.app.justice': 'دادوەری',
|
||||
'mobile.app.proposals': 'پێشنیار',
|
||||
'mobile.app.polls': 'ڕاپرسی',
|
||||
'mobile.app.identity': 'ناسنامە',
|
||||
'mobile.app.whatsKurd': 'واتسکورد',
|
||||
'mobile.app.forum': 'فۆڕەم',
|
||||
'mobile.app.kurdMedia': 'کوردمیدیا',
|
||||
'mobile.app.events': 'چالاکی',
|
||||
'mobile.app.help': 'یارمەتی',
|
||||
'mobile.app.music': 'مۆسیقا',
|
||||
'mobile.app.vpn': 'VPN',
|
||||
'mobile.app.referral': 'ئاماژە',
|
||||
'mobile.app.university': 'زانکۆ',
|
||||
'mobile.app.perwerde': 'پەروەردە',
|
||||
'mobile.app.certificates': 'بڕوانامە',
|
||||
'mobile.app.research': 'توێژینەوە',
|
||||
};
|
||||
|
||||
@@ -3814,4 +3814,35 @@ export default {
|
||||
'mobile.joinUs': 'Join Us',
|
||||
'mobile.signInUp': 'Sign In / Up',
|
||||
'mobile.loginToSeeRoles': 'Login to see roles',
|
||||
'mobile.section.finance': 'FINANCE',
|
||||
'mobile.section.governance': 'GOVERNANCE',
|
||||
'mobile.section.social': 'SOCIAL',
|
||||
'mobile.section.education': 'EDUCATION',
|
||||
'mobile.app.wallet': 'Wallet',
|
||||
'mobile.app.bank': 'Bank',
|
||||
'mobile.app.exchange': 'Exchange',
|
||||
'mobile.app.p2p': 'P2P',
|
||||
'mobile.app.b2b': 'B2B',
|
||||
'mobile.app.bacZekat': 'Bac/Zekat',
|
||||
'mobile.app.launchpad': 'Launchpad',
|
||||
'mobile.app.president': 'President',
|
||||
'mobile.app.assembly': 'Assembly',
|
||||
'mobile.app.vote': 'Vote',
|
||||
'mobile.app.validators': 'Validators',
|
||||
'mobile.app.justice': 'Justice',
|
||||
'mobile.app.proposals': 'Proposals',
|
||||
'mobile.app.polls': 'Polls',
|
||||
'mobile.app.identity': 'Identity',
|
||||
'mobile.app.whatsKurd': 'whatsKURD',
|
||||
'mobile.app.forum': 'Forum',
|
||||
'mobile.app.kurdMedia': 'KurdMedia',
|
||||
'mobile.app.events': 'Events',
|
||||
'mobile.app.help': 'Help',
|
||||
'mobile.app.music': 'Music',
|
||||
'mobile.app.vpn': 'VPN',
|
||||
'mobile.app.referral': 'Referral',
|
||||
'mobile.app.university': 'University',
|
||||
'mobile.app.perwerde': 'Perwerde',
|
||||
'mobile.app.certificates': 'Certificates',
|
||||
'mobile.app.research': 'Research',
|
||||
}
|
||||
|
||||
@@ -3810,4 +3810,35 @@ export default {
|
||||
'mobile.joinUs': 'به ما بپیوندید',
|
||||
'mobile.signInUp': 'ورود / ثبت نام',
|
||||
'mobile.loginToSeeRoles': 'برای دیدن نقشها وارد شوید',
|
||||
'mobile.section.finance': 'مالی',
|
||||
'mobile.section.governance': 'حکمرانی',
|
||||
'mobile.section.social': 'اجتماعی',
|
||||
'mobile.section.education': 'آموزش',
|
||||
'mobile.app.wallet': 'کیف پول',
|
||||
'mobile.app.bank': 'بانک',
|
||||
'mobile.app.exchange': 'صرافی',
|
||||
'mobile.app.p2p': 'P2P',
|
||||
'mobile.app.b2b': 'B2B',
|
||||
'mobile.app.bacZekat': 'مالیات/زکات',
|
||||
'mobile.app.launchpad': 'سکوی پرتاب',
|
||||
'mobile.app.president': 'رئیس',
|
||||
'mobile.app.assembly': 'مجلس',
|
||||
'mobile.app.vote': 'رأی دادن',
|
||||
'mobile.app.validators': 'اعتبارسنجها',
|
||||
'mobile.app.justice': 'عدالت',
|
||||
'mobile.app.proposals': 'پیشنهادات',
|
||||
'mobile.app.polls': 'نظرسنجی',
|
||||
'mobile.app.identity': 'هویت',
|
||||
'mobile.app.whatsKurd': 'واتسکورد',
|
||||
'mobile.app.forum': 'انجمن',
|
||||
'mobile.app.kurdMedia': 'کوردمدیا',
|
||||
'mobile.app.events': 'رویدادها',
|
||||
'mobile.app.help': 'کمک',
|
||||
'mobile.app.music': 'موسیقی',
|
||||
'mobile.app.vpn': 'VPN',
|
||||
'mobile.app.referral': 'ارجاع',
|
||||
'mobile.app.university': 'دانشگاه',
|
||||
'mobile.app.perwerde': 'آموزش',
|
||||
'mobile.app.certificates': 'گواهینامهها',
|
||||
'mobile.app.research': 'تحقیقات',
|
||||
};
|
||||
|
||||
@@ -3793,4 +3793,35 @@ export default {
|
||||
'mobile.joinUs': 'Tevlî me bibe',
|
||||
'mobile.signInUp': 'Têkeve / Tomar bibe',
|
||||
'mobile.loginToSeeRoles': 'Ji bo rolan têkeve',
|
||||
'mobile.section.finance': 'DARAYÎ',
|
||||
'mobile.section.governance': 'RÊVEBERÎ',
|
||||
'mobile.section.social': 'CIVAKÎ',
|
||||
'mobile.section.education': 'PERWERDE',
|
||||
'mobile.app.wallet': 'Berîk',
|
||||
'mobile.app.bank': 'Bank',
|
||||
'mobile.app.exchange': 'Danûstandin',
|
||||
'mobile.app.p2p': 'P2P',
|
||||
'mobile.app.b2b': 'B2B',
|
||||
'mobile.app.bacZekat': 'Bac/Zekat',
|
||||
'mobile.app.launchpad': 'Destpêk',
|
||||
'mobile.app.president': 'Serok',
|
||||
'mobile.app.assembly': 'Meclîs',
|
||||
'mobile.app.vote': 'Deng bide',
|
||||
'mobile.app.validators': 'Pejirandox',
|
||||
'mobile.app.justice': 'Dadwerî',
|
||||
'mobile.app.proposals': 'Pêşniyar',
|
||||
'mobile.app.polls': 'Rapirsî',
|
||||
'mobile.app.identity': 'Nasnama',
|
||||
'mobile.app.whatsKurd': 'whatsKURD',
|
||||
'mobile.app.forum': 'Forum',
|
||||
'mobile.app.kurdMedia': 'KurdMedya',
|
||||
'mobile.app.events': 'Çalakî',
|
||||
'mobile.app.help': 'Alîkarî',
|
||||
'mobile.app.music': 'Muzîk',
|
||||
'mobile.app.vpn': 'VPN',
|
||||
'mobile.app.referral': 'Referans',
|
||||
'mobile.app.university': 'Zanînge',
|
||||
'mobile.app.perwerde': 'Perwerde',
|
||||
'mobile.app.certificates': 'Belge',
|
||||
'mobile.app.research': 'Lêkolîn',
|
||||
};
|
||||
|
||||
@@ -3796,4 +3796,35 @@ export default {
|
||||
'mobile.joinUs': 'Bize Katil',
|
||||
'mobile.signInUp': 'Giris / Kayit',
|
||||
'mobile.loginToSeeRoles': 'Rolleri gormek icin giris yap',
|
||||
'mobile.section.finance': 'FİNANS',
|
||||
'mobile.section.governance': 'YÖNETİM',
|
||||
'mobile.section.social': 'SOSYAL',
|
||||
'mobile.section.education': 'EĞİTİM',
|
||||
'mobile.app.wallet': 'Cüzdan',
|
||||
'mobile.app.bank': 'Banka',
|
||||
'mobile.app.exchange': 'Borsa',
|
||||
'mobile.app.p2p': 'P2P',
|
||||
'mobile.app.b2b': 'B2B',
|
||||
'mobile.app.bacZekat': 'Vergi/Zekat',
|
||||
'mobile.app.launchpad': 'Launchpad',
|
||||
'mobile.app.president': 'Başkan',
|
||||
'mobile.app.assembly': 'Meclis',
|
||||
'mobile.app.vote': 'Oy Ver',
|
||||
'mobile.app.validators': 'Doğrulayıcılar',
|
||||
'mobile.app.justice': 'Adalet',
|
||||
'mobile.app.proposals': 'Teklifler',
|
||||
'mobile.app.polls': 'Anketler',
|
||||
'mobile.app.identity': 'Kimlik',
|
||||
'mobile.app.whatsKurd': 'whatsKURD',
|
||||
'mobile.app.forum': 'Forum',
|
||||
'mobile.app.kurdMedia': 'KurdMedya',
|
||||
'mobile.app.events': 'Etkinlikler',
|
||||
'mobile.app.help': 'Yardım',
|
||||
'mobile.app.music': 'Müzik',
|
||||
'mobile.app.vpn': 'VPN',
|
||||
'mobile.app.referral': 'Referans',
|
||||
'mobile.app.university': 'Üniversite',
|
||||
'mobile.app.perwerde': 'Eğitim',
|
||||
'mobile.app.certificates': 'Sertifikalar',
|
||||
'mobile.app.research': 'Araştırma',
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user