Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions front_end/messages/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -1784,5 +1784,36 @@
"switchToBotAccount": "Přepnout na účet bota",
"impersonationBannerText": "Momentálně si prohlížíte Metaculus jako váš bot.",
"stopImpersonating": "Přepnout zpět na můj účet",
"tournamentsHeroLiveTitle": "Předpovídejte klíčová témata,<br></br>šplhejte po žebříčku, vyhrajte ceny.",
"tournamentsHeroLiveShown": "{count, plural, one {# turnaj zobrazen} other {# turnajů zobrazeno}}",
"tournamentsHeroSeriesTitle": "Předpovídejte klíčová témata,<br></br>procvičujte a budujte si záznamy.",
"tournamentsHeroSeriesShown": "{count, plural, one {# série otázek zobrazena} other {# sérií otázek zobrazeno}}",
"tournamentsHeroIndexesTitle": "Objevte složitá témata,<br></br>sledujte jejich vývoj.",
"tournamentsHeroIndexesShown": "{count, plural, one {# index zobrazen} other {# indexů zobrazeno}}",
"tournamentsInfoAria": "Informace o turnaji",
"tournamentsInfoTitle": "Účast zdarma; získejte peněžní ceny a zlepšete své předpovědi.",
"tournamentsInfoScoringLink": "Jak funguje bodování?",
"tournamentsInfoPrizesLink": "Jak jsou rozdělovány ceny?",
"tournamentsInfoCta": "Přihlaste se k soutěži",
"tournamentPrizePool": "CENOVÝ FOND",
"tournamentNoPrizePool": "ŽÁDNÝ CENOVÝ FOND",
"tournamentTimelineOngoing": "Probíhá",
"tournamentTimelineJustStarted": "Právě začalo",
"tournamentTimelineStarts": "Začíná {when}",
"tournamentTimelineEnds": "Končí {when}",
"tournamentTimelineClosed": "Ukončeno",
"tournamentTimelineAllResolved": "Všechny otázky vyřešeny",
"tournamentRelativeSoon": "brzy",
"tournamentRelativeUnderMinute": "za méně než minutu",
"tournamentRelativeFarFuture": "v daleké budoucnosti",
"tournamentRelativeFromNow": "za {n} {unit}",
"tournamentUnit": "{unit, select, minute {minuta} hour {hodina} day {den} week {týden} month {měsíc} year {rok} other {den}}",
"tournamentUnitPlural": "{unit, select, minute {minut} hour {hodin} day {dní} week {týdnů} month {měsíců} year {let} other {dní}}",
"tournamentQuestionsCount": "{count, plural, one {<num>#</num> otázka} other {<num>#</num> otázek}}",
"tournamentQuestionsCountUpper": "<n>{count}</n> OTÁZKY",
"tournamentsEmptySearchTitle": "Nebyly nalezeny žádné výsledky",
"tournamentsEmptySearchBody": "Zkuste jiný vyhledávací výraz nebo vymažte vyhledávání.",
"tournamentsEmptyDefaultTitle": "Zobrazeno {count} turnajů",
"tournamentsEmptyDefaultBody": "Zkontrolujte později nebo vyzkoušejte jinou kartu.",
"othersCount": "Ostatní ({count})"
}
31 changes: 31 additions & 0 deletions front_end/messages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -1778,5 +1778,36 @@
"switchToBotAccount": "Switch to Bot Account",
"impersonationBannerText": "You are currently viewing Metaculus as your bot.",
"stopImpersonating": "Switch back to my account",
"tournamentsHeroLiveTitle": "Forecast key topics,<br></br>climb the leaderboards, win prizes.",
"tournamentsHeroLiveShown": "{count, plural, one {# tournament shown} other {# tournaments shown}}",
"tournamentsHeroSeriesTitle": "Forecast key topics,<br></br>practice and build a track record.",
"tournamentsHeroSeriesShown": "{count, plural, one {# question series shown} other {# question series shown}}",
"tournamentsHeroIndexesTitle": "Discover complex topics,<br></br>monitor their progress.",
"tournamentsHeroIndexesShown": "{count, plural, one {# index shown} other {# indexes shown}}",
"tournamentsInfoAria": "Tournament info",
"tournamentsInfoTitle": "Free to participate; get paid cash prizes and practice forecasting.",
"tournamentsInfoScoringLink": "How does scoring work?",
"tournamentsInfoPrizesLink": "How are prizes distributed?",
"tournamentsInfoCta": "Sign up to compete",
"tournamentPrizePool": "PRIZE POOL",
"tournamentNoPrizePool": "NO PRIZE POOL",
"tournamentTimelineOngoing": "Ongoing",
"tournamentTimelineJustStarted": "Just started",
"tournamentTimelineStarts": "Starts {when}",
"tournamentTimelineEnds": "Ends {when}",
"tournamentTimelineClosed": "Closed",
"tournamentTimelineAllResolved": "All questions resolved",
"tournamentRelativeSoon": "soon",
"tournamentRelativeUnderMinute": "in under a minute",
"tournamentRelativeFarFuture": "in the far future",
"tournamentRelativeFromNow": "{n} {unit} from now",
"tournamentUnit": "{unit, select, minute {minute} hour {hour} day {day} week {week} month {month} year {year} other {day}}",
"tournamentUnitPlural": "{unit, select, minute {minutes} hour {hours} day {days} week {weeks} month {months} year {years} other {days}}",
"tournamentQuestionsCount": "{count, plural, one {<num>#</num> question} other {<num>#</num> questions}}",
"tournamentQuestionsCountUpper": "<n>{count}</n> QUESTIONS",
"tournamentsEmptySearchTitle": "No results found",
"tournamentsEmptySearchBody": "Try a different search term, or clear the search.",
"tournamentsEmptyDefaultTitle": "{count} tournaments shown",
"tournamentsEmptyDefaultBody": "Check back later or try another tab.",
"none": "none"
}
31 changes: 31 additions & 0 deletions front_end/messages/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -1784,5 +1784,36 @@
"switchToBotAccount": "Cambiar a cuenta de bot",
"impersonationBannerText": "Actualmente estás viendo Metaculus como tu bot.",
"stopImpersonating": "Volver a mi cuenta",
"tournamentsHeroLiveTitle": "Pronostica temas clave,<br></br>súbete al marcador, gana premios.",
"tournamentsHeroLiveShown": "{count, plural, one {# torneo mostrado} other {# torneos mostrados}}",
"tournamentsHeroSeriesTitle": "Pronostica temas clave,<br></br>practica y construye un historial.",
"tournamentsHeroSeriesShown": "{count, plural, one {# serie de preguntas mostrada} other {# series de preguntas mostradas}}",
"tournamentsHeroIndexesTitle": "Descubre temas complejos,<br></br>monitorea su progreso.",
"tournamentsHeroIndexesShown": "{count, plural, one {# índice mostrado} other {# índices mostrados}}",
"tournamentsInfoAria": "Información del torneo",
"tournamentsInfoTitle": "Participación gratuita; recibe premios en efectivo y práctica en pronósticos.",
"tournamentsInfoScoringLink": "¿Cómo funciona el puntaje?",
"tournamentsInfoPrizesLink": "¿Cómo se distribuyen los premios?",
"tournamentsInfoCta": "Regístrate para competir",
"tournamentPrizePool": "PREMIO TOTAL",
"tournamentNoPrizePool": "SIN PREMIO TOTAL",
"tournamentTimelineOngoing": "En curso",
"tournamentTimelineJustStarted": "Acaba de comenzar",
"tournamentTimelineStarts": "Comienza {when}",
"tournamentTimelineEnds": "Termina {when}",
"tournamentTimelineClosed": "Cerrado",
"tournamentTimelineAllResolved": "Todas las preguntas resueltas",
"tournamentRelativeSoon": "pronto",
"tournamentRelativeUnderMinute": "en menos de un minuto",
"tournamentRelativeFarFuture": "en el futuro lejano",
"tournamentRelativeFromNow": "{n} {unit} a partir de ahora",
"tournamentUnit": "{unit, select, minute {minuto} hour {hora} day {día} week {semana} month {mes} year {año} other {día}}",
"tournamentUnitPlural": "{unit, select, minute {minutos} hour {horas} day {días} week {semanas} month {meses} year {años} other {días}}",
"tournamentQuestionsCount": "{count, plural, one {<num>#</num> pregunta} other {<num>#</num> preguntas}}",
"tournamentQuestionsCountUpper": "<n>{count}</n> PREGUNTAS",
"tournamentsEmptySearchTitle": "No se encontraron resultados",
"tournamentsEmptySearchBody": "Prueba un término de búsqueda diferente o borra la búsqueda.",
"tournamentsEmptyDefaultTitle": "{count} torneos mostrados",
"tournamentsEmptyDefaultBody": "Vuelve más tarde o prueba otra pestaña.",
"othersCount": "Otros ({count})"
}
31 changes: 31 additions & 0 deletions front_end/messages/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -1782,5 +1782,36 @@
"switchToBotAccount": "Mudar para Conta de Bot",
"impersonationBannerText": "Você está visualizando o Metaculus atualmente como seu bot.",
"stopImpersonating": "Voltar para minha conta",
"tournamentsHeroLiveTitle": "Preveja tópicos chave,<br></br>suba nas classificações, ganhe prêmios.",
"tournamentsHeroLiveShown": "{count, plural, one {# torneio mostrado} other {# torneios mostrados}}",
"tournamentsHeroSeriesTitle": "Preveja tópicos chave,<br></br>pratique e construa um histórico.",
"tournamentsHeroSeriesShown": "{count, plural, one {# série de perguntas mostrada} other {# séries de perguntas mostradas}}",
"tournamentsHeroIndexesTitle": "Descubra tópicos complexos,<br></br>monitore o progresso deles.",
"tournamentsHeroIndexesShown": "{count, plural, one {# índice mostrado} other {# índices mostrados}}",
"tournamentsInfoAria": "Informações do Torneio",
"tournamentsInfoTitle": "Participe gratuitamente; receba prêmios em dinheiro e pratique previsões.",
"tournamentsInfoScoringLink": "Como a pontuação funciona?",
"tournamentsInfoPrizesLink": "Como são distribuídos os prêmios?",
"tournamentsInfoCta": "Inscreva-se para competir",
"tournamentPrizePool": "PRÊMIO",
"tournamentNoPrizePool": "SEM PRÊMIO",
"tournamentTimelineOngoing": "Em andamento",
"tournamentTimelineJustStarted": "Acabou de começar",
"tournamentTimelineStarts": "Começa {when}",
"tournamentTimelineEnds": "Termina {when}",
"tournamentTimelineClosed": "Encerrado",
"tournamentTimelineAllResolved": "Todas as perguntas resolvidas",
"tournamentRelativeSoon": "em breve",
"tournamentRelativeUnderMinute": "em menos de um minuto",
"tournamentRelativeFarFuture": "no futuro distante",
"tournamentRelativeFromNow": "em {n} {unit}",
"tournamentUnit": "{unit, select, minute {minuto} hour {hora} day {dia} week {semana} month {mês} year {ano} other {dia}}",
"tournamentUnitPlural": "{unit, select, minute {minutos} hour {horas} day {dias} week {semanas} month {meses} year {anos} other {dias}}",
"tournamentQuestionsCount": "{count, plural, one {<num>#</num> pergunta} other {<num>#</num> perguntas}}",
"tournamentQuestionsCountUpper": "<n>{count}</n> PERGUNTAS",
"tournamentsEmptySearchTitle": "Nenhum resultado encontrado",
"tournamentsEmptySearchBody": "Tente um termo de pesquisa diferente ou limpe a pesquisa.",
"tournamentsEmptyDefaultTitle": "{count} torneios mostrados",
"tournamentsEmptyDefaultBody": "Volte mais tarde ou tente outra aba.",
"othersCount": "Outros ({count})"
}
31 changes: 31 additions & 0 deletions front_end/messages/zh-TW.json
Original file line number Diff line number Diff line change
Expand Up @@ -1781,5 +1781,36 @@
"switchToBotAccount": "切換到機器人帳戶",
"impersonationBannerText": "您目前正在以您的機器人帳戶查看 Metaculus。",
"stopImpersonating": "切換回我的帳戶",
"tournamentsHeroLiveTitle": "預測關鍵議題,<br></br>攀登排行榜,贏得獎品。",
"tournamentsHeroLiveShown": "{count, plural, one {顯示 # 個錦標賽} other {顯示 # 個錦標賽}}",
"tournamentsHeroSeriesTitle": "預測關鍵議題,<br></br>練習並建立成果紀錄。",
"tournamentsHeroSeriesShown": "{count, plural, one {顯示 # 個問題系列} other {顯示 # 個問題系列}}",
"tournamentsHeroIndexesTitle": "探索複雜議題,<br></br>監控其進展。",
"tournamentsHeroIndexesShown": "{count, plural, one {顯示 # 個指數} other {顯示 # 個指數}}",
"tournamentsInfoAria": "錦標賽資訊",
"tournamentsInfoTitle": "免費參加;獲得現金獎勵並練習預測。",
"tournamentsInfoScoringLink": "計分方式如何運作?",
"tournamentsInfoPrizesLink": "獎品如何分配?",
"tournamentsInfoCta": "註冊參賽",
"tournamentPrizePool": "獎金池",
"tournamentNoPrizePool": "無獎金池",
"tournamentTimelineOngoing": "進行中",
"tournamentTimelineJustStarted": "剛剛開始",
"tournamentTimelineStarts": "{when} 開始",
"tournamentTimelineEnds": "{when} 結束",
"tournamentTimelineClosed": "已結束",
"tournamentTimelineAllResolved": "所有問題已解決",
"tournamentRelativeSoon": "即將",
"tournamentRelativeUnderMinute": "在不到一分鐘內",
"tournamentRelativeFarFuture": "在遙遠的未來",
"tournamentRelativeFromNow": "{n} {unit} 後",
"tournamentUnit": "{unit, select, minute {分鐘} hour {小時} day {天} week {週} month {月} year {年} other {天}}",
"tournamentUnitPlural": "{unit, select, minute {分鐘} hour {小時} day {天} week {週} month {月} year {年} other {天}}",
"tournamentQuestionsCount": "{count, plural, one {<num>#</num> 個問題} other {<num>#</num> 個問題}}",
"tournamentQuestionsCountUpper": "<n>{count}</n> 題問題",
"tournamentsEmptySearchTitle": "找不到結果",
"tournamentsEmptySearchBody": "嘗試使用不同的搜索詞,或清除搜索。",
"tournamentsEmptyDefaultTitle": "顯示 {count} 個比賽",
"tournamentsEmptyDefaultBody": "稍後再查看或嘗試其他標籤。",
"withdrawAfterPercentSetting2": "問題總生命周期後撤回"
}
31 changes: 31 additions & 0 deletions front_end/messages/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -1786,5 +1786,36 @@
"switchToBotAccount": "切换到机器人账户",
"impersonationBannerText": "您当前正在以机器人身份查看 Metaculus。",
"stopImpersonating": "切换回我的账户",
"tournamentsHeroLiveTitle": "预测关键话题,<br></br>登上排行榜,赢得奖品。",
"tournamentsHeroLiveShown": "{count, plural, one {显示#场锦标赛} other {显示#场锦标赛}}",
"tournamentsHeroSeriesTitle": "预测关键话题,<br></br>实践并建立记录。",
"tournamentsHeroSeriesShown": "{count, plural, one {显示#个问题系列} other {显示#个问题系列}}",
"tournamentsHeroIndexesTitle": "发现复杂话题,<br></br>监控其进展。",
"tournamentsHeroIndexesShown": "{count, plural, one {显示#个指数} other {显示#个指数}}",
"tournamentsInfoAria": "比赛信息",
"tournamentsInfoTitle": "免费参加;赢取现金奖励并提高预测技能。",
"tournamentsInfoScoringLink": "评分机制如何运作?",
"tournamentsInfoPrizesLink": "奖品如何分发?",
"tournamentsInfoCta": "注册参赛",
"tournamentPrizePool": "奖金池",
"tournamentNoPrizePool": "无奖金池",
"tournamentTimelineOngoing": "进行中",
"tournamentTimelineJustStarted": "刚刚开始",
"tournamentTimelineStarts": "开始于{when}",
"tournamentTimelineEnds": "结束于{when}",
"tournamentTimelineClosed": "已关闭",
"tournamentTimelineAllResolved": "所有问题已解决",
"tournamentRelativeSoon": "很快",
"tournamentRelativeUnderMinute": "不到一分钟",
"tournamentRelativeFarFuture": "在遥远的未来",
"tournamentRelativeFromNow": "{n}{unit}后",
"tournamentUnit": "{unit, select, minute {分钟} hour {小时} day {天} week {周} month {个月} year {年} other {天}}",
"tournamentUnitPlural": "{unit, select, minute {分钟} hour {小时} day {天} week {周} month {个月} year {年} other {天}}",
"tournamentQuestionsCount": "{count, plural, one {<num>#</num> 个问题} other {<num>#</num> 个问题}}",
"tournamentQuestionsCountUpper": "<n>{count}</n> 题目",
"tournamentsEmptySearchTitle": "未找到结果",
"tournamentsEmptySearchBody": "尝试不同的搜索词,或清除搜索。",
"tournamentsEmptyDefaultTitle": "显示了 {count} 场比赛",
"tournamentsEmptyDefaultBody": "稍后再查看或尝试其他选项卡。",
"othersCount": "其他({count})"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import ServerProjectsApi from "@/services/api/projects/projects.server";

