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> </Subtitle>
<span> <span>
{intl.formatMessage( {intl.formatMessage(
{ id: "Current Points {points, number}" }, { id: "Current Points: {points, number}" },
{ points: card.currentPoints } { points: card.currentPoints }
)} )}
</span> </span>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -115,6 +115,7 @@
"Credit card": "Kreditkarte", "Credit card": "Kreditkarte",
"Credit card deleted successfully": "Kreditkarte erfolgreich gelöscht", "Credit card deleted successfully": "Kreditkarte erfolgreich gelöscht",
"Crib (child) × {count}": "Kinderbett (Kind) × {count}", "Crib (child) × {count}": "Kinderbett (Kind) × {count}",
"Current Points: {points, number}": "Current Points: {points, number}",
"Current password": "Aktuelles Passwort", "Current password": "Aktuelles Passwort",
"Customer service": "Kundendienst", "Customer service": "Kundendienst",
"Date of Birth": "Geburtsdatum", "Date of Birth": "Geburtsdatum",
@@ -126,7 +127,7 @@
"Discard changes": "Änderungen verwerfen", "Discard changes": "Änderungen verwerfen",
"Discard unsaved changes?": "Nicht gespeicherte Änderungen verwerfen?", "Discard unsaved changes?": "Nicht gespeicherte Änderungen verwerfen?",
"Discover": "Entdecken", "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", "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?", "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", "Done": "Fertig",
@@ -144,6 +145,7 @@
"Enter destination or hotel": "Reiseziel oder Hotel eingeben", "Enter destination or hotel": "Reiseziel oder Hotel eingeben",
"Enter your details": "Geben Sie Ihre Daten ein", "Enter your details": "Geben Sie Ihre Daten ein",
"Events that make an impression": "Events that make an impression", "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", "Expires at the earliest {expirationDate}": "Läuft frühestens am {expirationDate} ab",
"Explore all levels and benefits": "Entdecken Sie alle Levels und Vorteile", "Explore all levels and benefits": "Entdecken Sie alle Levels und Vorteile",
"Explore nearby": "Erkunden Sie die Umgebung", "Explore nearby": "Erkunden Sie die Umgebung",
@@ -245,6 +247,7 @@
"Marketing city": "Marketingstadt", "Marketing city": "Marketingstadt",
"Max {max, plural, one {{range} guest} other {{range} guests}}": "Max {max, plural, one {{range} gast} other {{range} gäste}}", "Max {max, plural, one {{range} guest} other {{range} guests}}": "Max {max, plural, one {{range} gast} other {{range} gäste}}",
"Meetings & Conferences": "Tagungen & Konferenzen", "Meetings & Conferences": "Tagungen & Konferenzen",
"Member Since: {value}": "Member Since: {value}",
"Member price": "Mitgliederpreis", "Member price": "Mitgliederpreis",
"Member price activated": "Mitgliederpreis aktiviert", "Member price activated": "Mitgliederpreis aktiviert",
"Member price from": "Mitgliederpreis ab", "Member price from": "Mitgliederpreis ab",
@@ -292,6 +295,7 @@
"Not found": "Nicht gefunden", "Not found": "Nicht gefunden",
"Number of charging points for electric cars: {number}": "Anzahl der Ladestationen für Elektroautos: {number}", "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 of parking spots: {number}": "Anzahl der Parkplätze: {number}",
"Number: {membershipNumber}": "Number: {membershipNumber}",
"OK": "OK", "OK": "OK",
"OTHER PAYMENT METHODS": "ANDERE BEZAHLMETHODE", "OTHER PAYMENT METHODS": "ANDERE BEZAHLMETHODE",
"On your journey": "Auf deiner Reise", "On your journey": "Auf deiner Reise",
@@ -525,7 +529,7 @@
"thursday": "donnerstag", "thursday": "donnerstag",
"tuesday": "dienstag", "tuesday": "dienstag",
"wednesday": "mittwoch", "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, 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, 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}", "{amount} out of {total}": "{amount} von {total}",
@@ -543,7 +547,7 @@
"{lowest} to {highest} persons": "{lowest} til {highest} personer", "{lowest} to {highest} persons": "{lowest} til {highest} personer",
"{min} to {max} characters": "{min} zu {max} figuren", "{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", "{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", "{pointsAmount, number} points": "{pointsAmount, number} punkte",
"{points} spendable points expiring by {date}": "{points} Einlösbare punkte verfallen bis zum {date}", "{points} spendable points expiring by {date}": "{points} Einlösbare punkte verfallen bis zum {date}",
"{price} {currency}": "{price} {currency}", "{price} {currency}": "{price} {currency}",

