Merged in feat/syncDefaultMessage (pull request #3022)

Sync defaultMessage from lokalise

* Enhance translation sync functionality and tests

- Added logging for found component files during sync.
- Introduced tests for handling complex components with replacements.
- Updated regex in syncIntlFormatMessage to support optional second arguments.
- Removed unused test files.

* feat(syncDefaultMessage): add script for syncing default message with lokalise

* feat(syncDefaultMessage): add script for syncing default message with lokalise


Approved-by: Matilda Landström
This commit is contained in:
Joakim Jäderberg
2025-10-30 08:38:50 +00:00
parent 3962ecd858
commit bf6ed7778e
48 changed files with 316 additions and 197 deletions

View File

@@ -2,11 +2,14 @@ import styles from "./page.module.css"
import type { LangParams, LayoutArgs, StatusParams } from "@/types/params"
export default async function MiddlewareError(props: LayoutArgs<LangParams & StatusParams>) {
const params = await props.params;
export default async function MiddlewareError(
props: LayoutArgs<LangParams & StatusParams>
) {
const params = await props.params
return (
// eslint-disable-next-line formatjs/no-literal-string-in-jsx
<div className={styles.layout}>Middleware error {params.lang} {params.status}
<div className={styles.layout}>
Middleware error {params.lang} {params.status}
</div>
);
)
}

View File

@@ -6,8 +6,10 @@ import { Receipt } from "@/components/HotelReservation/MyStay/Receipt"
import type { LangParams, PageArgs } from "@/types/params"
export default async function ReceiptPage(props: PageArgs<LangParams, { RefId?: string }>) {
const searchParams = await props.searchParams;
export default async function ReceiptPage(
props: PageArgs<LangParams, { RefId?: string }>
) {
const searchParams = await props.searchParams
if (!searchParams.RefId) {
notFound()
}

View File

@@ -54,7 +54,7 @@ export default async function CampaignHotelListing({
{
label: intl.formatMessage({
id: "common.tripAdvisorRating",
defaultMessage: "TripAdvisor rating",
defaultMessage: "Tripadvisor rating",
}),
value: HotelSortOption.TripAdvisorRating,
},

View File

@@ -37,7 +37,7 @@ export default function Row({ transaction }: RowProps) {
transaction.nights === 0
? intl.formatMessage({
id: "earnAndBurn.journeyTable.pointsActivity",
defaultMessage: "Points activity",
defaultMessage: "Point activity",
})
: transaction.hotelName && transaction.city
? `${transaction.hotelName}, ${transaction.city} ${nightsMsg}`

View File

@@ -85,7 +85,7 @@ export default async function DestinationCityPage({
{
label: intl.formatMessage({
id: "common.tripAdvisorRating",
defaultMessage: "TripAdvisor rating",
defaultMessage: "Tripadvisor rating",
}),
value: HotelSortOption.TripAdvisorRating,
},

View File

@@ -235,7 +235,7 @@ export default function GuestDetails({
<span>
{intl.formatMessage({
id: "myStay.guestDetails.modifyGuestDetails",
defaultMessage: "Modify guest details",
defaultMessage: "Edit guest details",
})}
</span>
</Typography>
@@ -265,7 +265,7 @@ export default function GuestDetails({
<span>
{intl.formatMessage({
id: "myStay.guestDetails.modifyGuestDetails",
defaultMessage: "Modify guest details",
defaultMessage: "Edit guest details",
})}
</span>
</Typography>
@@ -280,7 +280,7 @@ export default function GuestDetails({
<Dialog
aria-label={intl.formatMessage({
id: "myStay.guestDetails.modifyGuestDetails",
defaultMessage: "Modify guest details",
defaultMessage: "Edit guest details",
})}
>
{({ close }) => (
@@ -288,7 +288,7 @@ export default function GuestDetails({
<ModalContentWithActions
title={intl.formatMessage({
id: "myStay.guestDetails.modifyGuestDetails",
defaultMessage: "Modify guest details",
defaultMessage: "Edit guest details",
})}
onClose={() => setIsModifyGuestDetailsOpen(false)}
content={

View File

@@ -120,7 +120,7 @@ export default function Form() {
{
id: "myStay.gla.termsAndConditionsMessage",
defaultMessage:
"I accept the terms for this stay and the general <termsAndConditionsLink>Booking & Cancellation Terms</termsAndConditionsLink>, and understand Scandic will process my personal data for this stay in accordance with <privacyPolicyLink>Scandic's Privacy Policy</privacyPolicyLink>. ",
"I accept the terms for this stay and the general <termsAndConditionsLink>Booking & Cancellation Terms</termsAndConditionsLink>, and understand Scandic will process my personal data for this stay in accordance with <privacyPolicyLink>Scandic's Privacy Policy</privacyPolicyLink>.",
},
{
termsAndConditionsLink: (str) => (

View File

@@ -301,7 +301,7 @@ export default function Room({ booking, roomNr, user }: RoomProps) {
<p>
{intl.formatMessage({
id: "myStay.modifyBy",
defaultMessage: "Modify By",
defaultMessage: "Modify by",
})}
</p>
</Typography>

View File

@@ -36,7 +36,7 @@ export default async function LevelProgressCard({
<h2 id="level-progress-card-title" className={styles.title}>
{intl.formatMessage({
id: "myPages.yourLevelProgress",
defaultMessage: "Your Level Progress",
defaultMessage: "Your level progress",
})}
</h2>
</Typography>

View File

@@ -293,7 +293,7 @@ export default function BookedRoomSidePeekContent({
<p>
{intl.formatMessage({
id: "myStay.modifyBy",
defaultMessage: "Modify By",
defaultMessage: "Modify by",
})}
</p>
</Typography>

View File

@@ -85,7 +85,7 @@ export function translateSeatingType(type: string, intl: IntlShape) {
case SeatingType.Theatre:
return intl.formatMessage({
id: "meetingRoomCard.theatre",
defaultMessage: "Theatre",
defaultMessage: "Theater",
})
case SeatingType.UShape:
return intl.formatMessage({

View File

@@ -20,7 +20,8 @@
"ci:build": "yarn lint && yarn test && yarn build",
"clean": "rm -rf .next",
"check-types": "tsc --noEmit",
"include:shared": "jiti ../../scripts/copyFiles.ts ../../shared public/_static/shared"
"include:shared": "jiti ../../scripts/copyFiles.ts ../../shared public/_static/shared",
"format": "prettier --write ."
},
"dependencies": {
"@contentstack/live-preview-utils": "^3.2.1",
@@ -127,7 +128,6 @@
"json-sort-cli": "^4.0.9",
"lint-staged": "^15.5.2",
"netlify-plugin-cypress": "^2.2.1",
"prettier": "^3.5.3",
"schema-dts": "^1.1.5",
"start-server-and-test": "^2.0.11",
"ts-morph": "^25.0.1",

View File

@@ -1,8 +0,0 @@
module.exports = {
semi: false,
trailingComma: "es5",
singleQuote: false,
printWidth: 80,
tabWidth: 2,
endOfLine: "lf",
}

View File

@@ -0,0 +1,14 @@
/**
* @see https://prettier.io/docs/configuration
* @type {import("prettier").Config}
*/
const config = {
semi: false,
trailingComma: "es5",
singleQuote: false,
printWidth: 80,
tabWidth: 2,
endOfLine: "lf",
}
export default config