import ArchivedTournamentsGrid from "../components/tournaments_grid/archived_tournaments_grid";
import TournamentsScreen from "../components/tournaments_screen";

const ArchivedPage: React.FC = async () => {
const tournaments = await ServerProjectsApi.getTournaments();
const nowTs = Date.now();
return (
<TournamentsScreen
current="archived"
tournaments={tournaments}
nowTs={nowTs}
>
<ArchivedTournamentsGrid />
</TournamentsScreen>
);
};

export default ArchivedPage;

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import React from "react";

import TournamentsTabsShell from "./tournaments-tabs-shell";
import { Section, TournamentsSection } from "../types";

type Props = { current: TournamentsSection };

const TournamentsTabs: React.FC<Props> = ({ current }) => {
const sections: Section[] = [
{
value: "live",
href: "/tournaments",
label: "Live Tournaments",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Labels should be translated, and it doesn't seem they are? Ignore if they are

},
{
value: "series",
href: "/tournaments/question-series",
label: "Question Series",
},
{
value: "indexes",
href: "/tournaments/indexes",
label: "Indexes",
},
{
value: "archived",
href: "/tournaments/archived",
label: "Archived",
},
];

return <TournamentsTabsShell current={current} sections={sections} />;
};

export default TournamentsTabs;
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
"use client";

import React from "react";

import { Tabs, TabsList, TabsTab } from "@/components/ui/tabs";
import cn from "@/utils/core/cn";

import { Section, TournamentsSection } from "../types";

type Props = {
current: TournamentsSection;
sections: Section[];
};

const TournamentsTabsShell: React.FC<Props> = ({ current, sections }) => {
return (
<Tabs defaultValue={current} className="bg-transparent dark:bg-transparent">
<TabsList className="gap-1 bg-transparent py-0 dark:bg-transparent lg:justify-start lg:gap-3">
{sections.map((tab) => (
<TabsTab
className={cn(
"px-2 text-sm no-underline sm:px-2 sm:text-sm lg:px-5 lg:text-lg"
)}
dynamicClassName={(isActive) =>
!isActive
? `hover:bg-blue-400 dark:hover:bg-blue-400-dark text-blue-800 dark:text-blue-800-dark ${tab.value === "archived" && "bg-transparent text-blue-600 dark:text-blue-600-dark lg:text-blue-800 lg:dark:text-blue-800-dark"}`
: ""
}
key={tab.value}
value={tab.value}
href={tab.href}
>
{tab.label}
</TabsTab>
))}
</TabsList>
</Tabs>
);
};

export default TournamentsTabsShell;
Loading