Merged in feat/lokalise-rebuild (pull request #2993)

Feat/lokalise rebuild

* chore(lokalise): update translation ids

* chore(lokalise): easier to switch between projects

* chore(lokalise): update translation ids

* .

* .

* .

* .

* .

* .

* chore(lokalise): update translation ids

* chore(lokalise): update translation ids

* .

* .

* .

* chore(lokalise): update translation ids

* chore(lokalise): update translation ids

* .

* .

* chore(lokalise): update translation ids

* chore(lokalise): update translation ids

* chore(lokalise): new translations

* merge

* switch to errors for missing id's

* merge

* sync translations


Approved-by: Linus Flood
This commit is contained in:
Joakim Jäderberg
2025-10-22 11:00:03 +00:00
parent bdfe2ab213
commit aafad9781f
499 changed files with 93363 additions and 99164 deletions

View File

@@ -19,6 +19,7 @@ export function AddToCalendarButton({ onPress }: { onPress: () => void }) {
<MaterialIcon size={20} icon="calendar_add_on" color="CurrentColor" />
{intl.formatMessage({
id: "common.addToCalendar",
defaultMessage: "Add to calendar",
})}
</Button>

View File

@@ -26,6 +26,7 @@ export default function DownloadInvoice({ mainRef }: DownloadInvoiceProps) {
>
<MaterialIcon icon="download" color="CurrentColor" />
{intl.formatMessage({
id: "bookingConfirmation.downloadInvoice",
defaultMessage: "Download invoice",
})}
</Button>

View File

@@ -46,6 +46,7 @@ export default function ManageBooking({ booking }: ManageBookingProps) {
>
<MaterialIcon size={20} icon="edit_square" color="CurrentColor" />
{intl.formatMessage({
id: "bookingConfirmation.manageBooking",
defaultMessage: "Manage booking",
})}
</ButtonLink>

View File

@@ -30,6 +30,7 @@ export function Header({
const intl = useIntl()
const text = intl.formatMessage({
id: "bookingConfirmation.thankYouMessage",
defaultMessage:
"Thank you for your booking! We look forward to welcoming you and hope you have a pleasant stay.",
})
@@ -59,6 +60,7 @@ export function Header({
<Typography variant={"Title/md"}>
<h2 className={styles.confirmTitle}>
{intl.formatMessage({
id: "bookingConfirmation.title",
defaultMessage: "Booking confirmation",
})}
</h2>

View File

@@ -21,6 +21,7 @@ export function HotelDetails({
<Typography variant={"Title/Subtitle/md"}>
<h3>
{intl.formatMessage({
id: "bookingConfirmation.hotelDetails",
defaultMessage: "Hotel details",
})}
</h3>
@@ -31,6 +32,7 @@ export function HotelDetails({
<p>
{intl.formatMessage(
{
id: "bookingConfirmation.hotel.address",
defaultMessage: "{streetAddress}, {zipCode} {city}",
},
{

View File

@@ -25,6 +25,7 @@ export function PaymentDetails() {
<Typography variant={"Title/Subtitle/md"}>
<h2>
{intl.formatMessage({
id: "bookingConfirmation.paymentDetails",
defaultMessage: "Payment details",
})}
</h2>
@@ -35,6 +36,7 @@ export function PaymentDetails() {
<p>
{intl.formatMessage(
{
id: "bookingConfirmation.totalCost",
defaultMessage: "Total cost: {amount}",
},
{

View File

@@ -37,27 +37,33 @@ export function Promos({ booking }: PromosProps) {
<div className={styles.promos}>
<Promo
buttonText={intl.formatMessage({
defaultMessage: "View and buy extras",
id: "bookingConfirmation.promos.buyAddonsButtonText",
defaultMessage: "View and buy add-ons",
})}
href={myStayURL}
text={intl.formatMessage({
id: "bookingConfirmation.promos.buyAddonsDescription",
defaultMessage:
"Discover the little extra touches to make your upcoming stay even more unforgettable.",
})}
title={intl.formatMessage({
id: "bookingConfirmation.promos.buyAddonsTitle",
defaultMessage: "Spice things up",
})}
/>
<Promo
buttonText={intl.formatMessage({
id: "bookingConfirmation.promos.bookAnotherStayButtonText",
defaultMessage: "Book another stay",
})}
href={`/${lang}?hotel=${hotelId}`}
text={intl.formatMessage({
id: "booking.bookAnotherStayDescription",
defaultMessage:
"Get inspired and start dreaming beyond your next trip. Explore more Scandic destinations.",
})}
title={intl.formatMessage({
id: "booking.bookNextStay.title",
defaultMessage: "Book your next stay",
})}
/>

View File

@@ -22,13 +22,17 @@ export default function Breakfast({
const intl = useIntl()
const breakfastBuffet = intl.formatMessage({
id: "common.breakfastBuffet",
defaultMessage: "Breakfast buffet",
})
if (breakfastIncluded || breakfast) {
const price = breakfast
? formatPrice(intl, breakfast.totalPrice, breakfast.currency)
: intl.formatMessage({ defaultMessage: "Included" })
: intl.formatMessage({
id: "common.included",
defaultMessage: "Included",
})
return (
<div className={styles.entry}>
<div>
@@ -47,7 +51,10 @@ export default function Breakfast({
}
if (breakfast === false) {
const noBreakfast = intl.formatMessage({ defaultMessage: "No breakfast" })
const noBreakfast = intl.formatMessage({
id: "common.noBreakfast",
defaultMessage: "No breakfast",
})
return (
<div className={styles.entry}>
<Typography variant="Body/Paragraph/mdRegular">

View File

@@ -54,6 +54,7 @@ export function ReceiptRoom({
const adultsMsg = intl.formatMessage(
{
id: "common.numberOfAdults",
defaultMessage: "{totalAdults, plural, one {# adult} other {# adults}}",
},
{ totalAdults: room.adults }
@@ -63,6 +64,7 @@ export function ReceiptRoom({
if (room.childrenAges?.length) {
const childrenMsg = intl.formatMessage(
{
id: "common.numberOfChildren",
defaultMessage:
"{totalChildren, plural, one {# child} other {# children}}",
},
@@ -83,6 +85,7 @@ export function ReceiptRoom({
<p className={styles.roomTitle}>
{intl.formatMessage(
{
id: "booking.roomIndex",
defaultMessage: "Room {roomIndex}",
},
{
@@ -128,6 +131,7 @@ export function ReceiptRoom({
wrapping={false}
>
{intl.formatMessage({
id: "bookingConfirmation.receipt.reservationPolicy",
defaultMessage: "Reservation policy",
})}
<MaterialIcon
@@ -146,9 +150,11 @@ export function ReceiptRoom({
room.rateDefinition.cancellationRule ===
CancellationRuleEnum.CancellableBefore6PM
? intl.formatMessage({
id: "booking.payLater",
defaultMessage: "Pay later",
})
: intl.formatMessage({
id: "booking.payNow",
defaultMessage: "Pay now",
})
}
@@ -218,6 +224,7 @@ export function ReceiptRoom({
<p>
{intl.formatMessage(
{
id: "booking.numberOfCribs",
defaultMessage: "Crib (child) × {count}",
},
{ count: childBedCrib.quantity }
@@ -226,6 +233,7 @@ export function ReceiptRoom({
<Typography variant="Body/Supporting text (caption)/smRegular">
<p className={styles.uiTextHighContrast}>
{intl.formatMessage({
id: "booking.subjectToAvailability",
defaultMessage: "Subject to availability",
})}
</p>
@@ -246,6 +254,7 @@ export function ReceiptRoom({
<p>
{intl.formatMessage(
{
id: "booking.extraBedsCount",
defaultMessage: "Extra bed (child) × {count}",
},
{

View File

@@ -38,6 +38,7 @@ export default function TotalPrice() {
<p>
{intl.formatMessage(
{
id: "booking.totalPriceInclVat",
defaultMessage: "<b>Total price</b> (incl VAT)",
},
{

View File

@@ -28,6 +28,7 @@ export function Receipt() {
const nights = intl.formatMessage(
{
id: "booking.numberOfNights",
defaultMessage: "{totalNights, plural, one {# night} other {# nights}}",
},
{ totalNights }
@@ -43,6 +44,7 @@ export function Receipt() {
<Typography variant="Title/Subtitle/md">
<h3 className={styles.heading}>
{intl.formatMessage({
id: "booking.bookingSummary",
defaultMessage: "Booking summary",
})}
</h3>

View File

@@ -18,6 +18,7 @@ export default function Retry({ handleRefetch }: RetryProps) {
<Typography variant={"Body/Paragraph/mdRegular"}>
<p>
{intl.formatMessage({
id: "errorMessage.somethingWentWrong",
defaultMessage: "Something went wrong!",
})}
</p>
@@ -25,6 +26,7 @@ export default function Retry({ handleRefetch }: RetryProps) {
<Button size={"Small"} onPress={handleRefetch}>
{intl.formatMessage({
id: "bookingConfirmation.linkedReservation.tryAgain",
defaultMessage: "Try again",
})}
</Button>

View File

@@ -60,6 +60,7 @@ export function Room({
<h2>
{intl.formatMessage(
{
id: "bookingConfirmation.rooms.bookingNumber",
defaultMessage: "Booking number {value}",
},
{ value: booking.confirmationNumber }
@@ -77,6 +78,7 @@ export function Room({
<Typography variant="Body/Supporting text (caption)/smRegular">
<p>
{intl.formatMessage({
id: "bookingConfirmation.rooms.benefitsApplied",
defaultMessage: "Membership benefits applied",
})}
</p>
@@ -97,6 +99,7 @@ export function Room({
>
<p>
{intl.formatMessage({
id: "bookingConfirmation.rooms.guaranteeTitle",
defaultMessage: "Booking guaranteed.",
})}
</p>
@@ -106,6 +109,7 @@ export function Room({
<Typography variant="Body/Supporting text (caption)/smRegular">
<p>
{intl.formatMessage({
id: "bookingConfirmation.rooms.guaranteeDetails",
defaultMessage:
"Your room will remain available for check-in even after 18:00.",
})}
@@ -141,6 +145,7 @@ export function Room({
roomTypeCode={booking.roomTypeCode}
buttonVariant="primary"
triggerLabel={intl.formatMessage({
id: "hotel.seeRoomDetails",
defaultMessage: "See room details",
})}
wrapping={false}
@@ -152,12 +157,14 @@ export function Room({
<li className={styles.listItem}>
<p className={styles.label}>
{intl.formatMessage({
id: "common.checkIn",
defaultMessage: "Check-in",
})}
</p>
<p>
{intl.formatMessage(
{
id: "bookingConfirmation.rooms.checkInDetails",
defaultMessage: "{checkInDate} from {checkInTime}",
},
{
@@ -170,6 +177,7 @@ export function Room({
<li className={styles.listItem}>
<p className={styles.label}>
{intl.formatMessage({
id: "common.checkOut",
defaultMessage: "Check-out",
})}
</p>
@@ -181,6 +189,7 @@ export function Room({
<li className={styles.listItem}>
<p className={styles.label}>
{intl.formatMessage({
id: "bookingConfirmation.rooms.cancellationPolicy",
defaultMessage: "Cancellation policy",
})}
</p>
@@ -190,12 +199,14 @@ export function Room({
<li className={styles.listItem}>
<p className={styles.label}>
{intl.formatMessage({
id: "booking.changeOrCancel",
defaultMessage: "Change or cancel",
})}
</p>
<p>
{intl.formatMessage(
{
id: "common.untilWithTimeAndDate",
defaultMessage: "Until {time}, {date}",
},
{
@@ -212,6 +223,7 @@ export function Room({
<Typography variant="Body/Paragraph/mdRegular">
<p className={styles.label}>
{intl.formatMessage({
id: "bookingConfirmation.rooms.guestLabel",
defaultMessage: "Guest",
})}
</p>
@@ -224,6 +236,7 @@ export function Room({
<p data-hj-suppress>
{intl.formatMessage(
{
id: "bookingConfirmation.rooms.friendNumber",
defaultMessage: "Friend no. {value}",
},
{

View File

@@ -37,6 +37,7 @@ export function Rooms({
<h2 className={styles.roomTitle}>
{intl.formatMessage(
{
id: "booking.roomIndex",
defaultMessage: "Room {roomIndex}",
},
{ roomIndex: 1 }
@@ -59,6 +60,7 @@ export function Rooms({
<h2 className={styles.roomTitle}>
{intl.formatMessage(
{
id: "booking.roomIndex",
defaultMessage: "Room {roomIndex}",
},
{ roomIndex: idx + 2 }

View File

@@ -66,9 +66,11 @@ export async function BookingConfirmation({
<Alert
type={AlertTypeEnum.Info}
heading={intl.formatMessage({
id: "bookingConfirmation.membershipVerificationFailed",
defaultMessage: "Failed to verify membership",
})}
text={intl.formatMessage({
id: "bookingConfirmation.bookingConfirmedMembershipFailedInfo",
defaultMessage:
"Your booking(s) is confirmed but we could not verify your membership. If you have booked with a member discount, you'll either need to present your existing membership number upon check-in, become a member or pay the price difference at the hotel. Signing up is preferably done online before the stay.",
})}