From 59a6d1453c1f63ef8a072ce0e39c86b5416e37e8 Mon Sep 17 00:00:00 2001 From: Fede Date: Tue, 8 Sep 2026 18:24:33 +0200 Subject: [PATCH 1/5] feat: use plural when there are several sponsors --- src/components/home/SectionSponsors.astro | 23 ++++++++++++++--------- src/i18n/home.ts | 12 ++++++++++++ 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/components/home/SectionSponsors.astro b/src/components/home/SectionSponsors.astro index d9be309..b26e543 100644 --- a/src/components/home/SectionSponsors.astro +++ b/src/components/home/SectionSponsors.astro @@ -39,15 +39,20 @@ const tierDefs: Array<{ key: TSponsorTier; size: number; color: string }> = [
{ - tierDefs.map((tier) => ( - - )) + tierDefs.map((tier) => { + const tierSponsors = filterSponsorsByTier(tier.key) + const titleKey = + tierSponsors.length > 1 ? `sponsors.${tier.key}_plural` : `sponsors.${tier.key}` + return ( + + ) + }) }
diff --git a/src/i18n/home.ts b/src/i18n/home.ts index 6ab6a71..8db6194 100644 --- a/src/i18n/home.ts +++ b/src/i18n/home.ts @@ -9,9 +9,13 @@ export const texts = { 'Gracias a las empresas que colaboran con la PyConES podemos ofrecer el mejor evento y experiencia posible. Somos una conferencia con un bajo coste de entrada capaz de ofrecer una experiencia de 3 días incluyendo regalos, almuerzos, comidas y meriendas. Además contamos con servicio de guardería, becas y traducción en directo a lenguaje de signos para que nadie se quede fuera. Con la ayuda de estas empresas conseguimos hacer un evento diverso e inclusivo enfocado en cuidar la comunidad de Python.', 'sponsors.main': 'Patrocinador Principal', 'sponsors.platinum': 'Patrocinador Platino', + 'sponsors.platinum_plural': 'Patrocinadores Platino', 'sponsors.gold': 'Patrocinador Oro', + 'sponsors.gold_plural': 'Patrocinadores Oro', 'sponsors.silver': 'Patrocinador Plata', + 'sponsors.silver_plural': 'Patrocinadores Plata', 'sponsors.bronze': 'Patrocinador Bronce', + 'sponsors.bronze_plural': 'Patrocinadores Bronce', 'sponsors.community': 'Comunidades Patrocinadoras', 'sponsors.none': 'No hay patrocinadores en este nivel', 'sponsors.altlogo': 'Logo de {name}', @@ -50,9 +54,13 @@ export const texts = { 'Thanks to the companies that collaborate with PyConES, we can offer the best possible event and experience. We are a conference with a low entry cost capable of offering a 3-day experience including gifts, lunches, meals, and snacks. Additionally, we have childcare services, scholarships, and live sign language translation to ensure that no one is left out. With the help of these companies, we manage to create a diverse and inclusive event focused on caring for the Python community.', 'sponsors.main': 'Main Sponsor', 'sponsors.platinum': 'Platinum Sponsor', + 'sponsors.platinum_plural': 'Platinum Sponsors', 'sponsors.gold': 'Gold Sponsor', + 'sponsors.gold_plural': 'Gold Sponsors', 'sponsors.silver': 'Silver Sponsor', + 'sponsors.silver_plural': 'Silver Sponsors', 'sponsors.bronze': 'Bronze Sponsor', + 'sponsors.bronze_plural': 'Bronze Sponsors', 'sponsors.community': 'Sponsoring Communities', 'sponsors.none': 'No sponsors in this tier', 'sponsors.altlogo': '{name} logo', @@ -92,9 +100,13 @@ export const texts = { 'Gràcies a les empreses que col·laboren amb la PyConES podem oferir el millor esdeveniment i experiència possible. Som una conferència amb un baix cost d’entrada capaç d’oferir una experiència de 3 dies incloent regals, àpats, menjars i berenars. A més comptem amb servei de guarderia, beques i traducció en directe a llenguatge de signes perquè ningú es quedi fora. Amb l’ajuda d’aquestes empreses aconseguim fer un esdeveniment divers i inclusiu enfocat en cuidar la comunitat de Python.', 'sponsors.main': 'Patrocinador Principal', 'sponsors.platinum': 'Patrocinador Platí', + 'sponsors.platinum_plural': 'Patrocinadors Platí', 'sponsors.gold': 'Patrocinador Or', + 'sponsors.gold_plural': 'Patrocinadors Or', 'sponsors.silver': 'Patrocinador Plata', + 'sponsors.silver_plural': 'Patrocinadors Plata', 'sponsors.bronze': 'Patrocinador Bronze', + 'sponsors.bronze_plural': 'Patrocinadors Bronze', 'sponsors.community': 'Comunitats Patrocinadores', 'sponsors.none': 'No hi ha patrocinadors en aquest nivell', 'sponsors.altlogo': 'Logo de {name}', From f7ca2564e8a4f2a504c0b5d76d33c9582b9bf329 Mon Sep 17 00:00:00 2001 From: Fede Date: Tue, 8 Sep 2026 21:21:38 +0200 Subject: [PATCH 2/5] sponsoring communities case --- src/i18n/home.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/i18n/home.ts b/src/i18n/home.ts index 8db6194..0724bb7 100644 --- a/src/i18n/home.ts +++ b/src/i18n/home.ts @@ -16,7 +16,8 @@ export const texts = { 'sponsors.silver_plural': 'Patrocinadores Plata', 'sponsors.bronze': 'Patrocinador Bronce', 'sponsors.bronze_plural': 'Patrocinadores Bronce', - 'sponsors.community': 'Comunidades Patrocinadoras', + 'sponsors.community': 'Comunidad Patrocinadora', + 'sponsors.community_plural': 'Comunidades Patrocinadoras', 'sponsors.none': 'No hay patrocinadores en este nivel', 'sponsors.altlogo': 'Logo de {name}', 'cfp.title': 'Llamada a Propuestas', @@ -61,7 +62,8 @@ export const texts = { 'sponsors.silver_plural': 'Silver Sponsors', 'sponsors.bronze': 'Bronze Sponsor', 'sponsors.bronze_plural': 'Bronze Sponsors', - 'sponsors.community': 'Sponsoring Communities', + 'sponsors.community': 'Sponsoring Community', + 'sponsors.community_plural': 'Sponsoring Communities', 'sponsors.none': 'No sponsors in this tier', 'sponsors.altlogo': '{name} logo', 'cfp.title': 'Call for Proposals', @@ -107,7 +109,8 @@ export const texts = { 'sponsors.silver_plural': 'Patrocinadors Plata', 'sponsors.bronze': 'Patrocinador Bronze', 'sponsors.bronze_plural': 'Patrocinadors Bronze', - 'sponsors.community': 'Comunitats Patrocinadores', + 'sponsors.community': 'Comunitat Patrocinadora', + 'sponsors.community_plural': 'Comunitats Patrocinadores', 'sponsors.none': 'No hi ha patrocinadors en aquest nivell', 'sponsors.altlogo': 'Logo de {name}', 'cfp.title': 'Crida a Propostes', From 11fc41f6ac508e3289fa82db4dd3c5f1f733ad2a Mon Sep 17 00:00:00 2001 From: Fede Date: Tue, 8 Sep 2026 21:24:44 +0200 Subject: [PATCH 3/5] fix case for main --- src/components/home/SectionSponsors.astro | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/home/SectionSponsors.astro b/src/components/home/SectionSponsors.astro index b26e543..55f5a72 100644 --- a/src/components/home/SectionSponsors.astro +++ b/src/components/home/SectionSponsors.astro @@ -42,7 +42,9 @@ const tierDefs: Array<{ key: TSponsorTier; size: number; color: string }> = [ tierDefs.map((tier) => { const tierSponsors = filterSponsorsByTier(tier.key) const titleKey = - tierSponsors.length > 1 ? `sponsors.${tier.key}_plural` : `sponsors.${tier.key}` + tierSponsors.length > 1 && tier.key !== 'main' + ? `sponsors.${tier.key}_plural` + : `sponsors.${tier.key}` return ( Date: Tue, 8 Sep 2026 21:32:13 +0200 Subject: [PATCH 4/5] fix title key access --- src/components/home/SectionSponsors.astro | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/components/home/SectionSponsors.astro b/src/components/home/SectionSponsors.astro index 55f5a72..8af001b 100644 --- a/src/components/home/SectionSponsors.astro +++ b/src/components/home/SectionSponsors.astro @@ -31,6 +31,15 @@ const tierDefs: Array<{ key: TSponsorTier; size: number; color: string }> = [ { key: 'bronze', size: 90, color: 'text-tier-bronze' }, { key: 'community', size: 140, color: 'text-tier-community' }, ] + +const tierTitleKeys = { + main: { singular: 'sponsors.main', plural: 'sponsors.main' }, + platinum: { singular: 'sponsors.platinum', plural: 'sponsors.platinum_plural' }, + gold: { singular: 'sponsors.gold', plural: 'sponsors.gold_plural' }, + silver: { singular: 'sponsors.silver', plural: 'sponsors.silver_plural' }, + bronze: { singular: 'sponsors.bronze', plural: 'sponsors.bronze_plural' }, + community: { singular: 'sponsors.community', plural: 'sponsors.community_plural' }, +} as const ---
@@ -42,9 +51,7 @@ const tierDefs: Array<{ key: TSponsorTier; size: number; color: string }> = [ tierDefs.map((tier) => { const tierSponsors = filterSponsorsByTier(tier.key) const titleKey = - tierSponsors.length > 1 && tier.key !== 'main' - ? `sponsors.${tier.key}_plural` - : `sponsors.${tier.key}` + tierSponsors.length > 1 ? tierTitleKeys[tier.key].plural : tierTitleKeys[tier.key].singular return ( Date: Tue, 8 Sep 2026 22:51:43 +0200 Subject: [PATCH 5/5] chore: bump version to 1.17.12 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 73d863f..ecc4081 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "2026.es.pycon.org", - "version": "1.17.11", + "version": "1.17.12", "description": "", "main": "index.js", "scripts": { @@ -61,4 +61,4 @@ "@commitlint/config-conventional" ] } -} \ No newline at end of file +}