import { type Locale } from "./lib/language"
import { dict as ar } from "./i18n/ar"
import { dict as br } from "./i18n/br"
import { dict as da } from "./i18n/da"
import { dict as de } from "./i18n/de"
import { dict as es } from "./i18n/es"
import { dict as fr } from "./i18n/fr"
import { dict as it } from "./i18n/it"
import { dict as ja } from "./i18n/ja"
import { dict as ko } from "./i18n/ko"
import { dict as no } from "./i18n/no"
import { dict as pl } from "./i18n/pl"
import { dict as ru } from "./i18n/ru"
import { dict as th } from "./i18n/th"
import { dict as tr } from "./i18n/tr"
import { dict as uk } from "./i18n/uk"
import { dict as zh } from "./i18n/zh"
import { dict as zht } from "./i18n/zht"

const en = {
  "app.title": "AI Model Usage Rankings | OpenCode Data",
  "app.description":
    "Explore OpenCode Go usage across AI models, including token volume, rankings, market share, token pricing, session cost, cache ratio, and geo breakdowns.",
  "app.unfurlAlt": "OpenCode Data wordmark on a dark patterned background",
  "nav.dataHome": "Data Home",
  "nav.topModels": "Top Models",
  "nav.leaderboard": "Leaderboard",
  "nav.uniqueUsers": "Unique Users",
  "nav.sessionCost": "Session Cost",
  "nav.tokenCost": "Token Cost",
  "nav.cacheRatio": "Cache Ratio",
  "nav.marketShare": "Market Share",
  "nav.geoBreakdown": "Geo Breakdown",
  "nav.overview": "Overview",
  "nav.usage": "Usage",
  "nav.users": "Users",
  "nav.efficiency": "Efficiency",
  "nav.peers": "Peers",
  "nav.models": "Models",
  "header.brandLabel": "Data home",
  "header.sectionNavLabel": "Data sections",
  "header.githubAria": "Star OpenCode on GitHub",
  "header.github": "GitHub",
  "header.tryOpenCode": "Try OpenCode",
  "header.openNav": "Open navigation",
  "header.closeNav": "Close navigation",
  "theme.groupLabel": "Theme",
  "theme.dark": "Dark",
  "theme.light": "Light",
  "theme.system": "System",
  "footer.modelData": "Model Data",
  "footer.legal": "Legal",
  "footer.connect": "Connect",
  "footer.newsletter": "Newsletter",
  "footer.newsletterBody": "Be the first to know about new releases.",
  "footer.language": "Language",
  "footer.subscribe": "Subscribe",
  "footer.terms": "Terms of service",
  "footer.privacy": "Privacy policy",
  "footer.contact": "Contact us",
  "footer.community": "Community",
  "footer.youtube": "YouTube",
  "footer.homeAria": "OpenCode home",
  "footer.status": "All systems Operational",
  "footer.copyright": "© 2026 Anomaly Innovations Inc.",
  "bridge.learnMore": "LEARN MORE",
  "modal.closeNewsletter": "Close newsletter signup",
  "modal.title": "OpenCode Newsletter",
  "modal.body": "Be the first to know\nabout new releases.",
  "modal.email": "Email address",
  "modal.subscribe": "Subscribe",
  "modal.subscribing": "Subscribing...",
  "modal.success": "You're subscribed.",
  "modal.error": "Failed to subscribe",
  "product.allUsers": "All Users",
  "product.zen": "Zen",
  "product.go": "Go",
  "range.1D": "1 Day",
  "range.1W": "1 Week",
  "range.2W": "2 Weeks",
  "range.1M": "1 Month",
  "range.2M": "2 Months",
  "chart.daily": "Daily",
  "chart.input": "Input",
  "chart.output": "Output",
  "chart.cached": "Cached",
  "chart.uncached": "Uncached",
  "chart.ratio": "Ratio",
  "chart.model": "Model",
  "chart.cacheRatio": "Cache Ratio",
  "chart.costSession": "Cost/Session",
  "chart.tokensSession": "Tokens/Session",
  "chart.costPerSession": "COST / SESSION",
  "chart.tokensPerSession": "TOKENS / SESSION",
  "chart.live": "Live",
  "chart.percent": "percent",
  "chart.leaderboardAria": "Model token leaderboard",
  "chart.scrollableLeaderboardAria": "Scrollable model token leaderboard",
  "chart.byAuthor": "by {{author}}",
  "home.updated": "Updated",
  "home.noRows": "No rows yet",
  "home.justNow": "just now",
  "home.heroCopy": "See which models are winning real usage, how the mix is shifting, and what that means for cost.",
  "home.loadingTitle": "Loading data",
  "home.loadingDescription": "Reading model aggregates.",
  "home.usageTitle": "Usage",
  "home.topModelsDescription": "Usage of models across OpenCode Go.",
  "home.noUsageTitle": "No usage data",
  "home.noUsageDescription": "No model rows matched this product and range.",
  "home.noLeaderboardTitle": "No leaderboard data",
  "home.noLeaderboardDescription": "No model rows matched this product and range.",
  "home.productFilter": "Product filter",
  "home.dateRange": "Date range",
  "home.stackedUsageChart": "Stacked top model usage chart",
  "home.total": "total",
  "home.modelUsers": "model users",
  "home.new": "New",
  "home.uniqueUsersTitle": "Unique Users",
  "home.uniqueUsersDescription": "Daily unique OpenCode Go users by model.",
  "home.noUserDataTitle": "No user data",
  "home.noUserDataDescription": "No user-bearing model rows matched this window.",
  "home.uniqueUsersChart": "Stacked unique user chart by model",
  "home.marketShareTitle": "Market Share",
  "home.marketShareDescription": "Compare token share by model author.",
  "home.noMarketTitle": "No market data",
  "home.noMarketDescription": "No model rows matched this range.",
  "home.marketChart": "Market share by model author",
  "home.noData": "No data",
  "home.geoTitle": "Geo Breakdown",
  "home.geoDescription": "Tokens used by country.",
  "home.noGeoTitle": "No geo data",
  "home.noGeoDescription": "No geo rows matched this range.",
  "home.worldMap": "World map of token usage by country",
  "home.geoMapTitle": "Geo Breakdown map",
  "home.unknown": "Unknown",
  "home.tokenCostTitle": "Token Cost",
  "home.tokenCostDescription": "Price per 1M tokens.",
  "home.noTokenCostTitle": "No token cost data",
  "home.noTokenCostDescription": "No cost-bearing model rows matched this product.",
  "home.cacheRatioTitle": "Cache Ratio",
  "home.cacheRatioDescription": "Share of input tokens served from cache.",
  "home.noCacheTitle": "No cache ratio data",
  "home.noCacheDescription": "No input-token model rows matched this product.",
  "home.sessionCostTitle": "Session Cost",
  "home.sessionCostDescription": "Average cost per session.",
  "home.noSessionCostTitle": "No session cost data",
  "home.noSessionCostDescription": "No session-bearing model rows matched this product.",
  "home.costSession": "Cost/Session",
  "lab.title": "{{lab}} AI Model Usage & Rankings | OpenCode Data",
  "lab.description":
    "Compare {{lab}} models used in OpenCode Go, including token usage, model rankings, context windows, release dates, costs, and model-specific data.",
  "lab.loadingTitle": "Model Lab",
  "lab.loadingDescription": "Reading model availability and recent OpenCode usage.",
  "lab.notFound": "No models matched this lab.",
  "lab.heroPrefix": "Explore {{count}} {{lab}} models used in OpenCode",
  "lab.heroIncluding": "including {{models}}",
  "lab.heroSuffix": "Compare recent token usage, context windows, release dates, and model data.",
  "lab.tokensProcessed": "Tokens Processed",
  "lab.pending": "Pending",
  "lab.usageAfterActivity": "Usage appears after model activity lands",
  "lab.latestRelease": "Latest release {{date}}",
  "lab.shareOfUsage": "{{share}} of recent OpenCode usage",
  "lab.usageTitle": "{{lab}} token usage",
  "lab.usageDescription": "Daily token volume.",
  "lab.noUsageTitle": "No usage yet",
  "lab.noUsageDescription": "Recent token usage appears here once this lab has activity.",
  "lab.dailyTokenChart": "{{lab}} daily token usage chart",
  "lab.dailyTokens": "Daily tokens",
  "lab.tokens": "tokens",
  "lab.modelsTitle": "{{lab}} models",
  "lab.modelsDescription": "Catalog details plus recent usage.",
  "lab.recentUsageAndLimits": "Recent usage and limits.",
  "lab.usage": "Usage",
  "lab.share": "Share",
  "model.title": "{{model}} Usage, Cost & Rank | OpenCode Data",
  "model.description":
    "View {{model}} OpenCode Go usage data, including token volume, weekly rank, token mix, costs, cache ratio, sessions, geo breakdowns, and peer models.",
  "model.loadingTitle": "Model Data",
  "model.loadingDescription": "Reading model aggregates.",
  "model.loadingProfile": "Reading the model profile.",
  "model.noDataTitle": "No model data",
  "model.noDataDescription": "Try opening a model from the leaderboard.",
  "model.noMatched": "No model facts or usage rows matched {{id}}.",
  "model.fallback": "Model",
  "model.catalogFallback":
    "Model facts from the shared model index. OpenCode Go usage appears once this model has activity.",
  "model.unranked": "Unranked across last week's OpenCode Go usage",
  "model.ranked": "Ranked #{{rank}} across last week's OpenCode Go usage",
  "model.observedVolume": "with {{share}} of observed 2M volume.",
  "model.weights": "Model weights: {{label}}",
  "model.rank": "7D Rank",
  "model.profile": "Model Profile",
  "model.listed": "Listed",
  "model.noCurrentUsage": "No OpenCode Go usage in the current data window.",
  "model.facts": "Model facts",
  "model.context": "Context",
  "model.output": "Output",
  "model.knowledge": "Knowledge",
  "model.release": "Release",
  "model.inputs": "Inputs",
  "model.overviewDescription": "Recent tokens, unique users, and market position.",
  "model.noSummaryTitle": "No usage summary",
  "model.noSummaryDescription": "This model has no OpenCode Go usage rows yet.",
  "model.tokens": "Tokens",
  "model.uniqueUsers": "Unique Users",
  "model.lastTwoMonths": "last two months",
  "model.sessions": "Sessions",
  "model.completedSessions": "completed sessions",
  "model.tokenShare": "Token Share",
  "model.totalModels": "{{count}} models",
  "model.momentum": "Momentum",
  "model.vsPreviousWindow": "vs previous window",
  "model.usageDescription": "Daily OpenCode Go token volume over the recent two-month window.",
  "model.noUsageTitle": "No usage",
  "model.noUsageDescription": "No usage landed in the current window.",
  "model.dailyTokenChart": "Daily token usage chart",
  "model.usersDescription": "Daily unique OpenCode Go users over the recent two-month window.",
  "model.noUsersTitle": "No user data",
  "model.noUsersDescription": "No user-bearing rows landed in the current window.",
  "model.dailyUserChart": "Daily unique user chart",
  "model.efficiencyDescription": "Cost, cache behavior, and average OpenCode Go session shape.",
  "model.noEfficiencyTitle": "No efficiency data",
  "model.noEfficiencyDescription": "Efficiency data appears after usage lands.",
  "model.cost": "Cost",
  "model.totalSpend": "total spend",
  "model.costPerMillion": "Cost / 1M",
  "model.inputOutput": "input / output",
  "model.observedTokens": "observed all tokens",
  "model.costSession": "Cost / Session",
  "model.average": "average",
  "model.tokensSession": "Tokens / Session",
  "model.cacheRatio": "Cache Ratio",
  "model.inputTokens": "input tokens",
  "model.geoDescription": "OpenCode Go model tokens used by country.",
  "model.noGeoTitle": "No geo data",
  "model.noGeoDescription": "No OpenCode Go geo rows matched this model.",
  "model.worldMap": "World map of model token usage by country",
  "model.peersDescription": "Nearby models by recent OpenCode Go token volume.",
  "model.noPeersTitle": "No peers",
  "model.noPeersDescription": "Peer rankings appear after usage lands.",
  "model.noUsageLastWeek": "No usage last week",
  "model.newThisWeek": "New this week",
  "model.sameAsPreviousWeek": "Same as previous week",
  "model.vsPreviousWeek": "{{change}} vs previous week",
  "model.pdf": "PDF",
  "format.users": "users",
  "format.tokens": "tokens",
} as const

export type Key = keyof typeof en
export type Dict = Record<Key, string>

const dictionaries = {
  ar,
  br,
  da,
  de,
  en,
  es,
  fr,
  it,
  ja,
  ko,
  no,
  pl,
  ru,
  th,
  tr,
  uk,
  zh,
  zht,
} satisfies Record<Locale, Dict>

export function dict(locale: Locale) {
  return dictionaries[locale]
}
