fix(i18n): prepare for Lokalise

This commit is contained in:
Michael Zetterberg
2025-01-13 16:38:18 +01:00
parent bcae63e3fc
commit dd71ff8fa7
21 changed files with 78 additions and 58 deletions

View File

@@ -39,7 +39,7 @@ export default async function MembershipCardSlot({
</Subtitle>
<span>
{intl.formatMessage(
{ id: "Current Points {points, number}" },
{ id: "Current Points: {points, number}" },
{ points: card.currentPoints }
)}
</span>

View File

@@ -10,23 +10,21 @@ export default function LevelSummary({
}: LevelSummaryProps) {
const intl = useIntl()
let pointsMsg: React.ReactNode = intl.formatMessage(
{ id: "{pointsAmount, number} points" },
{ pointsAmount: level.required_points }
)
if (level.required_nights) {
pointsMsg = intl.formatMessage<React.ReactNode>(
{
id: "{pointsAmount, number} points or {nightsAmount, number} nights",
},
{
pointsAmount: level.required_points,
nightsAmount: level.required_nights,
highlight: (str) => <span className={styles.redText}>{str}</span>,
}
)
}
const pointsMsg: React.ReactNode = level.required_nights
? intl.formatMessage<React.ReactNode>(
{
id: "{pointsAmount, number} points or {nightsAmount, number} nights",
},
{
pointsAmount: level.required_points,
nightsAmount: level.required_nights,
highlight: (str) => <span className={styles.redText}>{str}</span>,
}
)
: intl.formatMessage(
{ id: "{pointsAmount, number} points" },
{ pointsAmount: level.required_points }
)
return (
<div className={styles.levelSummary}>

View File

@@ -57,7 +57,7 @@ export default function StayCard({ stay }: StayCardProps) {
<Caption asChild>
<time dateTime={arrivalDateTime}>{arrivalDate}</time>
</Caption>
{intl.formatMessage({ id: " - " })}
{" - "}
<Caption asChild>
<time dateTime={departDateTime}>{departDate}</time>
</Caption>

View File

@@ -51,7 +51,7 @@ export default async function HotelListingItem({
</div>
<Caption color="uiTextPlaceholder">
{intl.formatMessage(
{ id: "{number} km to city centre" },
{ id: "{number} km to city center" },
{
number: getSingleDecimal(
hotel.location.distanceToCentre / 1000

View File

@@ -25,7 +25,7 @@ export default async function IntroSection({
const { streetAddress, city } = address
const { distanceToCentre } = location
const formattedDistanceText = intl.formatMessage(
{ id: "{number} km to city centre" },
{ id: "{number} km to city center" },
{ number: getSingleDecimal(distanceToCentre / 1000) }
)
const lang = getLang()

View File

@@ -54,7 +54,7 @@ export async function getSeatingText(roomSeating: number[]) {
if (biggestSeating === smallestSeating) {
seatingText = intl.formatMessage(
{ id: "{value} persons" },
{ number: biggestSeating }
{ value: biggestSeating }
)
} else if (smallestSeating != null && biggestSeating) {
{

View File

@@ -138,21 +138,16 @@ function Trigger({
}) {
const intl = useIntl()
const parts = []
parts.push(
const parts = [
intl.formatMessage(
{ id: "{totalRooms, plural, one {# room} other {# rooms}}" },
{ totalRooms: rooms.length }
)
)
parts.push(
),
intl.formatMessage(
{ id: "{totalAdults, plural, one {# adult} other {# adults}}" },
{ totalAdults: rooms.reduce((acc, room) => acc + room.adults, 0) }
)
)
),
]
if (rooms.some((room) => room.childrenInRoom.length > 0)) {
parts.push(

View File

@@ -160,7 +160,7 @@ export default function Receipt({
{intl.formatMessage(
{ id: "Approx. {value}" },
{
value: "N/A EUR",
value: "N/A",
}
)}
</Caption>

View File

@@ -38,7 +38,7 @@ export default async function HotelHeader({ hotelData }: HotelHeaderProps) {
<Caption color="white"></Caption>
<Caption color="white">
{intl.formatMessage(
{ id: "{number} km to city centre" },
{ id: "{number} km to city center" },
{
number: getSingleDecimal(
hotel.location.distanceToCentre / 1000

View File

@@ -122,7 +122,7 @@ function HotelCard({
</div>
<Caption color="uiTextPlaceholder">
{intl.formatMessage(
{ id: "{number} km to city centre" },
{ id: "{number} km to city center" },
{
number: getSingleDecimal(
hotelData.location.distanceToCentre / 1000

View File

@@ -48,7 +48,7 @@ export default function FilterAndSortModal({
const sortItems: SortItem[] = [
{
label: intl.formatMessage({ id: "Distance to city centre" }),
label: intl.formatMessage({ id: "Distance to city center" }),
value: SortOrder.Distance,
},
{ label: intl.formatMessage({ id: "Name" }), value: SortOrder.Name },

View File

@@ -39,7 +39,7 @@ export default function HotelSorter({ discreet }: HotelSorterProps) {
)
const sortItems: SortItem[] = [
{
label: intl.formatMessage({ id: "Distance to city centre" }),
label: intl.formatMessage({ id: "Distance to city center" }),
value: SortOrder.Distance,
},
{ label: intl.formatMessage({ id: "Name" }), value: SortOrder.Name },

View File

@@ -72,12 +72,12 @@ export default async function HotelInfoCard({
<Caption color="uiTextMediumContrast">
{intl.formatMessage(
{
id: "{address}, {city} ∙ {distanceToCityCentreInKm} km to city center",
id: "{address}, {city} ∙ {distanceToCityCenterInKm} km to city center",
},
{
address: hotelAttributes.address.streetAddress,
city: hotelAttributes.address.city,
distanceToCityCentreInKm: getSingleDecimal(
distanceToCityCenterInKm: getSingleDecimal(
hotelAttributes.location.distanceToCentre / 1000
),
}

View File

@@ -115,6 +115,7 @@
"Credit card": "Kreditkort",
"Credit card deleted successfully": "Kreditkort blev slettet",
"Crib (child) × {count}": "Kørestol (barn) × {count}",
"Current Points: {points, number}": "Current Points: {points, number}",
"Current password": "Nuværende kodeord",
"Customer service": "Kundeservice",
"Date of Birth": "Fødselsdato",
@@ -126,7 +127,7 @@
"Discard changes": "Kassér ændringer",
"Discard unsaved changes?": "Slette ændringer, der ikke er gemt?",
"Discover": "Opdag",
"Distance to city centre": "Afstand til centrum",
"Distance to city center": "Afstand til centrum",
"Distance to hotel: {distanceInM} m": "Afstand til hotel: {distance} m",
"Do you want to start the day with Scandics famous breakfast buffé?": "Vil du starte dagen med Scandics berømte morgenbuffet?",
"Done": "Færdig",
@@ -144,6 +145,7 @@
"Enter destination or hotel": "Indtast destination eller hotel",
"Enter your details": "Indtast dine oplysninger",
"Events that make an impression": "Events that make an impression",
"Expiration Date: {expirationDate}": "Expiration Date: {expirationDate}",
"Expires at the earliest {expirationDate}": "Udløber tidligst {expirationDate}",
"Explore all levels and benefits": "Udforsk alle niveauer og fordele",
"Explore nearby": "Udforsk i nærheden",
@@ -245,6 +247,7 @@
"Marketing city": "Marketing by",
"Max {max, plural, one {{range} guest} other {{range} guests}}": "Maks {max, plural, one {{range} gæst} other {{range} gæster}}",
"Meetings & Conferences": "Møder & Konferencer",
"Member Since: {value}": "Member Since: {value}",
"Member price": "Medlemspris",
"Member price activated": "Medlemspris aktiveret",
"Member price from": "Medlemspris fra",
@@ -293,6 +296,7 @@
"Not found": "Ikke fundet",
"Number of charging points for electric cars: {number}": "Antal ladepunkter til elbiler: {number}",
"Number of parking spots: {number}": "Antal parkeringspladser: {number}",
"Number: {membershipNumber}": "Number: {membershipNumber}",
"OK": "OK",
"OTHER PAYMENT METHODS": "ANDRE BETALINGSMETODER",
"On your journey": "På din rejse",
@@ -526,7 +530,7 @@
"thursday": "torsdag",
"tuesday": "tirsdag",
"wednesday": "onsdag",
"{address}, {city} ∙ {distanceToCityCentreInKm} km to city center": "{address}, {city} ∙ {distanceToCityCentreInKm} km til byens centrum",
"{address}, {city} ∙ {distanceToCityCenterInKm} km to city center": "{address}, {city} ∙ {distanceToCityCenterInKm} km til byens centrum",
"{amount, number} left": "{amount, number} tilbage",
"{amount, plural, one {Gift} other {Gifts}} added to your benefits": "{amount, plural, one {Gave} other {Gaver}} tilføjet til dine fordele",
"{amount} out of {total}": "{amount} ud af {total}",
@@ -544,7 +548,7 @@
"{lowest} to {highest} persons": "{lowest} bis {highest} Personen",
"{min} to {max} characters": "{min} til {max} tegn",
"{numberOfRooms, plural, one {# room type} other {# room types}} available": "{numberOfRooms, plural, one {# room type} other {# room types}} tilgængelig",
"{number} km to city centre": "{number} km til centrum",
"{number} km to city center": "{number} km til centrum",
"{pointsAmount, number} points": "{pointsAmount, number} point",
"{points} spendable points expiring by {date}": "{points} Brugbare point udløber den {date}",
"{price} {currency}": "{price} {currency}",

View File

@@ -115,6 +115,7 @@
"Credit card": "Kreditkarte",
"Credit card deleted successfully": "Kreditkarte erfolgreich gelöscht",
"Crib (child) × {count}": "Kinderbett (Kind) × {count}",
"Current Points: {points, number}": "Current Points: {points, number}",
"Current password": "Aktuelles Passwort",
"Customer service": "Kundendienst",
"Date of Birth": "Geburtsdatum",
@@ -126,7 +127,7 @@
"Discard changes": "Änderungen verwerfen",
"Discard unsaved changes?": "Nicht gespeicherte Änderungen verwerfen?",
"Discover": "Entdecken",
"Distance to city centre": "Entfernung zum Stadtzentrum",
"Distance to city center": "Entfernung zum Stadtzentrum",
"Distance to hotel: {distanceInM} m": "Entfernung zum Hotel: {distance} m",
"Do you want to start the day with Scandics famous breakfast buffé?": "Möchten Sie den Tag mit Scandics berühmtem Frühstücksbuffet beginnen?",
"Done": "Fertig",
@@ -144,6 +145,7 @@
"Enter destination or hotel": "Reiseziel oder Hotel eingeben",
"Enter your details": "Geben Sie Ihre Daten ein",
"Events that make an impression": "Events that make an impression",
"Expiration Date: {expirationDate}": "Expiration Date: {expirationDate}",
"Expires at the earliest {expirationDate}": "Läuft frühestens am {expirationDate} ab",
"Explore all levels and benefits": "Entdecken Sie alle Levels und Vorteile",
"Explore nearby": "Erkunden Sie die Umgebung",
@@ -245,6 +247,7 @@
"Marketing city": "Marketingstadt",
"Max {max, plural, one {{range} guest} other {{range} guests}}": "Max {max, plural, one {{range} gast} other {{range} gäste}}",
"Meetings & Conferences": "Tagungen & Konferenzen",
"Member Since: {value}": "Member Since: {value}",
"Member price": "Mitgliederpreis",
"Member price activated": "Mitgliederpreis aktiviert",
"Member price from": "Mitgliederpreis ab",
@@ -292,6 +295,7 @@
"Not found": "Nicht gefunden",
"Number of charging points for electric cars: {number}": "Anzahl der Ladestationen für Elektroautos: {number}",
"Number of parking spots: {number}": "Anzahl der Parkplätze: {number}",
"Number: {membershipNumber}": "Number: {membershipNumber}",
"OK": "OK",
"OTHER PAYMENT METHODS": "ANDERE BEZAHLMETHODE",
"On your journey": "Auf deiner Reise",
@@ -525,7 +529,7 @@
"thursday": "donnerstag",
"tuesday": "dienstag",
"wednesday": "mittwoch",
"{address}, {city} ∙ {distanceToCityCentreInKm} km to city center": "{address}, {city} ∙ {distanceToCityCentreInKm} km bis zum Stadtzentrum",
"{address}, {city} ∙ {distanceToCityCenterInKm} km to city center": "{address}, {city} ∙ {distanceToCityCenterInKm} km bis zum Stadtzentrum",
"{amount, number} left": "{amount, number} übrig",
"{amount, plural, one {Gift} other {Gifts}} added to your benefits": "{amount, plural, one {Geschenk zu Ihren Vorteilen hinzugefügt} other {Geschenke, die zu Ihren Vorteilen hinzugefügt werden}}",
"{amount} out of {total}": "{amount} von {total}",
@@ -543,7 +547,7 @@
"{lowest} to {highest} persons": "{lowest} til {highest} personer",
"{min} to {max} characters": "{min} zu {max} figuren",
"{numberOfRooms, plural, one {# room type} other {# room types}} available": "{numberOfRooms, plural, one {# room type} other {# room types}} verfügbar",
"{number} km to city centre": "{number} km zum Stadtzentrum",
"{number} km to city center": "{number} km zum Stadtzentrum",
"{pointsAmount, number} points": "{pointsAmount, number} punkte",
"{points} spendable points expiring by {date}": "{points} Einlösbare punkte verfallen bis zum {date}",
"{price} {currency}": "{price} {currency}",

View File

@@ -124,6 +124,7 @@
"Credit card": "Credit card",
"Credit card deleted successfully": "Credit card deleted successfully",
"Crib (child) × {count}": "Crib (child) × {count}",
"Current Points: {points, number}": "Current Points: {points, number}",
"Current password": "Current password",
"Customer service": "Customer service",
"Date of Birth": "Date of Birth",
@@ -137,7 +138,7 @@
"Discard unsaved changes?": "Discard unsaved changes?",
"Discover": "Discover",
"Discover the little extra touches to make your upcoming stay even more unforgettable.": "Discover the little extra touches to make your upcoming stay even more unforgettable.",
"Distance to city centre": "Distance to city centre",
"Distance to city center": "Distance to city center",
"Distance to hotel: {distanceInM} m": "Distance to hotel: {distanceInM} m",
"Do you want to start the day with Scandics famous breakfast buffé?": "Do you want to start the day with Scandics famous breakfast buffé?",
"Done": "Done",
@@ -155,6 +156,7 @@
"Enter destination or hotel": "Enter destination or hotel",
"Enter your details": "Enter your details",
"Events that make an impression": "Events that make an impression",
"Expiration Date: {expirationDate}": "Expiration Date: {expirationDate}",
"Expires at the earliest {expirationDate}": "Expires at the earliest {expirationDate}",
"Explore all levels and benefits": "Explore all levels and benefits",
"Explore nearby": "Explore nearby",
@@ -263,6 +265,7 @@
"Marketing city": "Marketing city",
"Max {max, plural, one {{range} guest} other {{range} guests}}": "Max {max, plural, one {{range} guest} other {{range} guests}}",
"Meetings & Conferences": "Meetings & Conferences",
"Member Since: {value}": "Member Since: {value}",
"Member discount": "Member discount",
"Member price": "Member price",
"Member price activated": "Member price activated",
@@ -316,6 +319,7 @@
"Not found": "Not found",
"Number of charging points for electric cars: {number}": "Number of charging points for electric cars: {number}",
"Number of parking spots: {number}": "Number of parking spots: {number}",
"Number: {membershipNumber}": "Number: {membershipNumber}",
"OK": "OK",
"OTHER PAYMENT METHODS": "OTHER PAYMENT METHODS",
"On your journey": "On your journey",
@@ -569,7 +573,7 @@
"thursday": "thursday",
"tuesday": "tuesday",
"wednesday": "wednesday",
"{address}, {city} ∙ {distanceToCityCentreInKm} km to city center": "{address}, {city} ∙ {distanceToCityCentreInKm} km to city center",
"{address}, {city} ∙ {distanceToCityCenterInKm} km to city center": "{address}, {city} ∙ {distanceToCityCenterInKm} km to city center",
"{amount, number} left": "{amount, number} left",
"{amount, plural, one {Gift} other {Gifts}} added to your benefits": "{amount, plural, one {Gift} other {Gifts}} added to your benefits",
"{amount} has been paid": "{amount} has been paid",
@@ -588,7 +592,7 @@
"{lowest} to {highest} persons": "{lowest} to {highest} persons",
"{min} to {max} characters": "{min} to {max} characters",
"{numberOfRooms, plural, one {# room type} other {# room types}} available": "{numberOfRooms, plural, one {# room type} other {# room types}} available",
"{number} km to city centre": "{number} km to city centre",
"{number} km to city center": "{number} km to city center",
"{pointsAmount, number} points": "{pointsAmount, number} points",
"{points} spendable points expiring by {date}": "{points} spendable points expiring by {date}",
"{price} {currency}": "{price} {currency}",

View File

@@ -115,6 +115,7 @@
"Credit card": "Luottokortti",
"Credit card deleted successfully": "Luottokortti poistettu onnistuneesti",
"Crib (child) × {count}": "Körkkä (lasta) × {count}",
"Current Points: {points, number}": "Current Points: {points, number}",
"Current password": "Nykyinen salasana",
"Customer service": "Asiakaspalvelu",
"Date of Birth": "Syntymäaika",
@@ -126,7 +127,7 @@
"Discard changes": "Hylkää muutokset",
"Discard unsaved changes?": "Hylkäätkö tallentamattomat muutokset?",
"Discover": "Löydä",
"Distance to city centre": "Etäisyys kaupungin keskustaan",
"Distance to city center": "Etäisyys kaupungin keskustaan",
"Distance to hotel: {distanceInM} m": "Etäisyys hotelliin: {distance} m",
"Do you want to start the day with Scandics famous breakfast buffé?": "Haluatko aloittaa päiväsi Scandicsin kuuluisalla aamiaisbuffella?",
"Done": "Valmis",
@@ -144,6 +145,7 @@
"Enter destination or hotel": "Anna kohde tai hotelli",
"Enter your details": "Anna tietosi",
"Events that make an impression": "Events that make an impression",
"Expiration Date: {expirationDate}": "Expiration Date: {expirationDate}",
"Expires at the earliest {expirationDate}": "Päättyy aikaisintaan {expirationDate}",
"Explore all levels and benefits": "Tutustu kaikkiin tasoihin ja etuihin",
"Explore nearby": "Tutustu lähialueeseen",
@@ -245,6 +247,7 @@
"Marketing city": "Markkinointikaupunki",
"Max {max, plural, one {{range} guest} other {{range} guests}}": "Max {max, plural, one {{range} vieras} other {{range} vieraita}}",
"Meetings & Conferences": "Kokoukset & Konferenssit",
"Member Since: {value}": "Member Since: {value}",
"Member price": "Jäsenhinta",
"Member price activated": "Jäsenhinta aktivoitu",
"Member price from": "Jäsenhinta alkaen",
@@ -293,6 +296,7 @@
"Not found": "Ei löydetty",
"Number of charging points for electric cars: {number}": "Sähköautojen latauspisteiden määrä: {number}",
"Number of parking spots: {number}": "Pysäköintipaikkojen määrä: {number}",
"Number: {membershipNumber}": "Number: {membershipNumber}",
"OK": "OK",
"OTHER PAYMENT METHODS": "MUISE KORT",
"On your journey": "Matkallasi",
@@ -523,7 +527,7 @@
"thursday": "torstai",
"tuesday": "tiistai",
"wednesday": "keskiviikko",
"{address}, {city} ∙ {distanceToCityCentreInKm} km to city center": "{address}, {city} ∙ {distanceToCityCentreInKm} km keskustaan",
"{address}, {city} ∙ {distanceToCityCenterInKm} km to city center": "{address}, {city} ∙ {distanceToCityCenterInKm} km keskustaan",
"{amount, number} left": "{amount, number} jäljellä",
"{amount, plural, one {Gift} other {Gifts}} added to your benefits": "{amount, plural, one {Lahja} other {Lahjat}} lisätty etuusi",
"{amount} out of {total}": "{amount}/{total}",
@@ -541,7 +545,7 @@
"{lowest} to {highest} persons": "{lowest} - {highest} henkilöä",
"{min} to {max} characters": "{min} to {max} hahmoja",
"{numberOfRooms, plural, one {# room type} other {# room types}} available": "{numberOfRooms, plural, one {# room type} other {# room types}} saatavilla",
"{number} km to city centre": "{number} km Etäisyys kaupunkiin",
"{number} km to city center": "{number} km Etäisyys kaupunkiin",
"{pointsAmount, number} points": "{pointsAmount, number} pistettä",
"{points} spendable points expiring by {date}": "{points} pistettä vanhenee {date} mennessä",
"{price} {currency}": "{price} {currency}",

View File

@@ -114,6 +114,7 @@
"Creative spaces for meetings": "Kreative rom for møter",
"Credit card deleted successfully": "Kredittkort slettet",
"Crib (child) × {count}": "Kørestol (barn) × {count}",
"Current Points: {points, number}": "Current Points: {points, number}",
"Current password": "Nåværende passord",
"Customer service": "Kundeservice",
"Date of Birth": "Fødselsdato",
@@ -125,7 +126,7 @@
"Discard changes": "Forkaste endringer",
"Discard unsaved changes?": "Forkaste endringer som ikke er lagret?",
"Discover": "Oppdag",
"Distance to city centre": "Avstand til sentrum",
"Distance to city center": "Avstand til sentrum",
"Distance to hotel: {distanceInM} m": "Avstand til hotell: {distance} m",
"Do you want to start the day with Scandics famous breakfast buffé?": "Vil du starte dagen med Scandics berømte frokostbuffé?",
"Done": "Ferdig",
@@ -143,6 +144,7 @@
"Enter destination or hotel": "Skriv inn destinasjon eller hotell",
"Enter your details": "Skriv inn detaljene dine",
"Events that make an impression": "Events that make an impression",
"Expiration Date: {expirationDate}": "Expiration Date: {expirationDate}",
"Expires at the earliest {expirationDate}": "Utløper tidligst {expirationDate}",
"Explore all levels and benefits": "Utforsk alle nivåer og fordeler",
"Explore nearby": "Utforsk i nærheten",
@@ -244,6 +246,7 @@
"Marketing city": "Markedsføringsby",
"Max {max, plural, one {{range} guest} other {{range} guests}}": "Maks {max, plural, one {{range} gjest} other {{range} gjester}}",
"Meetings & Conferences": "Møter & Konferanser",
"Member Since: {value}": "Member Since: {value}",
"Member price": "Medlemspris",
"Member price activated": "Medlemspris aktivert",
"Member price from": "Medlemspris fra",
@@ -292,6 +295,7 @@
"Not found": "Ikke funnet",
"Number of charging points for electric cars: {number}": "Antall ladepunkter for elbiler: {number}",
"Number of parking spots: {number}": "Antall parkeringsplasser: {number}",
"Number: {membershipNumber}": "Number: {membershipNumber}",
"OK": "OK",
"OTHER PAYMENT METHODS": "ANDRE BETALINGSMETODER",
"On your journey": "På reisen din",
@@ -524,7 +528,7 @@
"thursday": "torsdag",
"tuesday": "tirsdag",
"wednesday": "onsdag",
"{address}, {city} ∙ {distanceToCityCentreInKm} km to city center": "{address}, {city} ∙ {distanceToCityCentreInKm} km til sentrum",
"{address}, {city} ∙ {distanceToCityCenterInKm} km to city center": "{address}, {city} ∙ {distanceToCityCenterInKm} km til sentrum",
"{amount, number} left": "{amount, number} igjen",
"{amount, plural, one {Gift} other {Gifts}} added to your benefits": "{amount, plural, one {Gave} other {Gaver}} lagt til fordelene dine",
"{amount} out of {total}": "{amount} av {total}",
@@ -542,7 +546,7 @@
"{lowest} to {highest} persons": "{lowest} til {highest} personer",
"{min} to {max} characters": "{min} til {max} tegn",
"{numberOfRooms, plural, one {# room type} other {# room types}} available": "{numberOfRooms, plural, one {# room type} other {# room types}} tilgjengelig",
"{number} km to city centre": "{number} km til sentrum",
"{number} km to city center": "{number} km til sentrum",
"{pointsAmount, number} points": "{pointsAmount, number} poeng",
"{points} spendable points expiring by {date}": "{points} Brukbare poeng utløper innen {date}",
"{price} {currency}": "{price} {currency}",

View File

@@ -114,6 +114,7 @@
"Creative spaces for meetings": "Kreativa utrymmen för möten",
"Credit card deleted successfully": "Kreditkort har tagits bort",
"Crib (child) × {count}": "Spjälsäng (barn) × {count}",
"Current Points: {points, number}": "Current Points: {points, number}",
"Current password": "Nuvarande lösenord",
"Customer service": "Kundservice",
"Date of Birth": "Födelsedatum",
@@ -125,7 +126,7 @@
"Discard changes": "Ignorera ändringar",
"Discard unsaved changes?": "Vill du ignorera ändringar som inte har sparats?",
"Discover": "Upptäck",
"Distance to city centre": "Avstånd till centrum",
"Distance to city center": "Avstånd till centrum",
"Distance to hotel: {distanceInM} m": "Avstånd till hotell: {distance} m",
"Do you want to start the day with Scandics famous breakfast buffé?": "Vill du starta dagen med Scandics berömda frukostbuffé?",
"Done": "Klar",
@@ -143,6 +144,7 @@
"Enter destination or hotel": "Ange destination eller hotell",
"Enter your details": "Ange dina uppgifter",
"Events that make an impression": "Events that make an impression",
"Expiration Date: {expirationDate}": "Expiration Date: {expirationDate}",
"Expires at the earliest {expirationDate}": "Löper ut tidigast {expirationDate}",
"Explore all levels and benefits": "Utforska alla nivåer och fördelar",
"Explore nearby": "Utforska i närheten",
@@ -244,6 +246,7 @@
"Marketing city": "Marknadsföringsstad",
"Max {max, plural, one {{range} guest} other {{range} guests}}": "Max {max, plural, one {{range} gäst} other {{range} gäster}}",
"Meetings & Conferences": "Möten & Konferenser",
"Member Since: {value}": "Member Since: {value}",
"Member price": "Medlemspris",
"Member price activated": "Medlemspris aktiverat",
"Member price from": "Medlemspris från",
@@ -292,6 +295,7 @@
"Not found": "Hittades inte",
"Number of charging points for electric cars: {number}": "Antal laddplatser för elbilar: {number}",
"Number of parking spots: {number}": "Antal parkeringsplatser: {number}",
"Number: {membershipNumber}": "Number: {membershipNumber}",
"OK": "OK",
"OTHER PAYMENT METHODS": "ANDRE BETALINGSMETODER",
"On your journey": "På din resa",
@@ -526,7 +530,7 @@
"type": "typ",
"types": "typer",
"wednesday": "onsdag",
"{address}, {city} ∙ {distanceToCityCentreInKm} km to city center": "{address}, {city} ∙ {distanceToCityCentreInKm} km till stadens centrum",
"{address}, {city} ∙ {distanceToCityCenterInKm} km to city center": "{address}, {city} ∙ {distanceToCityCenterInKm} km till stadens centrum",
"{amount, number} left": "{amount, number} kvar",
"{amount, plural, one {Gift} other {Gifts}} added to your benefits": "{amount, plural, one {Gåva} other {Gåvor}} läggs till dina förmåner",
"{amount} out of {total}": "{amount} av {total}",
@@ -544,7 +548,7 @@
"{lowest} to {highest} persons": "{lowest} till {highest} personer",
"{min} to {max} characters": "{min} till {max} tecken",
"{numberOfRooms, plural, one {# room type} other {# room types}} available": "{numberOfRooms, plural, one {# room type} other {# room types}} tillgängliga",
"{number} km to city centre": "{number} km till centrum",
"{number} km to city center": "{number} km till centrum",
"{pointsAmount, number} points": "{pointsAmount, number} poäng",
"{points} spendable points expiring by {date}": "{points} poäng förfaller {date}",
"{price} {currency}": "{price} {currency}",

View File

@@ -142,6 +142,8 @@ This was inspired by [server-only-context](https://github.com/manvalls/server-on
The id and the message need to be the same in all the dictionaries.
This prepares for a future codemod that will transform the ids into default messages.
❌ Do not do this:
```typescript
@@ -172,7 +174,7 @@ This was inspired by [server-only-context](https://github.com/manvalls/server-on
- **Add translations to all local JSON dictionaries.**
Even if the message is untranslated when adding it. Even if the id is used as a fallback when a translation is mising, the fallback does not get interpolated.
Even if the message is untranslated when adding it. Even if the id is used as a fallback when a translation is missing, the fallback does not get interpolated.
❌ Do not do this:

View File

@@ -152,7 +152,8 @@ export const getLoyaltyLevel = cache(
}
getByLevelLoyaltyLevelSuccessCounter.add(1)
return validatedLoyaltyLevels.data[0] as LoyaltyLevel
const result: LoyaltyLevel = validatedLoyaltyLevels.data[0]
return result
}
)