Skip to content

Commit c45722e

Browse files
committed
fix: add fallback handling for missing locale files in templates app
1 parent ad620e5 commit c45722e

2 files changed

Lines changed: 34 additions & 8 deletions

File tree

apps/templates/src/app/[locale]/layout.tsx

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,31 @@ export default async function LocaleLayout({ children, params }: Props) {
1313
const direction = getLangDir(locale);
1414

1515
// Load messages from main web app (shared translations)
16-
const webMessages = (
17-
await import(`../../../../../apps/web/public/locales/${locale}/common.json`)
18-
).default;
16+
let webMessages;
17+
try {
18+
webMessages = (
19+
await import(
20+
`../../../../../apps/web/public/locales/${locale}/common.json`
21+
)
22+
).default;
23+
} catch (error) {
24+
// Fallback to English if locale doesn't exist
25+
webMessages = (
26+
await import(`../../../../../apps/web/public/locales/en/common.json`)
27+
).default;
28+
}
1929

2030
// Load templates-specific messages
21-
const templatesMessages = (
22-
await import(`../../../public/locales/${locale}/common.json`)
23-
).default;
31+
let templatesMessages;
32+
try {
33+
templatesMessages = (
34+
await import(`../../../public/locales/${locale}/common.json`)
35+
).default;
36+
} catch (error) {
37+
// Fallback to English if locale doesn't exist
38+
templatesMessages = (await import(`../../../public/locales/en/common.json`))
39+
.default;
40+
}
2441

2542
// Merge translations, with templates-specific taking precedence
2643
const messages = { ...webMessages, ...templatesMessages };

apps/templates/src/i18n/request.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,17 @@ export default getRequestConfig(async ({ requestLocale }) => {
1212
requested && locales.includes(requested)
1313
? requested
1414
: routing.defaultLocale;
15-
const messages = (await import(`../../public/locales/${locale}/common.json`))
16-
.default;
15+
16+
// Try to load the requested locale, fall back to English if it doesn't exist
17+
// Currently, only English translations are available for the templates site
18+
let messages;
19+
try {
20+
messages = (await import(`../../public/locales/${locale}/common.json`))
21+
.default;
22+
} catch (error) {
23+
// Locale file doesn't exist, use English as fallback
24+
messages = enMessages;
25+
}
1726

1827
return {
1928
locale,

0 commit comments

Comments
 (0)