// Translations dictionary + LangContext + useT() hook.
// Dev-only EN toggle so the operator can read the prototype.
// Default stays "fi" — production should ship Finnish only (per CLAUDE.md).

const STRINGS = {
  // ── Nav ───────────────────────────────────────────────────────────────
  nav_browse:   { fi: "Selaa",            en: "Browse" },
  nav_cities:   { fi: "Kaupungit",        en: "Cities" },
  nav_popular:  { fi: "Suosituimmat",     en: "Popular" },
  nav_guide:    { fi: "Opas",             en: "Guide" },
  nav_join:     { fi: "Liity hakemistoon",en: "Join directory" },
  nav_light:    { fi: "Valoinen",         en: "Light" },
  nav_dark:     { fi: "Tumma",            en: "Dark" },

  // ── Hero ──────────────────────────────────────────────────────────────
  hero_live_pre:  { fi: "Päivittyy reaaliajassa · ", en: "Updates in real-time · " },
  hero_live_mid:  { fi: " uutta luojaa tällä viikolla", en: " new creators this week" },
  hero_title_1:   { fi: "Suomalaiset luojat.", en: "Finnish creators." },
  hero_title_2:   { fi: "Yksi haku.",          en: "One search." },
  hero_subtitle:  {
    fi: "Suomen suurin riippumaton hakemisto sisällöntuottajille. Hae nimellä, kaupungilla tai kategorialla — kaikki yhdessä paikassa, suomeksi.",
    en: "Finland's largest independent directory of content creators. Search by name, city or category — everything in one place, in Finnish."
  },
  hero_placeholder: { fi: "Hae nimellä, kaupungilla tai kategorialla…", en: "Search by name, city or category…" },
  search_clear:     { fi: "Tyhjennä",       en: "Clear" },
  search_submit:    { fi: "Hae",            en: "Search" },
  search_aria:      { fi: "Hae luojia",     en: "Search creators" },
  trust_verified:   { fi: "Vahvistetut profiilit",      en: "Verified profiles" },
  trust_realtime:   { fi: "Reaaliaikainen indeksointi", en: "Real-time indexing" },
  trust_finnish:    { fi: "100% suomalaiset",           en: "100% Finnish" },
  demo_picked:      {
    fi: "Demo: valittu",
    en: "Demo: selected"
  },
  demo_picked_after: {
    fi: "— täällä mockup loppuu (vain hakuhomma).",
    en: "— mockup ends here (search-only scope)."
  },

  // ── Stats ─────────────────────────────────────────────────────────────
  stat_indexed:      { fi: "indeksoitua luojaa",     en: "indexed creators" },
  stat_indexed_sub:  { fi: "päivitetty 2 min sitten", en: "updated 2 min ago" },
  stat_searches:     { fi: "hakua / päivä",          en: "searches / day" },
  stat_searches_sub: { fi: "keskiarvo, viim. 30 pv", en: "average, last 30 days" },
  stat_finnish:      { fi: "suomalainen",            en: "Finnish" },
  stat_finnish_sub:  { fi: "vain Suomessa toimivat luojat", en: "only creators based in Finland" },

  // ── Quick chips ───────────────────────────────────────────────────────
  quick_label: { fi: "Suosittua nyt:", en: "Popular now:" },

  // ── Category menu button ──────────────────────────────────────────────
  catmenu_btn:      { fi: "Kategoriat",                en: "Categories" },
  catmenu_see_all:  { fi: "Näytä kaikki kategoriat",   en: "See all categories" },
  catmenu_updated:  { fi: "Päivittyy päivittäin",      en: "Updated daily" },

  // ── Categories ────────────────────────────────────────────────────────
  cat_eyebrow:     { fi: "Kategoriat", en: "Categories" },
  cat_title_pre:   { fi: "Selaa",      en: "Browse by" },
  cat_title_em:    { fi: "avainsanoittain", en: "keyword" },
  cat_desc:        {
    fi: "Jokainen avainsana johtaa omalle hakusivulleen. Indeksoimme uudet luojat 24/7.",
    en: "Each keyword has its own dedicated search page. We index new creators 24/7."
  },
  cat_tier_all:   { fi: "Kaikki",       en: "All" },
  cat_tier_hot:   { fi: "Suosituimmat", en: "Hot" },
  cat_tier_core:  { fi: "Vakiot",       en: "Core" },
  cat_tier_niche: { fi: "Erikois",      en: "Niche" },
  badge_hot:      { fi: "HOT",          en: "HOT" },
  badge_niche:    { fi: "ERIKOIS",      en: "NICHE" },
  count_creators: { fi: "luojaa",       en: "creators" },
  card_cta:       { fi: "Selaa luojia", en: "Browse creators" },
  card_cta_short: { fi: "Avaa",         en: "Open" },

  // ── Cities ────────────────────────────────────────────────────────────
  city_eyebrow:   { fi: "Kaupungit",   en: "Cities" },
  city_title_pre: { fi: "Selaa",       en: "Browse by" },
  city_title_em:  { fi: "paikkakunnittain", en: "city" },

  // ── Trust strip ───────────────────────────────────────────────────────
  ts1_title: { fi: "Vahvistetut profiilit", en: "Verified profiles" },
  ts1_body:  { fi: "Jokainen luoja varmistetaan ennen indeksointia. Ei väärennettyjä profiileja.",
               en: "Every creator is verified before indexing. No fake profiles." },
  ts2_title: { fi: "Reaaliaikainen päivitys", en: "Real-time updates" },
  ts2_body:  { fi: "uutta luojaa tällä viikolla, indeksoija käy 24/7.",
               en: "new creators this week, indexer runs 24/7." },
  ts3_title: { fi: "100% suomalainen", en: "100% Finnish" },
  ts3_body:  { fi: "Vain Suomessa asuvat tai suomenkieliset luojat. Ei kansainvälistä sotkua.",
               en: "Only Finnish-based or Finnish-speaking creators. No international noise." },
  ts4_title: { fi: "GDPR & EU-edge",  en: "GDPR & EU-edge" },
  ts4_body:  { fi: "Palvelimet EU:ssa. Ei evästeitä ennen suostumusta. Suomalaisen ehdoilla.",
               en: "Servers in the EU. No cookies before consent. On Finnish terms." },

  // ── FAQ ───────────────────────────────────────────────────────────────
  faq_eyebrow:   { fi: "UKK",                       en: "FAQ" },
  faq_title_pre: { fi: "Usein kysytyt",             en: "Frequently asked" },
  faq_title_em:  { fi: "kysymykset",                en: "questions" },
  faq_q1: { fi: "Mikä OnlySuomiHaku on?",
            en: "What is OnlySuomiHaku?" },
  faq_a1: { fi: "OnlySuomiHaku on riippumaton hakemisto, jonka avulla löydät suomalaiset sisällöntuottajat yhdellä haulla. Emme ole alusta — vain hakukone, joka indeksoi julkisesti saatavilla olevia profiileja.",
            en: "OnlySuomiHaku is an independent directory that helps you find Finnish content creators with one search. We are not a platform — just a search engine indexing publicly available profiles." },
  faq_q2: { fi: "Onko palvelu maksullinen?",
            en: "Is the service paid?" },
  faq_a2: { fi: "Ei. Hakeminen ja selaaminen on aina ilmaista. Luojille perusprofiili on myös maksuton.",
            en: "No. Searching and browsing is always free. For creators, a basic profile is also free." },
  faq_q3: { fi: "Miten profiili lisätään hakemistoon?",
            en: "How do I add a profile to the directory?" },
  faq_a3: { fi: "Klikkaa \"Liity hakemistoon\" oikeasta yläkulmasta. Vahvistamme henkilöllisyyden ennen julkaisua — tämä pitää hakemiston laadukkaana.",
            en: "Click \"Join directory\" in the top right. We verify identity before publishing — this keeps the directory high-quality." },
  faq_q4: { fi: "Onko sivusto turvallinen suomalaisille?",
            en: "Is the site safe for Finnish users?" },
  faq_a4: { fi: "Palvelimet ovat EU:ssa, noudatamme GDPR:ää, emmekä jaa tietoja kolmansille osapuolille. Tarjoamme myös täysin anonyymin selaamisen.",
            en: "Servers are in the EU, we follow GDPR, and we don't share data with third parties. Fully anonymous browsing is also supported." },
  faq_q5: { fi: "Voiko hakea omalla kaupungillaan?",
            en: "Can I search by my own city?" },
  faq_a5: { fi: "Kyllä. Kirjoita hakuun esim. \"Tampere\" tai selaa kaupunkilistaa yllä. Indeksoimme luojat myös pienemmistä kaupungeista (Rovaniemi, Kuopio, Lappeenranta…).",
            en: "Yes. Type e.g. \"Tampere\" in the search, or browse the city list above. We also index creators from smaller cities (Rovaniemi, Kuopio, Lappeenranta…)." },

  // ── Footer ────────────────────────────────────────────────────────────
  footer_desc: { fi: "Riippumaton hakemisto suomalaisille sisällöntuottajille. Emme tarjoa sisältöä — vain hakua.",
                 en: "Independent directory for Finnish content creators. We don't host content — only search." },
  footer_col1: { fi: "Selaa",         en: "Browse" },
  footer_col2: { fi: "OnlySuomiHaku", en: "OnlySuomiHaku" },
  footer_col3: { fi: "Lakitiedot",    en: "Legal" },
  footer_c1_a: { fi: "Suosituimmat",  en: "Popular" },
  footer_c1_b: { fi: "Uudet luojat",  en: "New creators" },
  footer_c1_c: { fi: "Kaupungit",     en: "Cities" },
  footer_c1_d: { fi: "Kategoriat",    en: "Categories" },
  footer_c2_a: { fi: "Tietoa meistä", en: "About" },
  footer_c2_b: { fi: "Liity hakemistoon", en: "Join directory" },
  footer_c2_c: { fi: "Yhteystiedot",  en: "Contact" },
  footer_c2_d: { fi: "Lehdistö",      en: "Press" },
  footer_c3_a: { fi: "Käyttöehdot",        en: "Terms of use" },
  footer_c3_b: { fi: "Yksityisyys (GDPR)", en: "Privacy (GDPR)" },
  footer_c3_c: { fi: "Evästeet",           en: "Cookies" },
  footer_c3_d: { fi: "Ikäraja 18+",        en: "18+ age limit" },
  footer_copy: { fi: "© 2026 OnlySuomiHaku.fi — Hakemisto. Sisältöä ei tarjota tällä sivulla.",
                 en: "© 2026 OnlySuomiHaku.fi — Directory. No content hosted on this site." },
  footer_meta: { fi: "EU edge · GDPR · Ikäraja 18+ · Hostattu Suomessa 🇫🇮",
                 en: "EU edge · GDPR · 18+ · Hosted in Finland 🇫🇮" },

  // ── Search dropdown ───────────────────────────────────────────────────
  sug_creators:    { fi: "Luojat",         en: "Creators" },
  sug_categories:  { fi: "Kategoriat",     en: "Categories" },
  sug_cities:      { fi: "Kaupungit",      en: "Cities" },
  sug_popular:     { fi: "Suositut haut",  en: "Popular searches" },
  sug_meta_cat:    { fi: "Kategoria",      en: "Category" },
  sug_meta_pop:    { fi: "Suosittu haku",  en: "Popular search" },
  sug_verified:    { fi: "Vahvistettu",    en: "Verified" },
  sug_empty_a:     { fi: "Ei tuloksia haulle", en: "No results for" },
  sug_empty_b:     { fi: "Kokeile esim.",  en: "Try e.g." },

  // ── Creators grid (real data) ─────────────────────────────────────────
  creators_eyebrow:    { fi: "Luojat",     en: "Creators" },
  creators_title_pre:  { fi: "Selaa",      en: "Browse" },
  creators_title_em:   { fi: "luojia",     en: "creators" },
  creators_desc:       {
    fi: "Julkisista lähteistä koottu hakemisto. Klikkaa avataksesi luojan virallisen profiilin.",
    en: "A directory compiled from public sources. Click to open a creator's official profile."
  },
  creators_filter_ph:  { fi: "Suodata nimellä tai käyttäjänimellä…", en: "Filter by name or handle…" },
  creators_show_more:  { fi: "Näytä lisää", en: "Show more" },
  creators_showing:    { fi: "Näytetään",   en: "Showing" },
  creators_of:         { fi: "/",           en: "of" },
  creators_visit:      { fi: "OnlyFans",    en: "OnlyFans" },
  creators_none:       { fi: "Ei tuloksia. Kokeile toista hakua.", en: "No results. Try another search." },
  creators_verified:   { fi: "Vahvistettu", en: "Verified" },

  // ── Takedown / opt-out ────────────────────────────────────────────────
  footer_takedown:     { fi: "Poista profiili / Takedown", en: "Remove profile / Takedown" },

  // ── Tweaks ────────────────────────────────────────────────────────────
  tw_appearance:   { fi: "Ulkoasu",        en: "Appearance" },
  tw_mode:         { fi: "Tila",           en: "Mode" },
  tw_palette:      { fi: "Paletti",        en: "Palette" },
  tw_presentation: { fi: "Esitys",         en: "Presentation" },
  tw_density:      { fi: "Tiheys",         en: "Density" },
  tw_comfy:        { fi: "Väljä",          en: "Comfy" },
  tw_dense:        { fi: "Tiivis",         en: "Dense" },
  tw_trend:        { fi: "Trendi-merkit",  en: "Trend badges" },
  tw_surface:      { fi: "Pinta",          en: "Surface" },
  tw_solid:        { fi: "Kiinteä",        en: "Solid" },
  tw_glass:        { fi: "Lasi",           en: "Glass" },
};

const LangContext = React.createContext("fi");

function useT() {
  const lang = React.useContext(LangContext);
  return function T(key, fallback) {
    const e = STRINGS[key];
    if (!e) return fallback != null ? fallback : key;
    return e[lang] != null ? e[lang] : e.fi;
  };
}

function useLang() {
  return React.useContext(LangContext);
}

Object.assign(window, { STRINGS, LangContext, useT, useLang });
