From af182b49d8f6721430d231848b3ab73badcab083 Mon Sep 17 00:00:00 2001 From: Erik Tiekstra Date: Wed, 16 Apr 2025 07:07:49 +0000 Subject: [PATCH] feat(SW-2227): Implemented new design for room package filters Approved-by: Arvid Norlin --- .../Details/SpecialRequests/index.tsx | 12 +- .../Form/Checkboxes/checkbox.module.css | 66 +- .../Form/Checkboxes/index.tsx | 73 +- .../RoomPackageFilter/Form/form.module.css | 27 +- .../RoomPackageFilter/Form/index.tsx | 14 +- .../RoomsHeader/RoomPackageFilter/Modal.tsx | 52 + .../RoomsHeader/RoomPackageFilter/Popover.tsx | 33 + .../RoomsHeader/RoomPackageFilter/index.tsx | 83 +- .../roomPackageFilter.module.css | 145 +- apps/scandic-web/i18n/dictionaries/en.json | 1455 ++++++++++++++++- 10 files changed, 1811 insertions(+), 149 deletions(-) create mode 100644 apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/Modal.tsx create mode 100644 apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/Popover.tsx diff --git a/apps/scandic-web/components/HotelReservation/EnterDetails/Details/SpecialRequests/index.tsx b/apps/scandic-web/components/HotelReservation/EnterDetails/Details/SpecialRequests/index.tsx index 75366c46c..d25367fea 100644 --- a/apps/scandic-web/components/HotelReservation/EnterDetails/Details/SpecialRequests/index.tsx +++ b/apps/scandic-web/components/HotelReservation/EnterDetails/Details/SpecialRequests/index.tsx @@ -41,35 +41,35 @@ export default function SpecialRequests() { TODO: Hiding because API is not ready for this yet (https://scandichotels.atlassian.net/browse/SW-1497). Add back in when API is ready. -
- {packageOptions.map((option) => { - const isAllergyRoom = checkIsAllergyRoom(option.code) - const isPetRoom = checkIsPetRoom(option.code) - const isDisabled = - (isPetRoom && allergyRoomSelected) || - (isAllergyRoom && petRoomSelected) + + {packageOptions.map((option) => { + const isAllergyRoom = checkIsAllergyRoom(option.code) + const isPetRoom = checkIsPetRoom(option.code) + const isDisabled = + (isPetRoom && allergyRoomSelected) || + (isAllergyRoom && petRoomSelected) - const isSelected = field.value.includes(option.code) - const iconName = getIconNameByPackageCode(option.code) + const isSelected = field.value.includes(option.code) + const iconName = getIconNameByPackageCode(option.code) - return ( - - - - {isSelected ? ( - - ) : null} - - - {option.description} - - {iconName ? ( - + return ( +
+ + + {isSelected ? ( + ) : null} - - {isPetRoom ? : null} - - ) - })} -
+ + + {option.description} + + {iconName ? ( + + ) : null} +
+ {isPetRoom ? : null} +
+ ) + })} ) }} diff --git a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/Form/form.module.css b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/Form/form.module.css index b3d7a69ae..65cb9a4ca 100644 --- a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/Form/form.module.css +++ b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/Form/form.module.css @@ -1,11 +1,30 @@ .footer { - display: grid; - gap: var(--Space-x1); padding: 0 var(--Space-x15); } .buttonContainer { - align-items: center; display: flex; - justify-content: space-between; + flex-direction: column; + gap: var(--Space-x1); +} + +.divider { + margin: var(--Space-x15) 0; +} + +@media screen and (max-width: 767px) { + .divider { + display: none; + } + .footer { + margin-top: var(--Space-x5); + } +} + +@media screen and (min-width: 768px) { + .buttonContainer { + flex-direction: row-reverse; + justify-content: space-between; + align-items: center; + } } diff --git a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/Form/index.tsx b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/Form/index.tsx index 179003ab4..654306d7c 100644 --- a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/Form/index.tsx +++ b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/Form/index.tsx @@ -74,8 +74,13 @@ export default function Form({ close }: { close: VoidFunction }) {
- +
+ + + -
diff --git a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/Modal.tsx b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/Modal.tsx new file mode 100644 index 000000000..f848154ea --- /dev/null +++ b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/Modal.tsx @@ -0,0 +1,52 @@ +import { useState } from "react" +import { + Dialog, + DialogTrigger, + Modal, + ModalOverlay, +} from "react-aria-components" +import { useIntl } from "react-intl" + +import { Button } from "@scandic-hotels/design-system/Button" +import { ChipButton } from "@scandic-hotels/design-system/ChipButton" +import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon" +import { Typography } from "@scandic-hotels/design-system/Typography" + +import Form from "./Form" + +import styles from "./roomPackageFilter.module.css" + +export default function RoomPackageFilterModal() { + const intl = useIntl() + const [isOpen, setIsOpen] = useState(false) + return ( + + + {intl.formatMessage({ defaultMessage: "Room preferences" })} + + + + + + +
+ +

+ {intl.formatMessage({ defaultMessage: "Room preferences" })} +

+
+ +
+
setIsOpen(false)} /> +
+
+
+
+ ) +} diff --git a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/Popover.tsx b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/Popover.tsx new file mode 100644 index 000000000..10e776935 --- /dev/null +++ b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/Popover.tsx @@ -0,0 +1,33 @@ +import { useState } from "react" +import { Dialog, DialogTrigger, Popover } from "react-aria-components" +import { useIntl } from "react-intl" + +import { ChipButton } from "@scandic-hotels/design-system/ChipButton" +import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon" + +import Form from "./Form" + +import styles from "./roomPackageFilter.module.css" + +export default function RoomPackageFilterPopover() { + const intl = useIntl() + const [isOpen, setIsOpen] = useState(false) + return ( + + + {intl.formatMessage({ defaultMessage: "Room preferences" })} + + + + + + setIsOpen(false)} /> + + + + ) +} diff --git a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/index.tsx b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/index.tsx index 721c804a7..d16c67147 100644 --- a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/index.tsx +++ b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/index.tsx @@ -1,15 +1,9 @@ "use client" -import { useState } from "react" -import { - Button as AriaButton, - Dialog, - DialogTrigger, - Popover, -} from "react-aria-components" -import { useIntl } from "react-intl" +import { Button as AriaButton } from "react-aria-components" +import { useMediaQuery } from "usehooks-ts" -import { ChipButton } from "@scandic-hotels/design-system/ChipButton" import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon" +import { Typography } from "@scandic-hotels/design-system/Typography" import { trpc } from "@/lib/trpc/client" import { useRatesStore } from "@/stores/select-rate" @@ -17,7 +11,8 @@ import { useRatesStore } from "@/stores/select-rate" import { useRoomContext } from "@/contexts/SelectRate/Room" import useLang from "@/hooks/useLang" -import Form from "./Form" +import RoomPackageFilterModal from "./Modal" +import RoomPackageFilterPopover from "./Popover" import { getIconNameByPackageCode } from "./utils" import styles from "./roomPackageFilter.module.css" @@ -25,11 +20,9 @@ import styles from "./roomPackageFilter.module.css" import type { PackageEnum } from "@/types/requests/packages" export default function RoomPackageFilter() { - const intl = useIntl() const lang = useLang() const utils = trpc.useUtils() - - const [isOpen, setIsOpen] = useState(false) + const displayAsPopover = useMediaQuery("(min-width: 768px)") const { actions: { removeSelectedPackage, updateRooms }, @@ -63,41 +56,35 @@ export default function RoomPackageFilter() { return (
- {selectedPackages.map((pkg) => ( - deleteSelectedPackage(pkg.code)} - > - - - - ))} - - - {intl.formatMessage({ - defaultMessage: "Room preferences", - })} - - - - - setIsOpen(false)} /> - - - +
+ {selectedPackages.map((pkg) => ( + + + + {pkg.description} + deleteSelectedPackage(pkg.code)} + className={styles.removeButton} + > + + + + + ))} +
+ +
) } diff --git a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/roomPackageFilter.module.css b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/roomPackageFilter.module.css index d696e113d..de50ceed3 100644 --- a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/roomPackageFilter.module.css +++ b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RoomPackageFilter/roomPackageFilter.module.css @@ -1,28 +1,141 @@ .roomPackageFilter { display: flex; gap: var(--Space-x1); + flex-direction: column-reverse; + align-items: start; } -.activeFilterButton { +.selectedPackages { display: flex; - justify-content: center; - align-items: center; - padding: 0 var(--Space-x1); - gap: var(--Space-x05); - border-radius: var(--Corner-radius-Small); - background-color: var(--Surface-Secondary-Default-dark); - border-width: 0; - cursor: pointer; + gap: var(--Space-x1); + flex-wrap: wrap; +} + +.modalOverlay { + position: fixed; + inset: 0; + background-color: var(--Overlay-40); + + &[data-entering] { + animation: overlay-fade 200ms; + } + + &[data-exiting] { + animation: overlay-fade 150ms reverse ease-in; + } +} + +.modal { + position: fixed; + bottom: 0; + left: 0; + right: 0; + padding: var(--Space-x2) var(--Space-x05); + border-radius: var(--Corner-radius-md) var(--Corner-radius-md) 0 0; + background-color: var(--Surface-Primary-Default); + box-shadow: 0px 0px 14px 6px rgba(0, 0, 0, 0.1); + + &[data-entering] { + animation: modal-anim 200ms; + } + + &[data-exiting] { + animation: modal-anim 150ms reverse ease-in; + } +} + +.modalDialog { + display: grid; + gap: var(--Space-x2); } .dialog { display: grid; - gap: var(--Space-x1); - padding: var(--Space-x2); - flex-direction: column; - align-items: flex-end; - border-radius: var(--Corner-radius-md); - background-color: var(--Surface-Primary-Default); - box-shadow: 0px 0px 14px 6px rgba(0, 0, 0, 0.1); + gap: var(--Space-x2); max-width: 340px; } + +.header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 var(--Space-x15); +} + +.footer { + display: grid; + gap: var(--Space-x1); + padding: 0 var(--Space-x15); +} + +.selectedPackage { + display: flex; + justify-content: center; + align-items: center; + padding: var(--Space-x1); + gap: var(--Space-x05); + border-radius: var(--Corner-radius-Small); + background-color: var(--Surface-Secondary-Default-dark); + color: var(--Text-Interactive-Default); +} + +.removeButton { + background-color: transparent; + border-width: 0; + cursor: pointer; + padding: var(--Space-x05); + margin: calc(-1 * var(--Space-x05)); +} + +@media screen and (max-width: 767px) { + .popover { + display: none; + } +} + +@media screen and (min-width: 768px) { + .roomPackageFilter { + flex-direction: row; + align-items: stretch; + } + + .modalOverlay { + display: none; + } + + .popover { + padding: var(--Space-x2); + border-radius: var(--Corner-radius-md); + background-color: var(--Surface-Primary-Default); + box-shadow: 0px 0px 14px 6px rgba(0, 0, 0, 0.1); + max-width: 340px; + } + + .checkboxContainer { + padding: 0 var(--Space-x1); + } + + .header { + display: none; + } +} + +@keyframes overlay-fade { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +@keyframes modal-anim { + from { + transform: translateY(100%); + } + + to { + transform: translateY(0); + } +} diff --git a/apps/scandic-web/i18n/dictionaries/en.json b/apps/scandic-web/i18n/dictionaries/en.json index f3ae91cac..62c94b7f3 100644 --- a/apps/scandic-web/i18n/dictionaries/en.json +++ b/apps/scandic-web/i18n/dictionaries/en.json @@ -13,6 +13,18 @@ "value": ". Payment will be made on check-in." } ], + "+IN57w": [ + { + "type": 0, + "value": "Old dates" + } + ], + "+KnTXw": [ + { + "type": 0, + "value": "Breakfast can be added after booking for an extra cost for adults and kids ages 4 and up." + } + ], "+N13gc": [ { "type": 0, @@ -55,6 +67,12 @@ "value": "Room type" } ], + "+lG8sR": [ + { + "type": 0, + "value": "Transfer points" + } + ], "+nKdWV": [ { "type": 0, @@ -73,6 +91,12 @@ "value": "TripAdvisor rating" } ], + "/27R3x": [ + { + "type": 0, + "value": "Membership number" + } + ], "/54p7R": [ { "type": 0, @@ -91,6 +115,12 @@ "value": "Verification code" } ], + "/GCoTA": [ + { + "type": 0, + "value": "Clear" + } + ], "/J2mVO": [ { "type": 0, @@ -115,6 +145,24 @@ "value": "Jacuzzi" } ], + "/MHIq6": [ + { + "type": 0, + "value": "Monday–Friday: " + }, + { + "type": 1, + "value": "openingTime" + }, + { + "type": 0, + "value": "–" + }, + { + "type": 1, + "value": "closingTime" + } + ], "/QXeK7": [ { "type": 0, @@ -127,12 +175,44 @@ "value": "Zoom out" } ], + "/VnDMl": [ + { + "type": 0, + "value": "Other" + } + ], "/WMCDd": [ { "type": 0, "value": "Something went wrong!" } ], + "/Wr1mA": [ + { + "type": 0, + "value": "View your linked accounts" + } + ], + "/YSwoH": [ + { + "type": 0, + "value": "Pet-friendly rooms include a charge of approx. " + }, + { + "children": [ + { + "type": 1, + "value": "price" + }, + { + "type": 0, + "value": "/stay" + } + ], + "type": 8, + "value": "b" + } + ], "/oMNOi": [ { "type": 0, @@ -145,6 +225,18 @@ "value": "In extra bed" } ], + "/scXB/": [ + { + "type": 0, + "value": "Accommodation" + } + ], + "/xvo1u": [ + { + "type": 0, + "value": "We had an issue guaranteeing your booking. Please try again." + } + ], "078WAr": [ { "type": 0, @@ -157,6 +249,12 @@ "value": "Map of the city" } ], + "08mfGS": [ + { + "type": 0, + "value": "Modify By" + } + ], "0AL7Zz": [ { "type": 0, @@ -207,6 +305,18 @@ "value": " lowercase letter" } ], + "0SfRDS": [ + { + "type": 0, + "value": "As a Scandic Friends member you need to be logged in to book a reward night (membership number and password). The points can be used to book reward nights at all Scandic hotels." + } + ], + "0gHtgg": [ + { + "type": 0, + "value": "Failed to update your stay. Please try again later." + } + ], "0maga3": [ { "type": 0, @@ -321,6 +431,30 @@ "value": " km" } ], + "1kbg+Q": [ + { + "type": 0, + "value": "OTHER" + } + ], + "1mLe+3": [ + { + "type": 0, + "value": "Book now" + } + ], + "1mf2JY": [ + { + "type": 0, + "value": "Guarantee room for late arrival" + } + ], + "1oMos4": [ + { + "type": 0, + "value": "New total" + } + ], "1pAv2u": [ { "type": 0, @@ -347,12 +481,30 @@ "value": "You'll find all your gifts in 'My benefits'" } ], + "1zAzht": [ + { + "type": 0, + "value": "Includes vegan, gluten-free, and other allergy-friendly options." + } + ], "1zvZ9Q": [ { "type": 0, "value": "Hotel or office" } ], + "2DnGHJ": [ + { + "type": 0, + "value": "Incl. VAT" + } + ], + "2E8h9X": [ + { + "type": 0, + "value": "Room preferences" + } + ], "2I23F2": [ { "type": 0, @@ -365,6 +517,12 @@ "value": "Highest level" } ], + "2Ml/7i": [ + { + "type": 0, + "value": "Room" + } + ], "2PdtGF": [ { "type": 0, @@ -380,7 +538,22 @@ "2U07aT": [ { "type": 0, - "value": "An error occurred while requesting a new One-time password" + "value": "An error occurred while requesting a new OTP" + } + ], + "2V8g1U": [ + { + "type": 0, + "value": "Please enter the code sent to " + }, + { + "children": [], + "type": 8, + "value": "maskedContactInfo" + }, + { + "type": 0, + "value": " in order to transfer your points." } ], "2ZmUBe": [ @@ -429,6 +602,12 @@ "value": "Remember code" } ], + "2nWM4j": [ + { + "type": 0, + "value": "Bed type" + } + ], "2p2vRS": [ { "type": 0, @@ -451,12 +630,24 @@ "value": "Skip to main content" } ], + "2u4B/g": [ + { + "type": 0, + "value": "Preliminary receipt" + } + ], "2ugxgc": [ { "type": 0, "value": "Unknown error occurred loading user" } ], + "2wmdDD": [ + { + "type": 0, + "value": "Your new total" + } + ], "2xkMx8": [ { "type": 0, @@ -477,18 +668,50 @@ "value": "Birth date" } ], + "30ZROi": [ + { + "type": 0, + "value": "Unknown item" + } + ], "30oh1M": [ { "type": 0, "value": "Surprise!" } ], + "35Y+rG": [ + { + "children": [ + { + "type": 0, + "value": "Booking code" + } + ], + "type": 8, + "value": "strong" + }, + { + "type": 0, + "value": ": " + }, + { + "type": 1, + "value": "value" + } + ], "3Drn4K": [ { "type": 0, "value": "Booking code" } ], + "3E5E7W": [ + { + "type": 0, + "value": "In case of no-show you will be charged for the first night." + } + ], "3J72OI": [ { "type": 0, @@ -501,6 +724,12 @@ "value": "Multi-room booking is not available with this booking code." } ], + "3ZC0eT": [ + { + "type": 0, + "value": "All rooms" + } + ], "3a5wL8": [ { "type": 0, @@ -607,6 +836,12 @@ "value": "currency" } ], + "4jttkK": [ + { + "type": 0, + "value": "Guarantee for late arrival" + } + ], "4qsoDo": [ { "type": 0, @@ -619,6 +854,12 @@ "value": "Codes, cheques and reward nights aren't available on the new website yet." } ], + "5PQz32": [ + { + "type": 0, + "value": "Cancellation no" + } + ], "5WpZVI": [ { "type": 0, @@ -659,12 +900,24 @@ "value": "Log in/Join" } ], + "5kfntb": [ + { + "type": 0, + "value": "Cancellation" + } + ], "5sJF5f": [ { "type": 0, "value": "My pages" } ], + "5sNu1v": [ + { + "type": 0, + "value": "Not enough points" + } + ], "5sg7KC": [ { "type": 0, @@ -725,6 +978,12 @@ "value": "amount" } ], + "651gjY": [ + { + "type": 0, + "value": "Price change" + } + ], "6NDqo3": [ { "type": 0, @@ -737,18 +996,68 @@ "value": "Non-refundable" } ], + "6P6rLB": [ + { + "type": 0, + "value": "Final VAT breakdown will be provided at check-out." + } + ], + "6PjBc0": [ + { + "type": 0, + "value": "Continue with new price" + } + ], "6U6gjS": [ { "type": 0, "value": "Booking number is required" } ], + "6Z2JbZ": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "room" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "rooms" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "totalRooms" + } + ], + "6cPSs3": [ + { + "type": 0, + "value": "Monday–Friday: Always open" + } + ], "6fzv5c": [ { "type": 0, "value": "Attractions" } ], + "6h+4pN": [ + { + "type": 0, + "value": "Check availability" + } + ], "6iEKT/": [ { "type": 0, @@ -821,6 +1130,12 @@ "value": "Are you sure you want to unlink your account?" } ], + "7L86Z5": [ + { + "type": 0, + "value": "Member" + } + ], "7Lb9Bf": [ { "type": 0, @@ -941,12 +1256,48 @@ "value": "Indoor pool" } ], + "8GUGZj": [ + { + "type": 0, + "value": "until" + } + ], "8Iv00Q": [ { "type": 0, "value": "Failed to copy" } ], + "8Pd6ed": [ + { + "type": 0, + "value": "Breakfast (" + }, + { + "type": 1, + "value": "guestsCount" + }, + { + "type": 0, + "value": ") x " + }, + { + "type": 1, + "value": "totalBreakfasts" + } + ], + "8TLWE/": [ + { + "type": 0, + "value": "We couldn’t connect your accounts. Please contact us and we’ll help you resolve this." + } + ], + "8XMLza": [ + { + "type": 0, + "value": "cancelled" + } + ], "8bo8AW": [ { "type": 0, @@ -977,6 +1328,12 @@ "value": "You have no previous stays." } ], + "92ZaKG": [ + { + "type": 0, + "value": "You have no points to transfer." + } + ], "93oVTh": [ { "type": 0, @@ -1001,6 +1358,12 @@ "value": "Voucher" } ], + "9Cm82i": [ + { + "type": 0, + "value": "Points added" + } + ], "9FD+ZX": [ { "type": 0, @@ -1031,6 +1394,12 @@ "value": "Sauna" } ], + "9diNSB": [ + { + "type": 0, + "value": "Guarantee cost" + } + ], "9g2jKz": [ { "type": 0, @@ -1043,12 +1412,30 @@ "value": "Rate details" } ], + "9kztkJ": [ + { + "type": 0, + "value": "Room is prepaid" + } + ], + "9mdZiM": [ + { + "type": 0, + "value": "Special requests (optional)" + } + ], "9oNQSC": [ { "type": 0, "value": "Age" } ], + "9qmnCi": [ + { + "type": 0, + "value": "New dates" + } + ], "9uOFF3": [ { "type": 0, @@ -1093,6 +1480,12 @@ "value": " km to city center" } ], + "A/KWYT": [ + { + "type": 0, + "value": "Saturday–Sunday: Always open" + } + ], "A0w7d1": [ { "offset": 0, @@ -1125,6 +1518,12 @@ "value": "count" } ], + "A9Jf2P": [ + { + "type": 0, + "value": "Explore Scandic hotels" + } + ], "A9KYOd": [ { "type": 0, @@ -1139,7 +1538,7 @@ "value": [ { "type": 0, - "value": "gift" + "value": "Gift" } ] }, @@ -1147,7 +1546,7 @@ "value": [ { "type": 0, - "value": "gifts" + "value": "Gifts" } ] } @@ -1185,6 +1584,12 @@ "value": "location" } ], + "AV3Ftk": [ + { + "type": 0, + "value": "See price details" + } + ], "AWt+cC": [ { "type": 0, @@ -1223,10 +1628,46 @@ "value": ", log in or join when completing the booking." } ], + "ApsDfs": [ + { + "type": 0, + "value": "Subject to availability" + } + ], + "AsYcz3": [ + { + "type": 0, + "value": "Your stay remains available for check-in after 18:00." + } + ], "AvYZn0": [ { "type": 0, - "value": "Error requesting One-time password" + "value": "Error requesting OTP" + } + ], + "AwWYn/": [ + { + "type": 0, + "value": "Saturday–Sunday: " + }, + { + "type": 1, + "value": "openingTime" + }, + { + "type": 0, + "value": "–" + }, + { + "type": 1, + "value": "closingTime" + } + ], + "B0YuKm": [ + { + "type": 0, + "value": "Please contact customer service to update the dates." } ], "BEX6A7": [ @@ -1247,6 +1688,18 @@ "value": "Map of the country" } ], + "BXks2n": [ + { + "type": 0, + "value": "You have enough points for a bonus night!" + } + ], + "Bhd3E+": [ + { + "type": 0, + "value": "Taking longer than usual" + } + ], "BiGp54": [ { "type": 0, @@ -1265,12 +1718,30 @@ "value": "Bed options" } ], + "Bxj/bw": [ + { + "type": 0, + "value": "Your accounts are linked" + } + ], + "ByoZDD": [ + { + "type": 0, + "value": "Breadcrumbs" + } + ], "BzQPM+": [ { "type": 0, "value": "Destination" } ], + "C6jWpL": [ + { + "type": 0, + "value": "Proceed with point transfer?" + } + ], "CAV0oK": [ { "type": 0, @@ -1342,6 +1813,17 @@ "value": "Approx." } ], + "D+5HxX": [ + { + "style": null, + "type": 2, + "value": "points" + }, + { + "type": 0, + "value": " points" + } + ], "D+IubK": [ { "type": 0, @@ -1364,6 +1846,18 @@ "value": "Request bedtype" } ], + "D6NE7w": [ + { + "type": 0, + "value": "Multi-room stay" + } + ], + "DANPUx": [ + { + "type": 0, + "value": "New dates for the stay" + } + ], "DGq+g+": [ { "type": 0, @@ -1410,6 +1904,16 @@ "value": "Get inspired and start dreaming beyond your next trip. Explore more Scandic destinations." } ], + "DPsrer": [ + { + "type": 1, + "value": "amount" + }, + { + "type": 0, + "value": " points" + } + ], "DQ1vn2": [ { "type": 0, @@ -1452,6 +1956,12 @@ "value": "Your accounts are connected" } ], + "DszS84": [ + { + "type": 0, + "value": "In case of a no-show, your credit card will be charged for the first night." + } + ], "E/jGKn": [ { "type": 0, @@ -1646,6 +2156,12 @@ "value": "Get directions" } ], + "FEQ7xp": [ + { + "type": 0, + "value": "Breakfast can only be added for the entire duration of the stay and for all guests." + } + ], "FMS4p1": [ { "type": 0, @@ -1718,6 +2234,12 @@ "value": "Half circle" } ], + "FutWbE": [ + { + "type": 0, + "value": "As this is a multiroom stay, any dates changes are applicable to all rooms. Please ask the person who booked the stay to contact customer service." + } + ], "Fv1ZSz": [ { "type": 0, @@ -1760,6 +2282,12 @@ "value": "Discover the little extra touches to make your upcoming stay even more unforgettable." } ], + "GMOdLb": [ + { + "type": 0, + "value": "Guarantee" + } + ], "GTcq+P": [ { "type": 0, @@ -1772,6 +2300,12 @@ "value": "Code / Voucher" } ], + "GWrUqY": [ + { + "type": 0, + "value": "The product could not be added. Your booking is guaranteed. Please try again." + } + ], "Gn0PJx": [ { "type": 1, @@ -1782,6 +2316,32 @@ "value": " - Image gallery" } ], + "GqTJm/": [ + { + "type": 0, + "value": "Explore " + }, + { + "type": 1, + "value": "restaurantName" + }, + { + "type": 0, + "value": " at " + }, + { + "type": 1, + "value": "hotelName" + }, + { + "type": 0, + "value": " in " + }, + { + "type": 1, + "value": "destination" + } + ], "Gs9Kfp": [ { "type": 0, @@ -1806,6 +2366,12 @@ "value": "closingTime" } ], + "H091a8": [ + { + "type": 0, + "value": "Total including VAT" + } + ], "H1u9N/": [ { "type": 0, @@ -1822,6 +2388,12 @@ "value": "Country code" } ], + "H5+NAX": [ + { + "type": 0, + "value": "Balance" + } + ], "H7AdL7": [ { "type": 0, @@ -1884,6 +2456,12 @@ "value": "). See available rates below." } ], + "IAGueY": [ + { + "type": 0, + "value": "Pet-friendly" + } + ], "IDDoMx": [ { "type": 0, @@ -1902,6 +2480,26 @@ "value": "Year" } ], + "IK2R3P": [ + { + "type": 0, + "value": "We are still confirming your booking. This is usually a matter of minutes and we do apologise for the wait. Please check your inbox for a booking confirmation email and if you still haven't received it by end of day, please contact our " + }, + { + "children": [ + { + "type": 0, + "value": "customer support" + } + ], + "type": 8, + "value": "link" + }, + { + "type": 0, + "value": "." + } + ], "ILH7sP": [ { "type": 0, @@ -1988,6 +2586,12 @@ "value": "No windows" } ], + "ImeLZi": [ + { + "type": 0, + "value": "Number of nights" + } + ], "InWqys": [ { "type": 0, @@ -2077,7 +2681,13 @@ "JEl07K": [ { "type": 0, - "value": "It is not possible to manage your communication preferences right now, please try again later or contact support if the problem persists." + "value": "It is not posible to manage your communication preferences right now, please try again later or contact support if the problem persists." + } + ], + "JHTwdB": [ + { + "type": 0, + "value": "Show password" } ], "JJNc3c": [ @@ -2161,12 +2771,30 @@ "value": "Something went wrong" } ], + "Jr5tMR": [ + { + "type": 0, + "value": "Years" + } + ], "Jrw8G7": [ { "type": 0, "value": "Modify" } ], + "K+okA1": [ + { + "type": 0, + "value": "Number of guests" + } + ], + "K3fWTv": [ + { + "type": 0, + "value": "Hide password" + } + ], "K6yt62": [ { "type": 0, @@ -2201,12 +2829,24 @@ "value": "View your account" } ], + "KN7zKn": [ + { + "type": 0, + "value": "Error" + } + ], "KVIw7l": [ { "type": 0, "value": "Price excluding VAT" } ], + "KYUOY2": [ + { + "type": 0, + "value": "points" + } + ], "KgkOn/": [ { "type": 0, @@ -2231,6 +2871,12 @@ "value": "My stays" } ], + "KxG+iy": [ + { + "type": 0, + "value": "VAT" + } + ], "KyJWx/": [ { "type": 0, @@ -2249,6 +2895,12 @@ "value": "Failed to update guest details" } ], + "LC4ckH": [ + { + "type": 0, + "value": "This room is equipped with" + } + ], "LD5RmK": [ { "type": 0, @@ -2287,6 +2939,12 @@ "value": "Accounts are already linked" } ], + "LUfAwd": [ + { + "type": 0, + "value": "Find a location" + } + ], "Lbf/c2": [ { "type": 0, @@ -2343,6 +3001,12 @@ "value": "Details" } ], + "LvCm24": [ + { + "type": 0, + "value": "Loading results" + } + ], "MCz6fU": [ { "type": 0, @@ -2413,6 +3077,12 @@ "value": "Enter your details" } ], + "Mu4VMS": [ + { + "type": 0, + "value": "Breakfast can be added after booking for an additional fee." + } + ], "N+7lsn": [ { "type": 0, @@ -2453,6 +3123,16 @@ "value": "Price 0,16 €/min + local call charges" } ], + "N8BYiR": [ + { + "type": 1, + "value": "amount" + }, + { + "type": 0, + "value": " points available" + } + ], "NB1boO": [ { "type": 0, @@ -2483,6 +3163,12 @@ "value": "See hotel information" } ], + "NV7BTy": [ + { + "type": 0, + "value": "Booking Code filter" + } + ], "NW321h": [ { "type": 0, @@ -2527,6 +3213,12 @@ "value": "At a cost" } ], + "OmFidd": [ + { + "type": 0, + "value": "Room cancelled" + } + ], "OtiKxJ": [ { "type": 0, @@ -2587,6 +3279,16 @@ "value": "Book your next stay" } ], + "PMKZJK": [ + { + "type": 0, + "value": "Total cost: " + }, + { + "type": 1, + "value": "amount" + } + ], "PNf10z": [ { "type": 0, @@ -2605,6 +3307,12 @@ "value": "Scandic Friends Mastercard" } ], + "PjY4fr": [ + { + "type": 0, + "value": "SF points to receive" + } + ], "PkCfkw": [ { "type": 0, @@ -2623,6 +3331,20 @@ "value": "Welcome" } ], + "PyFRJ7": [ + { + "type": 0, + "value": "All ancillaries are fully refundable until " + }, + { + "type": 1, + "value": "date" + }, + { + "type": 0, + "value": ". Time selection and special requests are also modifiable." + } + ], "Q0yOMK": [ { "type": 0, @@ -2705,12 +3427,50 @@ "value": "Cabaret seating" } ], + "R0TsiI": [ + { + "type": 0, + "value": "Please select dates" + } + ], "R11T2e": [ { "type": 0, "value": "night" } ], + "R8eFFM": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " room" + } + ] + }, + "other": { + "value": [ + { + "type": 7 + }, + { + "type": 0, + "value": " rooms" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "rooms" + } + ], "RHKiDH": [ { "type": 0, @@ -2741,6 +3501,12 @@ "value": "Book Reward Night" } ], + "RZX98y": [ + { + "type": 0, + "value": "Booking total" + } + ], "Reuaqo": [ { "type": 0, @@ -2765,6 +3531,12 @@ "value": "Manage booking" } ], + "RrCui3": [ + { + "type": 0, + "value": "Summary" + } + ], "RsRqjW": [ { "type": 0, @@ -2861,6 +3633,12 @@ "value": "Cancellation policy" } ], + "SZUCz9": [ + { + "type": 0, + "value": "Go back to My Pages" + } + ], "SjHZ7g": [ { "type": 0, @@ -2983,6 +3761,12 @@ "value": "Hurry up and use them before they expire!" } ], + "TVt8eD": [ + { + "type": 0, + "value": "Booking guaranteed." + } + ], "TaCTYI": [ { "type": 1, @@ -2993,6 +3777,12 @@ "value": " has been paid" } ], + "TaLdmY": [ + { + "type": 0, + "value": "Full-priced rooms" + } + ], "TgQmaA": [ { "type": 0, @@ -3047,6 +3837,12 @@ "value": "Send new code" } ], + "UA+OW/": [ + { + "type": 0, + "value": "Your stay was updated" + } + ], "UEMMwN": [ { "type": 0, @@ -3201,6 +3997,12 @@ "value": "Guest information" } ], + "VouArr": [ + { + "type": 0, + "value": "You have cancelled to process to guarantee your booking." + } + ], "W1IuVy": [ { "type": 0, @@ -3255,6 +4057,16 @@ "value": "If you're booking a promotional offer or a Corporate negotiated rate you'll need a special booking code. Don't use any special characters such as (.) (,) (-) (:). If you would like to make a booking with code VOF, please call us +46 8 517 517 20.Save your booking code for the next time you visit the page by ticking the box “Remember”. Don't tick the box if you're using a public computer to avoid unauthorized access to your booking code." } ], + "WQentj": [ + { + "type": 1, + "value": "count" + }, + { + "type": 0, + "value": " voucher" + } + ], "WTJzZ0": [ { "type": 0, @@ -3291,6 +4103,12 @@ "value": " characters" } ], + "WaFAsS": [ + { + "type": 0, + "value": "An error occurred while searching, please try again." + } + ], "WadXqP": [ { "type": 0, @@ -3335,12 +4153,24 @@ "value": ". We're sorry to see that the plans didn't work out" } ], + "WfafQD": [ + { + "type": 0, + "value": "Yes, I want to transfer my points" + } + ], "WjNNNf": [ { "type": 0, "value": "Close language menu" } ], + "WlA5By": [ + { + "type": 0, + "value": "Can not show breakfast prices." + } + ], "WnQ/AZ": [ { "type": 0, @@ -3473,6 +4303,12 @@ "value": "nextRoomNumber" } ], + "Xxh5du": [ + { + "type": 0, + "value": "Contact customer service" + } + ], "Y9bYKH": [ { "type": 0, @@ -3524,12 +4360,24 @@ "value": "Proceed to payment method" } ], + "YcJPLq": [ + { + "type": 0, + "value": "Back to select room" + } + ], "Yfrsuf": [ { "type": 0, "value": "My Add-on's" } ], + "YllT/3": [ + { + "type": 0, + "value": "As this is a multiroom stay, any dates changes are applicable to all rooms. Please contact customer service to update the dates." + } + ], "YmvLxJ": [ { "type": 0, @@ -3548,6 +4396,12 @@ "value": "Explore nearby" } ], + "Z1zOlM": [ + { + "type": 0, + "value": "And you need to be logged in with the same member account that made the booking." + } + ], "ZDo52U": [ { "type": 0, @@ -3604,6 +4458,12 @@ "value": "Member price" } ], + "ZKkfyG": [ + { + "type": 0, + "value": "Failed to update your stay" + } + ], "Zi7OWZ": [ { "type": 0, @@ -3616,6 +4476,12 @@ "value": "Terms and conditions" } ], + "a/aigv": [ + { + "type": 0, + "value": "Transferred points will not be level qualifying" + } + ], "a0a/tt": [ { "type": 0, @@ -3696,6 +4562,12 @@ "value": "Please try again later" } ], + "awMt55": [ + { + "type": 0, + "value": "Confirm date change" + } + ], "axBeuu": [ { "type": 0, @@ -3717,13 +4589,19 @@ "b2f6l2": [ { "type": 0, - "value": "Membership ID: " + "value": "Friend no. " }, { "type": 1, "value": "value" } ], + "b6HTvK": [ + { + "type": 0, + "value": "You are about to exchange:" + } + ], "b8ke+F": [ { "type": 0, @@ -3780,6 +4658,12 @@ "value": "Please note that this is mandatory, and that your card will only be charged in the event of a no-show." } ], + "bNEk6f": [ + { + "type": 0, + "value": "The code you've entered is incorrect." + } + ], "bSlaTP": [ { "type": 0, @@ -3792,6 +4676,12 @@ "value": "Error: No user could be loaded" } ], + "bdK1WM": [ + { + "type": 0, + "value": "Total excluding VAT" + } + ], "bdcMGy": [ { "type": 0, @@ -3804,6 +4694,12 @@ "value": "Where to?" } ], + "bsUwPW": [ + { + "type": 0, + "value": "This will remove any membership level upgrades gained from the linking." + } + ], "bv2X6I": [ { "type": 0, @@ -3826,12 +4722,24 @@ "value": "level" } ], + "bzbgyz": [ + { + "type": 0, + "value": "Transfer from" + } + ], "c07OE9": [ { "type": 0, "value": "Room charge" } ], + "c0b5XV": [ + { + "type": 0, + "value": "Rate" + } + ], "cBCa5I": [ { "type": 0, @@ -3860,6 +4768,12 @@ "value": "Category" } ], + "ceEjA1": [ + { + "type": 0, + "value": "EB points to transfer" + } + ], "cgeI6D": [ { "type": 0, @@ -3940,12 +4854,24 @@ "value": "Join now" } ], + "dJjhjT": [ + { + "type": 0, + "value": "Level match status" + } + ], "dM+p3/": [ { "type": 0, "value": "From" } ], + "dMrFtz": [ + { + "type": 0, + "value": "Your card will only be used for authorisation" + } + ], "dW2nbo": [ { "type": 0, @@ -3962,12 +4888,30 @@ "value": " hotels" } ], + "dcyv08": [ + { + "type": 0, + "value": "When guaranteeing your booking with a credit card, we will hold the booking until 07:00 the day after check-in." + } + ], + "ddn7H8": [ + { + "type": 0, + "value": "Hang tight..." + } + ], "dg8ZEb": [ { "type": 0, "value": "Close menu" } ], + "dq8T1T": [ + { + "type": 0, + "value": "Lowest price (last 30 days)" + } + ], "dxE0uQ": [ { "type": 0, @@ -4018,6 +4962,12 @@ "value": "total" } ], + "eGGhk7": [ + { + "type": 0, + "value": "Pet room charge including VAT" + } + ], "eGLWtx": [ { "type": 0, @@ -4036,6 +4986,18 @@ "value": "Food options" } ], + "ecWBo7": [ + { + "type": 0, + "value": "Your exchanged points will retain their original expiry date with a maximum validity of 12 months." + } + ], + "eeZJwJ": [ + { + "type": 0, + "value": "1 EuroBonus point = 2 Scandic Friends points" + } + ], "ejEGdx": [ { "type": 0, @@ -4124,6 +5086,32 @@ "value": "Map view" } ], + "fLEb2i": [ + { + "offset": 0, + "options": { + "=1": { + "value": [ + { + "type": 0, + "value": "a new room" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "new rooms" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "totalRooms" + } + ], "fTHhSB": [ { "type": 0, @@ -4192,6 +5180,24 @@ "value": "count" } ], + "g54Jcn": [ + { + "type": 0, + "value": "Gym & Health Facilities at " + }, + { + "type": 1, + "value": "hotelName" + }, + { + "type": 0, + "value": " in " + }, + { + "type": 1, + "value": "destination" + } + ], "g9/EOP": [ { "type": 0, @@ -4204,6 +5210,24 @@ "value": "No membership benefits applied" } ], + "gW6k7b": [ + { + "type": 0, + "value": "I may arrive later than 18:00 and want to guarantee my booking with a credit card." + } + ], + "gidWTS": [ + { + "type": 0, + "value": "Room classification" + } + ], + "gjwFsT": [ + { + "type": 0, + "value": "Select date" + } + ], "gkgEEQ": [ { "children": [ @@ -4226,6 +5250,12 @@ "value": "Membership ID copied to clipboard" } ], + "h0kG6u": [ + { + "type": 0, + "value": "PREPAID" + } + ], "h2Y242": [ { "type": 0, @@ -4238,6 +5268,12 @@ "value": "Sort by" } ], + "hHr2Pt": [ + { + "type": 0, + "value": "Your room will remain available for check-in even after 18:00." + } + ], "hJZwTS": [ { "type": 0, @@ -4277,7 +5313,7 @@ "iEM2Oo": [ { "type": 0, - "value": "This verification is needed for additional security." + "value": "This verifcation is needed for additional security." } ], "iFkAwy": [ @@ -4286,12 +5322,36 @@ "value": "Unfortunately, one of the rooms you selected is sold out. Please choose another room to proceed." } ], + "iGHjsf": [ + { + "type": 0, + "value": "ages" + } + ], "iIRTCt": [ { "type": 0, "value": "Cancel stay" } ], + "iQLprp": [ + { + "type": 0, + "value": "When you confirm the booking the room will be guaranteed for late arrival. If you fail to arrive without cancelling in advance or if you cancel after 18:00 local time, you will be charged for one reward night." + } + ], + "iRe/zA": [ + { + "type": 0, + "value": "Your transaction" + } + ], + "iwtnXO": [ + { + "type": 0, + "value": "Changes in your level match can take up to 24 hours to be displayed." + } + ], "j0qJkH": [ { "type": 0, @@ -4334,12 +5394,24 @@ "value": "Clear all filters" } ], + "jNJj4c": [ + { + "type": 0, + "value": "Per adult/night" + } + ], "jVJPS0": [ { "type": 0, "value": "My membership cards" } ], + "jbf7bd": [ + { + "type": 0, + "value": "Points to be deducted now" + } + ], "jdJhOL": [ { "type": 0, @@ -4410,6 +5482,24 @@ "value": "OK" } ], + "kCoXkP": [ + { + "type": 0, + "value": "Parking information for " + }, + { + "type": 1, + "value": "hotelName" + }, + { + "type": 0, + "value": " in " + }, + { + "type": 1, + "value": "destination" + } + ], "kLFqoY": [ { "type": 0, @@ -4422,6 +5512,12 @@ "value": "Your room" } ], + "kaOccp": [ + { + "type": 0, + "value": "Free for kids aged 12 and under." + } + ], "kflbTV": [ { "type": 0, @@ -4520,6 +5616,12 @@ "value": "Other Requests" } ], + "lFeDUm": [ + { + "type": 0, + "value": "Total price including VAT" + } + ], "leypoy": [ { "type": 0, @@ -4725,6 +5827,24 @@ "value": "We could not add a card right now, please try again later." } ], + "nlOwUZ": [ + { + "type": 0, + "value": "Meetings, Conferences & Events at " + }, + { + "type": 1, + "value": "hotelName" + }, + { + "type": 0, + "value": " in " + }, + { + "type": 1, + "value": "destination" + } + ], "noCIHu": [ { "type": 0, @@ -4735,6 +5855,24 @@ "value": "level" } ], + "o+XaIv": [ + { + "type": 0, + "value": "Accessibility information for " + }, + { + "type": 1, + "value": "hotelName" + }, + { + "type": 0, + "value": " in " + }, + { + "type": 1, + "value": "destination" + } + ], "o3bzB9": [ { "type": 0, @@ -4759,6 +5897,12 @@ "value": " guests" } ], + "oGTj9e": [ + { + "type": 0, + "value": "Transfer to" + } + ], "oGjAJM": [ { "type": 1, @@ -4790,12 +5934,58 @@ "value": "View room details" } ], + "oIM88R": [ + { + "type": 0, + "value": "You need to be logged in to view your booking" + } + ], + "oYVLV9": [ + { + "type": 0, + "value": "Reward night" + } + ], "odXlk8": [ { "type": 0, "value": "Log in" } ], + "oeIOCb": [ + { + "type": 0, + "value": "By guaranteeing with any of the payment methods available, I accept the terms for this stay and the general " + }, + { + "children": [ + { + "type": 0, + "value": "Terms & Conditions" + } + ], + "type": 8, + "value": "termsAndConditionsLink" + }, + { + "type": 0, + "value": ", and understand Scandic will process my personal data for this stay in accordance with " + }, + { + "children": [ + { + "type": 0, + "value": "Scandic's Privacy Policy" + } + ], + "type": 8, + "value": "privacyPolicyLink" + }, + { + "type": 0, + "value": ". I accept Scandic requiring a valid credit card during my visit in case anything is left unpaid." + } + ], "oehm0i": [ { "type": 0, @@ -4843,6 +6033,12 @@ "value": " points" } ], + "p3b08J": [ + { + "type": 0, + "value": "Scandic Friends" + } + ], "pFK6bJ": [ { "type": 0, @@ -4885,6 +6081,12 @@ "value": ")" } ], + "pkBQ0q": [ + { + "type": 0, + "value": "No single rooms are available on these dates" + } + ], "pm/MLX": [ { "type": 0, @@ -4955,6 +6157,12 @@ "value": "Yes, redeem" } ], + "q12t0j": [ + { + "type": 0, + "value": "Bonus Nights range from 10 000 - 80 000 points. Book your next stay with us today!" + } + ], "q6TwFo": [ { "type": 0, @@ -4973,6 +6181,12 @@ "value": "Thursday" } ], + "qOXENr": [ + { + "type": 0, + "value": "Book a meeting" + } + ], "qT7E5z": [ { "type": 0, @@ -5017,6 +6231,12 @@ "value": "You must accept the terms and conditions" } ], + "qnrIyl": [ + { + "type": 0, + "value": "To be paid" + } + ], "qozDRN": [ { "type": 0, @@ -5163,6 +6383,12 @@ "value": "No breakfast" } ], + "rmpW6K": [ + { + "type": 0, + "value": "Point transfer completed!" + } + ], "rn5vjj": [ { "type": 0, @@ -5173,6 +6399,20 @@ "value": "name" } ], + "rolakz": [ + { + "type": 0, + "value": "An error occurred (" + }, + { + "type": 1, + "value": "errorId" + }, + { + "type": 0, + "value": ")" + } + ], "rvirM2": [ { "type": 0, @@ -5319,6 +6559,12 @@ "value": "Book another stay" } ], + "t/t0gz": [ + { + "type": 0, + "value": "Breakfast excluded" + } + ], "t2gumm": [ { "type": 0, @@ -5343,6 +6589,12 @@ "value": "Membership terms and conditions" } ], + "tKEk+5": [ + { + "type": 0, + "value": "Unable to search" + } + ], "tKMlOc": [ { "type": 0, @@ -5355,6 +6607,16 @@ "value": "Something went wrong. Please try again later." } ], + "tQmGFu": [ + { + "type": 0, + "value": "Children under " + }, + { + "type": 1, + "value": "age" + } + ], "tVSfzu": [ { "type": 0, @@ -5383,6 +6645,12 @@ "value": "Level upgraded" } ], + "tbjuTe": [ + { + "type": 0, + "value": "Prices & availability" + } + ], "tcw9Ef": [ { "type": 1, @@ -5393,6 +6661,18 @@ "value": " people" } ], + "teZR9Y": [ + { + "type": 0, + "value": "How does it work" + } + ], + "tf1lIh": [ + { + "type": 0, + "value": "Free" + } + ], "to6yuC": [ { "type": 0, @@ -5427,6 +6707,12 @@ "value": " uppercase letter" } ], + "uJXmpj": [ + { + "type": 0, + "value": "Buffet" + } + ], "uXqiQs": [ { "type": 0, @@ -5445,6 +6731,12 @@ "value": "Breakfast included" } ], + "ubYorJ": [ + { + "type": 0, + "value": "By adding a card you also guarantee your room booking for late arrival." + } + ], "ujX0MU": [ { "type": 0, @@ -5531,6 +6823,44 @@ "value": "An error occurred trying to manage your preferences, please try again later." } ], + "vYiDQA": [ + { + "type": 0, + "value": "Prices have increased since you selected your " + }, + { + "type": 1, + "value": "roomSelection" + }, + { + "type": 0, + "value": "." + }, + { + "type": 1, + "value": "linebreak" + }, + { + "type": 0, + "value": " To continue your booking, accept the updated price," + }, + { + "type": 1, + "value": "linebreak" + }, + { + "type": 0, + "value": " or go back to select " + }, + { + "type": 1, + "value": "newRoomSelection" + }, + { + "type": 0, + "value": "." + } + ], "vmXxT7": [ { "offset": 0, @@ -5569,12 +6899,24 @@ "value": "Your card was successfully saved!" } ], + "voftCr": [ + { + "type": 0, + "value": "Confirm booking" + } + ], "vpAMy7": [ { "type": 0, "value": "Select rooms" } ], + "vwVLfU": [ + { + "type": 0, + "value": "View your details" + } + ], "w0LSDs": [ { "type": 1, @@ -5635,6 +6977,20 @@ "value": "Total points" } ], + "wnrFGi": [ + { + "type": 0, + "value": "Alternate opening hours (" + }, + { + "type": 1, + "value": "name" + }, + { + "type": 0, + "value": ")" + } + ], "woRAaT": [ { "type": 1, @@ -5681,6 +7037,22 @@ "value": ")" } ], + "wy1gW7": [ + { + "type": 0, + "value": "This code has expired. " + }, + { + "children": [ + { + "type": 0, + "value": "Send new code." + } + ], + "type": 8, + "value": "resendOtpLink" + } + ], "x14bsI": [ { "type": 0, @@ -5715,6 +7087,23 @@ "value": "As your booking includes rooms with different terms, we will be charging part of the booking now and the remainder will be collected by the reception at check-in." } ], + "xAAmxu": [ + { + "style": null, + "type": 2, + "value": "points" + }, + { + "type": 0, + "value": " p" + } + ], + "xFA1TY": [ + { + "type": 0, + "value": "under" + } + ], "xIHOhT": [ { "type": 0, @@ -5751,6 +7140,12 @@ "value": "I accept the terms and conditions" } ], + "xkr+zo": [ + { + "type": 0, + "value": "Terms" + } + ], "xmcVZ0": [ { "type": 0, @@ -5781,6 +7176,12 @@ "value": "Language" } ], + "yKuC6H": [ + { + "type": 0, + "value": "Planning to arrive after 18.00? Secure your room by guaranteeing it with a credit card. Without the guarantee and in case of no-show, the room might be reallocated after 18:00." + } + ], "yN82SV": [ { "type": 0, @@ -5797,6 +7198,24 @@ "value": "Hiking" } ], + "yVBUQh": [ + { + "type": 0, + "value": "Unable to display map" + } + ], + "yaMHMB": [ + { + "type": 0, + "value": "Results" + } + ], + "yalCwe": [ + { + "type": 0, + "value": "Your rooms" + } + ], "ynE7iJ": [ { "type": 0, @@ -5836,7 +7255,7 @@ "zDkgMD": [ { "type": 0, - "value": "Book a table" + "value": "Book a table online" } ], "zEdCI3": [ @@ -5851,6 +7270,12 @@ "value": "Rebooking" } ], + "zHPqOq": [ + { + "type": 0, + "value": "Adult" + } + ], "zKURD8": [ { "type": 0, @@ -5905,6 +7330,20 @@ "value": "hotelName" } ], + "zjODby": [ + { + "type": 0, + "value": "Under " + }, + { + "type": 1, + "value": "age" + }, + { + "type": 0, + "value": " years" + } + ], "zleazZ": [ { "type": 0,