diff --git a/frontend-react/public/locales/en/translation.json b/frontend-react/public/locales/en/translation.json index 52eb66bb5..acebb9ae3 100644 --- a/frontend-react/public/locales/en/translation.json +++ b/frontend-react/public/locales/en/translation.json @@ -1485,5 +1485,13 @@ "Popular weapons": "Popular weapons", "VICTORY": "VICTORY", "DEFEAT": "DEFEAT" + }, + "draft": { + "draftExplanation": "Draft Cup is a tournament series open for +1 and +2 members. On this page you can browse the leaderboards and detailed match reports.", + "View matches": "View matches", + "Bracket": "Bracket", + "Back to Draft Cup home": "Back to Draft Cup home", + "Expand": "Expand", + "paintShort": "p" } } diff --git a/frontend-react/public/locales/se/translation.json b/frontend-react/public/locales/sv/translation.json similarity index 100% rename from frontend-react/public/locales/se/translation.json rename to frontend-react/public/locales/sv/translation.json diff --git a/frontend-react/src/components/plusdraftcup/DraftCupDetails.tsx b/frontend-react/src/components/plusdraftcup/DraftCupDetails.tsx index dc3cd8d89..42d8bf5fe 100644 --- a/frontend-react/src/components/plusdraftcup/DraftCupDetails.tsx +++ b/frontend-react/src/components/plusdraftcup/DraftCupDetails.tsx @@ -26,6 +26,7 @@ import AbilityIcon from "../builds/AbilityIcon" import GearImage from "../builds/GearImage" import SplatnetIcon from "../common/SplatnetIcon" import { Helmet } from "react-helmet-async" +import { useTranslation } from "react-i18next" interface DraftCupDetailsProps { id?: string @@ -81,6 +82,7 @@ const DetailedMapCard: React.FC = ({ mapDetails, gameNumber, }) => { + const { t } = useTranslation() const { themeColorWithShade, grayWithShade, textColor } = useContext( MyThemeContext ) @@ -108,7 +110,7 @@ const DetailedMapCard: React.FC = ({ > {gameNumber}. - {mapDetails.stage} + {t("game;" + mapDetails.stage)} = ({ alignItems="center" > - {index === 0 ? "VICTORY" : "DEFEAT"} + {index === 0 + ? t("tournaments;VICTORY") + : t("tournaments;DEFEAT")} {teamInfo.score === 100 ? "KO" : teamInfo.score} @@ -144,7 +148,7 @@ const DetailedMapCard: React.FC = ({ - {teamInfo.players.map((player, index) => ( + {teamInfo.players.map((player) => ( = ({ color={grayWithShade} fontWeight={600} > - {player.paint}p + {player.paint} + {t("draft;paintShort")} @@ -240,6 +245,7 @@ const CollapsedMapCard: React.FC = ({ mapDetails, loading, }) => { + const { t } = useTranslation() const { grayWithShade } = useContext(MyThemeContext) const winnerTeamName = mapDetails[0].winners.team_name const loserTeamName = mapDetails[0].losers.team_name @@ -288,7 +294,7 @@ const CollapsedMapCard: React.FC = ({ ))} ) @@ -297,6 +303,7 @@ const CollapsedMapCard: React.FC = ({ const DraftCupDetails: React.FC = ({ id, }) => { + const { t } = useTranslation() const { themeColorWithShade, grayWithShade } = useContext(MyThemeContext) const idParts = id!.split("-") const { data, error, loading } = useQuery< @@ -330,7 +337,7 @@ const DraftCupDetails: React.FC = ({ @@ -338,7 +345,7 @@ const DraftCupDetails: React.FC = ({ diff --git a/frontend-react/src/components/plusdraftcup/DraftCupPage.tsx b/frontend-react/src/components/plusdraftcup/DraftCupPage.tsx index e3e6a7a5f..f38bae3a5 100644 --- a/frontend-react/src/components/plusdraftcup/DraftCupPage.tsx +++ b/frontend-react/src/components/plusdraftcup/DraftCupPage.tsx @@ -13,8 +13,10 @@ import { Helmet } from "react-helmet-async" import DraftTournamentCards from "./DraftTournamentCards" import { Box } from "@chakra-ui/core" import MyThemeContext from "../../themeContext" +import { useTranslation } from "react-i18next" const DraftCupPage: React.FC = () => { + const { t } = useTranslation() const { grayWithShade } = useContext(MyThemeContext) const { data, error, loading } = useQuery(PLUS_DRAFT_CUPS) @@ -24,13 +26,10 @@ const DraftCupPage: React.FC = () => { return ( <> - Draft Cup Home | sendou.ink + {t("navigation;Draft Cup")} | sendou.ink - - - Draft Cup is a tournament series open for +1 and +2 members. On this - page you can browse the leaderboards and detailed match reports. - + + {t("draft;draftExplanation")} diff --git a/frontend-react/src/components/plusdraftcup/DraftLeaderboard.tsx b/frontend-react/src/components/plusdraftcup/DraftLeaderboard.tsx index 1125e4516..cb989fea4 100644 --- a/frontend-react/src/components/plusdraftcup/DraftLeaderboard.tsx +++ b/frontend-react/src/components/plusdraftcup/DraftLeaderboard.tsx @@ -14,7 +14,6 @@ import MyThemeContext from "../../themeContext" import UserAvatar from "../common/UserAvatar" import { Link } from "@reach/router" import { medalEmoji } from "../../assets/imageImports" -import { ordinal_suffix_of } from "../../utils/helperFunctions" import useBreakPoints from "../../hooks/useBreakPoints" interface LeaderboardPlayer { @@ -83,12 +82,7 @@ const DraftLeaderboard: React.FC = ({ alignItems="center" ml="0.5em" > - {(print || i === 0) && ( - <> - {placement} - {ordinal_suffix_of(placement)} - - )} + {(print || i === 0) && <>{placement}} diff --git a/frontend-react/src/components/plusdraftcup/DraftTournamentCards.tsx b/frontend-react/src/components/plusdraftcup/DraftTournamentCards.tsx index 76ea7c809..a5513cdb6 100644 --- a/frontend-react/src/components/plusdraftcup/DraftTournamentCards.tsx +++ b/frontend-react/src/components/plusdraftcup/DraftTournamentCards.tsx @@ -6,6 +6,7 @@ import { months } from "../../utils/lists" import { Link } from "@reach/router" import { medalEmoji } from "../../assets/imageImports" import Button from "../elements/Button" +import { useTranslation } from "react-i18next" interface DraftTournamentCardsProps { tournaments: { @@ -55,11 +56,8 @@ export const DraftTournamentCard: React.FC = ({ tournament, link, }) => { + const { t, i18n } = useTranslation() const { grayWithShade, themeColorHexLighter } = useContext(MyThemeContext) - const a = new Date(parseInt(tournament.date)) - const dateStr = `${a.getDate()} ${ - months[a.getMonth() + 1] - } ${a.getFullYear()}` const MedalRow: React.FC = ({ players, @@ -119,8 +117,13 @@ export const DraftTournamentCard: React.FC = ({ fontSize="xs" mt="0.5em" textAlign="center" + textTransform="capitalize" > - {dateStr} + {new Date(parseInt(tournament.date)).toLocaleString(i18n.language, { + month: "long", + day: "numeric", + year: "numeric", + })} = ({ {link && ( - + )} diff --git a/frontend-react/src/components/root/SideNavContent.tsx b/frontend-react/src/components/root/SideNavContent.tsx index 3e2f9b50d..cdc8ce6be 100644 --- a/frontend-react/src/components/root/SideNavContent.tsx +++ b/frontend-react/src/components/root/SideNavContent.tsx @@ -131,7 +131,7 @@ const languages = [ { code: "nl", name: "Nederlands" }, { code: "pt-BR", name: "Português" }, { code: "fi", name: "Suomi" }, - { code: "se", name: "Svenska" }, + { code: "sv", name: "Svenska" }, { code: "el", name: "Ελληνικά" }, { code: "ru", name: "Русский" }, { code: "ja", name: "日本語" }, diff --git a/frontend-react/src/components/xsearch/Top500BrowserPage.tsx b/frontend-react/src/components/xsearch/Top500BrowserPage.tsx index 2b8cc140e..b52bf57c7 100644 --- a/frontend-react/src/components/xsearch/Top500BrowserPage.tsx +++ b/frontend-react/src/components/xsearch/Top500BrowserPage.tsx @@ -14,7 +14,6 @@ import { import useBreakPoints from "../../hooks/useBreakPoints" import MyThemeContext from "../../themeContext" import { Weapon } from "../../types" -import { ordinal_suffix_of } from "../../utils/helperFunctions" import { modesShort, months } from "../../utils/lists" import Error from "../common/Error" import Loading from "../common/Loading" @@ -168,10 +167,7 @@ const Top500BrowserPage: React.FC = () => { {placement.x_power} - - {placement.rank} - {ordinal_suffix_of(placement.rank)} - + {placement.rank} {