Merged in feat/fix-translations (pull request #1244)

Feat: Fix translations for localize

* fix: POI translations

* fix: update translations


Approved-by: Michael Zetterberg
Approved-by: Erik Tiekstra
This commit is contained in:
Matilda Landström
2025-02-06 12:14:40 +00:00
parent 87820a6f2d
commit 3690b0a29a
11 changed files with 123 additions and 51 deletions

View File

@@ -7,11 +7,12 @@ import FacilitiesCardGrid from "./CardGrid"
import styles from "./facilities.module.css"
import type {
Facilities,
FacilitiesProps,
FacilityCardType,
FacilityGrid,
import {
type Facilities,
type FacilitiesProps,
FacilityCardButtonText,
type FacilityCardType,
type FacilityGrid,
} from "@/types/components/hotelPage/facilities"
export default async function Facilities({
@@ -34,12 +35,9 @@ export default async function Facilities({
if (isFacilityCard(card)) {
return {
...card,
heading: intl.formatMessage({ id: card.heading }),
secondaryButton: {
...card.secondaryButton,
title: intl.formatMessage({
id: card.secondaryButton.title,
}),
title: translateButtonText(card.secondaryButton.title),
},
}
}
@@ -48,6 +46,20 @@ export default async function Facilities({
}
)
function translateButtonText(text: string) {
switch (text) {
case FacilityCardButtonText.MEETINGS:
return intl.formatMessage({ id: "About meetings & conferences" })
case FacilityCardButtonText.RESTAURANT:
return intl.formatMessage({ id: "Read more & book a table" })
case FacilityCardButtonText.WELLNESS:
return intl.formatMessage({ id: "Read more about wellness & exercise" })
default:
console.warn(`Unsupported option given: ${text}`)
return intl.formatMessage({ id: "Read more" })
}
}
return (
<SectionContainer className={styles.grid}>
{translatedFacilityGrids.map((cardGrid: FacilityGrid) => (

View File

@@ -13,6 +13,7 @@ import styles from "./sidebar.module.css"
import type { SidebarProps } from "@/types/components/hotelPage/map/sidebar"
import type { Coordinates } from "@/types/components/maps/coordinates"
import { PointOfInterestGroupEnum } from "@/types/enums/pointOfInterest"
export default function Sidebar({
activePoi,
@@ -86,6 +87,28 @@ export default function Sidebar({
const viewAsMapMsg = intl.formatMessage({ id: "View as map" })
const viewAsListMsg = intl.formatMessage({ id: "View as list" })
function translatePOIGroup(group: PointOfInterestGroupEnum) {
switch (group) {
case PointOfInterestGroupEnum.PUBLIC_TRANSPORT:
return intl.formatMessage({ id: "Public transport" })
case PointOfInterestGroupEnum.ATTRACTIONS:
return intl.formatMessage({ id: "Attractions" })
case PointOfInterestGroupEnum.BUSINESS:
return intl.formatMessage({ id: "Business" })
case PointOfInterestGroupEnum.LOCATION:
return intl.formatMessage({ id: "Location" })
case PointOfInterestGroupEnum.PARKING:
return intl.formatMessage({ id: "Parking" })
case PointOfInterestGroupEnum.SHOPPING_DINING:
return intl.formatMessage({ id: "Shopping & Dining" })
default:
const option: never = group
console.warn(`Unsupported group given: ${option}`)
return intl.formatMessage({ id: "N/A" })
}
}
return (
<>
<aside
@@ -124,7 +147,7 @@ export default function Sidebar({
>
<h3>
<PoiMarker group={group} />
{intl.formatMessage({ id: group })}
{translatePOIGroup(group)}
</h3>
</Body>
<ul className={styles.poiList}>

View File

@@ -6,6 +6,7 @@ import { getIntl } from "@/i18n"
import styles from "./facility.module.css"
import { HealthFacilitiesEnum } from "@/types/components/hotelPage/facilities"
import type { FacilityProps } from "@/types/components/hotelPage/sidepeek/facility"
export default async function Facility({ data }: FacilityProps) {
@@ -14,6 +15,26 @@ export default async function Facility({ data }: FacilityProps) {
const ordinaryOpeningTimes = data.openingDetails.openingHours.ordinary
const weekendOpeningTimes = data.openingDetails.openingHours.weekends
function translateWellnessType(type: string) {
switch (type) {
case HealthFacilitiesEnum.Gym:
return intl.formatMessage({ id: "Gym" })
case HealthFacilitiesEnum.IndoorPool:
return intl.formatMessage({ id: "Indoor pool" })
case HealthFacilitiesEnum.Jacuzzi:
return intl.formatMessage({ id: "Jacuzzi" })
case HealthFacilitiesEnum.OutdoorPool:
return intl.formatMessage({ id: "Outdoor pool" })
case HealthFacilitiesEnum.Relax:
return intl.formatMessage({ id: "Relax" })
case HealthFacilitiesEnum.Sauna:
return intl.formatMessage({ id: "Sauna" })
default:
console.warn(`Unsupported group given: ${type}`)
return intl.formatMessage({ id: "Wellness" })
}
}
return (
<div className={styles.content}>
{image?.imageSizes.medium && (
@@ -27,7 +48,7 @@ export default async function Facility({ data }: FacilityProps) {
)}
<div className={styles.information}>
<Subtitle color="burgundy" asChild type="one">
<Title level="h3">{intl.formatMessage({ id: data.type })}</Title>
<Title level="h3">{translateWellnessType(data.type)}</Title>
</Subtitle>
<div>
<Subtitle type="two" color="uiTextHighContrast">

View File

@@ -7,7 +7,7 @@
"ACCE": "Tilgængelighed",
"ALLG": "Allergi",
"About accessibility": "Om tilgængelighed",
"About meetings & conferences": "About meetings & conferences",
"About meetings & conferences": "Om møder og konferencer",
"About parking": "Om parkering",
"About the hotel": "Om hotellet",
"Accept new price": "Accepter ny pris",
@@ -70,13 +70,13 @@
"Breakfast": "Morgenmad",
"Breakfast ({totalAdults, plural, one {# adult} other {# adults}}) x {totalBreakfasts}": "Morgenmad ({totalAdults, plural, one {# voksen} other {# voksne}}) x {totalBreakfasts}",
"Breakfast ({totalChildren, plural, one {# child} other {# children}}) x {totalBreakfasts}": "Morgenmad ({totalChildren, plural, one {# barn} other {# børn}}) x {totalBreakfasts}",
"Breakfast Restaurant": "Breakfast Restaurant",
"Breakfast buffet": "Morgenbuffet",
"Breakfast charge": "Morgenmadsgebyr",
"Breakfast deal can be purchased at the hotel.": "Morgenmad kan købes på hotellet.",
"Breakfast excluded": "Morgenmad ikke inkluderet",
"Breakfast included": "Morgenmad inkluderet",
"Breakfast is included.": "Morgenmad er inkluderet.",
"Breakfast restaurant": "Breakfast restaurant",
"Breakfast selection in next step.": "Valg af morgenmad i næste trin.",
"Bus terminal": "Busstation",
"Business": "Forretning",
@@ -229,8 +229,8 @@
"In extra bed": "i ekstra seng",
"In order to verify your account linking we will ask you to sign in to your SAS EuroBonus account.": "In order to verify your account linking we will ask you to sign in to your SAS EuroBonus account.",
"Included": "Inkluderet",
"IndoorPool": "Indendørs pool",
"Invalid booking code": "Ugyldig reservationskode",
"Indoor pool": "Indendørs pool",
"Is there anything else you would like us to know before your arrival?": "Er der andet, du gerne vil have os til at vide, før din ankomst?",
"It is not posible to manage your communication preferences right now, please try again later or contact support if the problem persists.": "Det er ikke muligt at administrere dine kommunikationspræferencer lige nu, prøv venligst igen senere eller kontakt support, hvis problemet fortsætter.",
"It looks like no hotels match your filters. Try adjusting your search to find the perfect stay.": "Det ser ud til, at ingen hoteller matcher dine filtre. Prøv at justere din søgning for at finde det perfekte ophold.",
@@ -342,7 +342,7 @@
"Open {amount, plural, one {gift} other {gifts}}": "Åbne {amount, plural, one {gave} other {gaver}}",
"Opening hours": "Åbningstider",
"Outdoor": "Udendørs",
"OutdoorPool": "Udendørs pool",
"Outdoor pool": "Udendørs pool",
"Overview": "Oversigt",
"PETR": "Kæledyr",
"Parking": "Parkering",
@@ -388,11 +388,11 @@
"Queen bed": "Queensize-seng",
"Rate details": "Oplysninger om værelsespris",
"Read more": "Læs mere",
"Read more & book a table": "Read more & book a table",
"Read more & book a table": "Læs mere og bestil bord",
"Read more about the hotel": "Læs mere om hotellet",
"Read more about wellness & exercise": "Read more about wellness & exercise",
"Redirecting you to SAS": "Redirecting you to SAS",
"Redirecting you to my pages.": "Redirecting you to my pages.",
"Read more about wellness & exercise": "Læs mere om wellness & motion",
"Reference #{bookingNr}": "Reference #{bookingNr}",
"Relax": "Slap af",
"Remember code": "Husk kode",

View File

@@ -7,7 +7,7 @@
"ACCE": "Zugänglichkeit",
"ALLG": "Allergie",
"About accessibility": "Über Barrierefreiheit",
"About meetings & conferences": "About meetings & conferences",
"About meetings & conferences": "Über Meetings & Konferenzen",
"About parking": "Über das Parken",
"About the hotel": "Über das Hotel",
"Accept new price": "Neuen Preis akzeptieren",
@@ -70,13 +70,13 @@
"Breakfast": "Frühstück",
"Breakfast ({totalAdults, plural, one {# adult} other {# adults}}) x {totalBreakfasts}": "Frühstück ({totalAdults, plural, one {# erwachsene} other {# erwachsene}}) x {totalBreakfasts}",
"Breakfast ({totalChildren, plural, one {# child} other {# children}}) x {totalBreakfasts}": "Frühstück ({totalChildren, plural, one {# kind} other {# kinder}}) x {totalBreakfasts}",
"Breakfast Restaurant": "Breakfast Restaurant",
"Breakfast buffet": "Frühstücksbuffet",
"Breakfast charge": "Frühstücksgebühr",
"Breakfast deal can be purchased at the hotel.": "Frühstücksangebot kann im Hotel gekauft werden.",
"Breakfast excluded": "Frühstück nicht inbegriffen",
"Breakfast included": "Frühstück inbegriffen",
"Breakfast is included.": "Frühstück ist inbegriffen.",
"Breakfast restaurant": "Breakfast restaurant",
"Breakfast selection in next step.": "Frühstücksauswahl in nächsten Schritt.",
"Business": "Geschäft",
"By accepting the <termsAndConditionsLink>Terms and Conditions for Scandic Friends</termsAndConditionsLink> I understand that my personal data will be processed in accordance with <privacyPolicy>Scandic's Privacy Policy</privacyPolicy>.": "Mit der Annahme der <termsAndConditionsLink>Allgemeinen Geschäftsbedingungen für Scandic Friends</termsAndConditionsLink> erkläre ich mich damit einverstanden, dass meine persönlichen Daten in Übereinstimmung mit der <privacyPolicy>Datenschutzrichtlinie von Scandic verarbeitet werden</privacyPolicy>.",
@@ -228,8 +228,8 @@
"In extra bed": "im zusätzlichen Bett",
"In order to verify your account linking we will ask you to sign in to your SAS EuroBonus account.": "In order to verify your account linking we will ask you to sign in to your SAS EuroBonus account.",
"Included": "Iinklusive",
"IndoorPool": "Innenpool",
"Invalid booking code": "Ungültiger Buchungscode",
"Indoor pool": "Innenpool",
"Is there anything else you would like us to know before your arrival?": "Gibt es noch etwas, das Sie uns vor Ihrer Ankunft mitteilen möchten?",
"It is not posible to manage your communication preferences right now, please try again later or contact support if the problem persists.": "Es ist derzeit nicht möglich, Ihre Kommunikationseinstellungen zu verwalten. Bitte versuchen Sie es später erneut oder wenden Sie sich an den Support, wenn das Problem weiterhin besteht.",
"It looks like no hotels match your filters. Try adjusting your search to find the perfect stay.": "Es scheint, dass keine Hotels Ihren Filtern entsprechen. Versuchen Sie, Ihre Suche anzupassen, um den perfekten Aufenthalt zu finden.",
@@ -340,7 +340,7 @@
"Open {amount, plural, one {gift} other {gifts}}": "{amount, plural, one {Geschenk} other {Geschenke}} öffnen",
"Opening hours": "Öffnungszeiten",
"Outdoor": "Im Freien",
"OutdoorPool": "Außenpool",
"Outdoor pool": "Außenpool",
"Overview": "Übersicht",
"PETR": "Haustier",
"Parking": "Parken",
@@ -386,11 +386,11 @@
"Queen bed": "Queensize-Bett",
"Rate details": "Preisdetails",
"Read more": "Mehr lesen",
"Read more & book a table": "Read more & book a table",
"Read more & book a table": "Lesen Sie mehr und reservieren Sie einen Tisch",
"Read more about the hotel": "Lesen Sie mehr über das Hotel",
"Read more about wellness & exercise": "Read more about wellness & exercise",
"Redirecting you to SAS": "Redirecting you to SAS",
"Redirecting you to my pages.": "Redirecting you to my pages.",
"Read more about wellness & exercise": "Lesen Sie mehr über Wellness & Bewegung",
"Reference #{bookingNr}": "Referenz #{bookingNr}",
"Relax": "Entspannen",
"Remember code": "Code merken",

View File

@@ -76,13 +76,13 @@
"Breakfast": "Breakfast",
"Breakfast ({totalAdults, plural, one {# adult} other {# adults}}) x {totalBreakfasts}": "Breakfast ({totalAdults, plural, one {# adult} other {# adults}}) x {totalBreakfasts}",
"Breakfast ({totalChildren, plural, one {# child} other {# children}}) x {totalBreakfasts}": "Breakfast ({totalChildren, plural, one {# child} other {# children}}) x {totalBreakfasts}",
"Breakfast Restaurant": "Breakfast Restaurant",
"Breakfast buffet": "Breakfast buffet",
"Breakfast charge": "Breakfast charge",
"Breakfast deal can be purchased at the hotel.": "Breakfast deal can be purchased at the hotel.",
"Breakfast excluded": "Breakfast excluded",
"Breakfast included": "Breakfast included",
"Breakfast is included.": "Breakfast is included.",
"Breakfast restaurant": "Breakfast restaurant",
"Breakfast selection in next step.": "Breakfast selection in next step.",
"Bus terminal": "Bus terminal",
"Business": "Business",
@@ -250,8 +250,8 @@
"In extra bed": "In extra bed",
"In order to verify your account linking we will ask you to sign in to your SAS EuroBonus account.": "In order to verify your account linking we will ask you to sign in to your SAS EuroBonus account.",
"Included": "Included",
"IndoorPool": "Indoor pool",
"Invalid booking code": "Invalid booking code",
"Indoor pool": "Indoor pool",
"Is there anything else you would like us to know before your arrival?": "Is there anything else you would like us to know before your arrival?",
"It is not posible to manage your communication preferences right now, please try again later or contact support if the problem persists.": "It is not posible to manage your communication preferences right now, please try again later or contact support if the problem persists.",
"It looks like no hotels match your filters. Try adjusting your search to find the perfect stay.": "It looks like no hotels match your filters. Try adjusting your search to find the perfect stay.",
@@ -371,7 +371,7 @@
"Open {amount, plural, one {gift} other {gifts}}": "Open {amount, plural, one {gift} other {gifts}}",
"Opening hours": "Opening hours",
"Outdoor": "Outdoor",
"OutdoorPool": "Outdoor pool",
"Outdoor pool": "Outdoor pool",
"Overview": "Overview",
"PETR": "Pet",
"Parking": "Parking",

View File

@@ -7,7 +7,7 @@
"ACCE": "Saavutettavuus",
"ALLG": "Allergia",
"About accessibility": "Tietoja saavutettavuudesta",
"About meetings & conferences": "About meetings & conferences",
"About meetings & conferences": "Tietoja kokouksista ja konferensseista",
"About parking": "Tietoja pysäköinnistä",
"About the hotel": "Tietoja hotellista",
"Accept new price": "Hyväksy uusi hinta",
@@ -70,13 +70,13 @@
"Breakfast": "Aamiainen",
"Breakfast ({totalAdults, plural, one {# adult} other {# adults}}) x {totalBreakfasts}": "Aamiainen ({totalAdults, plural, one {# aikuinen} other {# aikuiset}}) x {totalBreakfasts}",
"Breakfast ({totalChildren, plural, one {# child} other {# children}}) x {totalBreakfasts}": "Aamiainen ({totalChildren, plural, one {# lapsi} other {# lasta}}) x {totalBreakfasts}",
"Breakfast Restaurant": "Breakfast Restaurant",
"Breakfast buffet": "Aamiaisbuffet",
"Breakfast charge": "Aamiaismaksu",
"Breakfast deal can be purchased at the hotel.": "Aamiaisdeali voidaan ostaa hotellissa.",
"Breakfast excluded": "Aamiainen ei sisälly",
"Breakfast included": "Aamiainen sisältyy",
"Breakfast is included.": "Aamiainen sisältyy.",
"Breakfast restaurant": "Breakfast restaurant",
"Breakfast selection in next step.": "Aamiaisvalinta seuraavassa vaiheessa.",
"Bus terminal": "Bussiasema",
"Business": "Business",
@@ -229,8 +229,8 @@
"In extra bed": "Oma vuodepaikka",
"In order to verify your account linking we will ask you to sign in to your SAS EuroBonus account.": "In order to verify your account linking we will ask you to sign in to your SAS EuroBonus account.",
"Included": "Sisälly hintaan",
"IndoorPool": "Sisäuima-allas",
"Invalid booking code": "Virheellinen varauskoodi",
"Indoor pool": "Sisäuima-allas",
"Is there anything else you would like us to know before your arrival?": "Onko jotain muuta, mitä haluaisit meidän tietävän ennen saapumistasi?",
"It is not posible to manage your communication preferences right now, please try again later or contact support if the problem persists.": "Viestintäasetuksiasi ei voi hallita juuri nyt. Yritä myöhemmin uudelleen tai ota yhteyttä tukeen, jos ongelma jatkuu.",
"It looks like no hotels match your filters. Try adjusting your search to find the perfect stay.": "Näyttää siltä, että mikään hotelli ei vastaa suodattimiasi. Yritä muokata hakuasi löytääksesi täydellisen oleskelun.",
@@ -342,7 +342,7 @@
"Open {amount, plural, one {gift} other {gifts}}": "{amount, plural, one {Avoin lahja} other {Avoimet lahjat}}",
"Opening hours": "Aukioloajat",
"Outdoor": "Ulkona",
"OutdoorPool": "Ulkouima-allas",
"Outdoor pool": "Ulkouima-allas",
"Overview": "Yleiskatsaus",
"PETR": "Lemmikki",
"Parking": "Pysäköinti",
@@ -388,11 +388,11 @@
"Queen bed": "Queen-vuode",
"Rate details": "Hintatiedot",
"Read more": "Lue lisää",
"Read more & book a table": "Read more & book a table",
"Read more & book a table": "Lue lisää ja varaa pöytä",
"Read more about the hotel": "Lue lisää hotellista",
"Read more about wellness & exercise": "Read more about wellness & exercise",
"Redirecting you to SAS": "Redirecting you to SAS",
"Redirecting you to my pages.": "Redirecting you to my pages.",
"Read more about wellness & exercise": "Lue lisää hyvinvoinnista ja liikunnasta",
"Reference #{bookingNr}": "Referenssi #{bookingNr}",
"Relax": "Rentoutua",
"Remember code": "Muista koodi",

View File

@@ -7,7 +7,7 @@
"ACCE": "Tilgjengelighet",
"ALLG": "Allergi",
"About accessibility": "Om tilgjengelighet",
"About meetings & conferences": "About meetings & conferences",
"About meetings & conferences": "Om møter og konferanser",
"About parking": "Om parkering",
"About the hotel": "Om hotellet",
"Accept new price": "Aksepterer ny pris",
@@ -70,13 +70,13 @@
"Breakfast": "Frokost",
"Breakfast ({totalAdults, plural, one {# adult} other {# adults}}) x {totalBreakfasts}": "Frokost ({totalAdults, plural, one {# voksen} other {# voksne}}) x {totalBreakfasts}",
"Breakfast ({totalChildren, plural, one {# child} other {# children}}) x {totalBreakfasts}": "Frokost ({totalChildren, plural, one {# barn} other {# barn}}) x {totalBreakfasts}",
"Breakfast Restaurant": "Breakfast Restaurant",
"Breakfast buffet": "Breakfast buffet",
"Breakfast charge": "Pris for frokost",
"Breakfast deal can be purchased at the hotel.": "Frokostdeal kan kjøpes på hotellet.",
"Breakfast excluded": "Frokost ekskludert",
"Breakfast included": "Frokost inkludert",
"Breakfast is included.": "Frokost er inkludert.",
"Breakfast restaurant": "Breakfast restaurant",
"Breakfast selection in next step.": "Frokostvalg i neste steg.",
"Bus terminal": "Bussterminal",
"Business": "Forretnings",
@@ -228,8 +228,8 @@
"In extra bed": "i ekstraseng",
"In order to verify your account linking we will ask you to sign in to your SAS EuroBonus account.": "In order to verify your account linking we will ask you to sign in to your SAS EuroBonus account.",
"Included": "Inkludert",
"IndoorPool": "Innendørs basseng",
"Invalid booking code": "Ugyldig bookingkode",
"Indoor pool": "Innendørs basseng",
"Is there anything else you would like us to know before your arrival?": "Er det noe annet du vil at vi skal vite før ankomsten din?",
"It is not posible to manage your communication preferences right now, please try again later or contact support if the problem persists.": "Det er ikke mulig å administrere kommunikasjonspreferansene dine akkurat nå, prøv igjen senere eller kontakt support hvis problemet vedvarer.",
"It looks like no hotels match your filters. Try adjusting your search to find the perfect stay.": "Det ser ut til at ingen hoteller samsvarer med filtrene dine. Prøv å justere søket for å finne det perfekte oppholdet.",
@@ -341,7 +341,7 @@
"Open {amount, plural, one {gift} other {gifts}}": "{amount, plural, one {Åpen gave} other {Åpnen gaver}}",
"Opening hours": "Åpningstider",
"Outdoor": "Utendørs",
"OutdoorPool": "Utendørs basseng",
"Outdoor pool": "Utendørs basseng",
"Overview": "Oversikt",
"PETR": "Kjæledyr",
"Parking": "Parkering",
@@ -387,11 +387,11 @@
"Queen bed": "Queen-size-seng",
"Rate details": "Prisdetaljer",
"Read more": "Les mer",
"Read more & book a table": "Read more & book a table",
"Read more & book a table": "Les mer og bestill bord",
"Read more about the hotel": "Les mer om hotellet",
"Read more about wellness & exercise": "Read more about wellness & exercise",
"Redirecting you to SAS": "Redirecting you to SAS",
"Redirecting you to my pages.": "Redirecting you to my pages.",
"Read more about wellness & exercise": "Les mer om velvære og trening",
"Reference #{bookingNr}": "Referanse #{bookingNr}",
"Relax": "Slappe av",
"Remember code": "Husk kode",

View File

@@ -7,7 +7,7 @@
"ACCE": "Tillgänglighet",
"ALLG": "Allergi",
"About accessibility": "Om tillgänglighet",
"About meetings & conferences": "About meetings & conferences",
"About meetings & conferences": "Om möten & konferenser",
"About parking": "Om parkering",
"About the hotel": "Om hotellet",
"Accept new price": "Accepter ny pris",
@@ -70,13 +70,13 @@
"Breakfast": "Frukost",
"Breakfast ({totalAdults, plural, one {# adult} other {# adults}}) x {totalBreakfasts}": "Frukost ({totalAdults, plural, one {# vuxen} other {# vuxna}}) x {totalBreakfasts}",
"Breakfast ({totalChildren, plural, one {# child} other {# children}}) x {totalBreakfasts}": "Frukost ({totalChildren, plural, one {# barn} other {# barn}}) x {totalBreakfasts}",
"Breakfast Restaurant": "Breakfast Restaurant",
"Breakfast buffet": "Frukostbuffé",
"Breakfast charge": "Frukostpris",
"Breakfast deal can be purchased at the hotel.": "Frukostdeal kan köpas på hotellet.",
"Breakfast excluded": "Frukost ingår ej",
"Breakfast included": "Frukost ingår",
"Breakfast is included.": "Frukost ingår.",
"Breakfast restaurant": "Breakfast restaurant",
"Breakfast selection in next step.": "Frukostval i nästa steg.",
"Bus terminal": "Bussterminal",
"Business": "Business",
@@ -228,8 +228,8 @@
"In extra bed": "Egen sängplats",
"In order to verify your account linking we will ask you to sign in to your SAS EuroBonus account.": "In order to verify your account linking we will ask you to sign in to your SAS EuroBonus account.",
"Included": "Inkluderad",
"IndoorPool": "Inomhuspool",
"Invalid booking code": "Ogiltig bokningskod",
"Indoor pool": "Inomhuspool",
"Is there anything else you would like us to know before your arrival?": "Är det något mer du vill att vi ska veta innan din ankomst?",
"It is not posible to manage your communication preferences right now, please try again later or contact support if the problem persists.": "Det gick inte att hantera dina kommunikationsinställningar just nu, försök igen senare eller kontakta supporten om problemet kvarstår.",
"It looks like no hotels match your filters. Try adjusting your search to find the perfect stay.": "Det verkar som att inga hotell matchar dina filter. Prova att justera din sökning för att hitta den perfekta vistelsen.",
@@ -341,7 +341,7 @@
"Open {amount, plural, one {gift} other {gifts}}": "Öppna {amount, plural, one {gåva} other {gåvor}}",
"Opening hours": "Öppettider",
"Outdoor": "Utomhus",
"OutdoorPool": "Utomhuspool",
"Outdoor pool": "Utomhuspool",
"Overview": "Översikt",
"PETR": "Husdjur",
"Parking": "Parkering",
@@ -387,11 +387,11 @@
"Queen bed": "Queen size-säng",
"Rate details": "Detaljer om rumspriset",
"Read more": "Läs mer",
"Read more & book a table": "Read more & book a table",
"Read more & book a table": "Läs mer och boka bord",
"Read more about the hotel": "Läs mer om hotellet",
"Read more about wellness & exercise": "Read more about wellness & exercise",
"Redirecting you to SAS": "Redirecting you to SAS",
"Redirecting you to my pages.": "Redirecting you to my pages.",
"Read more about wellness & exercise": "Läs mer om friskvård & träning",
"Reference #{bookingNr}": "Referens #{bookingNr}",
"Relax": "Koppla av",
"Remember code": "Kom ihåg kod",

View File

@@ -47,7 +47,7 @@ export enum RestaurantHeadings {
restaurantAndBar = "Restaurant & Bar",
bar = "Bar",
restaurant = "Restaurant",
breakfastRestaurant = "Breakfast restaurant",
breakfastRestaurant = "Breakfast Restaurant",
}
export enum WellnessHeadings {
@@ -57,11 +57,26 @@ export enum WellnessHeadings {
GymJacuzziSaunaRelax = "Gym, Jacuzzi, Sauna & Relax",
}
export enum MeetingsHeading {
Default = "Events that make an impression",
}
export type HeadingEnum =
| RestaurantHeadings
| WellnessHeadings
| MeetingsHeading
export enum HealthFacilitiesEnum {
Jacuzzi = "Jacuzzi",
Gym = "Gym",
Sauna = "Sauna",
Relax = "Relax",
IndoorPool = "IndoorPool",
OutdoorPool = "OutdoorPool",
IndoorPool = "Indoor pool",
OutdoorPool = "Outdoor pool",
}
export const FacilityCardButtonText = {
RESTAURANT: "Read more & book a table",
MEETINGS: "About meetings & conferences",
WELLNESS: "Read more about wellness & exercise",
} as const

View File

@@ -9,6 +9,7 @@ import { getLang } from "@/i18n/serverContext"
import {
type Facilities,
type FacilityCard,
FacilityCardButtonText,
type FacilityCardType,
FacilityCardTypeEnum,
type FacilityGrid,
@@ -31,7 +32,7 @@ export function isFacilityImage(card: FacilityCardType): card is FacilityImage {
function setCardProps(
theme: CardProps["theme"],
buttonText: string,
buttonText: (typeof FacilityCardButtonText)[keyof typeof FacilityCardButtonText],
href: string,
heading: string,
scriptedTopTitle?: string
@@ -87,7 +88,7 @@ export function setFacilityCardGrids(
const wellnessTitle = getWellnessHeading(healthFacilities)
card = setCardProps(
"one",
"Read more about wellness & exercise",
FacilityCardButtonText.WELLNESS,
wellnessAndExercise[lang],
facility.headingText,
wellnessTitle
@@ -98,7 +99,7 @@ export function setFacilityCardGrids(
case FacilityCardTypeEnum.conference:
card = setCardProps(
"primaryDim",
"About meetings & conferences",
FacilityCardButtonText.MEETINGS,
meetingsAndConferences[lang],
facility.headingText,
"Events that make an impression"
@@ -110,7 +111,7 @@ export function setFacilityCardGrids(
const restaurantTitle = getRestaurantHeading(amenities)
card = setCardProps(
"primaryDark",
"Read more & book a table",
FacilityCardButtonText.RESTAURANT,
restaurantAndBar[lang],
facility.headingText,
restaurantTitle