fix: some locale props

This commit is contained in:
TrèsAbhi committed 2025-10-22 17:52:01 -05:00
1 parent 0326e8d1d7
commit 0809c9ee0c
30 files changed
+134 -134

No files matched your search

+1 -1
View File
@@ -12,7 +12,7 @@ import { tools } from "./src/constants/tools";
const POSSIBLE_TARGETS = ["app", "web"]; const POSSIBLE_TARGETS = ["app", "web"];
const target = process.env.PUBLIC_TARGET; const target = process.env.PUBLIC_TARGET ;
if (!target || !POSSIBLE_TARGETS.includes(target)) { if (!target || !POSSIBLE_TARGETS.includes(target)) {
throw new Error("Invalid target"); throw new Error("Invalid target");
+1 -1
View File
@@ -5,7 +5,7 @@
"dev": "PUBLIC_TARGET=web astro dev", "dev": "PUBLIC_TARGET=web astro dev",
"build": "PUBLIC_TARGET=web astro build", "build": "PUBLIC_TARGET=web astro build",
"preview": "PUBLIC_TARGET=web astro preview", "preview": "PUBLIC_TARGET=web astro preview",
"lint": "astro check", "lint": "PUBLIC_TARGET=web astro check",
"astro": "astro" "astro": "astro"
}, },
"dependencies": { "dependencies": {
@@ -1,7 +1,7 @@
--- ---
import { localizedHTML as favicons } from "astro-favicons/middleware"; import { localizedHTML as favicons } from "astro-favicons/middleware";
const { locale } = Astro.params; const { locale } = Astro.props;
--- ---
<Fragment set:html={favicons(locale)} /> <Fragment set:html={favicons(locale)} />
+5 -2
View File
@@ -1,15 +1,18 @@
--- ---
import { assertSecret, fetchGameDefinitions } from "@blitzkit/core"; import { assertSecret, fetchGameDefinitions } from "@blitzkit/core";
import locales from "@blitzkit/i18n/locales.json";
import { Box, Code, Flex, Heading, Link, Text } from "@radix-ui/themes"; import { Box, Code, Flex, Heading, Link, Text } from "@radix-ui/themes";
import packageJson from "../../../../package.json"; import packageJson from "../../../../package.json";
import { getStrings } from "../core/i18n/getStrings"; import { getStrings } from "../core/i18n/getStrings";
import { LinkI18n } from "./LinkI18n"; import { LinkI18n } from "./LinkI18n";
import { LocaleSwitcherThemeWrapper } from "./LocaleSwitcher"; import { LocaleSwitcherThemeWrapper } from "./LocaleSwitcher";
export interface Props {
locale: string;
}
const gameDefinitions = await fetchGameDefinitions(); const gameDefinitions = await fetchGameDefinitions();
const PUBLIC_ASSET_BRANCH = assertSecret(import.meta.env.PUBLIC_BRANCH); const PUBLIC_ASSET_BRANCH = assertSecret(import.meta.env.PUBLIC_BRANCH);
const locale = Astro.params.locale ?? locales.default; const { locale } = Astro.props;
const strings = getStrings(locale); const strings = getStrings(locale);
--- ---
@@ -4,7 +4,7 @@ import { resolveBranchName } from "../core/blitzkit/branches";
import { getStrings } from "../core/i18n/getStrings"; import { getStrings } from "../core/i18n/getStrings";
import { literals } from "@blitzkit/i18n/src/literals"; import { literals } from "@blitzkit/i18n/src/literals";
const { locale } = Astro.params; const { locale } = Astro.props;
const branchName = resolveBranchName(locale); const branchName = resolveBranchName(locale);
const isBranchNamed = branchName !== undefined; const isBranchNamed = branchName !== undefined;
const strings = getStrings(locale); const strings = getStrings(locale);
+1 -1
View File
@@ -21,7 +21,7 @@ const { integrated = false } = Astro.props;
const toolsFiltered = Object.values(tools).filter( const toolsFiltered = Object.values(tools).filter(
(tool) => !tool.href && !tool.disabled (tool) => !tool.href && !tool.disabled
); );
const { locale } = Astro.params; const { locale } = Astro.props;
const branchName = resolveBranchName(locale); const branchName = resolveBranchName(locale);
const isBranchNamed = branchName !== undefined; const isBranchNamed = branchName !== undefined;
const strings = getStrings(locale); const strings = getStrings(locale);
@@ -14,10 +14,10 @@ import { LinkI18n } from "./LinkI18n";
interface Props { interface Props {
tool: Tool; tool: Tool;
locale: string;
} }
const { tool } = Astro.props; const { locale, tool } = Astro.props;
const { locale } = Astro.params;
const strings = getStrings(locale); const strings = getStrings(locale);
const toolStrings = const toolStrings =
strings.website.tools[ strings.website.tools[
@@ -5,10 +5,10 @@ import { getStrings } from "../core/i18n/getStrings";
interface Props { interface Props {
tool: Tool; tool: Tool;
locale: string;
} }
const { tool } = Astro.props; const { locale, tool } = Astro.props;
const { locale } = Astro.params;
const strings = getStrings(locale); const strings = getStrings(locale);
const toolStrings = const toolStrings =
strings.website.tools[ strings.website.tools[
@@ -45,7 +45,7 @@ const { noFooter, noNavbar, integrated, locale } = Astro.props;
{servicing ? <Servicing /> : <slot />} {servicing ? <Servicing /> : <slot />}
{!noFooter && <Footer />} {!noFooter && <Footer {locale} />}
</Flex> </Flex>
</BlitzKitTheme> </BlitzKitTheme>
</body> </body>
@@ -1,18 +1,19 @@
--- ---
import { getStrings } from '../core/i18n/getStrings'; import locales from "@blitzkit/i18n/locales.json";
import { getStrings } from "../core/i18n/getStrings";
export interface Props { export interface Props {
path: string; path: string;
locale: string;
} }
const { path } = Astro.props; const { path, locale } = Astro.props;
const { locale } = Astro.params;
const strings = getStrings(locale); const strings = getStrings(locale);
const resolvedPath = `/${locale === undefined ? '' : `${locale}/`}${path}`; const resolvedPath = `/${locale === locales.default ? "" : `${locale}/`}${path}`;
--- ---
<html> <html lang={locale}>
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<link rel="canonical" href={`${Astro.url.origin}${resolvedPath}`} /> <link rel="canonical" href={`${Astro.url.origin}${resolvedPath}`} />
@@ -22,15 +23,15 @@ const resolvedPath = `/${locale === undefined ? '' : `${locale}/`}${path}`;
<body> <body>
<div <div
style={{ style={{
display: 'flex', display: "flex",
flexDirection: 'column', flexDirection: "column",
alignItems: 'center', alignItems: "center",
justifyContent: 'center', justifyContent: "center",
width: '100vw', width: "100vw",
height: '100vh', height: "100vh",
backgroundColor: 'black', backgroundColor: "black",
color: 'white', color: "white",
fontFamily: 'sans-serif', fontFamily: "sans-serif",
}} }}
> >
<h2>{strings.website.redirect.title}</h2> <h2>{strings.website.redirect.title}</h2>
+7 -7
View File
@@ -1,14 +1,14 @@
--- ---
import { DiscordLogoIcon, HomeIcon } from '@radix-ui/react-icons'; import { DiscordLogoIcon, HomeIcon } from "@radix-ui/react-icons";
import { Button, Flex, Heading, Link, Text } from '@radix-ui/themes'; import { Button, Flex, Heading, Link, Text } from "@radix-ui/themes";
import { LinkI18n } from '../components/LinkI18n'; import { LinkI18n } from "../components/LinkI18n";
import { PageWrapper } from '../components/PageWrapper'; import { PageWrapper } from "../components/PageWrapper";
import BaseLayout from '../layouts/BaseLayout.astro'; import BaseLayout from "../layouts/BaseLayout.astro";
const { locale } = Astro.params; const { locale } = Astro.props;
--- ---
<BaseLayout> <BaseLayout {locale}>
<PageWrapper align="center" justify="center" gap="0"> <PageWrapper align="center" justify="center" gap="0">
<Heading>404: page not found</Heading> <Heading>404: page not found</Heading>
<Text color="gray">Where would you like to go?</Text> <Text color="gray">Where would you like to go?</Text>
@@ -1,28 +1,24 @@
--- ---
import { Flex, Heading, Text } from '@radix-ui/themes'; import { Flex, Heading, Text } from "@radix-ui/themes";
import type { GetStaticPaths } from 'astro'; import type { GetStaticPaths } from "astro";
import { PageWrapper } from '../../../../components/PageWrapper'; import { PageWrapper } from "../../../../components/PageWrapper";
import BaseLayout from '../../../../layouts/BaseLayout.astro'; import BaseLayout from "../../../../layouts/BaseLayout.astro";
import { getStaticPaths as parentGetStaticPaths } from '../../index.astro'; import { getStaticPaths as parentGetStaticPaths } from "../../index.astro";
import { import { AUTH_PROVIDER_NAMES, AUTH_PROVIDERS, Authorize } from "./_index";
AUTH_PROVIDER_NAMES,
AUTH_PROVIDERS,
Authorize,
type AuthProvider,
} from './_index';
export const getStaticPaths = (() => { export const getStaticPaths = (() => {
const parentPaths = parentGetStaticPaths(); const parentPaths = parentGetStaticPaths();
return AUTH_PROVIDERS.map((provider) => return AUTH_PROVIDERS.map((provider) =>
parentPaths.map((parent) => ({ params: { ...parent.params, provider } })), parentPaths.map((parent) => ({ params: { ...parent.params, provider } }))
).flat(); ).flat();
}) satisfies GetStaticPaths; }) satisfies GetStaticPaths;
const provider = Astro.params.provider as AuthProvider; const { provider } = Astro.params;
const { locale } = Astro.props;
--- ---
<BaseLayout> <BaseLayout {locale}>
<PageWrapper> <PageWrapper>
<Flex <Flex
style={{ flex: 1 }} style={{ flex: 1 }}
@@ -6,11 +6,11 @@ import { Page } from "./_index";
export { getStaticPaths } from "../index.astro"; export { getStaticPaths } from "../index.astro";
const { locale } = Astro.params; const { locale } = Astro.props;
--- ---
<ToolOpenGraph tool={tools.compare} /> <ToolOpenGraph {locale} tool={tools.compare} />
<BaseLayout noFooter> <BaseLayout {locale} noFooter>
<Page {locale} client:load /> <Page {locale} client:load />
</BaseLayout> </BaseLayout>
@@ -1,25 +1,25 @@
--- ---
import { AstroSeo } from '@astrolib/seo'; import { AstroSeo } from "@astrolib/seo";
import type { GetStaticPaths } from 'astro'; import type { GetStaticPaths } from "astro";
import { readFile } from 'fs/promises'; import { readFile } from "fs/promises";
import BaseLayout from '../../../../../layouts/BaseLayout.astro'; import BaseLayout from "../../../../../layouts/BaseLayout.astro";
import { getStaticPaths as parentGetStaticPaths } from '../../../index.astro'; import { getStaticPaths as parentGetStaticPaths } from "../../../index.astro";
import { Page } from './_index'; import { Page } from "./_index";
export const getStaticPaths = (async () => { export const getStaticPaths = (async () => {
const parentPaths = parentGetStaticPaths(); const parentPaths = parentGetStaticPaths();
const ROOT = '../../../../../../../../docs/'; const ROOT = "../../../../../../../../docs/";
const files = import.meta.glob('../../../../../../../../docs/**/*.md', { const files = import.meta.glob("../../../../../../../../docs/**/*.md", {
eager: true, eager: true,
}); });
return ( return (
await Promise.all( await Promise.all(
Object.keys(files).map(async (file) => { Object.keys(files).map(async (file) => {
const couple = file.replace(ROOT, '').split('/'); const couple = file.replace(ROOT, "").split("/");
couple[1] = couple[1].replace('.md', ''); couple[1] = couple[1].replace(".md", "");
const content = await readFile( const content = await readFile(
`../../docs/${couple[0]}/${couple[1]}.md`, `../../docs/${couple[0]}/${couple[1]}.md`
).then((buffer) => buffer.toString()); ).then((buffer) => buffer.toString());
return parentPaths.map((parent) => ({ return parentPaths.map((parent) => ({
@@ -28,16 +28,16 @@ export const getStaticPaths = (async () => {
directory: couple[0], directory: couple[0],
document: couple[1], document: couple[1],
}, },
props: { content }, props: { ...parent.props, content },
})); }));
}), })
) )
).flat(); ).flat();
}) satisfies GetStaticPaths; }) satisfies GetStaticPaths;
const { content } = Astro.props; const { content, locale } = Astro.props;
const title = content.split('\n')[0].replace('# ', ''); const title = content.split("\n")[0].replace("# ", "");
--- ---
<AstroSeo <AstroSeo
@@ -48,11 +48,11 @@ const title = content.split('\n')[0].replace('# ', '');
url: Astro.url.href, url: Astro.url.href,
title, title,
description: title, description: title,
site_name: 'BlitzKit', site_name: "BlitzKit",
}} }}
twitter={{ cardType: 'summary_large_image' }} twitter={{ cardType: "summary_large_image" }}
/> />
<BaseLayout> <BaseLayout {locale}>
<Page content={content} /> <Page content={content} />
</BaseLayout> </BaseLayout>
@@ -1,23 +1,25 @@
--- ---
import { AstroSeo } from '@astrolib/seo'; import { AstroSeo } from "@astrolib/seo";
import { MagicWandIcon, StarFilledIcon } from '@radix-ui/react-icons'; import { MagicWandIcon, StarFilledIcon } from "@radix-ui/react-icons";
import { Flex, Heading, Link } from '@radix-ui/themes'; import { Flex, Heading, Link } from "@radix-ui/themes";
import { compareVersions } from 'compare-versions'; import { compareVersions } from "compare-versions";
import { PageWrapper } from '../../../../components/PageWrapper'; import { PageWrapper } from "../../../../components/PageWrapper";
import { getStrings } from '../../../../core/i18n/getStrings'; import { getStrings } from "../../../../core/i18n/getStrings";
import BaseLayout from '../../../../layouts/BaseLayout.astro'; import BaseLayout from "../../../../layouts/BaseLayout.astro";
export { getStaticPaths } from '../../index.astro'; export { getStaticPaths } from "../../index.astro";
// this can't be used in template literal :( // this can't be used in template literal :(
const ROOT = '../../../../../../../docs/changelogs/'; const ROOT = "../../../../../../../docs/changelogs/";
const strings = getStrings(Astro.params.locale);
const { locale } = Astro.props;
const strings = getStrings(locale);
const versions = Object.keys( const versions = Object.keys(
import.meta.glob('../../../../../../../docs/changelogs/*.md', { import.meta.glob("../../../../../../../docs/changelogs/*.md", {
eager: true, eager: true,
}), })
) )
.map((file) => file.replace(ROOT, '').replace('.md', '')) .map((file) => file.replace(ROOT, "").replace(".md", ""))
.sort(compareVersions) .sort(compareVersions)
.reverse(); .reverse();
--- ---
@@ -30,26 +32,26 @@ const versions = Object.keys(
url: Astro.url.href, url: Astro.url.href,
title: strings.website.docs.patches.name, title: strings.website.docs.patches.name,
description: strings.website.docs.patches.seo_description, description: strings.website.docs.patches.seo_description,
site_name: 'BlitzKit', site_name: "BlitzKit",
}} }}
twitter={{ cardType: 'summary_large_image' }} twitter={{ cardType: "summary_large_image" }}
/> />
<BaseLayout> <BaseLayout {locale}>
<PageWrapper align="center"> <PageWrapper align="center">
<Heading mt="6" mb="4">BlitzKit patches</Heading> <Heading mt="6" mb="4">BlitzKit patches</Heading>
<Flex direction="column" gap="2" align="center"> <Flex direction="column" gap="2" align="center">
{ {
versions.map((version) => { versions.map((version) => {
const split = version.split('.').map(Number); const split = version.split(".").map(Number);
const isMajor = split[2] === 0; const isMajor = split[2] === 0;
return ( return (
<Link <Link
size="5" size="5"
href={`/docs/changelogs/${version}`} href={`/docs/changelogs/${version}`}
mb={isMajor ? '6' : '0'} mb={isMajor ? "6" : "0"}
> >
<Flex align="center" gap="2"> <Flex align="center" gap="2">
{!isMajor && <MagicWandIcon />} {!isMajor && <MagicWandIcon />}
@@ -1,11 +1,11 @@
--- ---
import EmbedLayout from '../../../../../layouts/EmbedLayout.astro'; import EmbedLayout from "../../../../../layouts/EmbedLayout.astro";
import type { getStaticPaths } from '../index.astro'; import type { getStaticPaths } from "../index.astro";
import { Page } from './_index'; import { Page } from "./_index";
export { getStaticPaths } from '../index.astro'; export { getStaticPaths } from "../index.astro";
const { locale } = Astro.params; const { locale } = Astro.props;
--- ---
<EmbedLayout> <EmbedLayout>
@@ -1,11 +1,11 @@
--- ---
import { AstroSeo } from '@astrolib/seo'; import { AstroSeo } from "@astrolib/seo";
import type { GetStaticPaths } from 'astro'; import type { GetStaticPaths } from "astro";
import { capitalize } from 'lodash-es'; import { capitalize } from "lodash-es";
import { embedConfigurations } from '../../../../constants/embeds'; import { embedConfigurations } from "../../../../constants/embeds";
import BaseLayout from '../../../../layouts/BaseLayout.astro'; import BaseLayout from "../../../../layouts/BaseLayout.astro";
import { getStaticPaths as parentGetStaticPaths } from '../index.astro'; import { getStaticPaths as parentGetStaticPaths } from "../index.astro";
import { Page } from './_index'; import { Page } from "./_index";
export const getStaticPaths = (() => { export const getStaticPaths = (() => {
const parentPaths = parentGetStaticPaths(); const parentPaths = parentGetStaticPaths();
@@ -17,7 +17,7 @@ export const getStaticPaths = (() => {
...parent.params, ...parent.params,
embed: embed as keyof typeof embedConfigurations, embed: embed as keyof typeof embedConfigurations,
}, },
})), }))
) )
.flat(); .flat();
}) satisfies GetStaticPaths; }) satisfies GetStaticPaths;
@@ -25,7 +25,7 @@ export const getStaticPaths = (() => {
const name = capitalize(Astro.params.embed); const name = capitalize(Astro.params.embed);
const title = `BlitzKit - ${name} embed`; const title = `BlitzKit - ${name} embed`;
const description = `BlitzKit ${name} embeds for streaming World of Tanks Blitz with extreme customization`; const description = `BlitzKit ${name} embeds for streaming World of Tanks Blitz with extreme customization`;
const { locale } = Astro.params; const { locale } = Astro.props;
--- ---
<AstroSeo <AstroSeo
@@ -36,9 +36,9 @@ const { locale } = Astro.params;
url: Astro.url.href, url: Astro.url.href,
title, title,
description, description,
site_name: 'BlitzKit', site_name: "BlitzKit",
}} }}
twitter={{ cardType: 'summary_large_image' }} twitter={{ cardType: "summary_large_image" }}
/> />
<style is:global> <style is:global>
@@ -60,6 +60,6 @@ const { locale } = Astro.params;
} }
</style> </style>
<BaseLayout> <BaseLayout {locale}>
<Page {locale} client:load embed={Astro.params.embed} /> <Page {locale} client:load embed={Astro.params.embed} />
</BaseLayout> </BaseLayout>
@@ -5,9 +5,9 @@ import { Page } from "./_index";
export { getStaticPaths } from "../index.astro"; export { getStaticPaths } from "../index.astro";
const { locale } = Astro.params; const { locale } = Astro.props;
--- ---
<ToolLayout tool={tools.embed}> <ToolLayout {locale} tool={tools.embed}>
<Page {locale} /> <Page {locale} />
</ToolLayout> </ToolLayout>
@@ -6,10 +6,10 @@ import { Page } from "./_index";
export { getStaticPaths } from "../index.astro"; export { getStaticPaths } from "../index.astro";
const { locale } = Astro.params; const { locale } = Astro.props;
--- ---
<ToolLayout tool={tools.gallery}> <ToolLayout {locale} tool={tools.gallery}>
<Page {locale} client:only="react"> <Page {locale} client:only="react">
<Page {locale} skeleton slot="fallback" /> <Page {locale} skeleton slot="fallback" />
</Page> </Page>
@@ -4,10 +4,10 @@ import { Page } from "./_index";
export { getStaticPaths } from "../index.astro"; export { getStaticPaths } from "../index.astro";
const { locale } = Astro.params; const { locale } = Astro.props;
--- ---
<BaseLayout noFooter> <BaseLayout {locale} noFooter>
<Page {locale} client:only="react"> <Page {locale} client:only="react">
<Page {locale} skeleton slot="fallback" /> <Page {locale} skeleton slot="fallback" />
</Page> </Page>
@@ -16,8 +16,8 @@ import BaseLayout from "../../layouts/BaseLayout.astro";
const MAX_TOOLS_PER_ROW = 2; const MAX_TOOLS_PER_ROW = 2;
const PUBLIC_ASSET_BRANCH = assertSecret(import.meta.env.PUBLIC_BRANCH); const PUBLIC_ASSET_BRANCH = assertSecret(import.meta.env.PUBLIC_BRANCH);
const locale = Astro.params.locale ?? locales.default; const { locale } = Astro.props;
const strings = getStrings(Astro.params.locale); const strings = getStrings(locale);
const rows: Tool[][] = []; const rows: Tool[][] = [];
for (const id in tools) { for (const id in tools) {
@@ -42,8 +42,8 @@ export const getStaticPaths = (() => {
return [ return [
...locales.supported ...locales.supported
.filter(({ locale }) => locale !== locales.default) .filter(({ locale }) => locale !== locales.default)
.map(({ locale }) => ({ params: { locale } })), .map(({ locale }) => ({ params: { locale }, props: { locale } })),
{ params: { locale: undefined } }, { params: { locale: undefined }, props: { locale: locales.default } },
]; ];
}) satisfies GetStaticPaths; }) satisfies GetStaticPaths;
--- ---
@@ -61,7 +61,7 @@ export const getStaticPaths = (() => {
twitter={{ cardType: "summary_large_image" }} twitter={{ cardType: "summary_large_image" }}
/> />
<BaseLayout> <BaseLayout {locale}>
<HomeHero /> <HomeHero />
<!-- <Flex justify="center" py="6" px="4" justify="center"> <!-- <Flex justify="center" py="6" px="4" justify="center">
@@ -6,12 +6,12 @@ import { Page } from "./_index";
export { getStaticPaths } from "../index.astro"; export { getStaticPaths } from "../index.astro";
const { locale } = Astro.params; const { locale } = Astro.props;
--- ---
<ToolOpenGraph tool={tools.mixer} /> <ToolOpenGraph {locale} tool={tools.mixer} />
<BaseLayout integrated> <BaseLayout {locale} integrated>
<Page {locale} client:only="react"> <Page {locale} client:only="react">
<Page {locale} skeleton slot="fallback" /> <Page {locale} skeleton slot="fallback" />
</Page> </Page>
@@ -7,7 +7,7 @@ import { Page } from "./_index";
export { getStaticPaths } from "../index.astro"; export { getStaticPaths } from "../index.astro";
const { locale } = Astro.params; const { locale } = Astro.props;
--- ---
<ToolOpenGraph tool={tools.performance} /> <ToolOpenGraph tool={tools.performance} />
@@ -6,7 +6,7 @@ import { Page } from "./_index.tsx";
export { getStaticPaths } from "../index.astro"; export { getStaticPaths } from "../index.astro";
const { locale } = Astro.params; const { locale } = Astro.props;
--- ---
<ToolOpenGraph tool={tools.playlist} /> <ToolOpenGraph tool={tools.playlist} />
@@ -6,9 +6,9 @@ import { Page } from "./_index";
export { getStaticPaths } from "../index.astro"; export { getStaticPaths } from "../index.astro";
const { locale } = Astro.params; const { locale } = Astro.props;
--- ---
<ToolLayout tool={tools.session}> <ToolLayout {locale} tool={tools.session}>
<Page client:load {locale} /> <Page client:load {locale} />
</ToolLayout> </ToolLayout>
@@ -6,7 +6,7 @@ import { Page } from "./_index";
export { getStaticPaths } from "../index.astro"; export { getStaticPaths } from "../index.astro";
const { locale } = Astro.params; const { locale } = Astro.props;
const strings = getStrings(locale); const strings = getStrings(locale);
--- ---
@@ -16,6 +16,6 @@ const strings = getStrings(locale);
description={strings.website.settings.description} description={strings.website.settings.description}
/> />
<BaseLayout> <BaseLayout {locale}>
<Page {locale} client:load /> <Page {locale} client:load />
</BaseLayout> </BaseLayout>
@@ -31,14 +31,13 @@ export const getStaticPaths = (async () => {
.map((tank) => .map((tank) =>
parentPaths.map((parent) => ({ parentPaths.map((parent) => ({
params: { ...parent.params, slug: tank.slug }, params: { ...parent.params, slug: tank.slug },
props: { id: tank.id }, props: { ...parent.props, id: tank.id },
})) }))
) )
.flat(); .flat();
}) satisfies GetStaticPaths; }) satisfies GetStaticPaths;
const { id } = Astro.props; const { id, locale } = Astro.props;
const locale = Astro.params.locale;
const strings = getStrings(locale); const strings = getStrings(locale);
const tankDefinitions = await fetchTankDefinitions(); const tankDefinitions = await fetchTankDefinitions();
const skillDefinitions = await fetchSkillDefinitions(); const skillDefinitions = await fetchSkillDefinitions();
@@ -137,7 +136,7 @@ if (guideResponse.ok) {
<meta name="twitter:card" content="summary" /> <meta name="twitter:card" content="summary" />
<meta name="twitter:image:src" content={icon} /> <meta name="twitter:image:src" content={icon} />
<BaseLayout integrated> <BaseLayout {locale} integrated>
<Page {locale} id={id} {guide} client:only="react"> <Page {locale} id={id} {guide} client:only="react">
<Page {locale} id={id} {guide} skeleton slot="fallback" /> <Page {locale} id={id} {guide} skeleton slot="fallback" />
</Page> </Page>
@@ -5,10 +5,10 @@ import { Page } from "./_index";
export { getStaticPaths } from "../index.astro"; export { getStaticPaths } from "../index.astro";
const { locale } = Astro.params; const { locale } = Astro.props;
--- ---
<ToolLayout tool={tools.tanks}> <ToolLayout {locale} tool={tools.tanks}>
<Page {locale} client:only="react"> <Page {locale} client:only="react">
<Page {locale} skeleton slot="fallback" /> <Page {locale} skeleton slot="fallback" />
</Page> </Page>
@@ -5,11 +5,9 @@ import { Page } from "./_index";
export { getStaticPaths } from "../index.astro"; export { getStaticPaths } from "../index.astro";
const { locale } = Astro.params; const { locale } = Astro.props;
--- ---
<ToolLayout tool={tools.tier_list}> <ToolLayout {locale} tool={tools.tier_list}>
<Page {locale} client:load /> <Page {locale} client:load />
</ToolLayout> </ToolLayout>
+2 -1
View File
@@ -1,6 +1,7 @@
--- ---
import locales from "@blitzkit/i18n/locales.json";
import { tools } from "../../constants/tools"; import { tools } from "../../constants/tools";
import ToolLayout from "../../layouts/ToolLayout.astro"; import ToolLayout from "../../layouts/ToolLayout.astro";
--- ---
<ToolLayout tool={tools.api}></ToolLayout> <ToolLayout locale={locales.default} tool={tools.api} />