Status
Localization
Which pages have been translated into English, Spanish and Portuguese, and which have not.
A snapshot of the English/Spanish/Portuguese translation pass. Every path below
is in apps/web-legacy — this work predates
web, and none of it has been carried across yet.
This is a record, not a plan
It says what had been translated when the pass finished. If it disagrees with the code, the code is right.
Completed in this phase
src/pages/index.tsxsrc/pages/features.tsxsrc/pages/free-tools.tsxsrc/pages/odds-converter.tsxsrc/pages/referees.tsxsrc/pages/lineups/index.tsxsrc/pages/player-stats.tsxsrc/pages/team-stats.tsxsrc/pages/stats-explained.tsxsrc/pages/404.tsxsrc/pages/odds-api.tsxsrc/pages/betting-academy/index.tsxsrc/pages/betting-academy/[slug].tsxsrc/pages/blog/index.tsxsrc/pages/blog/[slug].tsxsrc/pages/lineup-bot.tsxsrc/pages/build-ups.tsxsrc/pages/league/index.tsxsrc/pages/ai-chat.tsx(surface UI localized; tool-status microcopy still mostly English)src/pages/chat-preview-demo.tsxsrc/pages/assistant.tsx(surface UI localized; tool/status and debug microcopy still mostly English)src/pages/evervault-demo.tsxsrc/pages/prop-screener.tsxsrc/pages/outliers.tsxsrc/pages/prophunter.tsx(surface UI localized; some advanced filter helper text still English)src/pages/team/[teamSlug]/[teamId].tsx(surface and filter UI localized)src/pages/fixture/[fixtureSlug]/[fixtureId].tsx(surface nav/breadcrumb/fallback UI localized)src/pages/player/[playerSlug]/[playerId].tsx(surface and filter UI localized)src/pages/league/[leagueSlug]/[leagueId].tsx(surface nav/breadcrumb/season labels localized)src/components/league-table-section.tsx(table shell labels, tabs display labels, threshold UI localized)src/pages/arghya.tsxsrc/pages/superadmin/dashboard.tsxsrc/pages/navbar-demo.tsxsrc/pages/basketball/index.tsxsrc/pages/basketball/fixture/[fixtureSlug]/[fixtureId].tsxsrc/pages/basketball/player/[playerSlug]/[playerId].tsxsrc/pages/basketball/team/[teamSlug]/[teamId].tsxsrc/pages/favourites.tsxsrc/pages/team-screener.tsxsrc/pages/player-trends.tsxsrc/pages/team-trends.tsxsrc/components/trend-card.tsx(trend card labels and date-relative microcopy localized)src/pages/auth/login.tsxsrc/components/auth/login.tsxsrc/pages/tipster/dashboard.tsxsrc/pages/tipster/previews.tsxsrc/pages/previews/[slug].tsxsrc/pages/referee/[refereeSlug].tsx(tabs, tables, SEO/FAQ content, and date labels localized)src/components/referees/referee-header.tsx(header badges/stat labels and date labels localized)src/pages/Player-Cards.tsx(fixture picker UI, modal tabs/states, and date labels localized)src/pages/100-club.tsx(filter controls, markets, toasts, states, and details panel localized)src/pages/_app.tsx(locale shell manager updatesdata-localeonhtml/body)src/pages/_document.tsx(dynamic<html lang>from locale prefix/cookie)src/components/homepage-right-sidebar.tsx(league standings sidebar labels localized)src/components/recent-tweets.tsx(desktop tweet widget labels and relative-time locale handling localized)src/components/recent-tweets-compact.tsx(mobile tweet widget labels and relative-time locale handling localized)
Validation at the time
tsc --noEmit passed. next lint could not be re-run, because
eslint.config.js referenced eslint-plugin-react-refresh, which was not
installed.
Excluded, by decision
Internal, admin or low-priority routes, kept out of scope unless revisited.
src/pages/assist.tsxsrc/pages/AGS.tsxsrc/pages/value-bets.tsxsrc/pages/tom.tsxsrc/pages/tom2.tsxsrc/pages/datavisualiser.tsxsrc/pages/superadmin/social-export.tsxsrc/pages/export.tsxsrc/pages/db.tsxsrc/pages/tipster/create.tsxsrc/pages/tipster/edit/[id].tsxsrc/pages/nav-test.tsxsrc/pages/api/search/index.tsx(backend API route; no user-facing UI copy)
Remaining in scope
None.

