-
New Track
-
{title} {titleGradient}
+const TrackSection = ({ id, bgClass, logo, logoAlt, logoBg, title, titleGradient, color, description, highlights, ctaLabel }) => {
+ const { t } = useTranslation();
+
+ return (
+
+
+
+
+
+

+
+ {t('data.tracks.newTrack')}
+
{title} {titleGradient}
+
+
+ {description.map((p, i) =>
{p}
)}
+
+
+ {t('data.tracks.submitTalk', { label: ctaLabel })}
+
+
+ {t('data.tracks.attendTrack', { label: ctaLabel })}
+
- {description.map((p, i) =>
{p}
)}
-
-
- Submit a {ctaLabel} Talk
-
-
- Attend {ctaLabel} Track
-
+
+
{t('data.tracks.trackHighlights', { label: ctaLabel })}
+
+ {highlights.map((item, i) => (
+ -
+ {String(i + 1).padStart(2, '0')}
+
+
{item.title}
+
{item.text}
+
+
+ ))}
+
-
-
{ctaLabel} Track Highlights
-
- {highlights.map((item, i) => (
- -
- {String(i + 1).padStart(2, '0')}
-
-
{item.title}
-
{item.text}
-
-
- ))}
-
-
-
-
-);
+
+ );
+};
export default TrackSection;
diff --git a/src/i18n/LanguageContext.jsx b/src/i18n/LanguageContext.jsx
new file mode 100644
index 0000000..23aabc3
--- /dev/null
+++ b/src/i18n/LanguageContext.jsx
@@ -0,0 +1,36 @@
+import i18n from 'i18next';
+import { initReactI18next } from 'react-i18next';
+import en from './en.json';
+import fr from './fr.json';
+
+function getInitialLanguage() {
+ const saved = localStorage.getItem('pycon-lang');
+ if (saved === 'en' || saved === 'fr') return saved;
+
+ // Detect browser language
+ const browserLang = navigator.language || navigator.userLanguage || '';
+ if (browserLang.startsWith('fr')) return 'fr';
+ return 'en';
+}
+
+const initialLang = getInitialLanguage();
+
+i18n.use(initReactI18next).init({
+ resources: {
+ en: { translation: en },
+ fr: { translation: fr },
+ },
+ lng: initialLang,
+ fallbackLng: 'en',
+ interpolation: { escapeValue: false },
+ initImmediate: false,
+});
+
+i18n.on('languageChanged', (lng) => {
+ localStorage.setItem('pycon-lang', lng);
+ document.documentElement.lang = lng;
+});
+
+document.documentElement.lang = initialLang;
+
+export default i18n;
diff --git a/src/i18n/en.json b/src/i18n/en.json
new file mode 100644
index 0000000..f2d8e48
--- /dev/null
+++ b/src/i18n/en.json
@@ -0,0 +1,640 @@
+{
+ "nav": {
+ "about": "About",
+ "speakers": "Speakers",
+ "sponsor": "Sponsor",
+ "attend": "Attend",
+ "venue": "Venue",
+ "ubucon": "UbuCon"
+ },
+ "footer": {
+ "description": "Cameroon's first Python conference, bringing together developers, enthusiasts, and innovators from across Africa and beyond.",
+ "about": "About",
+ "overview": "Overview",
+ "team": "Team",
+ "codeOfConduct": "Code of Conduct",
+ "psf": "Python Software Foundation",
+ "program": "Program",
+ "speakers": "Speakers",
+ "proposalGuidelines": "Proposal Guidelines",
+ "venue": "Venue",
+ "contact": "Contact",
+ "sponsorship": "Sponsorship",
+ "support": "Support",
+ "copyright": "\u00a9 2026 PyCon Cameroon. All rights reserved.",
+ "builtBy": "Built by",
+ "terms": "Terms and Conditions",
+ "privacy": "Privacy Policy",
+ "healthSafety": "Health & Safety"
+ },
+ "home": {
+ "heroSubtitle": "Africa's Python Conference, Reimagined in the Heart of Africa",
+ "heroDate": "September 17th-19th, 2026",
+ "heroLocation": "Yaound\u00e9, Cameroon",
+ "callForSpeakers": "Call For Speakers",
+ "getYourTicket": "Get Your Ticket",
+ "welcomeTitle": "Welcome to",
+ "welcomeTitleHighlight": "PyCon Cameroon 2026",
+ "welcomeText": "Join us for Cameroon's first-ever PyCon \u2014 a celebration of Python, technology, and African innovation. Experience two days of inspiring talks, hands-on workshops, and unforgettable networking opportunities in the vibrant city of Yaound\u00e9.",
+ "card1Title": "African Innovation Hub",
+ "card1Text": "Connect with developers, entrepreneurs, and tech enthusiasts from across Africa and the world. Experience the unique blend of Cameroonian culture and cutting-edge technology.",
+ "card2Title": "Python for Everyone",
+ "card2Text": "Whether you're a beginner taking your first steps or an expert pushing boundaries, our diverse program caters to all skill levels and interests.",
+ "card3Title": "Community Driven",
+ "card3Text": "We believe in building a welcoming, inclusive community where everyone feels valued. Diversity and collaboration are at the heart of everything we do.",
+ "whatToExpect": "What to Expect",
+ "inspiringTalks": "Inspiring Talks",
+ "inspiringTalksText": "From beginner to expert, our diverse range of talks covers web development, data science, machine learning, DevOps, and more.",
+ "workshops": "Hands-on Workshops",
+ "workshopsText": "Learn by doing with practical workshops led by industry experts. Build real projects and gain valuable skills.",
+ "networking": "Networking",
+ "networkingText": "Connect with fellow Pythonistas, potential employers, and collaborators in a friendly, supportive environment.",
+ "funActivities": "Fun Activities",
+ "funActivitiesText": "Lightning talks, sprints, cultural experiences, and social events make PyCon Cameroon an unforgettable experience.",
+ "ubuconDesc1Start": "For the first time, PyCon Cameroon 2026 is partnering with",
+ "ubuconDesc1Bold": "UbuCon Cameroon",
+ "ubuconDesc1End": "to bring you a dedicated Ubuntu and open source track! This special track is co-organized by Python Cameroon and UbuCon Cameroon.",
+ "ubuconDesc2": "Explore talks and workshops on Ubuntu, Linux system administration, open source contributions, cloud infrastructure, and how Python powers the Ubuntu ecosystem.",
+ "djangoDesc1Start": "PyCon Cameroon 2026 features a dedicated",
+ "djangoDesc1Bold": "Django track",
+ "djangoDesc1End": "for web developers! Dive into the world of Django \u2014 from building robust web applications to REST APIs, deployment best practices, and scaling Django in production.",
+ "djangoDesc2": "Whether you're just starting with Django or you're a seasoned developer, this track offers hands-on workshops, real-world case studies, and expert talks.",
+ "expectedAttendees": "Expected Attendees",
+ "technicalSessions": "Technical Sessions",
+ "workshopsStat": "Workshops",
+ "daysOfLearning": "Days of Learning",
+ "readyToJoin": "Ready to Join Us?",
+ "readyToJoinText": "Be part of Cameroon's first PyCon and help shape the future of Python in Africa.",
+ "submitATalk": "Submit a Talk",
+ "sponsorshipDeck": "Sponsorship Deck"
+ },
+ "about": {
+ "title": "About",
+ "titleHighlight": "PyCon Cameroon",
+ "subtitle": "Discover who we are and our mission to grow the Python community in Cameroon",
+ "userGroupTitle": "Python Cameroon",
+ "userGroupHighlight": "User Group",
+ "userGroupP1": "The Python Cameroon User Group is a vibrant community of software developers, data scientists, and tech enthusiasts in Cameroon who are passionate about the Python programming language. We are dedicated to sharing knowledge, fostering innovation, and promoting the adoption of Python across all sectors.",
+ "userGroupP2": "Our community meets regularly to discuss various topics related to Python, including web development with Django and Flask, scientific computing, machine learning with TensorFlow and PyTorch, data science with Pandas, automation, DevOps, and much more.",
+ "userGroupP3": "We organize speaker sessions, coding workshops, hackathons, and mentorship programs to help members improve their Python skills and build practical applications that solve real-world problems.",
+ "joinCommunity": "Join Our Community",
+ "missionTitle": "Our",
+ "missionHighlight": "Mission",
+ "pyconCameroon": "PyCon Cameroon",
+ "missionP1": "PyCon Cameroon is a community-driven conference that aims to provide a platform for the growth of the Python community in Cameroon and across Central Africa. We believe that diversity and inclusivity are essential for the growth and success of our community.",
+ "missionP2": "We strive to create a welcoming and inclusive environment for all attendees, regardless of their backgrounds, genders, ages, or identities. Our conference is designed to inspire, educate, and connect developers at every skill level.",
+ "missionP3": "Bringing together techies from across Africa and the globe, startups, students, researchers, and seasoned professionals, PyCon Cameroon is a unique opportunity to learn, network, and collaborate with like-minded individuals.",
+ "missionInvite": "We invite you to join us in celebrating the power of Python and its applications in shaping the future of technology in Cameroon and beyond.",
+ "valuesTitle": "Our",
+ "valuesHighlight": "Values",
+ "teamTitle": "Meet the",
+ "teamHighlight": "Team",
+ "teamSubtitle": "The PyCon Cameroon team is made up of a diverse group of individuals with a wide range of experiences and skills. We are committed to providing a supportive and inclusive environment for all attendees, speakers, sponsors, and volunteers.",
+ "volunteerText": "Interested in joining the organizing team? We're always looking for passionate volunteers!",
+ "joinTeam": "Join Our Team",
+ "partnersTitle": "Partner",
+ "partnersHighlight": "Communities",
+ "partnersSubtitle": "We are proud to collaborate with these amazing communities across Africa and beyond.",
+ "conductTitle": "Code of",
+ "conductHighlight": "Conduct",
+ "conductCommitment": "Our Commitment",
+ "conductText": "PyCon Cameroon is dedicated to providing a harassment-free conference experience for everyone, regardless of gender, gender identity and expression, age, sexual orientation, disability, physical appearance, body size, race, ethnicity, religion (or lack thereof), or technology choices.",
+ "conductP1": "We do not tolerate harassment of conference participants in any form. Sexual language and imagery is not appropriate for any conference venue, including talks, workshops, parties, Twitter, and other online media.",
+ "conductP2": "Conference participants violating these rules may be sanctioned or expelled from the conference without a refund at the discretion of the conference organizers.",
+ "readFullCoC": "Read Full Code of Conduct"
+ },
+ "speakers": {
+ "title": "Call for",
+ "titleHighlight": "Speakers",
+ "subtitle": "Share your expertise and inspire the Python community in Cameroon",
+ "excitedTitle": "We're Excited to Have You!",
+ "excitedText": "Whether you're a first-time speaker or a seasoned presenter, we want to hear from you! If you have an interesting Python topic, project, or experience to share, submit your proposal and we'll review it with care.",
+ "bannerInvite": "We're inviting speakers of all experience levels and backgrounds to contribute to our conference program. Don't be shy \u2013 your unique perspective matters!",
+ "submitProposal": "Submit Your Proposal",
+ "cfpUpcoming": "Call for Proposals will be OPEN on {{date}}!",
+ "cfpOpen": "Call for Proposals is NOW OPEN!",
+ "cfpClosed": "Call for Proposals is now CLOSED. Thank you for your submissions!",
+ "ctaUpcoming": "We can't wait to see your proposal. Submissions open {{date}}!",
+ "ctaOpen": "We can't wait to see your proposal. Submit before {{date}}!",
+ "ctaClosed": "The CFP is closed. Stay tuned for speaker announcements!",
+ "guidelinesTitle": "Proposal",
+ "guidelinesHighlight": "Guidelines",
+ "guidelinesSubtitle": "Everything you need to know to submit a successful proposal",
+ "guidelinesIntro": "We are very excited to invite everyone to PyCon Cameroon 2026! We are seeking speakers of all experience levels and backgrounds to contribute to our conference program. If you use Python professionally, as a hobbyist, or are just excited about Python or programming and open source communities, we'd love to hear from you.",
+ "guidelinesNote": "Please take the time to read the information below to help you submit an informed and successful proposal.",
+ "timeline": "Timeline",
+ "sessionTypes": "Session Types",
+ "regularTalks": "Regular Talks (30 min)",
+ "regularTalksText": "Standard conference talks covering Python topics, case studies, best practices, and technical deep-dives.",
+ "lightningTalks": "Lightning Talks (5 min)",
+ "lightningTalksText": "Short, focused presentations on a single topic, idea, or project. Great for first-time speakers!",
+ "workshopsSessions": "Workshops (3 hours)",
+ "workshopsSessionsText": "Hands-on tutorials where attendees learn by doing. Includes coding exercises and practical projects.",
+ "panelDiscussions": "Panel Discussions",
+ "panelDiscussionsText": "Moderated discussions with multiple experts on trending Python topics and industry trends.",
+ "ubuconTrackNew": "UbuCon Cameroon Track (New!)",
+ "ubuconTrackText": "In partnership with UbuCon Cameroon, we are accepting proposals for our dedicated Ubuntu & open source track. Topics include Ubuntu development, Linux system administration, open source contributions, cloud infrastructure, and Python in the Ubuntu ecosystem. Select \"UbuCon Track\" when submitting on Sessionize.",
+ "importantNotes": "Important Notes",
+ "aiPolicy": "AI-Generated Content Policy",
+ "aiPolicyText": "Proposal submissions that are solely or largely written by AI tools (such as ChatGPT, Claude, etc.) will not be accepted. Your proposal should reflect your own thoughts and expertise.",
+ "proposalLimit": "Proposal Limit",
+ "proposalLimitItems": ["Each individual may submit a maximum of two proposals", "Each proposal may include a maximum of two speakers", "Co-speaking counts toward your submission limit"],
+ "recordingNotice": "Recording Notice",
+ "recordingNoticeText": "All PyCon Cameroon talks and workshops will be recorded and released on our YouTube channel to help with Python education across Africa. By submitting, you agree to be recorded.",
+ "speakerSupport": "Speaker Support",
+ "speakerSupportText": "Please note that PyCon Cameroon is currently unable to provide financial assistance (travel, accommodation, etc.) to speakers. All selected speakers will receive a free conference ticket for the full event.",
+ "codeOfConduct": "Code of Conduct",
+ "cocP1": "All speakers are expected to have read and adhere to the conference Code of Conduct. Slide contents and spoken material should be appropriate for a professional audience including people of many different backgrounds.",
+ "cocP2": "Sexual language and imagery are not appropriate, and neither is language or imagery that denigrates or demeans people based on race, gender, religion, sexual orientation, physical appearance, disability, or any other dimension of diversity.",
+ "submitOnSessionize": "Submit on Sessionize",
+ "featuredTitle": "Featured",
+ "featuredHighlight": "Speakers",
+ "featuredSubtitle": "Meet some of our confirmed speakers for PyCon Cameroon 2026",
+ "comingSoon": "Coming Soon!",
+ "comingSoonText": "Our speaker lineup is currently being finalized. Check back soon to see the amazing speakers joining us at PyCon Cameroon 2026!",
+ "whySpeakTitle": "Why",
+ "whySpeakHighlight": "Speak",
+ "whySpeakSuffix": "at PyCon Cameroon?",
+ "reachAudience": "Reach a New Audience",
+ "reachAudienceText": "Share your knowledge with the growing Python community in Cameroon and Central Africa.",
+ "recordedShared": "Recorded & Shared",
+ "recordedSharedText": "Your talk will be recorded and shared on YouTube, reaching even more developers worldwide.",
+ "freePass": "Free Conference Pass",
+ "freePassText": "Selected speakers receive a complimentary conference pass for both days of PyCon Cameroon.",
+ "speakerNetworking": "Networking",
+ "speakerNetworkingText": "Connect with fellow speakers, industry leaders, and passionate developers from across Africa.",
+ "buildBrand": "Build Your Brand",
+ "buildBrandText": "Establish yourself as an expert in your field and boost your professional profile.",
+ "giveBack": "Give Back",
+ "giveBackText": "Help grow the Python community and inspire the next generation of African developers.",
+ "readyToShare": "Ready to Share Your Knowledge?",
+ "submitProposalNow": "Submit Your Proposal Now",
+ "timelineMilestones": [
+ { "label": "March 30th, 2026", "title": "CFP and Call for Sponsors Opens", "description": "Start submitting your talk and workshop proposals via Sessionize." },
+ { "label": "May 15th, 2026, 11:59 PM WAT", "title": "CFP Closes", "description": "Last day to submit your proposals. Don't wait until the last minute!" },
+ { "label": "May 30th, 2026", "title": "Announcement of Speakers", "description": "Selected speakers will be announced. All submitters will receive notifications." },
+ { "label": "June 15th, 2026", "title": "Schedule Published", "description": "The full conference schedule is posted on the PyCon Cameroon website." },
+ { "label": "September 17th-19th, 2026", "title": "PyCon Cameroon 2026", "description": "The main event in Yaound\u00e9, Cameroon!" }
+ ],
+ "now": "Now",
+ "done": "Done"
+ },
+ "sponsor": {
+ "title": "Become a",
+ "titleHighlight": "Sponsor",
+ "subtitle": "Join us in shaping the future of Python in Cameroon and Central Africa",
+ "viewDeck": "View Sponsorship Deck",
+ "whySponsorTitle": "Why Sponsor",
+ "whySponsorHighlight": "PyCon CM?",
+ "whySponsorText": "PyCon Cameroon brings together developers, engineers, data scientists, and tech enthusiasts from across East and Central Africa for an unforgettable celebration of Python programming.",
+ "connectTalent": "Connect with Top Talent",
+ "connectTalentText": "Engage directly with hundreds of passionate Python developers, from beginners to experts.",
+ "brandAwareness": "Build Brand Awareness",
+ "brandAwarenessText": "Showcase your company to a highly engaged technical audience in the growing African tech ecosystem.",
+ "supportCommunity": "Support the Community",
+ "supportCommunityText": "Help foster the growth of Python programming in Cameroon and contribute to technological advancement in the region.",
+ "recruitment": "Recruitment Opportunities",
+ "recruitmentText": "Meet potential candidates face-to-face in a dynamic, technology-focused environment.",
+ "ourImpact": "Our Impact",
+ "expectedAttendees": "Expected Attendees",
+ "technicalTalks": "Technical Talks",
+ "countriesRepresented": "Countries Represented",
+ "digitalReach": "Digital Reach",
+ "tiersTitle": "Sponsorship",
+ "tiersHighlight": "Tiers",
+ "tiersSubtitle": "Choose the package that best fits your goals",
+ "international": "International (USD)",
+ "local": "Local (XAF)",
+ "communityPackage": "Community Package",
+ "tier": "Tier",
+ "select": "Select",
+ "pricesLocal": "Prices are listed in XAF (Cameroon Franc). USD equivalent shown for reference.",
+ "pricesInternational": "Prices are listed in USD. Payment in local currency (XAF) is also accepted.",
+ "customPackages": "Custom Packages:",
+ "customPackagesText": "Don't see a package that fits your needs? We're happy to discuss custom sponsorship opportunities!",
+ "getInvolved": "Get Involved Today",
+ "getInvolvedText": "Join companies that are leading the way in supporting the Python community in Africa.",
+ "contactSponsor": "Contact Us for Sponsorship"
+ },
+ "attend": {
+ "title": "Attend",
+ "titleHighlight": "PyCon",
+ "subtitle": "Everything you need to know about registration, travel, and your stay in Yaound\u00e9",
+ "registrationTitle": "Registration",
+ "registrationHighlight": "Information",
+ "registrationSubtitle": "Register today to secure your spot at Cameroon's premier Python event",
+ "registrationText": "PyCon Cameroon trusts you to self-select a fair registration rate. By choosing the appropriate rate, you help keep the conference affordable for students and those requiring financial assistance.",
+ "earlyBird": "Early Bird",
+ "limitedTime": "Limited Time Offer",
+ "earlyBirdText": "Secure your spot early at our special discounted rate. Available for all attendees for a limited time.",
+ "getEarlyBird": "Get Early Bird Ticket",
+ "normalRate": "Normal Rate",
+ "standardAdmission": "Standard Admission",
+ "normalRateText": "Standard ticket price for the two-day conference, including lunch, refreshments, and conference swag.",
+ "getNormal": "Get Normal Ticket",
+ "onSite": "On-Site",
+ "atTheDoor": "At the Door",
+ "onSiteText": "Purchase your ticket on-site during the conference. Subject to availability \u2014 we recommend buying in advance!",
+ "availableAtVenue": "Available at Venue",
+ "whatsIncluded": "What's Included?",
+ "accessTo": "Your registration gives you access to:",
+ "mainConference": "Main Conference Days (Sep 17-19)",
+ "mainConferenceItems": ["Access to all keynote sessions and talk tracks", "Morning coffee and refreshments", "Delicious lunch on both days", "Afternoon tea/coffee break", "Access to the Expo Hall and Job Fair"],
+ "socialEvents": "Social Events",
+ "socialEventsItems": ["Opening Reception (Sep 16 evening)", "PyCon Official Dinner", "Community networking sessions"],
+ "conferenceSwag": "Conference Swag",
+ "conferenceSwagItems": ["Official PyCon Cameroon T-shirt", "Tote bag with sponsor goodies", "Stickers and other fun items"],
+ "paymentSupport": "What does your payment support?",
+ "paymentSupportText": "Your registration helps us keep PyCon Cameroon affordable. Costs go towards:",
+ "paymentItems": ["Venue rental and audiovisual equipment", "Catering (lunch and breaks)", "Internet connectivity", "Travel grants for those who need assistance", "Community infrastructure and future events"],
+ "travelTitle": "International",
+ "travelHighlight": "Travel & Visas",
+ "visaInfo": "Visa Information",
+ "visaText": "Most visitors to Cameroon require a visa. Please check with your local Cameroonian embassy or consulate for specific requirements.",
+ "visaLetters": "Visa Letters:",
+ "visaLettersText": "We can provide an official invitation letter to support your visa application once you have a paid registration.",
+ "requestLetter": "Request Invitation Letter",
+ "policies": "Policies",
+ "cancellation": "Cancellation Policy",
+ "cancellationText": "Cancellations received by August 15, 2026, will receive a refund less a processing fee. No refunds will be granted after this date unless for visa denial or health reasons.",
+ "ticketTransfers": "Ticket Transfers",
+ "ticketTransfersText": "You may transfer your ticket to another person by sending a written request to organizers@pythoncameroon.org before September 1, 2026.",
+ "questionsRegistration": "Questions about registration?",
+ "contactRegistration": "Contact our registration team"
+ },
+ "venue": {
+ "title": "The",
+ "titleHighlight": "Venue",
+ "subtitle": "Join us in the beautiful city of Yaound\u00e9, the political capital of Cameroon",
+ "locationTitle": "Conference",
+ "locationHighlight": "Location",
+ "venueName": "PyCon CM Venue (TBD)",
+ "venueCity": "Yaound\u00e9, Cameroon",
+ "addressSoon": "Address Details Coming Soon",
+ "finalizingVenue": "We are currently finalizing the perfect venue to host PyCon Cameroon 2026. We're looking for a space that embodies the spirit of our community\u2014modern, accessible, and vibrant.",
+ "expectFacility": "Expect a state-of-the-art facility with:",
+ "facilityItems": ["High-speed internet connectivity", "Modern audiovisual equipment", "Comfortable seating and workspaces", "Accessible facilities for all attendees"],
+ "planTripTitle": "Plan Your",
+ "planTripHighlight": "Trip",
+ "accommodation": "Accommodation",
+ "accommodationText": "We will be partnering with several hotels near the conference venue to offer special rates for attendees.",
+ "officialHotels": "Official Hotels:",
+ "hotelsSoon": "List coming soon once venue is confirmed!",
+ "accommodationRange": "Yaound\u00e9 offers a range of accommodation options from luxury hotels to budget-friendly guesthouses.",
+ "gettingThere": "Getting There",
+ "byAir": "By Air:",
+ "byAirText": "Yaound\u00e9 Nsimalen International Airport (NSI) is the main airport serving the city.",
+ "byBus": "By Bus:",
+ "byBusText": "Several reliable bus companies operate routes connecting Yaound\u00e9 to other major cities like Douala.",
+ "rideHailing": "Ride-hailing apps like Yango and local taxis are widely available for getting around the city.",
+ "exploreTitle": "Explore",
+ "exploreHighlight": "Yaound\u00e9",
+ "exploreSubtitle": "Enjoy the city of seven hills during your stay"
+ },
+ "privacy": {
+ "title": "Privacy and",
+ "titleHighlight": "Data Policy",
+ "subtitle": "How we handle your data",
+ "summary": "The Python Software Community in Cameroon only collects the information necessary to register you for PyCon Cameroon and to provide you access to PyCon Cameroon content and services. Registrant contact information is NOT shared with third parties without your explicit opt-in consent.",
+ "submitTalk": "If you submit a talk, tutorial, or other content, your name will be publicly associated with your personal content for purposes of giving you credit for your contribution to the conference and to maintain historical records.",
+ "optIn": "You may opt in to getting email messages about the PyCon Cameroon conference, and you may opt in to sharing basic contact information with sponsors. Choosing not to opt in will in no way detract from your ability to attend or engage with PyCon Cameroon.",
+ "whoResponsibleTitle": "Who Is Responsible For The Personal Information We Collect?",
+ "whoResponsibleP1": "For the purpose of data protection laws, the Python Software Community in Cameroon is the data controller in respect to the personal information that we collect and use as part of our operations. As the data controller, we control, manage, and dictate the purpose for which your personal information is used and how we use your personal information for our operation. Only our system administrators and our support team have access to your data, and we ensure that they comply with relevant data protection requirements in their volunteer work. You can amend and remove any information at any time from your profile page on the conference website.",
+ "whoResponsibleP2": "If you choose to provide your personal information to other parties during PyCon Cameroon, including sponsors, then their data privacy policies apply to the data that you give to them.",
+ "whatCollectTitle": "What Personal Information Do We Collect?",
+ "whatCollectIntro": "The type of personal information that we may collect includes, but is not limited to, the following:",
+ "whatCollectItems": [
+ "Full name",
+ "Address",
+ "Phone numbers",
+ "Email addresses",
+ "Other contact information",
+ "Payment information",
+ "Company, firm, organisation, agency, or other entity information",
+ "Photograph",
+ "Biographies",
+ "Preference information, such as communications that you receive from us",
+ "Dietary preferences and requirements",
+ "Information that you provide to us for the purposes of attending meetings, events, webinars, and other programmes",
+ "Any other information relating to you (or other individuals) which you may provide to us"
+ ],
+ "whatCollectThirdParty": "If you provide personal information to us regarding or related to a third party, you confirm that you have the consent of the third party to share such personal information and that you have made the information in this Privacy Policy available to the relevant third party.",
+ "whatCollectUse": "We use the information you give us to create and find badges, track helpdesk questions, write invoices, show your profile (if made public), contact you with updates regarding the conference, and provide you with access to announcements for subsequent events. For speakers, we may also use the information in the conference booklet, the schedule, and on web pages of the conference website.",
+ "whatCollectDemographics": "Some of the information is also used to create demographics for the conference in anonymous and aggregated form, which we use for advertising the conference to potential sponsors.",
+ "linksTitle": "Links to Other Websites",
+ "linksText": "Our website may contain links to other websites of interest. However, once you have used these links to leave our site, we do not have any control over that other website. Therefore, we cannot be responsible for the protection and privacy of any information which you provide whilst visiting such sites, which are not governed by this privacy statement. You should exercise caution and look at the privacy statement applicable to the website in question.",
+ "howUseTitle": "How Do We Use The Personal Information We Collect?",
+ "howUseIntro": "The Python Software Community in Cameroon collects personal information for the following principal purposes:",
+ "howUseItems": [
+ "To provide the PyCon Cameroon website to you",
+ "To enrol you for PyCon Cameroon-related mailings (opt-in only)",
+ "To register you for events, tutorials, and other services",
+ "To provide you with information about Python, PyCon Cameroon, and events within the conference",
+ "To allow you to connect with PyCon Cameroon sponsors (opt-in only)",
+ "To communicate with you and to respond to your questions, inquiries, or concerns",
+ "To administer and improve PyCon Cameroon, including the website, events, tutorials, and other services",
+ "To process your payment for PyCon Cameroon services and events",
+ "To prevent and detect fraud",
+ "To protect and enforce our legal rights"
+ ],
+ "howUseLegitimate": "We do this for our legitimate business purposes, and under certain circumstances, to perform a contract between you and us. We may request your consent in circumstances where a legal justification over and above legitimate interests is required by applicable law.",
+ "audioTitle": "Audio, Video Recordings and Photography",
+ "audioText": "We will have audio and video recordings during the event (for example, talk recordings), as well as one or more photographers taking pictures to help us with marketing the conference. We may publish these photos and recordings on our websites or third-party sites such as YouTube and social media, and in other marketing material such as brochures, flyers, and promotional videos. We will take care not to make public photos, videos, or audio recordings which could cause harm to the individuals shown or heard in them. If you find such material on any of our sites or accounts, please write to privacy@pyconcameroon.org to ask for review.",
+ "rightsTitle": "Your Rights, Including Removing, Correcting or Updating Personal Information",
+ "rightsP1": "If you change your mind on the use of your information or wish to access, correct, or update personal information (such as your address), we will endeavour to correct, update, or remove the personal data that you give us. Information that you have explicitly made available for unrestricted public access, such as having your name associated with a talk that you provide, may not be able to be deleted.",
+ "rightsP2": "Cameroon's Law No. 2010/012 on Cybersecurity and Cybercriminality, alongside broader data protection principles, provides individuals with rights to control their personal data, including:",
+ "rightsItems": [
+ "Right of access to your personal information",
+ "Right to rectify your personal information",
+ "Right to erasure of your personal information",
+ "Right to restrict the use of your personal information",
+ "Right to data portability",
+ "Right to object to the personal use of your information",
+ "Right to withdraw consent",
+ "Right to complain to the relevant authority"
+ ],
+ "rightsException": "An exception to data wiping is invoices and accounting data: if you have purchased something on our website, we are legally required to preserve the invoices for at least 6 years after the conference.",
+ "retentionTitle": "How Long Will We Keep Your Personal Information?",
+ "retentionText": "We will keep your personal information for no longer than is necessary for the purposes for which the personal data are processed.",
+ "questionsTitle": "Questions, Concerns, or Complaints",
+ "questionsText": "If you have any questions, concerns, or complaints about this Privacy Policy, please contact privacy@pyconcameroon.org. You are entitled to make an anonymous complaint or inquiry in relation to this Privacy Policy or your privacy rights; however, we may require you to identify yourself if required by law or if it is impracticable for us to deal with your matter otherwise. We will acknowledge receipt of any complaint and will strive to provide you with a written response within 30 days of receipt of your complaint.",
+ "updatesTitle": "Informing You About Updates to This Policy",
+ "updatesText": "We may update this policy periodically to add new services or to adapt it to new regulations. In order to keep you up to date with changes, we will issue notices on our website and news channels, and in some cases send you an email explaining the change. In case of a possible data breach, we will try to contact you directly via email if we believe that your data was affected.",
+ "organizedBy": "PyCon Cameroon 2026 is organised by a team of volunteers on behalf of the Python community in Cameroon.",
+ "contactUs": "Contact us:"
+ },
+ "terms": {
+ "title": "Terms and",
+ "titleHighlight": "Conditions",
+ "subtitle": "Please read these terms carefully before registering",
+ "lastUpdated": "Last updated: January 2026",
+ "introTitle": "1. Introduction",
+ "introText": "Welcome to PyCon Cameroon 2026. By registering for or attending our conference, you agree to comply with and be bound by the following terms and conditions.",
+ "regTitle": "2. Registration and Payment",
+ "regItems": [
+ "All registrations must be paid in full prior to the event.",
+ "Tickets are transferable until August 1, 2026, upon written request.",
+ "We reserve the right to cancel any registration that does not comply with our policies."
+ ],
+ "cancelTitle": "3. Cancellation and Refunds",
+ "cancelText": "Cancellations received by July 15, 2026, will receive a refund less a processing fee. No refunds will be granted after this date unless for visa denial or serious health reasons, subject to verification.",
+ "cocTitle": "4. Code of Conduct",
+ "cocText": "All attendees, speakers, sponsors, and volunteers are required to agree with the Code of Conduct. Organizers will enforce this code throughout the event. We expect cooperation from all participants to help ensure a safe environment for everybody.",
+ "photoTitle": "5. Photography and Media",
+ "photoText": "By attending PyCon Cameroon, you grant permission for the organizers to use photographs and video recordings of you taken during the event for marketing and promotional purposes.",
+ "liabilityTitle": "6. Limitation of Liability",
+ "liabilityText": "PyCon Cameroon organizers will not be liable for any loss, injury, or damage to persons or property during the event. Attendees are responsible for their own personal belongings and safety.",
+ "contactTitle": "7. Contact Us",
+ "contactText": "If you have any questions about these Terms, please contact us at"
+ },
+ "healthSafety": {
+ "title": "Health and Safety",
+ "titleHighlight": "Guidelines",
+ "subtitle": "PyCon Cameroon 2026",
+ "intro": "PyCon Cameroon 2026 will be held as a live, in-person event in Yaound\u00e9, Cameroon. Your health and safety are important to us. We want PyCon Cameroon to be an event that everyone feels safe attending. PyCon Cameroon will follow applicable national and local health and safety laws, adapting our plans accordingly and sharing updates with all attendees.",
+ "maskTitle": "MASK POLICY",
+ "maskP1": "We are asking you to wear a mask during your time at PyCon Cameroon. That includes talks, the expo hall, hallways, and sprints.",
+ "maskExceptions": "Exceptions are:",
+ "maskExceptionItems": [
+ "Outdoor spaces",
+ "Indoors while actively consuming food or beverages",
+ "Speakers while presenting",
+ "While necessary for communicating with someone who is hearing impaired when the ability to see the mouth is essential for communication",
+ "Very briefly to take photos"
+ ],
+ "maskRequirements": "Masks must be worn over the nose and mouth and must be made of a tight-knit, non-permeable material. N95 or equivalent masks such as KN95 or K95 are recommended. Alternatives to face coverings such as face shields, loose gaiters, scarves, bandanas, and face coverings with ventilation are not permitted to be used as masks. Although we encourage you to bring your own masks that you find comfortable, there will also be free masks available for attendees during each day of PyCon Cameroon, as supplies permit.",
+ "maskEnforcement": "Attendees who are repeatedly unwilling to comply with the mask requirements will be asked to leave and are not eligible for a refund.",
+ "vaccTitle": "VACCINATIONS",
+ "vaccP1": "We encourage PyCon Cameroon attendees to stay up to date with the vaccinations that are available to them where they live. We know that attendees are coming from different regions and countries, and the availability of vaccines may vary. We encourage you to do your best.",
+ "vaccP2": "We expect people to stay home if they may be contagious. If you are feeling sick or exhibiting symptoms of COVID-19, or test positive for COVID-19, prior to the start of the conference or on any day of the conference, please contact us at organizers@pyconcameroon.org and our health and safety team will advise accordingly.",
+ "visaTitle": "VISA INFORMATION",
+ "visaP1": "Cameroon visa requirements vary depending on your nationality. Citizens of ECOWAS member states and several other African countries may enter Cameroon without a visa or obtain a visa on arrival. Citizens of most other countries will need to obtain a visa from a Cameroonian Embassy or Consulate prior to travel.",
+ "visaP2": "Please check your specific country's requirements well in advance and contact us if you require a support letter for your visa application. You should also ensure you have any required vaccination certificates (such as yellow fever) before travelling to Cameroon.",
+ "airportTitle": "AIRPORT AND TRAVEL",
+ "airportText": "All international travel will arrive through Nsimalen International Airport, Yaound\u00e9. Various airlines provide services to Yaound\u00e9. Some hotels offer pick-up services and we encourage participants with such options to use them. Taxis and ride-hailing services are also available.",
+ "adviceTitle": "ADVICE FOR INTERNATIONAL VISITORS",
+ "adviceIntro": "Please read this information carefully. Some of it is crucial and it will help you have a better travel experience.",
+ "adviceItems": [
+ { "label": "Visa:", "text": "You may need a visa to enter Cameroon. Check this well in advance, as failing to do so may result in denied entry or being unable to board your flight. Contact us if you have any questions." },
+ { "label": "Yellow Fever Certificate:", "text": "A valid yellow fever vaccination certificate is required to enter Cameroon. Please ensure you have this before travelling \u2014 do not leave it until the last minute." },
+ { "label": "Other vaccinations:", "text": "Optional but recommended vaccinations include Hepatitis A, Tetanus, and Typhoid." },
+ { "label": "Malaria precautions:", "text": "Malaria precautions are strongly advised. Seek medical advice on whether you should be taking anti-malarial medication before and during your visit." }
+ ],
+ "habitsTitle": "HEALTHY HABITS",
+ "habitsP1": "Hand sanitizing stations will be placed throughout PyCon Cameroon venues to encourage frequent hand sanitization.",
+ "habitsP2": "We will issue best practices for attendees that include avoiding close-contact greetings where possible and how exhibitors can best manage product demonstrations.",
+ "disclaimerTitle": "DISCLAIMER",
+ "disclaimerText": "PyCon Cameroon takes these Health and Safety Guidelines very seriously and will enforce a 3-strike rule. Anyone who violates these guidelines on three separate occasions \u2014 such as continuing to not wear a proper mask or disregarding safe distancing \u2014 is subject to removal from the conference. Anyone who provides false vaccination verification will not be admitted to PyCon Cameroon.",
+ "organizedBy": "PyCon Cameroon 2026 is organised by a team of volunteers on behalf of the Python community in Cameroon.",
+ "contactUs": "Contact us:"
+ },
+ "codeOfConduct": {
+ "title": "Code of",
+ "titleHighlight": "Conduct",
+ "subtitle": "PyCon Cameroon 2026",
+ "commitmentTitle": "Our Commitment",
+ "commitmentP1": "PyCon Cameroon is dedicated to providing a harassment-free conference experience for everyone, regardless of gender, gender identity and expression, age, sexual orientation, disability, physical appearance, body size, race, ethnicity, religion (or lack thereof), or technology choices.",
+ "commitmentP2": "We do not tolerate harassment of conference participants in any form. Sexual language and imagery is not appropriate for any conference venue, including talks, workshops, parties, Twitter, and other online media.",
+ "commitmentP3": "Conference participants violating these rules may be sanctioned or expelled from the conference without a refund at the discretion of the conference organizers.",
+ "expectedTitle": "Expected Behavior",
+ "expectedItems": [
+ "Be considerate, respectful, and collaborative.",
+ "Refrain from demeaning, discriminatory or harassing behavior and speech.",
+ "Be mindful of your surroundings and of your fellow participants. Alert conference organizers if you notice a dangerous situation or someone in distress.",
+ "Participate in an authentic and active way. In doing so, you help to create PyCon Cameroon and make it your own."
+ ],
+ "unacceptableTitle": "Unacceptable Behavior",
+ "unacceptableIntro": "Unacceptable behaviors include, but are not limited to:",
+ "unacceptableItems": [
+ "Intimidating, harassing, abusive, discriminatory, derogatory, or demeaning conduct by any attendees of PyCon Cameroon and related events.",
+ "Offensive verbal comments related to gender, sexual orientation, race, religion, or disability.",
+ "Inappropriate use of nudity and/or sexual images in public spaces (including presentation slides).",
+ "Deliberate intimidation, stalking or following.",
+ "Harassing photography or recording.",
+ "Sustained disruption of talks or other events.",
+ "Inappropriate physical contact.",
+ "Unwelcome sexual attention."
+ ],
+ "consequencesTitle": "Consequences of Unacceptable Behavior",
+ "consequencesP1": "Unacceptable behavior will not be tolerated whether by other attendees, media, speakers, volunteers, organizers, venue staff, sponsors, or exhibitors.",
+ "consequencesP2": "Anyone asked to stop unacceptable behavior is expected to comply immediately.",
+ "consequencesP3": "If a participant engages in unacceptable behavior, the conference organizers may take any action they deem appropriate, up to and including expulsion from the conference without warning or refund.",
+ "witnessTitle": "What to Do if You Witness or Are Subject to Unacceptable Behavior",
+ "witnessP1": "If you are subject to unacceptable behavior, notice that someone else is being subject to unacceptable behavior, or have any other concerns, please notify a conference organizer as soon as possible.",
+ "witnessP2": "The PyCon Cameroon team will be available to help participants contact venue security or local law enforcement, to provide escorts, or to otherwise assist those experiencing unacceptable behavior to feel safe for the duration of the conference.",
+ "contactTitle": "Contact Information",
+ "contactText": "If you need to report any issues, please reach out to us:",
+ "contactEmail": "organizers@pythoncameroon.org"
+ },
+ "ubucon": {
+ "headerSubtitle": "A dedicated Ubuntu & open source track at PyCon Cameroon 2026",
+ "coOrganized": "Co-organized by Python Cameroon & UbuCon Cameroon",
+ "whatIsTitle": "What is",
+ "whatIsHighlight": "UbuCon?",
+ "whatIsP1": "UbuCon (Ubuntu Conference) is a community-driven event that brings together Ubuntu enthusiasts, developers, and open source advocates. For the first time in Cameroon, we're co-hosting a UbuCon track within PyCon Cameroon 2026.",
+ "whatIsP2": "This partnership between Python Cameroon and UbuCon Cameroon celebrates the deep relationship between Python and the Ubuntu ecosystem \u2014 from system tools and automation to cloud infrastructure and beyond.",
+ "submitTalk": "Submit a UbuCon Talk",
+ "glanceTitle": "UbuCon at a Glance",
+ "dedicatedDay": "Dedicated Day",
+ "talksWorkshops": "Talks & Workshops",
+ "communitiesUnited": "Communities United",
+ "openSource": "Open Source",
+ "topicsTitle": "UbuCon",
+ "topicsHighlight": "Topics",
+ "topicsSubtitle": "What you can expect at the UbuCon track",
+ "topics": [
+ { "title": "Ubuntu & Python", "text": "How Python powers Ubuntu development, packaging, system tools, and automation. From apt to Juju, Python is everywhere in Ubuntu." },
+ { "title": "Linux System Administration", "text": "Managing Ubuntu servers, desktop environments, networking, and security best practices for developers and sysadmins." },
+ { "title": "Open Source Contributions", "text": "Getting started with open source, contributing to Ubuntu and upstream projects, and building a portfolio through FOSS." },
+ { "title": "Cloud & Infrastructure", "text": "Ubuntu Server, LXD, MicroK8s, cloud-native development, and deploying Python applications on Ubuntu infrastructure." },
+ { "title": "Snap & Packaging", "text": "Distributing Python applications as Snaps, building packages for Ubuntu, and understanding the Linux packaging ecosystem." },
+ { "title": "IoT & Embedded", "text": "Ubuntu Core, Python on embedded devices, IoT solutions, and building smart devices with Ubuntu and Python." }
+ ],
+ "worldTitle": "UbuCons Around the",
+ "worldHighlight": "World",
+ "worldSubtitle": "Discover UbuCon events happening globally",
+ "loadingMap": "Loading map...",
+ "ctaTitle": "Join the UbuCon Track",
+ "ctaText": "Whether you're an Ubuntu power user or just getting started with Linux, the UbuCon track has something for you.",
+ "ctaSubmit": "Submit a Talk",
+ "ctaTicket": "Get Your Ticket"
+ },
+ "financialAid": {
+ "title": "Financial Aid",
+ "titleHighlight": "Programme",
+ "subtitle": "PyCon Cameroon 2026",
+ "aboutTitle": "About the Financial Assistance Programme",
+ "aboutText": "We are delighted you are interested in attending PyCon Cameroon 2026, which will be held in Yaound\u00e9, Cameroon. As part of our commitment to fostering an inclusive community, we recognize that some individuals may need financial assistance to make conference participation possible.",
+ "grantTitle": "Grant Availability and Coverage",
+ "grantText": "Due to budget limitations, we can only support a small number of attendees with financial aid grants. These grants will be awarded based on financial need and responses provided in the application form. Please note that approved grants may only cover certain expenses (e.g. conference ticket but not accommodation). Any expenses not covered by your specific grant would remain your responsibility.",
+ "applicationTitle": "Application Details",
+ "applicationP1": "Please complete the form to provide details on your financial needs and circumstances. This information is essential for the grants review committee to evaluate applicants and make fair and informed decisions on grant recipients.",
+ "applicationP2": "We welcome your open and honest responses, even for basic needs. Our goal is to make the conference accessible to as many Python enthusiasts as possible.",
+ "applicationP3": "Your application will be treated in complete confidence.",
+ "whoTitle": "Who Will Receive Financial Assistance?",
+ "whoP1": "We'd love to be able to help all those who submit applications, but our funds are not unlimited, so sadly we won't be able to meet all requests.",
+ "whoP2": "The financial assistance programme will prioritise:",
+ "whoItems": [
+ "Speakers",
+ "Those who will contribute back to their local communities",
+ "Those who will help increase diversity at the event and in Cameroonian and African programming"
+ ],
+ "whoP3": "We will do our best to maximise the impact of our financial assistance funding.",
+ "howTitle": "How to Apply",
+ "howP1": "Please complete our form before the application deadline (to be announced). We will not accept applications after the stated date.",
+ "howP2": "Read the questions on the form carefully and answer them as best you can.",
+ "whatRequestTitle": "What Can I Request?",
+ "whatRequestText": "You can request a free ticket only, or a grant as well as a free ticket. Anyone who is allocated a grant will automatically receive a free ticket.",
+ "howMuchTitle": "How Much Should I Request?",
+ "howMuchP1": "Our budget is limited, and we will have to make some hard decisions. Generally, it is easier for us to accept smaller requests, as a single large request could consume most of our budget. The lower your request, the more likely it is that we will be able to accept it.",
+ "howMuchP2": "You need to consider:",
+ "howMuchItems": [
+ "How much you will need to spend in total in order to attend the conference",
+ "How much of this you can contribute yourself"
+ ],
+ "howMuchP3": "The difference between these two figures is the amount you should request.",
+ "calculateTitle": "How Should I Calculate How Much to Request?",
+ "calculateIntro": "You will need to budget for:",
+ "calculateItems": [
+ "Travel",
+ "Visa, if necessary",
+ "Accommodation",
+ "Subsistence (evening meals, local transport, etc.) while in Yaound\u00e9"
+ ],
+ "travelTitle": "Travel",
+ "travelText": "Spend a little time researching your options. If you will need to travel by air, use websites such as Skyscanner to estimate the cost of airfare. Be aware that a little flexibility with dates or routes can make a huge difference to the price of an air ticket.",
+ "accommodationTitle": "Accommodation",
+ "accommodationP1": "There are many websites that will allow you to estimate the cost of accommodation, such as Hotels.com or Booking.com. If you know someone else who is also travelling, you can share a room to lower costs. If you are willing to share a room, let us know in your application.",
+ "accommodationP2": "Be reasonable \u2014 we want you to stay somewhere clean, safe, and comfortable, but we cannot afford to place you in a luxury hotel!",
+ "subsistenceTitle": "Subsistence",
+ "subsistenceText": "You will have lunch and refreshments each day as part of the conference. In Yaound\u00e9, you can get a decent evening meal for a very affordable price. Local transport by taxi or moto-taxi is also inexpensive.",
+ "timelineTitle": "Timeline",
+ "timelineIntro": "Exact dates will be announced \u2014 the structure will follow this general pattern:",
+ "timelineItems": [
+ "Financial aid application opens: To be announced",
+ "Financial aid application closes: To be announced",
+ "Financial aid grants awarded: To be announced",
+ "Deadline to accept/decline financial aid: To be announced",
+ "Disbursement sessions at PyCon Cameroon: At the conference venue, Yaound\u00e9"
+ ],
+ "fundsTitle": "When Will I Receive the Funds?",
+ "fundsP1": "Funds will be provided to successful applicants on attendance at the conference.",
+ "fundsP2": "Unfortunately, applicants for financial assistance who have received funds in advance and have failed to attend have damaged previous events. Our financial situation cannot withstand this kind of abuse.",
+ "fundsP3": "In exceptional circumstances, we may be able to provide funds in advance to those who would otherwise find it impossible to attend. Please contact us as soon as possible if this is the case.",
+ "organizedBy": "PyCon Cameroon 2026 is organised by a team of volunteers on behalf of the Python community in Cameroon.",
+ "contactUs": "Contact us:"
+ },
+ "data": {
+ "tracks": {
+ "newTrack": "New Track",
+ "submitTalk": "Submit a {{label}} Talk",
+ "attendTrack": "Attend {{label}} Track",
+ "trackHighlights": "{{label}} Track Highlights",
+ "ubucon": [
+ { "title": "Ubuntu & Python", "text": "How Python powers Ubuntu development, packaging, and automation." },
+ { "title": "Open Source Contributions", "text": "Getting started with contributing to Ubuntu and open source projects." },
+ { "title": "Cloud & Infrastructure", "text": "Ubuntu Server, cloud-native development, and DevOps with Python." },
+ { "title": "Community & Networking", "text": "Meet the Ubuntu Cameroon community and connect with global contributors." }
+ ],
+ "django": [
+ { "title": "Django Web Development", "text": "Building modern web applications with Django and best practices." },
+ { "title": "REST APIs & DRF", "text": "Designing and building APIs with Django REST Framework." },
+ { "title": "Deployment & Scaling", "text": "Production deployment, performance optimization, and scaling strategies." },
+ { "title": "Django & AI/ML", "text": "Integrating machine learning models and AI features into Django apps." }
+ ]
+ },
+ "values": [
+ { "title": "Building a Welcoming Community", "text": "We believe that diversity and inclusivity are essential for the growth and success of our community. Everyone is welcome here, regardless of background, experience level, or identity." },
+ { "title": "Inspiring Talks", "text": "From beginner tutorials to advanced deep dives, we offer a wide range of talks to cater to the needs of our diverse community. Learn from local and international Python experts." },
+ { "title": "Practical Workshops", "text": "We learn by doing. Our hands-on workshops are designed to help you build real skills that you can apply immediately in your projects and career." },
+ { "title": "Simple and All-Inclusive", "text": "We want to create a welcoming and inclusive environment for everyone, regardless of their background or experience. No gatekeeping, just community." },
+ { "title": "Innovation & Creativity", "text": "We encourage creative problem-solving and innovative thinking. PyCon Cameroon is a space where new ideas are born and nurtured." },
+ { "title": "Growing Together", "text": "Whether you're mentoring others or learning yourself, we believe in the power of shared growth. Together, we're building the future of Python in Cameroon." }
+ ],
+ "venues": [
+ { "name": "National Museum", "description": "Explore the rich history and culture of Cameroon in this former presidential palace." },
+ { "name": "Bois Sainte Anastasie", "description": "A beautiful urban park perfect for a relaxing walk amidst nature in the city center." },
+ { "name": "Monument de la R\u00e9unification", "description": "An iconic monument symbolizing the reunification of French and British Cameroons." },
+ { "name": "Palais Charles Atangana", "description": "Historic colonial-era palace of a paramount chief, now a cultural heritage landmark in Yaound\u00e9." },
+ { "name": "Mvog-Betsi Zoo", "description": "Yaound\u00e9's zoo and botanical garden, home to native wildlife including primates and tropical birds." },
+ { "name": "Lac Municipal de Yaound\u00e9", "description": "A scenic artificial lake in the city center, popular for walks, boat rides, and relaxation." },
+ { "name": "Eco Park Yaound\u00e9", "description": "A green leisure park offering nature trails, picnic areas, and outdoor activities for families." },
+ { "name": "Basilique Marie-Reine-des-Ap\u00f4tres", "description": "Striking hilltop basilica with panoramic views, one of Central Africa's most impressive churches." },
+ { "name": "Dade Park", "description": "A popular recreational park in Yaound\u00e9 with green spaces, playgrounds, and weekend entertainment." }
+ ],
+ "sponsors": {
+ "diamond": {
+ "description": "The ultimate sponsorship package for maximum visibility and impact.",
+ "features": ["Premium booth placement", "Keynote speaking opportunity", "2 speaking slots", "10 conference tickets", "Large branding on signage & materials", "Top-tier logo placement on website", "Dedicated sponsor page on website", "Mention in all press releases"]
+ },
+ "gold": {
+ "description": "Excellent visibility and engagement opportunities.",
+ "features": ["Exhibition booth", "1 speaking slot", "5 conference tickets", "Medium branding on signage & materials", "Tier 2 logo placement on website", "Mention in press releases"]
+ },
+ "silver": {
+ "description": "Great value for companies looking to support the community.",
+ "features": ["1 speaking slot", "3 conference tickets", "Tier 3 logo placement on website"],
+ "featuresLocal": ["1 speaking slot", "3 conference tickets", "Conference signage with branding", "Tier 3 logo placement on website"]
+ },
+ "bronze": {
+ "description": "Ideal for startups and smaller organizations.",
+ "features": ["1 speaking slot", "1 conference ticket", "Company logo on website", "Branding on select materials"]
+ },
+ "community": {
+ "description": "Ideal for startups and smaller organizations.",
+ "features": ["1 conference ticket", "Company logo on website", "Branding on select materials"]
+ }
+ },
+ "team": {
+ "roles": [
+ "Lead Python Cameroon",
+ "Co-Lead, Mentorship / Learning Coordinator",
+ "Social Media Manager",
+ "Open Source Coordinator",
+ "Project Coordinator",
+ "UI/UX and Graphic Designer",
+ "Lead of Canonical User Group Cameroon"
+ ]
+ }
+ }
+}
diff --git a/src/i18n/fr.json b/src/i18n/fr.json
new file mode 100644
index 0000000..465b283
--- /dev/null
+++ b/src/i18n/fr.json
@@ -0,0 +1,647 @@
+{
+ "nav": {
+ "about": "\u00c0 propos",
+ "speakers": "Intervenants",
+ "sponsor": "Sponsoriser",
+ "attend": "Participer",
+ "venue": "Lieu",
+ "ubucon": "UbuCon"
+ },
+ "footer": {
+ "description": "La premi\u00e8re conf\u00e9rence Python du Cameroun, rassemblant d\u00e9veloppeurs, passionn\u00e9s et innovateurs de toute l'Afrique et d'ailleurs.",
+ "about": "\u00c0 propos",
+ "overview": "Aper\u00e7u",
+ "team": "\u00c9quipe",
+ "codeOfConduct": "Code de conduite",
+ "psf": "Python Software Foundation",
+ "program": "Programme",
+ "speakers": "Intervenants",
+ "proposalGuidelines": "Guide de soumission",
+ "venue": "Lieu",
+ "contact": "Contact",
+ "sponsorship": "Sponsoring",
+ "support": "Soutien",
+ "copyright": "\u00a9 2026 PyCon Cameroun. Tous droits r\u00e9serv\u00e9s.",
+ "builtBy": "Cr\u00e9\u00e9 par",
+ "terms": "Conditions g\u00e9n\u00e9rales",
+ "privacy": "Politique de confidentialit\u00e9",
+ "healthSafety": "Sant\u00e9 & S\u00e9curit\u00e9"
+ },
+ "home": {
+ "heroSubtitle": "La conf\u00e9rence Python de l'Afrique, r\u00e9imagin\u00e9e au c\u0153ur de l'Afrique",
+ "heroDate": "17-19 septembre 2026",
+ "heroLocation": "Yaound\u00e9, Cameroun",
+ "callForSpeakers": "Appel aux intervenants",
+ "getYourTicket": "Obtenez votre billet",
+ "welcomeTitle": "Bienvenue \u00e0",
+ "welcomeTitleHighlight": "PyCon Cameroun 2026",
+ "welcomeText": "Rejoignez-nous pour le tout premier PyCon du Cameroun \u2014 une c\u00e9l\u00e9bration de Python, de la technologie et de l'innovation africaine. Vivez deux jours de conf\u00e9rences inspirantes, d'ateliers pratiques et d'opportunit\u00e9s de r\u00e9seautage inoubliables dans la ville dynamique de Yaound\u00e9.",
+ "card1Title": "P\u00f4le d'innovation africain",
+ "card1Text": "Connectez-vous avec des d\u00e9veloppeurs, entrepreneurs et passionn\u00e9s de tech de toute l'Afrique et du monde. D\u00e9couvrez le m\u00e9lange unique de culture camerounaise et de technologie de pointe.",
+ "card2Title": "Python pour tous",
+ "card2Text": "Que vous soyez d\u00e9butant ou expert repoussant les limites, notre programme diversifi\u00e9 s'adresse \u00e0 tous les niveaux et int\u00e9r\u00eats.",
+ "card3Title": "Port\u00e9 par la communaut\u00e9",
+ "card3Text": "Nous croyons en la construction d'une communaut\u00e9 accueillante et inclusive o\u00f9 chacun se sent valoris\u00e9. La diversit\u00e9 et la collaboration sont au c\u0153ur de tout ce que nous faisons.",
+ "whatToExpect": "\u00c0 quoi s'attendre",
+ "inspiringTalks": "Conf\u00e9rences inspirantes",
+ "inspiringTalksText": "Du d\u00e9butant \u00e0 l'expert, notre gamme diversifi\u00e9e de conf\u00e9rences couvre le d\u00e9veloppement web, la science des donn\u00e9es, le machine learning, le DevOps et bien plus.",
+ "workshops": "Ateliers pratiques",
+ "workshopsText": "Apprenez en pratiquant avec des ateliers dirig\u00e9s par des experts de l'industrie. Construisez de vrais projets et acquérez des comp\u00e9tences pr\u00e9cieuses.",
+ "networking": "R\u00e9seautage",
+ "networkingText": "Connectez-vous avec d'autres Pythonistas, employeurs potentiels et collaborateurs dans un environnement convivial et bienveillant.",
+ "funActivities": "Activit\u00e9s ludiques",
+ "funActivitiesText": "Lightning talks, sprints, exp\u00e9riences culturelles et \u00e9v\u00e9nements sociaux font de PyCon Cameroun une exp\u00e9rience inoubliable.",
+ "ubuconDesc1Start": "Pour la premi\u00e8re fois, PyCon Cameroun 2026 s'associe \u00e0",
+ "ubuconDesc1Bold": "UbuCon Cameroun",
+ "ubuconDesc1End": "pour vous offrir un track d\u00e9di\u00e9 Ubuntu et open source ! Ce track sp\u00e9cial est co-organis\u00e9 par Python Cameroun et UbuCon Cameroun.",
+ "ubuconDesc2": "D\u00e9couvrez des conf\u00e9rences et ateliers sur Ubuntu, l'administration syst\u00e8me Linux, les contributions open source, l'infrastructure cloud et comment Python alimente l'\u00e9cosyst\u00e8me Ubuntu.",
+ "djangoDesc1Start": "PyCon Cameroun 2026 propose un",
+ "djangoDesc1Bold": "track Django",
+ "djangoDesc1End": "d\u00e9di\u00e9 aux d\u00e9veloppeurs web ! Plongez dans le monde de Django \u2014 de la cr\u00e9ation d'applications web robustes aux API REST, en passant par les bonnes pratiques de d\u00e9ploiement et la mise \u00e0 l'\u00e9chelle de Django en production.",
+ "djangoDesc2": "Que vous d\u00e9butiez avec Django ou que vous soyez un d\u00e9veloppeur chevronn\u00e9, ce track offre des ateliers pratiques, des \u00e9tudes de cas r\u00e9elles et des conf\u00e9rences d'experts.",
+ "expectedAttendees": "Participants attendus",
+ "technicalSessions": "Sessions techniques",
+ "workshopsStat": "Ateliers",
+ "daysOfLearning": "Jours d'apprentissage",
+ "readyToJoin": "Pr\u00eat \u00e0 nous rejoindre ?",
+ "readyToJoinText": "Faites partie du premier PyCon du Cameroun et contribuez \u00e0 fa\u00e7onner l'avenir de Python en Afrique.",
+ "submitATalk": "Soumettre une conf\u00e9rence",
+ "sponsorshipDeck": "Dossier de sponsoring"
+ },
+ "about": {
+ "title": "\u00c0 propos de",
+ "titleHighlight": "PyCon Cameroun",
+ "subtitle": "D\u00e9couvrez qui nous sommes et notre mission pour d\u00e9velopper la communaut\u00e9 Python au Cameroun",
+ "userGroupTitle": "Python Cameroun",
+ "userGroupHighlight": "Groupe d'utilisateurs",
+ "userGroupP1": "Le groupe d'utilisateurs Python Cameroun est une communaut\u00e9 dynamique de d\u00e9veloppeurs, data scientists et passionn\u00e9s de tech au Cameroun qui sont passionn\u00e9s par le langage de programmation Python. Nous nous consacrons au partage des connaissances, \u00e0 la promotion de l'innovation et \u00e0 l'adoption de Python dans tous les secteurs.",
+ "userGroupP2": "Notre communaut\u00e9 se r\u00e9unit r\u00e9guli\u00e8rement pour discuter de divers sujets li\u00e9s \u00e0 Python, notamment le d\u00e9veloppement web avec Django et Flask, le calcul scientifique, le machine learning avec TensorFlow et PyTorch, la science des donn\u00e9es avec Pandas, l'automatisation, le DevOps et bien plus encore.",
+ "userGroupP3": "Nous organisons des sessions de conf\u00e9rences, des ateliers de codage, des hackathons et des programmes de mentorat pour aider les membres \u00e0 am\u00e9liorer leurs comp\u00e9tences Python et \u00e0 cr\u00e9er des applications pratiques qui r\u00e9solvent des probl\u00e8mes r\u00e9els.",
+ "joinCommunity": "Rejoindre notre communaut\u00e9",
+ "missionTitle": "Notre",
+ "missionHighlight": "Mission",
+ "pyconCameroon": "PyCon Cameroun",
+ "missionP1": "PyCon Cameroun est une conf\u00e9rence communautaire qui vise \u00e0 fournir une plateforme pour la croissance de la communaut\u00e9 Python au Cameroun et en Afrique centrale. Nous croyons que la diversit\u00e9 et l'inclusivit\u00e9 sont essentielles \u00e0 la croissance et au succ\u00e8s de notre communaut\u00e9.",
+ "missionP2": "Nous nous effor\u00e7ons de cr\u00e9er un environnement accueillant et inclusif pour tous les participants, quels que soient leurs origines, genres, \u00e2ges ou identit\u00e9s. Notre conf\u00e9rence est con\u00e7ue pour inspirer, \u00e9duquer et connecter les d\u00e9veloppeurs \u00e0 tous les niveaux.",
+ "missionP3": "Rassemblant des passionn\u00e9s de tech de toute l'Afrique et du monde, des startups, des \u00e9tudiants, des chercheurs et des professionnels chevronn\u00e9s, PyCon Cameroun est une opportunit\u00e9 unique d'apprendre, de r\u00e9seauter et de collaborer avec des personnes partageant les m\u00eames id\u00e9es.",
+ "missionInvite": "Nous vous invitons \u00e0 nous rejoindre pour c\u00e9l\u00e9brer la puissance de Python et ses applications dans la construction de l'avenir de la technologie au Cameroun et au-del\u00e0.",
+ "valuesTitle": "Nos",
+ "valuesHighlight": "Valeurs",
+ "teamTitle": "Rencontrez l'",
+ "teamHighlight": "\u00c9quipe",
+ "teamSubtitle": "L'\u00e9quipe PyCon Cameroun est compos\u00e9e d'un groupe diversifi\u00e9 d'individus avec un large \u00e9ventail d'exp\u00e9riences et de comp\u00e9tences. Nous nous engageons \u00e0 fournir un environnement bienveillant et inclusif pour tous les participants, intervenants, sponsors et b\u00e9n\u00e9voles.",
+ "volunteerText": "Int\u00e9ress\u00e9 par rejoindre l'\u00e9quipe d'organisation ? Nous cherchons toujours des b\u00e9n\u00e9voles passionn\u00e9s !",
+ "joinTeam": "Rejoindre notre \u00e9quipe",
+ "partnersTitle": "Communaut\u00e9s",
+ "partnersHighlight": "Partenaires",
+ "partnersSubtitle": "Nous sommes fiers de collaborer avec ces communaut\u00e9s incroyables \u00e0 travers l'Afrique et au-del\u00e0.",
+ "conductTitle": "Code de",
+ "conductHighlight": "Conduite",
+ "conductCommitment": "Notre engagement",
+ "conductText": "PyCon Cameroun s'engage \u00e0 offrir une exp\u00e9rience de conf\u00e9rence sans harc\u00e8lement pour tous, ind\u00e9pendamment du genre, de l'identit\u00e9 de genre, de l'\u00e2ge, de l'orientation sexuelle, du handicap, de l'apparence physique, de la taille, de la race, de l'ethnie, de la religion (ou de son absence) ou des choix technologiques.",
+ "conductP1": "Nous ne tol\u00e9rons aucune forme de harc\u00e8lement des participants \u00e0 la conf\u00e9rence. Le langage et les images \u00e0 caract\u00e8re sexuel ne sont pas appropri\u00e9s dans les lieux de la conf\u00e9rence, y compris les conf\u00e9rences, ateliers, f\u00eates, Twitter et autres m\u00e9dias en ligne.",
+ "conductP2": "Les participants \u00e0 la conf\u00e9rence qui enfreignent ces r\u00e8gles peuvent \u00eatre sanctionn\u00e9s ou expuls\u00e9s de la conf\u00e9rence sans remboursement, \u00e0 la discr\u00e9tion des organisateurs.",
+ "readFullCoC": "Lire le code de conduite complet"
+ },
+ "speakers": {
+ "title": "Appel aux",
+ "titleHighlight": "Intervenants",
+ "subtitle": "Partagez votre expertise et inspirez la communaut\u00e9 Python au Cameroun",
+ "excitedTitle": "Nous sommes ravis de vous accueillir !",
+ "excitedText": "Que vous soyez un intervenant d\u00e9butant ou exp\u00e9riment\u00e9, nous voulons vous entendre ! Si vous avez un sujet Python int\u00e9ressant, un projet ou une exp\u00e9rience \u00e0 partager, soumettez votre proposition et nous l'examinerons avec soin.",
+ "bannerInvite": "Nous invitons des intervenants de tous niveaux d'exp\u00e9rience et d'horizons divers \u00e0 contribuer \u00e0 notre programme. N'h\u00e9sitez pas \u2013 votre perspective unique compte !",
+ "submitProposal": "Soumettre votre proposition",
+ "cfpUpcoming": "L'appel \u00e0 propositions sera OUVERT le {{date}} !",
+ "cfpOpen": "L'appel \u00e0 propositions est OUVERT !",
+ "cfpClosed": "L'appel \u00e0 propositions est maintenant FERM\u00c9. Merci pour vos soumissions !",
+ "ctaUpcoming": "Nous avons h\u00e2te de voir votre proposition. Les soumissions ouvrent le {{date}} !",
+ "ctaOpen": "Nous avons h\u00e2te de voir votre proposition. Soumettez avant le {{date}} !",
+ "ctaClosed": "L'appel \u00e0 propositions est clos. Restez \u00e0 l'\u00e9coute pour les annonces des intervenants !",
+ "guidelinesTitle": "Guide de",
+ "guidelinesHighlight": "Soumission",
+ "guidelinesSubtitle": "Tout ce que vous devez savoir pour soumettre une proposition r\u00e9ussie",
+ "guidelinesIntro": "Nous sommes tr\u00e8s enthousiastes d'inviter tout le monde \u00e0 PyCon Cameroun 2026 ! Nous recherchons des intervenants de tous niveaux et horizons pour contribuer \u00e0 notre programme. Que vous utilisiez Python professionnellement, en tant que hobby, ou que vous soyez simplement passionn\u00e9 par Python ou les communaut\u00e9s open source, nous aimerions vous entendre.",
+ "guidelinesNote": "Veuillez prendre le temps de lire les informations ci-dessous pour vous aider \u00e0 soumettre une proposition inform\u00e9e et r\u00e9ussie.",
+ "timeline": "Chronologie",
+ "sessionTypes": "Types de sessions",
+ "regularTalks": "Conf\u00e9rences r\u00e9guli\u00e8res (30 min)",
+ "regularTalksText": "Conf\u00e9rences standard couvrant des sujets Python, \u00e9tudes de cas, bonnes pratiques et analyses techniques approfondies.",
+ "lightningTalks": "Lightning Talks (5 min)",
+ "lightningTalksText": "Pr\u00e9sentations courtes et cibl\u00e9es sur un seul sujet, id\u00e9e ou projet. Id\u00e9al pour les d\u00e9butants !",
+ "workshopsSessions": "Ateliers (3 heures)",
+ "workshopsSessionsText": "Tutoriels pratiques o\u00f9 les participants apprennent en faisant. Inclut des exercices de codage et des projets pratiques.",
+ "panelDiscussions": "Tables rondes",
+ "panelDiscussionsText": "Discussions mod\u00e9r\u00e9es avec plusieurs experts sur les sujets Python tendance et les tendances de l'industrie.",
+ "ubuconTrackNew": "Track UbuCon Cameroun (Nouveau !)",
+ "ubuconTrackText": "En partenariat avec UbuCon Cameroun, nous acceptons les propositions pour notre track d\u00e9di\u00e9 Ubuntu & open source. Les sujets incluent le d\u00e9veloppement Ubuntu, l'administration syst\u00e8me Linux, les contributions open source, l'infrastructure cloud et Python dans l'\u00e9cosyst\u00e8me Ubuntu. S\u00e9lectionnez \u00ab Track UbuCon \u00bb lors de votre soumission sur Sessionize.",
+ "importantNotes": "Notes importantes",
+ "aiPolicy": "Politique sur le contenu g\u00e9n\u00e9r\u00e9 par IA",
+ "aiPolicyText": "Les soumissions de propositions \u00e9crites enti\u00e8rement ou principalement par des outils d'IA (comme ChatGPT, Claude, etc.) ne seront pas accept\u00e9es. Votre proposition doit refl\u00e9ter vos propres pens\u00e9es et expertise.",
+ "proposalLimit": "Limite de propositions",
+ "proposalLimitItems": ["Chaque personne peut soumettre un maximum de deux propositions", "Chaque proposition peut inclure un maximum de deux intervenants", "La co-intervention compte dans votre limite de soumission"],
+ "recordingNotice": "Avis d'enregistrement",
+ "recordingNoticeText": "Toutes les conf\u00e9rences et ateliers PyCon Cameroun seront enregistr\u00e9s et publi\u00e9s sur notre cha\u00eene YouTube pour aider \u00e0 l'\u00e9ducation Python en Afrique. En soumettant, vous acceptez d'\u00eatre enregistr\u00e9.",
+ "speakerSupport": "Soutien aux intervenants",
+ "speakerSupportText": "Veuillez noter que PyCon Cameroun n'est actuellement pas en mesure de fournir une aide financi\u00e8re (voyage, h\u00e9bergement, etc.) aux intervenants. Tous les intervenants s\u00e9lectionn\u00e9s recevront un billet gratuit pour l'ensemble de l'\u00e9v\u00e9nement.",
+ "codeOfConduct": "Code de conduite",
+ "cocP1": "Tous les intervenants doivent avoir lu et respecter le Code de conduite de la conf\u00e9rence. Le contenu des diapositives et le mat\u00e9riel parl\u00e9 doivent \u00eatre appropri\u00e9s pour un public professionnel incluant des personnes d'horizons tr\u00e8s divers.",
+ "cocP2": "Le langage et les images \u00e0 caract\u00e8re sexuel ne sont pas appropri\u00e9s, de m\u00eame que le langage ou les images qui d\u00e9nigrent ou rabaissent les personnes en fonction de leur race, genre, religion, orientation sexuelle, apparence physique, handicap ou toute autre dimension de la diversit\u00e9.",
+ "submitOnSessionize": "Soumettre sur Sessionize",
+ "featuredTitle": "Intervenants",
+ "featuredHighlight": "Confirm\u00e9s",
+ "featuredSubtitle": "D\u00e9couvrez nos intervenants confirm\u00e9s pour PyCon Cameroun 2026",
+ "comingSoon": "Bient\u00f4t disponible !",
+ "comingSoonText": "Notre liste d'intervenants est en cours de finalisation. Revenez bient\u00f4t pour d\u00e9couvrir les intervenants incroyables qui nous rejoindront \u00e0 PyCon Cameroun 2026 !",
+ "whySpeakTitle": "Pourquoi",
+ "whySpeakHighlight": "Intervenir",
+ "whySpeakSuffix": "\u00e0 PyCon Cameroun ?",
+ "reachAudience": "Touchez un nouveau public",
+ "reachAudienceText": "Partagez vos connaissances avec la communaut\u00e9 Python en pleine croissance au Cameroun et en Afrique centrale.",
+ "recordedShared": "Enregistr\u00e9 & Partag\u00e9",
+ "recordedSharedText": "Votre conf\u00e9rence sera enregistr\u00e9e et partag\u00e9e sur YouTube, atteignant encore plus de d\u00e9veloppeurs dans le monde.",
+ "freePass": "Pass conf\u00e9rence gratuit",
+ "freePassText": "Les intervenants s\u00e9lectionn\u00e9s re\u00e7oivent un pass gratuit pour les deux jours de PyCon Cameroun.",
+ "speakerNetworking": "R\u00e9seautage",
+ "speakerNetworkingText": "Connectez-vous avec d'autres intervenants, leaders de l'industrie et d\u00e9veloppeurs passionn\u00e9s de toute l'Afrique.",
+ "buildBrand": "Construisez votre marque",
+ "buildBrandText": "\u00c9tablissez-vous comme expert dans votre domaine et boostez votre profil professionnel.",
+ "giveBack": "Contribuez",
+ "giveBackText": "Aidez \u00e0 d\u00e9velopper la communaut\u00e9 Python et inspirez la prochaine g\u00e9n\u00e9ration de d\u00e9veloppeurs africains.",
+ "readyToShare": "Pr\u00eat \u00e0 partager vos connaissances ?",
+ "submitProposalNow": "Soumettez votre proposition maintenant",
+ "timelineMilestones": [
+ { "label": "30 mars 2026", "title": "Ouverture de l'appel aux intervenants et sponsors", "description": "Commencez \u00e0 soumettre vos propositions de conf\u00e9rences et ateliers via Sessionize." },
+ { "label": "15 mai 2026, 23h59 WAT", "title": "Cl\u00f4ture de l'appel", "description": "Dernier jour pour soumettre vos propositions. N'attendez pas la derni\u00e8re minute !" },
+ { "label": "30 mai 2026", "title": "Annonce des intervenants", "description": "Les intervenants s\u00e9lectionn\u00e9s seront annonc\u00e9s. Tous les soumettants recevront une notification." },
+ { "label": "15 juin 2026", "title": "Publication du programme", "description": "Le programme complet de la conf\u00e9rence est publi\u00e9 sur le site PyCon Cameroun." },
+ { "label": "17-19 septembre 2026", "title": "PyCon Cameroun 2026", "description": "L'\u00e9v\u00e9nement principal \u00e0 Yaound\u00e9, Cameroun !" }
+ ],
+ "now": "En cours",
+ "done": "Termin\u00e9"
+ },
+ "sponsor": {
+ "title": "Devenez",
+ "titleHighlight": "Sponsor",
+ "subtitle": "Rejoignez-nous pour fa\u00e7onner l'avenir de Python au Cameroun et en Afrique centrale",
+ "viewDeck": "Voir le dossier de sponsoring",
+ "whySponsorTitle": "Pourquoi sponsoriser",
+ "whySponsorHighlight": "PyCon CM ?",
+ "whySponsorText": "PyCon Cameroun rassemble d\u00e9veloppeurs, ing\u00e9nieurs, data scientists et passionn\u00e9s de tech de toute l'Afrique de l'Est et centrale pour une c\u00e9l\u00e9bration inoubliable de la programmation Python.",
+ "connectTalent": "Connectez-vous aux meilleurs talents",
+ "connectTalentText": "Interagissez directement avec des centaines de d\u00e9veloppeurs Python passionn\u00e9s, des d\u00e9butants aux experts.",
+ "brandAwareness": "Renforcez la visibilit\u00e9 de votre marque",
+ "brandAwarenessText": "Pr\u00e9sentez votre entreprise \u00e0 un public technique hautement engag\u00e9 dans l'\u00e9cosyst\u00e8me tech africain en pleine croissance.",
+ "supportCommunity": "Soutenez la communaut\u00e9",
+ "supportCommunityText": "Aidez \u00e0 favoriser la croissance de la programmation Python au Cameroun et contribuez \u00e0 l'avancement technologique dans la r\u00e9gion.",
+ "recruitment": "Opportunit\u00e9s de recrutement",
+ "recruitmentText": "Rencontrez des candidats potentiels en personne dans un environnement dynamique ax\u00e9 sur la technologie.",
+ "ourImpact": "Notre impact",
+ "expectedAttendees": "Participants attendus",
+ "technicalTalks": "Conf\u00e9rences techniques",
+ "countriesRepresented": "Pays repr\u00e9sent\u00e9s",
+ "digitalReach": "Port\u00e9e num\u00e9rique",
+ "tiersTitle": "Niveaux de",
+ "tiersHighlight": "Sponsoring",
+ "tiersSubtitle": "Choisissez le forfait qui correspond le mieux \u00e0 vos objectifs",
+ "international": "International (USD)",
+ "local": "Local (XAF)",
+ "communityPackage": "Forfait Communaut\u00e9",
+ "tier": "Niveau",
+ "select": "S\u00e9lectionner",
+ "pricesLocal": "Les prix sont en XAF (Franc CFA). L'\u00e9quivalent en USD est indiqu\u00e9 \u00e0 titre de r\u00e9f\u00e9rence.",
+ "pricesInternational": "Les prix sont en USD. Le paiement en monnaie locale (XAF) est \u00e9galement accept\u00e9.",
+ "customPackages": "Forfaits personnalis\u00e9s :",
+ "customPackagesText": "Vous ne trouvez pas de forfait adapt\u00e9 ? Nous serons ravis de discuter d'opportunit\u00e9s de sponsoring sur mesure !",
+ "getInvolved": "Impliquez-vous aujourd'hui",
+ "getInvolvedText": "Rejoignez les entreprises qui ouvrent la voie en soutenant la communaut\u00e9 Python en Afrique.",
+ "contactSponsor": "Contactez-nous pour le sponsoring"
+ },
+ "attend": {
+ "title": "Participer \u00e0",
+ "titleHighlight": "PyCon",
+ "subtitle": "Tout ce que vous devez savoir sur l'inscription, le voyage et votre s\u00e9jour \u00e0 Yaound\u00e9",
+ "registrationTitle": "Informations",
+ "registrationHighlight": "d'inscription",
+ "registrationSubtitle": "Inscrivez-vous d\u00e8s aujourd'hui pour r\u00e9server votre place au premier \u00e9v\u00e9nement Python du Cameroun",
+ "registrationText": "PyCon Cameroun vous fait confiance pour s\u00e9lectionner un tarif d'inscription \u00e9quitable. En choisissant le tarif appropri\u00e9, vous aidez \u00e0 maintenir la conf\u00e9rence abordable pour les \u00e9tudiants et ceux n\u00e9cessitant une aide financi\u00e8re.",
+ "earlyBird": "Tarif pr\u00e9coce",
+ "limitedTime": "Offre limit\u00e9e",
+ "earlyBirdText": "R\u00e9servez votre place t\u00f4t \u00e0 notre tarif sp\u00e9cial r\u00e9duit. Disponible pour tous les participants pour un temps limit\u00e9.",
+ "getEarlyBird": "Obtenir un billet pr\u00e9coce",
+ "normalRate": "Tarif normal",
+ "standardAdmission": "Admission standard",
+ "normalRateText": "Prix standard pour la conf\u00e9rence de deux jours, incluant d\u00e9jeuner, rafra\u00eechissements et goodies.",
+ "getNormal": "Obtenir un billet normal",
+ "onSite": "Sur place",
+ "atTheDoor": "\u00c0 la porte",
+ "onSiteText": "Achetez votre billet sur place pendant la conf\u00e9rence. Sous r\u00e9serve de disponibilit\u00e9 \u2014 nous recommandons d'acheter \u00e0 l'avance !",
+ "availableAtVenue": "Disponible sur place",
+ "whatsIncluded": "Qu'est-ce qui est inclus ?",
+ "accessTo": "Votre inscription vous donne acc\u00e8s \u00e0 :",
+ "mainConference": "Journ\u00e9es principales (17-19 sept.)",
+ "mainConferenceItems": ["Acc\u00e8s \u00e0 toutes les sessions pl\u00e9ni\u00e8res et tracks", "Caf\u00e9 du matin et rafra\u00eechissements", "D\u00e9licieux d\u00e9jeuner les deux jours", "Pause th\u00e9/caf\u00e9 de l'apr\u00e8s-midi", "Acc\u00e8s au hall d'exposition et au salon de l'emploi"],
+ "socialEvents": "\u00c9v\u00e9nements sociaux",
+ "socialEventsItems": ["R\u00e9ception d'ouverture (soir du 16 sept.)", "D\u00eener officiel PyCon", "Sessions de r\u00e9seautage communautaire"],
+ "conferenceSwag": "Goodies",
+ "conferenceSwagItems": ["T-shirt officiel PyCon Cameroun", "Tote bag avec goodies des sponsors", "Stickers et autres articles fun"],
+ "paymentSupport": "Que finance votre paiement ?",
+ "paymentSupportText": "Votre inscription nous aide \u00e0 maintenir PyCon Cameroun abordable. Les co\u00fbts couvrent :",
+ "paymentItems": ["Location de salle et \u00e9quipement audiovisuel", "Restauration (d\u00e9jeuner et pauses)", "Connectivit\u00e9 internet", "Bourses de voyage pour ceux qui en ont besoin", "Infrastructure communautaire et \u00e9v\u00e9nements futurs"],
+ "travelTitle": "Voyage",
+ "travelHighlight": "international & Visas",
+ "visaInfo": "Informations sur les visas",
+ "visaText": "La plupart des visiteurs au Cameroun ont besoin d'un visa. Veuillez v\u00e9rifier aupr\u00e8s de votre ambassade ou consulat camerounais local pour les exigences sp\u00e9cifiques.",
+ "visaLetters": "Lettres de visa :",
+ "visaLettersText": "Nous pouvons fournir une lettre d'invitation officielle pour soutenir votre demande de visa une fois que vous avez une inscription pay\u00e9e.",
+ "requestLetter": "Demander une lettre d'invitation",
+ "policies": "Politiques",
+ "cancellation": "Politique d'annulation",
+ "cancellationText": "Les annulations re\u00e7ues avant le 15 ao\u00fbt 2026 recevront un remboursement moins les frais de traitement. Aucun remboursement ne sera accord\u00e9 apr\u00e8s cette date sauf en cas de refus de visa ou de raisons de sant\u00e9.",
+ "ticketTransfers": "Transferts de billets",
+ "ticketTransfersText": "Vous pouvez transf\u00e9rer votre billet \u00e0 une autre personne en envoyant une demande \u00e9crite \u00e0 organizers@pythoncameroon.org avant le 1er septembre 2026.",
+ "questionsRegistration": "Questions sur l'inscription ?",
+ "contactRegistration": "Contactez notre \u00e9quipe d'inscription"
+ },
+ "venue": {
+ "title": "Le",
+ "titleHighlight": "Lieu",
+ "subtitle": "Rejoignez-nous dans la belle ville de Yaound\u00e9, la capitale politique du Cameroun",
+ "locationTitle": "Lieu de la",
+ "locationHighlight": "Conf\u00e9rence",
+ "venueName": "Lieu PyCon CM (\u00e0 d\u00e9terminer)",
+ "venueCity": "Yaound\u00e9, Cameroun",
+ "addressSoon": "D\u00e9tails de l'adresse bient\u00f4t disponibles",
+ "finalizingVenue": "Nous finalisons actuellement le lieu parfait pour accueillir PyCon Cameroun 2026. Nous recherchons un espace qui incarne l'esprit de notre communaut\u00e9 \u2014 moderne, accessible et dynamique.",
+ "expectFacility": "Attendez-vous \u00e0 un \u00e9tablissement de pointe avec :",
+ "facilityItems": ["Connectivit\u00e9 internet haut d\u00e9bit", "\u00c9quipement audiovisuel moderne", "Si\u00e8ges confortables et espaces de travail", "Installations accessibles pour tous les participants"],
+ "planTripTitle": "Planifiez votre",
+ "planTripHighlight": "Voyage",
+ "accommodation": "H\u00e9bergement",
+ "accommodationText": "Nous nous associerons \u00e0 plusieurs h\u00f4tels pr\u00e8s du lieu de la conf\u00e9rence pour offrir des tarifs sp\u00e9ciaux aux participants.",
+ "officialHotels": "H\u00f4tels officiels :",
+ "hotelsSoon": "Liste bient\u00f4t disponible une fois le lieu confirm\u00e9 !",
+ "accommodationRange": "Yaound\u00e9 offre une gamme d'options d'h\u00e9bergement allant des h\u00f4tels de luxe aux maisons d'h\u00f4tes \u00e9conomiques.",
+ "gettingThere": "Comment s'y rendre",
+ "byAir": "Par avion :",
+ "byAirText": "L'a\u00e9roport international de Yaound\u00e9 Nsimalen (NSI) est le principal a\u00e9roport desservant la ville.",
+ "byBus": "Par bus :",
+ "byBusText": "Plusieurs compagnies de bus fiables op\u00e8rent des liaisons reliant Yaound\u00e9 \u00e0 d'autres grandes villes comme Douala.",
+ "rideHailing": "Les applications de VTC comme Yango et les taxis locaux sont largement disponibles pour se d\u00e9placer en ville.",
+ "exploreTitle": "Explorez",
+ "exploreHighlight": "Yaound\u00e9",
+ "exploreSubtitle": "Profitez de la ville aux sept collines pendant votre s\u00e9jour"
+ },
+ "privacy": {
+ "title": "Confidentialité et",
+ "titleHighlight": "Politique de données",
+ "subtitle": "Comment nous gérons vos données",
+ "summary": "PyCon Cameroun s'engage à protéger la vie privée de tous les participants, intervenants, sponsors et visiteurs. Cette politique décrit quelles données personnelles nous collectons, comment nous les utilisons et quels sont vos droits.",
+ "submitTalk": "Soumettre une conférence",
+ "optIn": "En vous inscrivant à PyCon Cameroun, vous acceptez cette politique de confidentialité et de données. Vous pouvez retirer votre consentement à tout moment en nous contactant.",
+ "whoResponsibleTitle": "Qui est responsable de vos données ?",
+ "whoResponsibleP1": "Python Cameroun est le responsable du traitement des données personnelles collectées dans le cadre de PyCon Cameroun 2026. Nous déterminons les finalités et les moyens du traitement de vos données personnelles.",
+ "whoResponsibleP2": "Si vous avez des questions concernant cette politique ou nos pratiques en matière de données, veuillez nous contacter à l'adresse organizers@pythoncameroon.org.",
+ "whatCollectTitle": "Quelles informations personnelles collectons-nous ?",
+ "whatCollectIntro": "Nous pouvons collecter les informations personnelles suivantes lorsque vous vous inscrivez ou participez à PyCon Cameroun :",
+ "whatCollectItems": [
+ "Nom complet",
+ "Adresse postale",
+ "Numéro de téléphone",
+ "Adresse e-mail",
+ "Entreprise ou organisation",
+ "Intitulé de poste",
+ "Préférences alimentaires et allergies",
+ "Informations de paiement (traitées de manière sécurisée via nos processeurs de paiement)",
+ "Profils de réseaux sociaux (facultatif)",
+ "Photo de profil (facultatif)"
+ ],
+ "whatCollectThirdParty": "Nous pouvons également recevoir des données de la part de services tiers que vous utilisez pour interagir avec nous, tels que Sessionize (pour les soumissions de conférences) et nos plateformes de billetterie.",
+ "whatCollectUse": "Nous collectons uniquement les données nécessaires à l'organisation et à la gestion de la conférence.",
+ "whatCollectDemographics": "Nous pouvons collecter des données démographiques anonymisées (telles que le pays d'origine, le niveau d'expérience et les centres d'intérêt) pour améliorer les futures éditions de la conférence. Ces données sont agrégées et ne peuvent pas être utilisées pour vous identifier personnellement.",
+ "linksTitle": "Liens vers d'autres sites web",
+ "linksText": "Notre site web peut contenir des liens vers d'autres sites web. Nous ne sommes pas responsables des pratiques de confidentialité de ces sites tiers. Nous vous encourageons à lire les politiques de confidentialité de chaque site web que vous visitez.",
+ "howUseTitle": "Comment utilisons-nous vos informations ?",
+ "howUseIntro": "Nous utilisons vos informations personnelles aux fins suivantes :",
+ "howUseItems": [
+ "Traiter votre inscription et votre paiement à la conférence",
+ "Vous envoyer des mises à jour importantes sur la conférence (programme, changements de lieu, etc.)",
+ "Fournir les services de la conférence (badges nominatifs, restauration, etc.)",
+ "Vous contacter au sujet de votre soumission de conférence ou d'atelier",
+ "Répondre à vos demandes de renseignements et de soutien",
+ "Améliorer nos services et les futures éditions de la conférence",
+ "Respecter nos obligations légales"
+ ],
+ "howUseLegitimate": "Nous traitons vos données personnelles sur la base de votre consentement, de l'exécution de notre contrat avec vous (votre inscription), de nos intérêts légitimes ou de nos obligations légales, selon le cas.",
+ "audioTitle": "Politique d'enregistrement audio et vidéo",
+ "audioText": "PyCon Cameroun enregistre les conférences, ateliers et événements à des fins éducatives et promotionnelles. Les enregistrements peuvent être publiés sur notre chaîne YouTube et nos réseaux sociaux. En participant à l'événement, vous consentez à être photographié et filmé. Si vous ne souhaitez pas apparaître dans les enregistrements, veuillez en informer l'équipe d'organisation à l'avance.",
+ "rightsTitle": "Quels sont vos droits ?",
+ "rightsP1": "En vertu de la réglementation applicable en matière de protection des données, vous disposez des droits suivants concernant vos données personnelles :",
+ "rightsP2": "Pour exercer l'un de ces droits, veuillez nous contacter à l'adresse organizers@pythoncameroon.org. Nous répondrons à votre demande dans un délai de 30 jours.",
+ "rightsItems": [
+ "Droit d'accès : vous pouvez demander une copie de vos données personnelles que nous détenons.",
+ "Droit de rectification : vous pouvez demander la correction de toute donnée inexacte ou incomplète.",
+ "Droit à l'effacement : vous pouvez demander la suppression de vos données personnelles dans certaines circonstances.",
+ "Droit à la limitation du traitement : vous pouvez demander la restriction du traitement de vos données dans certaines circonstances.",
+ "Droit à la portabilité des données : vous pouvez demander le transfert de vos données vers un autre service dans un format structuré et lisible par machine.",
+ "Droit d'opposition : vous pouvez vous opposer au traitement de vos données personnelles dans certains cas.",
+ "Droit de retrait du consentement : vous pouvez retirer votre consentement au traitement de vos données à tout moment.",
+ "Droit de réclamation : vous avez le droit de déposer une plainte auprès d'une autorité de protection des données si vous estimez que vos droits n'ont pas été respectés."
+ ],
+ "rightsException": "Veuillez noter que certains de ces droits ne sont pas absolus et peuvent être soumis à des conditions. Nous pouvons être tenus de conserver certaines données pour respecter nos obligations légales ou exercer nos droits.",
+ "retentionTitle": "Combien de temps conservons-nous vos données ?",
+ "retentionText": "Nous conservons vos données personnelles aussi longtemps que nécessaire pour atteindre les finalités décrites dans cette politique, sauf si une durée de conservation plus longue est requise ou autorisée par la loi. Après la conférence, nous conservons les données d'inscription pendant un maximum de 2 ans pour la planification des futures éditions, puis nous les supprimons ou les anonymisons.",
+ "questionsTitle": "Questions et réclamations",
+ "questionsText": "Si vous avez des questions, des préoccupations ou des réclamations concernant cette politique de confidentialité ou le traitement de vos données personnelles, veuillez nous contacter à l'adresse organizers@pythoncameroon.org. Nous prendrons toutes les mesures raisonnables pour résoudre votre problème dans les meilleurs délais.",
+ "updatesTitle": "Mises à jour de cette politique",
+ "updatesText": "Nous pouvons mettre à jour cette politique de confidentialité de temps en temps pour refléter les changements dans nos pratiques ou pour d'autres raisons opérationnelles, légales ou réglementaires. Nous vous informerons de tout changement important en publiant la nouvelle politique sur notre site web. Nous vous encourageons à consulter régulièrement cette page.",
+ "organizedBy": "Organisé par Python Cameroun",
+ "contactUs": "Nous contacter"
+ },
+ "terms": {
+ "title": "Conditions",
+ "titleHighlight": "Générales",
+ "subtitle": "Veuillez lire attentivement ces conditions avant de vous inscrire",
+ "lastUpdated": "Dernière mise à jour : janvier 2026",
+ "introTitle": "Introduction",
+ "introText": "En vous inscrivant et en participant à PyCon Cameroun 2026, vous acceptez d'être lié par les présentes conditions générales. PyCon Cameroun est organisé par Python Cameroun, une communauté à but non lucratif dédiée à la promotion du langage Python au Cameroun et en Afrique centrale. Si vous n'acceptez pas ces conditions, veuillez ne pas vous inscrire à l'événement.",
+ "regTitle": "Inscription et paiement",
+ "regItems": [
+ "L'inscription est obligatoire pour tous les participants et doit être effectuée via notre plateforme officielle de billetterie.",
+ "Le paiement intégral est requis au moment de l'inscription, sauf indication contraire.",
+ "Les billets sont personnels et non transférables sans autorisation écrite préalable de l'équipe d'organisation.",
+ "Python Cameroun se réserve le droit de refuser l'inscription à sa seule discrétion.",
+ "Les prix des billets sont sujets à modification sans préavis avant l'achat.",
+ "Une pièce d'identité avec photo peut être exigée pour récupérer votre badge d'accès."
+ ],
+ "cancelTitle": "Annulations et remboursements",
+ "cancelText": "Les demandes d'annulation reçues avant le 15 août 2026 donneront droit à un remboursement complet, déduction faite des frais de traitement. Aucun remboursement ne sera accordé après cette date, sauf en cas de refus de visa (sur présentation d'un justificatif) ou de raison médicale documentée. Les demandes de transfert de billet doivent être soumises par écrit à organizers@pythoncameroon.org avant le 1er septembre 2026. Python Cameroun se réserve le droit d'annuler ou de reporter l'événement en cas de force majeure, auquel cas les participants seront remboursés intégralement.",
+ "cocTitle": "Code de conduite",
+ "cocText": "Tous les participants, intervenants, sponsors et bénévoles de PyCon Cameroun doivent respecter notre Code de conduite. Nous nous engageons à offrir une expérience sans harcèlement pour tous, indépendamment du genre, de l'identité de genre, de l'âge, de l'orientation sexuelle, du handicap, de l'apparence physique, de la race, de l'ethnie, de la religion ou des choix technologiques. Tout comportement jugé inapproprié, menaçant ou perturbateur pourra entraîner l'expulsion de la conférence sans remboursement, à la discrétion des organisateurs.",
+ "photoTitle": "Photographie et médias",
+ "photoText": "PyCon Cameroun peut photographier et filmer l'événement à des fins promotionnelles, éducatives et archivistiques. En participant à l'événement, vous consentez à l'utilisation de votre image dans les supports de communication de la conférence, y compris le site web, les réseaux sociaux et les vidéos YouTube. Si vous ne souhaitez pas être photographié ou filmé, veuillez en informer l'équipe d'organisation à votre arrivée.",
+ "liabilityTitle": "Responsabilité",
+ "liabilityText": "Python Cameroun et ses organisateurs ne sauraient être tenus responsables des pertes, dommages ou blessures subis par les participants pendant l'événement, sauf en cas de négligence avérée de notre part. Les participants sont responsables de leurs effets personnels. Python Cameroun ne saurait être tenu responsable des perturbations causées par des événements indépendants de notre volonté (force majeure, conditions météorologiques, restrictions gouvernementales, etc.).",
+ "contactTitle": "Contact",
+ "contactText": "Pour toute question relative à ces conditions générales, veuillez nous contacter à l'adresse organizers@pythoncameroon.org."
+ },
+ "healthSafety": {
+ "title": "Santé et",
+ "titleHighlight": "Sécurité",
+ "subtitle": "PyCon Cameroun 2026",
+ "intro": "La santé et la sécurité de nos participants sont notre priorité absolue. Veuillez lire attentivement ces directives avant de vous rendre à PyCon Cameroun 2026 à Yaoundé, Cameroun.",
+ "maskTitle": "Politique relative au port du masque",
+ "maskP1": "Le port du masque n'est pas obligatoire à PyCon Cameroun 2026, conformément aux directives sanitaires en vigueur au Cameroun. Cependant, nous respectons le choix de chaque participant de porter un masque s'il le souhaite.",
+ "maskExceptions": "Exceptions où le port du masque peut être recommandé :",
+ "maskExceptionItems": [
+ "En cas d'apparition de symptômes respiratoires pendant l'événement",
+ "Pour les personnes immunodéprimées ou vulnérables",
+ "Si les autorités sanitaires locales émettent de nouvelles recommandations"
+ ],
+ "maskRequirements": "Nous fournirons des masques gratuitement au bureau d'accueil pour ceux qui en ont besoin. Des stations de désinfection des mains seront disponibles dans tout le lieu de la conférence.",
+ "maskEnforcement": "Si les conditions sanitaires évoluent avant ou pendant l'événement, nous nous réservons le droit de mettre à jour notre politique et d'exiger le port du masque si nécessaire. Les participants seront informés de tout changement par e-mail et sur le site web.",
+ "vaccTitle": "Vaccinations",
+ "vaccP1": "Aucune preuve de vaccination spécifique n'est requise pour participer à PyCon Cameroun 2026. Cependant, nous recommandons vivement à tous les participants de s'assurer que leurs vaccinations courantes sont à jour.",
+ "vaccP2": "Pour les voyageurs internationaux, veuillez consulter votre médecin ou un centre de médecine des voyages au moins 4 à 6 semaines avant votre départ pour obtenir des conseils personnalisés sur les vaccinations recommandées pour le Cameroun (fièvre jaune, hépatite A et B, typhoïde, etc.).",
+ "visaTitle": "Informations sur les visas",
+ "visaP1": "La plupart des visiteurs internationaux ont besoin d'un visa pour entrer au Cameroun. Nous vous recommandons de commencer vos démarches de visa le plus tôt possible, car le processus peut prendre plusieurs semaines.",
+ "visaP2": "PyCon Cameroun peut fournir une lettre d'invitation officielle pour faciliter votre demande de visa, une fois votre inscription confirmée et payée. Veuillez contacter organizers@pythoncameroon.org pour en faire la demande.",
+ "airportTitle": "Aéroport et transports",
+ "airportText": "L'aéroport international de Yaoundé Nsimalen (NSI) est le principal point d'entrée pour les voyageurs aériens. Des taxis et des services de VTC (Yango) sont disponibles à l'aéroport. Nous recommandons de convenir du tarif avant de monter dans un taxi. Pour les navettes depuis l'aéroport et les déplacements pendant la conférence, des informations détaillées seront communiquées aux participants inscrits.",
+ "adviceTitle": "Conseils aux visiteurs",
+ "adviceIntro": "Voici quelques conseils pratiques pour votre séjour à Yaoundé :",
+ "adviceItems": [
+ { "label": "Eau", "text": "Buvez uniquement de l'eau en bouteille ou purifiée. Évitez l'eau du robinet et les glaçons de source inconnue." },
+ { "label": "Alimentation", "text": "Privilégiez les aliments bien cuits et servis chauds. La cuisine camerounaise est délicieuse et variée — profitez-en en toute sécurité dans des restaurants réputés." },
+ { "label": "Soleil et chaleur", "text": "Yaoundé est une ville tropicale. Portez de la crème solaire, un chapeau et des vêtements légers. Restez hydraté en buvant régulièrement de l'eau." },
+ { "label": "Moustiques", "text": "Le paludisme est présent au Cameroun. Utilisez un répulsif anti-moustiques, portez des manches longues le soir et consultez votre médecin au sujet d'un traitement antipaludéen préventif." },
+ { "label": "Sécurité personnelle", "text": "Yaoundé est généralement sûre, mais comme dans toute grande ville, restez vigilant, évitez de montrer des objets de valeur et utilisez des moyens de transport fiables." },
+ { "label": "Urgences", "text": "En cas d'urgence, contactez l'équipe d'organisation sur place. Les numéros d'urgence locaux seront communiqués dans votre kit de bienvenue." }
+ ],
+ "habitsTitle": "Habitudes saines",
+ "habitsP1": "Nous encourageons tous les participants à adopter de bonnes habitudes d'hygiène pendant l'événement : se laver les mains régulièrement, utiliser les stations de désinfection mises à disposition et rester chez soi en cas de symptômes de maladie.",
+ "habitsP2": "Si vous vous sentez malade pendant la conférence, veuillez en informer l'équipe d'organisation. Un espace de repos et un kit de premiers secours seront disponibles sur place.",
+ "disclaimerTitle": "Avertissement",
+ "disclaimerText": "Ces directives de santé et de sécurité sont fournies à titre informatif et ne constituent pas un avis médical. Chaque participant est responsable de sa propre santé et de la consultation de professionnels de santé avant de voyager. Python Cameroun décline toute responsabilité en cas de maladie ou de blessure survenue pendant l'événement.",
+ "organizedBy": "Organisé par Python Cameroun",
+ "contactUs": "Nous contacter"
+ },
+ "codeOfConduct": {
+ "title": "Code de",
+ "titleHighlight": "Conduite",
+ "subtitle": "PyCon Cameroun 2026",
+ "commitmentTitle": "Notre engagement",
+ "commitmentP1": "PyCon Cameroun s'engage à offrir une expérience de conférence sans harcèlement pour tous, indépendamment du genre, de l'identité de genre, de l'expression de genre, de l'âge, de l'orientation sexuelle, du handicap, de l'apparence physique, de la taille, de la race, de l'ethnie, de la religion (ou de son absence) ou des choix technologiques.",
+ "commitmentP2": "Nous ne tolérons aucune forme de harcèlement des participants à la conférence. Le langage et les images à caractère sexuel ne sont pas appropriés dans les espaces de la conférence, y compris les présentations, les ateliers, les fêtes, les réseaux sociaux et tout autre média en ligne.",
+ "commitmentP3": "Nous attendons de chaque participant qu'il respecte ces règles dans tous les espaces de la conférence ainsi que lors des événements sociaux liés à la conférence.",
+ "expectedTitle": "Comportements attendus",
+ "expectedItems": [
+ "Faire preuve de considération, de respect et de collaboration envers les autres participants.",
+ "S'abstenir de tout comportement ou discours dégradant, discriminatoire ou harcelant.",
+ "Être attentif à son environnement et aux autres participants.",
+ "Alerter les organisateurs de la conférence si vous remarquez une situation dangereuse, une personne en difficulté ou une violation de ce code de conduite.",
+ "Participer de manière authentique et active, contribuant ainsi à la santé et à la longévité de la communauté.",
+ "Utiliser un langage accueillant et inclusif.",
+ "Respecter les différents points de vue et expériences.",
+ "Accepter gracieusement les critiques constructives."
+ ],
+ "unacceptableTitle": "Comportements inacceptables",
+ "unacceptableIntro": "Les comportements suivants sont considérés comme du harcèlement et sont inacceptables dans le cadre de PyCon Cameroun :",
+ "unacceptableItems": [
+ "Violence, menaces de violence ou langage violent dirigé contre une autre personne.",
+ "Blagues ou langage sexiste, raciste, homophobe, transphobe, capacitiste ou autrement discriminatoire.",
+ "Affichage de matériel sexuellement explicite ou violent.",
+ "Publication ou menace de publication d'informations personnelles d'autrui (« doxing »).",
+ "Insultes personnelles, en particulier celles liées au genre, à l'orientation sexuelle, à la race, à la religion ou au handicap.",
+ "Photographie ou enregistrement inapproprié sans consentement.",
+ "Contact physique non désiré. Vous devez obtenir le consentement avant tout contact physique.",
+ "Intimidation ou harcèlement soutenu (en ligne ou en personne).",
+ "Défense ou encouragement de l'un des comportements ci-dessus."
+ ],
+ "consequencesTitle": "Conséquences",
+ "consequencesP1": "Tout participant à qui il est demandé de cesser un comportement harcelant est tenu de s'exécuter immédiatement.",
+ "consequencesP2": "Si un participant adopte un comportement harcelant, les organisateurs de la conférence se réservent le droit de prendre toute mesure qu'ils jugent appropriée, y compris un avertissement, l'expulsion de la conférence sans remboursement ou le signalement aux autorités locales.",
+ "consequencesP3": "Les sponsors sont également soumis à cette politique. En particulier, les sponsors ne doivent pas utiliser de matériel, d'activités ou de contenu à caractère sexualisé ou créant un environnement hostile.",
+ "witnessTitle": "Signaler un incident",
+ "witnessP1": "Si vous êtes victime ou témoin d'un comportement inacceptable, ou si vous avez d'autres préoccupations, veuillez le signaler dès que possible à un membre de l'équipe d'organisation de PyCon Cameroun. Les organisateurs sont identifiables par leurs badges distinctifs.",
+ "witnessP2": "Vous pouvez également signaler un incident par e-mail à organizers@pythoncameroon.org. Tous les signalements seront traités avec la plus grande confidentialité. Nous prendrons toutes les mesures nécessaires pour assurer votre sécurité et votre bien-être.",
+ "contactTitle": "Contact",
+ "contactText": "Pour toute question relative au code de conduite, veuillez nous contacter à l'adresse organizers@pythoncameroon.org. Nous sommes là pour vous aider et garantir que PyCon Cameroun reste un événement sûr et accueillant pour tous."
+ },
+ "ubucon": {
+ "headerSubtitle": "Un track dédié Ubuntu & open source à PyCon Cameroun 2026",
+ "coOrganized": "Co-organisé par Python Cameroun & UbuCon Cameroun",
+ "whatIsTitle": "Qu'est-ce que",
+ "whatIsHighlight": "UbuCon ?",
+ "whatIsP1": "UbuCon (Ubuntu Conference) est une série de conférences mondiales organisées par et pour la communauté Ubuntu. Pour la première fois, UbuCon s'associe à PyCon Cameroun pour offrir un track dédié à Ubuntu et à l'open source au sein de la conférence.",
+ "whatIsP2": "Ce track spécial réunit des passionnés d'Ubuntu, des développeurs Linux et des défenseurs de l'open source pour partager leurs connaissances, collaborer sur des projets et célébrer le logiciel libre. Que vous soyez utilisateur débutant ou contributeur chevronné, UbuCon à PyCon Cameroun vous offre un espace pour apprendre, échanger et grandir.",
+ "submitTalk": "Soumettre une conférence UbuCon",
+ "glanceTitle": "UbuCon en un coup d'œil",
+ "dedicatedDay": "Journée dédiée",
+ "talksWorkshops": "Conférences & Ateliers",
+ "communitiesUnited": "Communautés unies",
+ "openSource": "Open Source",
+ "topicsTitle": "Sujets",
+ "topicsHighlight": "abordés",
+ "topicsSubtitle": "Découvrez les thèmes passionnants qui seront couverts lors du track UbuCon",
+ "topics": [
+ { "title": "Ubuntu & Python", "text": "Découvrez comment Python alimente le développement Ubuntu, le packaging, l'automatisation et l'administration système." },
+ { "title": "Contributions Open Source", "text": "Apprenez à contribuer à Ubuntu et aux projets open source, de votre premier patch aux maintenances de paquets." },
+ { "title": "Cloud & Infrastructure", "text": "Explorez Ubuntu Server, le développement cloud-native, les conteneurs, Kubernetes et le DevOps avec Python." },
+ { "title": "Sécurité & Vie privée", "text": "Découvrez les meilleures pratiques de sécurité sur Linux, la protection des données et la cybersécurité open source." },
+ { "title": "IoT & Systèmes embarqués", "text": "Ubuntu Core, Snap packages et Python pour l'Internet des objets et les systèmes embarqués." },
+ { "title": "Communauté & Gouvernance", "text": "Comment les communautés open source fonctionnent, la gouvernance des projets et le renforcement des communautés locales." }
+ ],
+ "worldTitle": "UbuCon dans le",
+ "worldHighlight": "monde",
+ "worldSubtitle": "Rejoignez le mouvement mondial UbuCon — des conférences Ubuntu sont organisées sur tous les continents",
+ "loadingMap": "Chargement de la carte...",
+ "ctaTitle": "Participez au track UbuCon",
+ "ctaText": "Que vous souhaitiez présenter une conférence sur Ubuntu, animer un atelier open source ou simplement apprendre des meilleurs, le track UbuCon à PyCon Cameroun est fait pour vous.",
+ "ctaSubmit": "Soumettre une proposition",
+ "ctaTicket": "Obtenir votre billet"
+ },
+ "financialAid": {
+ "title": "Aide",
+ "titleHighlight": "Financière",
+ "subtitle": "PyCon Cameroun 2026",
+ "aboutTitle": "À propos du programme",
+ "aboutText": "PyCon Cameroun s'engage à rendre la conférence accessible à tous. Notre programme d'aide financière fournit des subventions pour aider à couvrir les frais de voyage, d'hébergement et de subsistance des participants qui en ont besoin. Nous croyons que la diversité de notre communauté est notre plus grande force, et nous voulons nous assurer que les contraintes financières ne soient pas un obstacle à la participation.",
+ "grantTitle": "Disponibilité des subventions",
+ "grantText": "Les subventions sont attribuées en fonction des fonds disponibles et du mérite des candidatures. Le montant et le nombre de subventions accordées dépendent du soutien de nos sponsors et des dons reçus. Nous nous efforçons d'aider le plus grand nombre de participants possible.",
+ "applicationTitle": "Détails de la candidature",
+ "applicationP1": "Le processus de candidature est simple et confidentiel. Toutes les informations fournies seront utilisées exclusivement pour l'évaluation de votre demande d'aide financière.",
+ "applicationP2": "Les candidatures sont évaluées par un comité dédié qui prend en compte plusieurs critères, notamment votre implication dans la communauté Python, votre situation financière et l'impact potentiel de votre participation à la conférence.",
+ "applicationP3": "Nous encourageons vivement les candidatures de personnes issues de groupes sous-représentés dans la technologie, y compris les femmes, les personnes non binaires, les personnes en situation de handicap et les participants de pays en développement.",
+ "whoTitle": "Qui peut bénéficier de l'aide financière ?",
+ "whoP1": "L'aide financière est ouverte à toute personne souhaitant participer à PyCon Cameroun 2026 et ayant besoin d'un soutien financier.",
+ "whoP2": "Nous encourageons particulièrement les candidatures des groupes suivants :",
+ "whoP3": "L'aide financière n'est pas réservée aux intervenants. Tout participant peut postuler.",
+ "whoItems": [
+ "Étudiants et jeunes professionnels",
+ "Participants venant de régions éloignées du Cameroun",
+ "Participants internationaux de pays en développement",
+ "Membres de communautés sous-représentées dans la technologie",
+ "Contributeurs actifs à des projets open source",
+ "Enseignants et éducateurs utilisant Python"
+ ],
+ "howTitle": "Comment postuler",
+ "howP1": "Pour postuler à l'aide financière, remplissez le formulaire de candidature en ligne avant la date limite. Assurez-vous de fournir toutes les informations demandées pour que votre candidature soit prise en compte.",
+ "howP2": "Les candidatures incomplètes ne seront pas examinées. Vous recevrez une confirmation de réception par e-mail après votre soumission.",
+ "whatRequestTitle": "Que pouvez-vous demander ?",
+ "whatRequestText": "Vous pouvez demander une aide financière pour couvrir tout ou partie des frais suivants : billet de conférence, voyage (transport aérien, terrestre ou ferroviaire), hébergement et frais de subsistance pendant la conférence. Veuillez indiquer clairement vos besoins dans votre candidature.",
+ "howMuchTitle": "Combien demander ?",
+ "howMuchP1": "Demandez uniquement le montant dont vous avez réellement besoin. Des demandes réalistes et bien justifiées ont plus de chances d'être approuvées.",
+ "howMuchP2": "Nous vous encourageons à rechercher les options les plus économiques pour le voyage et l'hébergement avant de soumettre votre demande.",
+ "howMuchP3": "Voici quelques lignes directrices pour estimer vos besoins :",
+ "howMuchItems": [
+ "Billet de conférence : indiquez si vous avez besoin d'une exonération totale ou partielle.",
+ "Voyage : estimez le coût du transport le plus économique depuis votre lieu de résidence.",
+ "Hébergement : indiquez le nombre de nuits et le type d'hébergement souhaité.",
+ "Subsistance : estimez vos frais quotidiens de repas et de transport local."
+ ],
+ "calculateTitle": "Calculez votre budget",
+ "calculateIntro": "Pour vous aider à préparer votre candidature, voici les éléments à prendre en compte :",
+ "calculateItems": [
+ "Coût du transport aller-retour depuis votre ville d'origine",
+ "Coût de l'hébergement pour la durée de la conférence (2-3 nuits)",
+ "Frais de repas quotidiens (si non couverts par la conférence)",
+ "Frais de transport local (aéroport-hôtel, hôtel-lieu de conférence)",
+ "Autres frais éventuels (visa, assurance voyage, etc.)"
+ ],
+ "travelTitle": "Voyage",
+ "travelText": "L'aide au voyage couvre les frais de transport depuis votre lieu de résidence jusqu'à Yaoundé. Nous privilégions les options les plus économiques (bus, train, vol en classe économique). Les reçus et justificatifs de voyage seront requis pour le remboursement.",
+ "accommodationTitle": "Hébergement",
+ "accommodationP1": "L'aide à l'hébergement couvre les frais d'hôtel ou de maison d'hôtes pendant la durée de la conférence. Nous recommandons les hébergements partenaires de la conférence pour bénéficier de tarifs préférentiels.",
+ "accommodationP2": "La chambre partagée est encouragée pour maximiser le nombre de bénéficiaires de l'aide financière.",
+ "subsistenceTitle": "Subsistance",
+ "subsistenceText": "L'aide à la subsistance couvre les frais de repas et de transport local pendant la conférence. Notez que les déjeuners et les pauses café sont inclus dans le billet de conférence.",
+ "timelineTitle": "Calendrier",
+ "timelineIntro": "Voici les dates clés du programme d'aide financière :",
+ "timelineItems": [
+ { "label": "1er avril 2026", "text": "Ouverture des candidatures pour l'aide financière." },
+ { "label": "30 juin 2026", "text": "Date limite de soumission des candidatures." },
+ { "label": "15 juillet 2026", "text": "Notification des résultats aux candidats." },
+ { "label": "1er août 2026", "text": "Date limite de confirmation par les bénéficiaires." },
+ { "label": "Après la conférence", "text": "Remboursement des frais sur présentation des justificatifs." }
+ ],
+ "fundsTitle": "Versement des fonds",
+ "fundsP1": "Les subventions pour les billets de conférence seront appliquées directement à votre inscription. Pour les frais de voyage et d'hébergement, le remboursement sera effectué après la conférence sur présentation des justificatifs originaux.",
+ "fundsP2": "Dans certains cas, un paiement anticipé partiel peut être accordé pour les frais de voyage, notamment pour les participants internationaux. Cette décision est prise au cas par cas.",
+ "fundsP3": "Les bénéficiaires doivent participer effectivement à la conférence pour recevoir le remboursement. En cas d'annulation sans motif valable, les subventions déjà versées devront être restituées.",
+ "organizedBy": "Organisé par Python Cameroun",
+ "contactUs": "Nous contacter"
+ },
+ "data": {
+ "tracks": {
+ "newTrack": "Nouveau Track",
+ "submitTalk": "Soumettre une conf\u00e9rence {{label}}",
+ "attendTrack": "Participer au track {{label}}",
+ "trackHighlights": "Points forts du track {{label}}",
+ "ubucon": [
+ { "title": "Ubuntu & Python", "text": "Comment Python alimente le d\u00e9veloppement Ubuntu, le packaging et l'automatisation." },
+ { "title": "Contributions Open Source", "text": "D\u00e9buter avec les contributions \u00e0 Ubuntu et aux projets open source." },
+ { "title": "Cloud & Infrastructure", "text": "Ubuntu Server, d\u00e9veloppement cloud-native et DevOps avec Python." },
+ { "title": "Communaut\u00e9 & R\u00e9seautage", "text": "Rencontrez la communaut\u00e9 Ubuntu Cameroun et connectez-vous avec des contributeurs mondiaux." }
+ ],
+ "django": [
+ { "title": "D\u00e9veloppement web Django", "text": "Cr\u00e9ation d'applications web modernes avec Django et bonnes pratiques." },
+ { "title": "API REST & DRF", "text": "Conception et cr\u00e9ation d'API avec Django REST Framework." },
+ { "title": "D\u00e9ploiement & Mise \u00e0 l'\u00e9chelle", "text": "D\u00e9ploiement en production, optimisation des performances et strat\u00e9gies de mise \u00e0 l'\u00e9chelle." },
+ { "title": "Django & IA/ML", "text": "Int\u00e9gration de mod\u00e8les de machine learning et de fonctionnalit\u00e9s IA dans les applications Django." }
+ ]
+ },
+ "values": [
+ { "title": "Construire une communaut\u00e9 accueillante", "text": "Nous croyons que la diversit\u00e9 et l'inclusivit\u00e9 sont essentielles \u00e0 la croissance et au succ\u00e8s de notre communaut\u00e9. Tout le monde est le bienvenu ici, ind\u00e9pendamment de son parcours, de son niveau d'exp\u00e9rience ou de son identit\u00e9." },
+ { "title": "Conf\u00e9rences inspirantes", "text": "Des tutoriels pour d\u00e9butants aux analyses approfondies, nous offrons un large \u00e9ventail de conf\u00e9rences pour r\u00e9pondre aux besoins de notre communaut\u00e9 diversifi\u00e9e. Apprenez aupr\u00e8s d'experts Python locaux et internationaux." },
+ { "title": "Ateliers pratiques", "text": "Nous apprenons en faisant. Nos ateliers pratiques sont con\u00e7us pour vous aider \u00e0 d\u00e9velopper de vraies comp\u00e9tences que vous pouvez appliquer imm\u00e9diatement dans vos projets et votre carri\u00e8re." },
+ { "title": "Simple et tout inclus", "text": "Nous voulons cr\u00e9er un environnement accueillant et inclusif pour tous, ind\u00e9pendamment de leur parcours ou de leur exp\u00e9rience. Pas de barri\u00e8res, juste de la communaut\u00e9." },
+ { "title": "Innovation & Cr\u00e9ativit\u00e9", "text": "Nous encourageons la r\u00e9solution cr\u00e9ative de probl\u00e8mes et la pens\u00e9e innovante. PyCon Cameroun est un espace o\u00f9 de nouvelles id\u00e9es naissent et sont nourries." },
+ { "title": "Grandir ensemble", "text": "Que vous encadriez les autres ou que vous appreniez vous-m\u00eame, nous croyons au pouvoir de la croissance partag\u00e9e. Ensemble, nous construisons l'avenir de Python au Cameroun." }
+ ],
+ "venues": [
+ { "name": "Mus\u00e9e National", "description": "Explorez la riche histoire et la culture du Cameroun dans cet ancien palais pr\u00e9sidentiel." },
+ { "name": "Bois Sainte Anastasie", "description": "Un magnifique parc urbain parfait pour une promenade relaxante au c\u0153ur de la nature en centre-ville." },
+ { "name": "Monument de la R\u00e9unification", "description": "Un monument embl\u00e9matique symbolisant la r\u00e9unification des Cameroun fran\u00e7ais et britannique." },
+ { "name": "Palais Charles Atangana", "description": "Palais historique de l'\u00e9poque coloniale d'un chef paramount, aujourd'hui un site du patrimoine culturel \u00e0 Yaound\u00e9." },
+ { "name": "Zoo de Mvog-Betsi", "description": "Le zoo et jardin botanique de Yaound\u00e9, abritant la faune locale dont des primates et des oiseaux tropicaux." },
+ { "name": "Lac Municipal de Yaound\u00e9", "description": "Un lac artificiel pittoresque en centre-ville, populaire pour les promenades, les balades en bateau et la d\u00e9tente." },
+ { "name": "Eco Park Yaound\u00e9", "description": "Un parc de loisirs verdoyant offrant des sentiers naturels, des aires de pique-nique et des activit\u00e9s de plein air pour les familles." },
+ { "name": "Basilique Marie-Reine-des-Ap\u00f4tres", "description": "Basilique impressionnante au sommet d'une colline avec vue panoramique, l'une des plus belles \u00e9glises d'Afrique centrale." },
+ { "name": "Dade Park", "description": "Un parc r\u00e9cr\u00e9atif populaire \u00e0 Yaound\u00e9 avec des espaces verts, des aires de jeux et des divertissements le week-end." }
+ ],
+ "sponsors": {
+ "diamond": {
+ "description": "Le forfait de sponsoring ultime pour une visibilit\u00e9 et un impact maximum.",
+ "features": ["Emplacement de stand premium", "Opportunit\u00e9 de conf\u00e9rence pl\u00e9ni\u00e8re", "2 cr\u00e9neaux de conf\u00e9rence", "10 billets de conf\u00e9rence", "Grande visibilit\u00e9 de marque sur la signal\u00e9tique et les supports", "Placement de logo au premier niveau sur le site web", "Page sponsor d\u00e9di\u00e9e sur le site web", "Mention dans tous les communiqu\u00e9s de presse"]
+ },
+ "gold": {
+ "description": "Excellente visibilit\u00e9 et opportunit\u00e9s d'engagement.",
+ "features": ["Stand d'exposition", "1 cr\u00e9neau de conf\u00e9rence", "5 billets de conf\u00e9rence", "Visibilit\u00e9 de marque moyenne sur la signal\u00e9tique et les supports", "Placement de logo de niveau 2 sur le site web", "Mention dans les communiqu\u00e9s de presse"]
+ },
+ "silver": {
+ "description": "Excellent rapport qualit\u00e9-prix pour les entreprises souhaitant soutenir la communaut\u00e9.",
+ "features": ["1 cr\u00e9neau de conf\u00e9rence", "3 billets de conf\u00e9rence", "Placement de logo de niveau 3 sur le site web"],
+ "featuresLocal": ["1 cr\u00e9neau de conf\u00e9rence", "3 billets de conf\u00e9rence", "Signal\u00e9tique de conf\u00e9rence avec branding", "Placement de logo de niveau 3 sur le site web"]
+ },
+ "bronze": {
+ "description": "Id\u00e9al pour les startups et les petites organisations.",
+ "features": ["1 cr\u00e9neau de conf\u00e9rence", "1 billet de conf\u00e9rence", "Logo de l'entreprise sur le site web", "Branding sur des supports s\u00e9lectionn\u00e9s"]
+ },
+ "community": {
+ "description": "Id\u00e9al pour les startups et les petites organisations.",
+ "features": ["1 billet de conf\u00e9rence", "Logo de l'entreprise sur le site web", "Branding sur des supports s\u00e9lectionn\u00e9s"]
+ }
+ },
+ "team": {
+ "roles": [
+ "Responsable Python Cameroun",
+ "Co-responsable, Coordinateur mentorat / apprentissage",
+ "Responsable r\u00e9seaux sociaux",
+ "Coordinateur open source",
+ "Coordinatrice de projet",
+ "Designer UI/UX et graphique",
+ "Responsable du groupe d'utilisateurs Canonical Cameroun"
+ ]
+ }
+ }
+}
diff --git a/src/index.css b/src/index.css
index 0f238c2..d434a84 100644
--- a/src/index.css
+++ b/src/index.css
@@ -352,6 +352,7 @@ p {
.nav-links {
display: flex;
+ align-items: center;
gap: var(--spacing-md);
}
@@ -369,6 +370,27 @@ p {
background: rgba(224, 122, 36, 0.1);
}
+.lang-toggle {
+ display: inline-flex;
+ align-items: center;
+ gap: 4px;
+ background: transparent;
+ border: 1px solid var(--color-orange);
+ color: var(--color-orange);
+ padding: 4px 10px;
+ border-radius: var(--radius-sm);
+ cursor: pointer;
+ font-weight: 600;
+ font-size: 0.85rem;
+ transition: background 0.2s, color 0.2s;
+ white-space: nowrap;
+}
+
+.lang-toggle:hover {
+ background: var(--color-orange);
+ color: #fff;
+}
+
.nav-toggle {
display: none;
flex-direction: column;
@@ -488,6 +510,13 @@ p {
color: var(--color-orange);
background: rgba(224, 122, 36, 0.1);
}
+
+ .nav-drawer-links .lang-toggle {
+ margin-top: var(--spacing-sm);
+ align-self: flex-start;
+ font-size: 1rem;
+ padding: 6px 14px;
+ }
}
/* ===================================
@@ -2149,7 +2178,13 @@ img {
}
.sponsor-features li::before {
- content: '✓';
+ content: '';
+ display: inline-block;
+ width: 16px;
+ height: 16px;
+ background: currentColor;
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") no-repeat center/contain;
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") no-repeat center/contain;
color: var(--color-green);
font-weight: bold;
}
diff --git a/src/main.jsx b/src/main.jsx
index 2898346..d2a93a5 100644
--- a/src/main.jsx
+++ b/src/main.jsx
@@ -2,6 +2,7 @@ import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import { BrowserRouter } from 'react-router-dom'
import './index.css'
+import './i18n/LanguageContext'
import App from './App.jsx'
createRoot(document.getElementById('root')).render(
diff --git a/src/pages/About.jsx b/src/pages/About.jsx
index 175cd4d..54514f9 100644
--- a/src/pages/About.jsx
+++ b/src/pages/About.jsx
@@ -1,15 +1,19 @@
import React from "react";
import { Link } from "react-router-dom";
+import { useTranslation } from "react-i18next";
import useScrollAnimation from "../hooks/useScrollAnimation";
import LazyImage from "../components/LazyImage";
import TeamCard from "../components/TeamCard";
import PartnerCard from "../components/PartnerCard";
import { teamData } from "../data/team";
-import { valuesData } from "../data/values";
+import { valuesData as valuesImages } from "../data/values";
import { partnerCommunities } from "../data/partners";
const About = () => {
useScrollAnimation();
+ const { t } = useTranslation();
+ const translatedValues = t('data.values', { returnObjects: true });
+ const teamRoles = t('data.team.roles', { returnObjects: true });
return (
<>
@@ -17,11 +21,10 @@ const About = () => {
@@ -35,35 +38,24 @@ const About = () => {
>
- Python Cameroon{" "}
- User Group
+ {t('about.userGroupTitle')}{" "}
+ {t('about.userGroupHighlight')}
- The Python Cameroon User Group is a vibrant community of
- software developers, data scientists, and tech enthusiasts in
- Cameroon who are passionate about the Python programming
- language. We are dedicated to sharing knowledge, fostering
- innovation, and promoting the adoption of Python across all
- sectors.
+ {t('about.userGroupP1')}
- Our community meets regularly to discuss various topics related
- to Python, including web development with Django and Flask,
- scientific computing, machine learning with TensorFlow and
- PyTorch, data science with Pandas, automation, DevOps, and much
- more.
+ {t('about.userGroupP2')}
- We organize speaker sessions, coding workshops, hackathons, and
- mentorship programs to help members improve their Python skills
- and build practical applications that solve real-world problems.
+ {t('about.userGroupP3')}
@@ -85,7 +77,7 @@ const About = () => {
- Our Mission
+ {t('about.missionTitle')} {t('about.missionHighlight')}
@@ -102,26 +94,16 @@ const About = () => {
- PyCon Cameroon
+ {t('about.pyconCameroon')}
- PyCon Cameroon is a community-driven conference that aims to
- provide a platform for the growth of the Python community in
- Cameroon and across Central Africa. We believe that diversity
- and inclusivity are essential for the growth and success of our
- community.
+ {t('about.missionP1')}
- We strive to create a welcoming and inclusive environment for
- all attendees, regardless of their backgrounds, genders, ages,
- or identities. Our conference is designed to inspire, educate,
- and connect developers at every skill level.
+ {t('about.missionP2')}
- Bringing together techies from across Africa and the globe,
- startups, students, researchers, and seasoned professionals,
- PyCon Cameroon is a unique opportunity to learn, network, and
- collaborate with like-minded individuals.
+ {t('about.missionP3')}
{
fontSize: "1.1rem",
}}
>
- We invite you to join us in celebrating the power of Python and
- its applications in shaping the future of technology in Cameroon
- and beyond.
+ {t('about.missionInvite')}