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

@@ -21,6 +21,7 @@ export default function ClaimPoints() {
<Typography variant="Body/Supporting text (caption)/smRegular">
<p>
{intl.formatMessage({
id: "points.claimPoints.missingPreviousStay",
defaultMessage: "Missing a previous stay?",
})}
</p>
@@ -32,7 +33,10 @@ export default function ClaimPoints() {
size="Small"
typography="Body/Supporting text (caption)/smBold"
>
{intl.formatMessage({ defaultMessage: "Claim points" })}
{intl.formatMessage({
id: "points.claimPoints.cta",
defaultMessage: "Claim points",
})}
<MaterialIcon icon="open_in_new" size={20} color="CurrentColor" />
</ButtonLink>
</div>

View File

@@ -36,6 +36,7 @@ export default function AwardPoints({
{isCalculated
? intl.formatNumber(awardPoints)
: intl.formatMessage({
id: "earnAndBurn.awardPoints.pointsBeingCalculated",
defaultMessage: "Points being calculated",
})}
</span>

View File

@@ -25,6 +25,7 @@ export default function Row({ transaction }: RowProps) {
const nightsMsg = intl.formatMessage(
{
id: "booking.numberOfNights",
defaultMessage: "{totalNights, plural, one {# night} other {# nights}}",
},
{
@@ -34,7 +35,10 @@ export default function Row({ transaction }: RowProps) {
let description =
transaction.confirmationNumber === "non-transactional" &&
transaction.nights === 0
? intl.formatMessage({ defaultMessage: "Points activity" })
? intl.formatMessage({
id: "earnAndBurn.journeyTable.pointsActivity",
defaultMessage: "Points activity",
})
: transaction.hotelName && transaction.city
? `${transaction.hotelName}, ${transaction.city} ${nightsMsg}`
: `${nightsMsg}`
@@ -44,37 +48,44 @@ export default function Row({ transaction }: RowProps) {
case Transactions.rewardType.stayAdj:
if (transaction.hotelId === "ORS") {
description = intl.formatMessage({
id: "earnAndBurn.journeyTable.formerScandicHotel",
defaultMessage: "Former Scandic Hotel",
})
}
if (transaction.confirmationNumber === "BALFWD") {
description = intl.formatMessage({
id: "earnAndBurn.journeyTable.pointsEarnedPriorMay2021",
defaultMessage: "Points earned prior to May 1, 2021",
})
}
break
case Transactions.rewardType.ancillary:
description = intl.formatMessage({
id: "earnAndBurn.journeyTable.extrasToBooking",
defaultMessage: "Extras to your booking",
})
break
case Transactions.rewardType.enrollment:
description = intl.formatMessage({
id: "earnAndBurn.journeyTable.signUpBonus",
defaultMessage: "Sign up bonus",
})
break
case Transactions.rewardType.mastercard_points:
description = intl.formatMessage({
id: "earnAndBurn.journeyTable.scandicFriendsMastercard",
defaultMessage: "Scandic Friends Mastercard",
})
break
case Transactions.rewardType.tui_points:
description = intl.formatMessage({
id: "earnAndBurn.journeyTable.tuiPoints",
defaultMessage: "TUI Points",
})
case Transactions.rewardType.pointShop:
description = intl.formatMessage({
id: "earnAndBurn.journeyTable.pointShop",
defaultMessage: "Scandic Friends Point Shop",
})
break

View File

@@ -16,15 +16,19 @@ export default function ClientTable({ transactions }: ClientTableProps) {
const tableHeadings = [
intl.formatMessage({
id: "common.points",
defaultMessage: "Points",
}),
intl.formatMessage({
id: "earnAndBurn.journeyTable.description",
defaultMessage: "Description",
}),
intl.formatMessage({
id: "earnAndBurn.journeyTable.bookingNumberReference",
defaultMessage: "Booking number / Reference",
}),
intl.formatMessage({
id: "earnAndBurn.journeyTable.date",
defaultMessage: "Date",
}),
]
@@ -55,6 +59,7 @@ export default function ClientTable({ transactions }: ClientTableProps) {
<Table.TR className={styles.placeholder}>
<Table.TD colSpan={tableHeadings.length}>
{intl.formatMessage({
id: "earnAndBurn.journeyTable.noTransactions",
defaultMessage: "No transactions available",
})}
</Table.TD>

View File

@@ -22,10 +22,9 @@ export default function ExpiringPointsTable({
const expiration = dt(expirationDate).locale(lang).format("DD MMM YYYY")
const tableHeadings = [
intl.formatMessage({ id: "common.points", defaultMessage: "Points" }),
intl.formatMessage({
defaultMessage: "Points",
}),
intl.formatMessage({
id: "points.expiringPointsTable.expirationDate",
defaultMessage: "Expiration Date",
}),
]

View File

@@ -32,11 +32,14 @@ export default function ExpiringPointsSeeAllButton({
typography="Body/Paragraph/mdBold"
onPress={() => setIsOpen(true)}
>
{intl.formatMessage({ defaultMessage: "See all" })}
{intl.formatMessage({ id: "common.seeAll", defaultMessage: "See all" })}
<MaterialIcon icon="chevron_right" color="CurrentColor" />
</Button>
<SidePeekSelfControlled
title={intl.formatMessage({ defaultMessage: "Expiring points" })}
title={intl.formatMessage({
id: "points.pointsToSpendCard.expiringPointsTitle",
defaultMessage: "Expiring points",
})}
isOpen={isOpen}
onClose={() => setIsOpen(false)}
>
@@ -44,6 +47,7 @@ export default function ExpiringPointsSeeAllButton({
<Typography variant="Body/Paragraph/mdRegular">
<p>
{intl.formatMessage({
id: "points.pointsToSpendCard.expiringPointsInfo",
defaultMessage:
"Points expire three years after they are earned, on the last day of that month. Expiring points do not affect your level.",
})}

View File

@@ -38,6 +38,7 @@
.pointsLabel {
color: var(--Text-Brand-OnPrimary-1-Heading);
text-transform: capitalize;
}
.description {

View File

@@ -52,6 +52,7 @@ export default async function PointsToSpendCard({
<Typography variant="Title/xs">
<h2 id="points-to-spend-card-title" className={styles.title}>
{intl.formatMessage({
id: "common.pointsToSpend",
defaultMessage: "Points to spend",
})}
</h2>
@@ -66,6 +67,7 @@ export default async function PointsToSpendCard({
<Typography variant="Title/Overline/sm">
<span className={styles.pointsLabel}>
{intl.formatMessage({
id: "common.points",
defaultMessage: "Points",
})}
</span>
@@ -75,6 +77,7 @@ export default async function PointsToSpendCard({
{hasPointsToSpend && (
<ButtonLink href={spendPoints[lang]} target="_blank" variant="Text">
{intl.formatMessage({
id: "points.pointsToSpendCard.howToSpendCta",
defaultMessage: "How to spend points",
})}
<MaterialIcon
@@ -91,6 +94,7 @@ export default async function PointsToSpendCard({
<Typography variant="Body/Paragraph/mdRegular">
<p className={styles.descriptionText}>
{intl.formatMessage({
id: "points.pointsToSpendCard.description",
defaultMessage:
"Earn points by staying at Scandic. Turn your points into free nights and memorable experiences.",
})}
@@ -108,6 +112,7 @@ export default async function PointsToSpendCard({
<p className={styles.expiringPoints}>
{intl.formatMessage(
{
id: "points.pointsToSpendCard.expiringPointsText",
defaultMessage: "{expiringPoints} points expiring",
},
{

View File

@@ -24,6 +24,7 @@ export function getExpiryLabel(
if (daysUntilExpiry <= DAYS_UNTIL_EXPIRY_WARNING) {
return intl.formatMessage(
{
id: "points.pointsToSpendCard.inDays",
defaultMessage: "In {days} days",
},
{
@@ -33,6 +34,7 @@ export function getExpiryLabel(
} else {
return intl.formatMessage(
{
id: "points.pointsToSpendCard.onDate",
defaultMessage: "on {expiryDate}",
},
{