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

@@ -74,25 +74,29 @@ export default function FilterAndSortModal({
const sortItems: SortItem[] = [
{
label: intl.formatMessage({
id: "filter.distanceToCityCenter",
defaultMessage: "Distance to city center",
}),
value: SortOrder.Distance,
},
{
label: intl.formatMessage({
id: "common.name",
defaultMessage: "Name",
}),
value: SortOrder.Name,
},
{
label: intl.formatMessage({
id: "common.price",
defaultMessage: "Price",
}),
value: SortOrder.Price,
},
{
label: intl.formatMessage({
defaultMessage: "Tripadvisor rating",
id: "common.tripAdvisorRating",
defaultMessage: "TripAdvisor rating",
}),
value: SortOrder.TripAdvisorRating,
},
@@ -144,6 +148,7 @@ export default function FilterAndSortModal({
<Typography variant="Body/Supporting text (caption)/smBold">
<p>
{intl.formatMessage({
id: "filter.filterAndSort",
defaultMessage: "Filter and sort",
})}
</p>
@@ -166,6 +171,7 @@ export default function FilterAndSortModal({
>
<p>
{intl.formatMessage({
id: "filter.filterAndSort",
defaultMessage: "Filter and sort",
})}
</p>
@@ -175,6 +181,7 @@ export default function FilterAndSortModal({
style="Muted"
onPress={close}
aria-label={intl.formatMessage({
id: "common.close",
defaultMessage: "Close",
})}
>
@@ -188,6 +195,7 @@ export default function FilterAndSortModal({
searchParams.get("sort") ?? DEFAULT_SORT
}
label={intl.formatMessage({
id: "filter.sortBy",
defaultMessage: "Sort by",
})}
name="sort"
@@ -224,6 +232,7 @@ export default function FilterAndSortModal({
<p>
{intl.formatMessage(
{
id: "filter.seeResultsCount",
defaultMessage: "See results ({ count })",
},
{
@@ -248,6 +257,7 @@ export default function FilterAndSortModal({
<Typography variant="Body/Paragraph/mdBold">
<p>
{intl.formatMessage({
id: "filter.clearAllFilters",
defaultMessage: "Clear all filters",
})}
</p>

View File

@@ -2,6 +2,7 @@ import { useSearchParams } from "next/navigation"
import { useEffect, useState } from "react"
import { useIntl } from "react-intl"
import Title from "@scandic-hotels/design-system/Title"
import { Typography } from "@scandic-hotels/design-system/Typography"
import {
@@ -115,17 +116,17 @@ export default function FilterContent({
return (
<aside className={`${styles.container} ${className}`}>
<div>
<Typography variant={"Title/xs"} className={styles.filterByTitle}>
<h4>
{intl.formatMessage({
defaultMessage: "Filter by",
})}
</h4>
</Typography>
<Title as="h4">
{intl.formatMessage({
id: "filter.filterBy",
defaultMessage: "Filter by",
})}
</Title>
<div className={styles.facilities}>
<Typography variant="Title/Subtitle/md">
<p>
{intl.formatMessage({
id: "filter.facilities",
defaultMessage: "Hotel facilities",
})}
</p>
@@ -139,6 +140,7 @@ export default function FilterContent({
<Typography variant="Title/Subtitle/md">
<p>
{intl.formatMessage({
id: "filter.hotelSurroundings",
defaultMessage: "Hotel surroundings",
})}
</p>

View File

@@ -15,6 +15,7 @@ export default function HotelCount() {
<span>
{intl.formatMessage(
{
id: "common.numberOfHotels",
defaultMessage: "{amount, plural, one {# hotel} other {# hotels}}",
},
{ amount: resultCount }

View File

@@ -56,25 +56,29 @@ export default function HotelSorter({ discreet }: HotelSorterProps) {
const sortItems: SortItem[] = [
{
label: intl.formatMessage({
id: "filter.distanceToCityCenter",
defaultMessage: "Distance to city center",
}),
value: SortOrder.Distance,
},
{
label: intl.formatMessage({
id: "common.name",
defaultMessage: "Name",
}),
value: SortOrder.Name,
},
{
label: intl.formatMessage({
id: "common.price",
defaultMessage: "Price",
}),
value: SortOrder.Price,
},
{
label: intl.formatMessage({
defaultMessage: "Tripadvisor rating",
id: "common.tripAdvisorRating",
defaultMessage: "TripAdvisor rating",
}),
value: SortOrder.TripAdvisorRating,
},
@@ -85,9 +89,11 @@ export default function HotelSorter({ discreet }: HotelSorterProps) {
items={sortItems}
defaultSelectedKey={searchParams.get("sort") ?? DEFAULT_SORT}
label={intl.formatMessage({
id: "filter.sortBy",
defaultMessage: "Sort by",
})}
aria-label={intl.formatMessage({
id: "filter.sortBy",
defaultMessage: "Sort by",
})}
name="sort"

View File

@@ -20,6 +20,7 @@ export function MapWithButtonWrapper({ children }: React.PropsWithChildren) {
>
<MaterialIcon icon="map" color="CurrentColor" size={20} />
{intl.formatMessage({
id: "destination.seeOnMap",
defaultMessage: "See on map",
})}
</FakeButton>

View File

@@ -45,6 +45,7 @@ export default function MobileMapButtonContainer({
>
<MaterialIcon icon="map" color="CurrentColor" />
{intl.formatMessage({
id: "destination.seeOnMap",
defaultMessage: "See on map",
})}
</Link>

View File

@@ -41,9 +41,11 @@ export default function NoAvailabilityAlert({
<Alert
type={AlertTypeEnum.Info}
heading={intl.formatMessage({
defaultMessage: "No hotels match your filters",
id: "filter.noMatchingHotelsFound",
defaultMessage: "No matching hotels found",
})}
text={intl.formatMessage({
id: "filter.noMatchingHotelsFoundDescription",
defaultMessage:
"It looks like no hotels match your filters. Try adjusting your search to find the perfect stay.",
})}
@@ -54,6 +56,7 @@ export default function NoAvailabilityAlert({
if (bookingCode && isBookingCodeRateNotAvailable && hotelsLength > 0) {
const bookingCodeText = intl.formatMessage(
{
id: "selectHotel.noAvailabilityForBookingCode",
defaultMessage:
"We found no available rooms using this booking code ({bookingCode}). See available rates below.",
},
@@ -63,6 +66,7 @@ export default function NoAvailabilityAlert({
<Alert
type={AlertTypeEnum.Info}
heading={intl.formatMessage({
id: "booking.noAvailability",
defaultMessage: "No availability",
})}
text={bookingCodeText}
@@ -79,14 +83,17 @@ export default function NoAvailabilityAlert({
<Alert
type={AlertTypeEnum.Info}
heading={intl.formatMessage({
id: "booking.noAvailability",
defaultMessage: "No availability",
})}
text={intl.formatMessage({
id: "selectHotel.noAvailability.changeSearchText",
defaultMessage:
"Please try and change your search for this destination or see alternative hotels.",
})}
link={{
title: intl.formatMessage({
id: "booking.seeAlternativeHotels",
defaultMessage: "See alternative hotels",
}),
url: `${alternativeHotels(lang)}?hotel=${operaId}`,
@@ -100,9 +107,11 @@ export default function NoAvailabilityAlert({
<Alert
type={AlertTypeEnum.Info}
heading={intl.formatMessage({
id: "booking.noAvailability",
defaultMessage: "No availability",
})}
text={intl.formatMessage({
id: "booking.noRoomsAvailable",
defaultMessage: "There are no rooms available that match your request.",
})}
/>

View File

@@ -178,6 +178,7 @@ export function SelectHotelMapContent({
<Typography variant="Body/Supporting text (caption)/smBold">
<p>
{intl.formatMessage({
id: "selectHotel.closeMap",
defaultMessage: "Close the map",
})}
</p>
@@ -222,7 +223,12 @@ export function SelectHotelMapContent({
size={20}
/>
<Typography variant="Body/Supporting text (caption)/smBold">
<p>{intl.formatMessage({ defaultMessage: "Back" })}</p>
<p>
{intl.formatMessage({
id: "common.back",
defaultMessage: "Back",
})}
</p>
</Typography>
</Link>
</Button>
@@ -250,6 +256,7 @@ export function SelectHotelMapContent({
position="left"
onClick={scrollToTop}
label={intl.formatMessage({
id: "common.backToTop",
defaultMessage: "Back to top",
})}
/>