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