From 1ca6ccc5d883f12859a8ae0868055b8d4a399bfd Mon Sep 17 00:00:00 2001 From: itziarZG Date: Fri, 19 Jun 2026 16:21:09 +0200 Subject: [PATCH 1/2] feat: add i18n support for speakers Restructure speakers data to language subdirectories (es/en/ca) following the same pattern as jobs/. Translate diego.md to English and Catalan. Update SectionSpeakers.astro to load by current language. --- src/components/home/SectionSpeakers.astro | 22 ++++++++++++++++++---- src/data/speakers/ca/diego.md | 21 +++++++++++++++++++++ src/data/speakers/en/diego.md | 21 +++++++++++++++++++++ src/data/speakers/{ => es}/diego.md | 0 4 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 src/data/speakers/ca/diego.md create mode 100644 src/data/speakers/en/diego.md rename src/data/speakers/{ => es}/diego.md (100%) diff --git a/src/components/home/SectionSpeakers.astro b/src/components/home/SectionSpeakers.astro index ceddf1a..4f32db0 100644 --- a/src/components/home/SectionSpeakers.astro +++ b/src/components/home/SectionSpeakers.astro @@ -5,10 +5,6 @@ import CenteredPanel from '../CenteredPanel.astro' import type { ISpeaker } from '../../types/speakers' import SpeakerCard from './SpeakerCard.astro' -const speakers = Object.values(import.meta.glob('../../data/speakers/*.md', { eager: true })) as { - frontmatter: ISpeaker -}[] - interface Props { lang: string } @@ -16,6 +12,24 @@ interface Props { const { lang } = Astro.props const t = texts[lang as keyof typeof texts] +const esSpeakers = Object.values(import.meta.glob('../../data/speakers/es/*.md', { eager: true })) as { + frontmatter: ISpeaker +}[] +const enSpeakers = Object.values(import.meta.glob('../../data/speakers/en/*.md', { eager: true })) as { + frontmatter: ISpeaker +}[] +const caSpeakers = Object.values(import.meta.glob('../../data/speakers/ca/*.md', { eager: true })) as { + frontmatter: ISpeaker +}[] + +const allSpeakersMap: Record = { + es: esSpeakers, + en: enSpeakers, + ca: caSpeakers, +} + +const speakers = allSpeakersMap[lang] || [] + const sortedSpeakers = speakers.map((s) => s.frontmatter).sort((a, b) => a.order - b.order) const count = sortedSpeakers.length diff --git a/src/data/speakers/ca/diego.md b/src/data/speakers/ca/diego.md new file mode 100644 index 0000000..4f7eb02 --- /dev/null +++ b/src/data/speakers/ca/diego.md @@ -0,0 +1,21 @@ +--- +name: 'Diego Russo' +order: 1 +photo: '/speakers/diego.jpg' +links: + - type: 'github' + url: 'https://github.com/diegorusso' + - type: 'linkedin' + url: 'https://www.linkedin.com/in/diegor/' + - type: 'bluesky' + url: 'https://bsky.app/profile/diegor.it' + - type: 'twitter' + url: 'https://x.com/diegor' + - type: 'instagram' + url: 'https://www.instagram.com/diegor.it' +description: | + Diego Russo és desenvolupador core de CPython i enginyer cap de software de l'equip de Runtimes d'Arm, amb seu a Cambridge (Regne Unit). + Fa servir Python des del 2006 i contribueix a CPython des del 2023, centrant-se en el rendiment de l'intèrpret, el treball relacionat amb JIT, la infraestructura d'integració contínua i en garantir que CPython i el seu ecosistema funcionin de manera fiable i eficient a les plataformes Arm. + El seu treball es troba a la intersecció entre el temps d'execució, l'enginyeria de rendiment i la col·laboració de codi obert a gran escala. + Diego és també organitzador d'EuroPython i dirigeix l'Arm Python Guild, una comunitat interna de més de 1.400 desenvolupadors de Python que treballen a tota l'empresa. +--- diff --git a/src/data/speakers/en/diego.md b/src/data/speakers/en/diego.md new file mode 100644 index 0000000..d561ad9 --- /dev/null +++ b/src/data/speakers/en/diego.md @@ -0,0 +1,21 @@ +--- +name: 'Diego Russo' +order: 1 +photo: '/speakers/diego.jpg' +links: + - type: 'github' + url: 'https://github.com/diegorusso' + - type: 'linkedin' + url: 'https://www.linkedin.com/in/diegor/' + - type: 'bluesky' + url: 'https://bsky.app/profile/diegor.it' + - type: 'twitter' + url: 'https://x.com/diegor' + - type: 'instagram' + url: 'https://www.instagram.com/diegor.it' +description: | + Diego Russo is a CPython core developer and Head of Software Engineering on Arm's Runtimes team, based in Cambridge (United Kingdom). + He has been using Python since 2006 and contributing to CPython since 2023, focusing on interpreter performance, JIT-related work, continuous integration infrastructure, and ensuring that CPython and its ecosystem run reliably and efficiently on Arm platforms. + His work sits at the intersection of runtime engineering, performance engineering, and large-scale open source collaboration. + Diego is also an EuroPython organizer and leads the Arm Python Guild, an internal community of over 1,400 Python developers working across the company. +--- diff --git a/src/data/speakers/diego.md b/src/data/speakers/es/diego.md similarity index 100% rename from src/data/speakers/diego.md rename to src/data/speakers/es/diego.md From b53d15329ca5f2a5ae9096d4abb61d4caa152259 Mon Sep 17 00:00:00 2001 From: itziarZG Date: Fri, 19 Jun 2026 16:24:33 +0200 Subject: [PATCH 2/2] feat: update package version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 96431c4..89cddd9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "2026.es.pycon.org", - "version": "1.10.0", + "version": "1.10.1", "description": "", "main": "index.js", "scripts": {