From e0daf85561b12ef05007fcc6f4fe365778cc82e4 Mon Sep 17 00:00:00 2001 From: tresabhi <43380238+tresabhi@users.noreply.github.com> Date: Fri, 27 Dec 2024 14:01:59 -0600 Subject: [PATCH] feat: some more localized links --- .../website/src/components/Checks/index.tsx | 16 ++++-- .../src/components/Compare/TankControl.tsx | 13 +++-- .../src/components/HomePageHotTanks.tsx | 15 ++++-- packages/website/src/components/LinkI18n.tsx | 5 +- packages/website/src/components/Navbar.astro | 22 +++++--- .../website/src/components/TankCard/index.tsx | 10 ++-- .../src/components/TankRowHeaderCell.tsx | 17 ++++-- .../TankSearch/components/QuickLink.tsx | 9 ++-- .../components/Modules.tsx | 9 +++- .../Tankopedia/MetaSection/index.tsx | 14 +++-- .../TechTreeSection/components/Node.tsx | 10 ++-- .../website/src/components/ToolCard.astro | 9 ++-- packages/website/src/hooks/useLocale.tsx | 28 ++++++++++ packages/website/src/pages/404.astro | 7 ++- .../[...locale]/docs/patches/index.astro | 9 ++-- .../website/src/pages/[...locale]/index.astro | 3 +- .../pages/[...locale]/tools/embed/_index.tsx | 9 +++- .../tools/tankopedia/[id]/_index.tsx | 52 ++++++++++--------- .../tools/tankopedia/[id]/index.astro | 6 +-- 19 files changed, 182 insertions(+), 81 deletions(-) create mode 100644 packages/website/src/hooks/useLocale.tsx diff --git a/packages/website/src/components/Checks/index.tsx b/packages/website/src/components/Checks/index.tsx index 9ba56edcc..7288edad3 100644 --- a/packages/website/src/components/Checks/index.tsx +++ b/packages/website/src/components/Checks/index.tsx @@ -1,8 +1,10 @@ import { assertSecret, idToRegion } from '@blitzkit/core'; -import { Button, Flex, Heading, Link, Text } from '@radix-ui/themes'; +import { Button, Flex, Heading, Text } from '@radix-ui/themes'; import { useEffect, useState } from 'react'; +import { useLocale } from '../../hooks/useLocale'; import { App } from '../../stores/app'; import { CURRENT_POLICIES_AGREEMENT_INDEX } from '../../stores/app/constants'; +import { LinkI18n } from '../LinkI18n'; import './index.css'; type Extension = @@ -30,6 +32,7 @@ export function Checks() { * Wargaming: 14 (refresh: 7) */ function Content() { + const { locale } = useLocale(); const logins = App.use((state) => state.logins); const mutateApp = App.useMutation(); const appStore = App.useStore(); @@ -118,9 +121,14 @@ function Content() { This website utilizes cookies to perform analytics and personalize your experience. You can learn more through{' '} - our privacy policy. - By using BlitzKit, you also agree to our{' '} - terms of service. + + our privacy policy + + . By using BlitzKit, you also agree to our{' '} + + terms of service + + . diff --git a/packages/website/src/components/Compare/TankControl.tsx b/packages/website/src/components/Compare/TankControl.tsx index 83d6b920f..96aa5840f 100644 --- a/packages/website/src/components/Compare/TankControl.tsx +++ b/packages/website/src/components/Compare/TankControl.tsx @@ -1,9 +1,11 @@ import { ExternalLinkIcon, LoopIcon, TrashIcon } from '@radix-ui/react-icons'; -import { Dialog, Flex, IconButton, Link } from '@radix-ui/themes'; +import { Dialog, Flex, IconButton } from '@radix-ui/themes'; import { useState } from 'react'; import { awaitableProvisionDefinitions } from '../../core/awaitables/provisionDefinitions'; import { tankToCompareMember } from '../../core/blitzkit/tankToCompareMember'; +import { useLocale } from '../../hooks/useLocale'; import { CompareEphemeral } from '../../stores/compareEphemeral'; +import { LinkI18n } from '../LinkI18n'; import { TankSearch } from '../TankSearch'; interface TankControlProps { @@ -14,6 +16,7 @@ interface TankControlProps { const provisionDefinitions = await awaitableProvisionDefinitions; export function TankControl({ index, id }: TankControlProps) { + const { locale } = useLocale(); const [switchTankDialogOpen, setSwitchTankDialogOpen] = useState(false); const mutateCompareEphemeral = CompareEphemeral.useMutation(); @@ -69,11 +72,15 @@ export function TankControl({ index, id }: TankControlProps) { - + - + ); } diff --git a/packages/website/src/components/HomePageHotTanks.tsx b/packages/website/src/components/HomePageHotTanks.tsx index 815f93f9b..774bf2549 100644 --- a/packages/website/src/components/HomePageHotTanks.tsx +++ b/packages/website/src/components/HomePageHotTanks.tsx @@ -3,6 +3,7 @@ import { EyeOpenIcon } from '@radix-ui/react-icons'; import { Box, Flex, Heading, Text } from '@radix-ui/themes'; import { google } from 'googleapis'; import { awaitableTankDefinitions } from '../core/awaitables/tankDefinitions'; +import { LocaleProvider } from '../hooks/useLocale'; import { TankopediaPersistent } from '../stores/tankopediaPersistent'; import { TankCard } from './TankCard'; @@ -63,11 +64,17 @@ const hotTanks = report.data.rows views, })); -export function HomePageHotTanks() { +interface HomePageHotTanksProps { + locale: string | undefined; +} + +export function HomePageHotTanks({ locale }: HomePageHotTanksProps) { return ( - - - + + + + + ); } diff --git a/packages/website/src/components/LinkI18n.tsx b/packages/website/src/components/LinkI18n.tsx index 4ad51e137..da2cc0d90 100644 --- a/packages/website/src/components/LinkI18n.tsx +++ b/packages/website/src/components/LinkI18n.tsx @@ -11,9 +11,6 @@ export function LinkI18n({ locale, href, ...props }: LinkI18nProps) { const prefix = resolvedLocale === undefined ? '' : `/${resolvedLocale}`; return ( - + ); } diff --git a/packages/website/src/components/Navbar.astro b/packages/website/src/components/Navbar.astro index c461016de..cb2b7ddfb 100644 --- a/packages/website/src/components/Navbar.astro +++ b/packages/website/src/components/Navbar.astro @@ -20,11 +20,13 @@ import { import { resolveBranchName } from '../core/blitzkit/branches'; import { homeTool, TOOLS } from '../constants/tools'; import { NavbarAccount } from './NavbarAccount'; +import { LinkI18n } from './LinkI18n'; const toolsFiltered = TOOLS.filter((tool) => !('href' in tool)); const tools = [homeTool, ...toolsFiltered]; const branchName = resolveBranchName(); const isBranchNamed = branchName !== undefined; +const { locale } = Astro.params; ---