View File

@@ -124,6 +124,7 @@
"Credit card": "Credit card", "Credit card": "Credit card",
"Credit card deleted successfully": "Credit card deleted successfully", "Credit card deleted successfully": "Credit card deleted successfully",
"Crib (child) × {count}": "Crib (child) × {count}", "Crib (child) × {count}": "Crib (child) × {count}",
"Current Points: {points, number}": "Current Points: {points, number}",
"Current password": "Current password", "Current password": "Current password",
"Customer service": "Customer service", "Customer service": "Customer service",
"Date of Birth": "Date of Birth", "Date of Birth": "Date of Birth",
@@ -137,7 +138,7 @@
"Discard unsaved changes?": "Discard unsaved changes?", "Discard unsaved changes?": "Discard unsaved changes?",
"Discover": "Discover", "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.", "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", "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é?", "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", "Done": "Done",
@@ -155,6 +156,7 @@
"Enter destination or hotel": "Enter destination or hotel", "Enter destination or hotel": "Enter destination or hotel",
"Enter your details": "Enter your details", "Enter your details": "Enter your details",
"Events that make an impression": "Events that make an impression", "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}", "Expires at the earliest {expirationDate}": "Expires at the earliest {expirationDate}",
"Explore all levels and benefits": "Explore all levels and benefits", "Explore all levels and benefits": "Explore all levels and benefits",
"Explore nearby": "Explore nearby", "Explore nearby": "Explore nearby",
@@ -263,6 +265,7 @@
"Marketing city": "Marketing city", "Marketing city": "Marketing city",
"Max {max, plural, one {{range} guest} other {{range} guests}}": "Max {max, plural, one {{range} guest} other {{range} guests}}", "Max {max, plural, one {{range} guest} other {{range} guests}}": "Max {max, plural, one {{range} guest} other {{range} guests}}",
"Meetings & Conferences": "Meetings & Conferences", "Meetings & Conferences": "Meetings & Conferences",
"Member Since: {value}": "Member Since: {value}",
"Member discount": "Member discount", "Member discount": "Member discount",
"Member price": "Member price", "Member price": "Member price",
"Member price activated": "Member price activated", "Member price activated": "Member price activated",
@@ -316,6 +319,7 @@
"Not found": "Not found", "Not found": "Not found",
"Number of charging points for electric cars: {number}": "Number of charging points for electric cars: {number}", "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 of parking spots: {number}": "Number of parking spots: {number}",
"Number: {membershipNumber}": "Number: {membershipNumber}",
"OK": "OK", "OK": "OK",
"OTHER PAYMENT METHODS": "OTHER PAYMENT METHODS", "OTHER PAYMENT METHODS": "OTHER PAYMENT METHODS",
"On your journey": "On your journey", "On your journey": "On your journey",
@@ -569,7 +573,7 @@
"thursday": "thursday", "thursday": "thursday",
"tuesday": "tuesday", "tuesday": "tuesday",
"wednesday": "wednesday", "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, 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, 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", "{amount} has been paid": "{amount} has been paid",
@@ -588,7 +592,7 @@
"{lowest} to {highest} persons": "{lowest} to {highest} persons", "{lowest} to {highest} persons": "{lowest} to {highest} persons",
"{min} to {max} characters": "{min} to {max} characters", "{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", "{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", "{pointsAmount, number} points": "{pointsAmount, number} points",
"{points} spendable points expiring by {date}": "{points} spendable points expiring by {date}", "{points} spendable points expiring by {date}": "{points} spendable points expiring by {date}",
"{price} {currency}": "{price} {currency}", "{price} {currency}": "{price} {currency}",

View File

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

View File

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

View File

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

View File

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