diff --git a/src/components/AccommodationPage.astro b/src/components/AccommodationPage.astro index e415f01..00c612f 100644 --- a/src/components/AccommodationPage.astro +++ b/src/components/AccommodationPage.astro @@ -1,4 +1,5 @@ --- +import { hotels } from '../data/hotels' import { accommodationTexts } from '../i18n/accommodation' import { menuTexts } from '../i18n/menu' import StatusIcon from './icons/StatusIcon.astro' @@ -108,29 +109,62 @@ const areaDesc = (slug: AreaSlug) => t[`accommodation.areas.${slug}.desc` as key -
- - - -
- -

{t['accommodation.hotels.subtitle']}

-

- {t['accommodation.hotels.disclaimer']} -

-
+
+

{t['accommodation.hotels.subtitle']}

+

{t['accommodation.hotels.disclaimer']}

+ + diff --git a/src/data/hotels.ts b/src/data/hotels.ts new file mode 100644 index 0000000..097f7d6 --- /dev/null +++ b/src/data/hotels.ts @@ -0,0 +1,23 @@ +import type { IHotel } from '../types/hotels' + +/** Recommended hotels with PyConES promo codes. */ +export const hotels: IHotel[] = [ + { + name: 'Travelodge Barcelona Poblenou', + bookingUrl: 'https://www.travelodge.es/hoteles-barcelona/poblenou', + promoCode: 'PYCONES2026BCN', + mapsUrl: 'https://maps.app.goo.gl/xAmHRV413JHyWHUx8', + }, + { + name: 'Hotel Jazz', + bookingUrl: + 'https://reservations.hoteljazz.com/hotel/nn_jazz?adultos=1&fini=06-11-2026&noches=2&origin=grponline&epc=U1RNVEhKQkdSUDFCQioqLFBZVEhPTgo=', + mapsUrl: 'https://maps.app.goo.gl/ZULETA9Zp2sZW1NL9', + }, + { + name: 'EasyHotel Barcelona Fira', + bookingUrl: 'https://www.easyhotel.com/es/hotels/spain/barcelona/barcelona-fira', + promoCode: 'PYTHON', + mapsUrl: 'https://maps.app.goo.gl/9MErH52umw4XHjFq6', + }, +] diff --git a/src/i18n/accommodation/ca.ts b/src/i18n/accommodation/ca.ts index ef0ec68..0545507 100644 --- a/src/i18n/accommodation/ca.ts +++ b/src/i18n/accommodation/ca.ts @@ -5,7 +5,11 @@ export const ca = { 'accommodation.hotels.title': 'Hotels Recomanats', 'accommodation.hotels.subtitle': 'Convenis i opcions properes', 'accommodation.hotels.disclaimer': - 'Estem treballant per tancar convenis exclusius amb descomptes per als assistents. Torna aviat per veure els codis promocionals!', + 'Fes servir el codi promocional en reservar per aplicar el descompte de PyConES.', + 'accommodation.hotels.promoCode': 'Codi promocional', + 'accommodation.hotels.useDirectLink': "Fes servir l'enllaç de reserva per aplicar el descompte.", + 'accommodation.hotels.book': 'Reservar hotel', + 'accommodation.hotels.maps': 'Veure a Google Maps', 'accommodation.areas.title': 'Millors Zones', 'accommodation.areas.transportIntro.p1': 'Si has de tornar a casa en tren, les millors opcions són Sants, Eixample Esquerra o Les Corts (per anar a Sants Estació).', diff --git a/src/i18n/accommodation/en.ts b/src/i18n/accommodation/en.ts index f3bdea3..1b4c45f 100644 --- a/src/i18n/accommodation/en.ts +++ b/src/i18n/accommodation/en.ts @@ -4,8 +4,11 @@ export const en = { 'accommodation.hero.subtitle': 'Recommendations for your stay in Barcelona', 'accommodation.hotels.title': 'Recommended Hotels', 'accommodation.hotels.subtitle': 'Agreements and nearby options', - 'accommodation.hotels.disclaimer': - 'We are working on exclusive discounts for attendees. Check back soon for promo codes!', + 'accommodation.hotels.disclaimer': 'Use the promo code when booking to apply the PyConES discount.', + 'accommodation.hotels.promoCode': 'Promo code', + 'accommodation.hotels.useDirectLink': 'Use the booking link to apply the discount.', + 'accommodation.hotels.book': 'Book hotel', + 'accommodation.hotels.maps': 'View on Google Maps', 'accommodation.areas.title': 'Best Areas', 'accommodation.areas.transportIntro.p1': 'If you are heading home by train, the best options are Sants, Eixample Esquerra, or Les Corts (for reaching Sants Estació).', diff --git a/src/i18n/accommodation/es.ts b/src/i18n/accommodation/es.ts index 18418e4..1decd96 100644 --- a/src/i18n/accommodation/es.ts +++ b/src/i18n/accommodation/es.ts @@ -5,7 +5,11 @@ export const es = { 'accommodation.hotels.title': 'Hoteles Recomendados', 'accommodation.hotels.subtitle': 'Convenios y opciones cercanas', 'accommodation.hotels.disclaimer': - 'Estamos trabajando para cerrar convenios exclusivos con descuentos para los asistentes. ¡Vuelve pronto para ver los códigos promocionales!', + 'Usa el código promocional al reservar para aplicar el descuento de PyConES.', + 'accommodation.hotels.promoCode': 'Código promocional', + 'accommodation.hotels.useDirectLink': 'Usa el enlace de reserva para aplicar el descuento.', + 'accommodation.hotels.book': 'Reservar hotel', + 'accommodation.hotels.maps': 'Ver en Google Maps', 'accommodation.areas.title': 'Mejores Zonas', 'accommodation.areas.transportIntro.p1': 'Si tienes que volver a casa en tren, las mejores opciones son Sants, Eixample Esquerra o Les Corts (para ir a Sants Estació).', diff --git a/src/types/hotels.ts b/src/types/hotels.ts new file mode 100644 index 0000000..fe8769a --- /dev/null +++ b/src/types/hotels.ts @@ -0,0 +1,7 @@ +export interface IHotel { + name: string + bookingUrl: string + /** Omit when discount is applied via the booking URL only. */ + promoCode?: string + mapsUrl: string +}