// i18n: TR + EN translations, language context, switcher
const { useState: useStateI, useEffect: useEffectI, createContext: createContextI, useContext: useContextI } = React;

const LANGS = ['tr', 'en'];
const DEFAULT_LANG = 'tr';

// URL is the source of truth for language
function langFromPath(pathname) {
  if (pathname === '/en' || pathname === '/en/' || pathname.startsWith('/en/')) return 'en';
  return 'tr';
}

// Bidirectional URL map: TR (canonical) → EN equivalent.
// Slugs are localized so each language has discoverable URLs (SEO).
const PATH_MAP_TR_EN = {
  '/': '/en',
  '/noctavia': '/en/noctavia',
  '/noctavia/sesli-yorum': '/en/noctavia/voice-interpretation',
  '/noctavia/ruya-sozlugu': '/en/noctavia/dream-dictionary',
  '/noctavia/tema-analizi': '/en/noctavia/theme-analysis',
  '/noctavia/premium': '/en/noctavia/premium',
  '/noctavia/ruya-gunlugu': '/en/noctavia/dream-journal',
  '/zikirmatik': '/en/zikirmatik',
  '/ramazan': '/en/ramadan',
  '/kelime-bul': '/en/word-find',
  '/hesap-vakti': '/en/bill-time',
  '/tasarrufcu': '/en/saver',
  '/gizlilik': '/en/privacy',
  '/kullanim-sartlari': '/en/terms',
};
const PATH_MAP_EN_TR = (() => {
  const r = {};
  for (const k in PATH_MAP_TR_EN) r[PATH_MAP_TR_EN[k]] = k;
  return r;
})();

// Canonicalize any URL path to its TR (canonical) form.
// Handles: known TR slug, known EN slug (via reverse map), or unknown
// /en/-prefixed path (fallback strip).
function toTrCanonical(pathname) {
  if (PATH_MAP_EN_TR[pathname]) return PATH_MAP_EN_TR[pathname];
  if (pathname === '/en' || pathname === '/en/') return '/';
  if (pathname.startsWith('/en/')) return pathname.slice(3);
  return pathname;
}

// Return the equivalent path in `targetLang`. Idempotent for any input
// (both '/foo' and '/en/foo' produce the same canonical target).
function pathForLang(currentPath, targetLang) {
  const tr = toTrCanonical(currentPath);
  if (targetLang === 'tr') return tr;
  // targetLang === 'en'
  if (PATH_MAP_TR_EN[tr]) return PATH_MAP_TR_EN[tr];
  if (tr === '/' || tr === '') return '/en';
  return '/en' + tr;  // unknown TR path → prefix fallback
}

const LangContext = createContextI({ lang: DEFAULT_LANG, setLang: () => {} });

function LangProvider({ children }) {
  const [lang, setLangState] = useStateI(() => langFromPath(window.location.pathname));

  // Keep state in sync with URL (popstate, programmatic nav)
  useEffectI(() => {
    const sync = () => setLangState(langFromPath(window.location.pathname));
    window.addEventListener('popstate', sync);
    window.addEventListener('kolabs:navigate', sync);
    return () => {
      window.removeEventListener('popstate', sync);
      window.removeEventListener('kolabs:navigate', sync);
    };
  }, []);

  const setLang = (l) => {
    if (!LANGS.includes(l)) return;
    if (lang === l) return;
    const target = pathForLang(window.location.pathname, l);
    if (target !== window.location.pathname) {
      window.history.pushState({}, '', target);
      window.dispatchEvent(new Event('kolabs:navigate'));
      window.scrollTo({ top: 0, behavior: 'instant' });
    }
    setLangState(l);
  };

  useEffectI(() => {
    document.documentElement.lang = lang;
    try { localStorage.setItem('kolabs-lang', lang); } catch (e) {}
    // Update og:locale, meta description per language
    const meta = document.querySelector('meta[name="description"]');
    const ogLocale = document.querySelector('meta[property="og:locale"]');
    const ogDesc = document.querySelector('meta[property="og:description"]');
    const ogTitle = document.querySelector('meta[property="og:title"]');
    if (lang === 'en') {
      if (meta) meta.setAttribute('content', 'kolabs — Android app studio. Noctavia, Zikirmatik, Ramadan, Word Find, Bill Time and Saver.');
      if (ogLocale) ogLocale.setAttribute('content', 'en_US');
      if (ogDesc) ogDesc.setAttribute('content', 'From Turkey, for the world. Android apps for the small but meaningful parts of daily life.');
      if (ogTitle) ogTitle.setAttribute('content', 'kolabs. — Android apps');
    } else {
      if (meta) meta.setAttribute('content', 'Kolabs — Android uygulama geliştirme markası. Noctavia, Zikirmatik, Ramazan İmsakiyesi, Kelime Bul, Hesap Vakti ve Tasarrufçu.');
      if (ogLocale) ogLocale.setAttribute('content', 'tr_TR');
      if (ogDesc) ogDesc.setAttribute('content', 'Türkiye\'den, dünyaya. Günlük hayatın küçük ama anlamlı parçaları için Android uygulamaları.');
      if (ogTitle) ogTitle.setAttribute('content', 'kolabs. — Android uygulamaları');
    }
  }, [lang]);
  return React.createElement(LangContext.Provider, { value: { lang, setLang } }, children);
}

function useLang() {
  return useContextI(LangContext);
}

function useT() {
  const { lang } = useLang();
  return TRANSLATIONS[lang] || TRANSLATIONS.tr;
}

// ─── Translations ─────────────────────────────────────────────────
const TR = {
  // Chrome
  nav: {
    home: 'Anasayfa',
    apps: 'Uygulamalar',
    manifesto: 'Manifesto',
    contact: 'İletişim',
    playStore: 'Play Store',
    menu: 'Menü',
  },
  ticker: {
    sys: 'operational',
    version: 'v 1.4.0 · build 2026.04',
    apps: '6 uygulama · TR yapımı',
  },
  footer: {
    intro: 'Türkiye\'den, dünyaya. İnsanların günlük hayatını sadeleştiren Android uygulamaları geliştiriyoruz — hızlı, özenli, gizliliğe saygılı.',
    appsTitle: 'Uygulamalar',
    noctaviaTitle: 'Noctavia',
    legalTitle: 'Yasal',
    privacy: 'Gizlilik Politikası',
    terms: 'Kullanım Şartları',
    rights: '© 2026 kolabs',
    tagline: 'Made with care · Designed in TR',
    sesliYorum: 'Sesli Yorum',
    ruyaSozlugu: 'Rüya Sözlüğü',
    temaAnalizi: 'Tema Analizi',
    ruyaGunlugu: 'Rüya Günlüğü',
    premium: 'Premium',
  },
  // App descriptions used in nav dropdown + footer
  appsMeta: {
    noctavia: { name: 'Noctavia', desc: 'AI rüya tabircin', tag: 'AI' },
    zikirmatik: { name: 'Zikirmatik', desc: 'Dijital tesbih', tag: 'İslami' },
    ramazan: { name: 'Ramazan', desc: 'İmsak & namaz vakitleri', tag: 'İslami' },
    kelimebul: { name: 'Kelime Bul', desc: 'Türkçe kelime oyunu', tag: 'Oyun' },
    hesapvakti: { name: 'Hesap Vakti', desc: 'Hesabı kim ödeyecek?', tag: 'Oyun' },
    tasarrufcu: { name: 'Tasarrufçu', desc: 'Bütçe takibi', tag: 'Yakında' },
  },
  // Home
  home: {
    title: 'Anasayfa',
    heroEyebrow: 'K-001 · 2023\'ten beri aktif',
    heroBrandDot: '.',
    heroTagline: 'Türkiye\'den, dünyaya. Günlük hayatın küçük ama anlamlı parçaları için Android uygulamaları.',
    metaApps: 'uygulama yayında',
    metaLangs: 'dil desteği',
    metaRating: 'ortalama puan',
    portfolioNum: '[ 01 ] Portfolio',
    portfolioTitle: 'Uygulamalar',
    portfolioDesc: 'Her biri belirli bir günlük rutine adanmış, özenle inşa edilmiş.',
    apps: {
      noctavia: {
        name: 'Noctavia',
        tagline: 'Yapay zeka destekli rüya tabircin. Sesli anlat, AI yorumlasın. 6 dilde sembol sözlüğü ve tema analizi.',
        category: 'AI · Rüya',
      },
      zikirmatik: {
        name: 'Zikirmatik',
        tagline: 'Modern, sade dijital tesbih. Sayaç, hedefler, çoklu set. Titreşim ve ses ile.',
        category: 'İslami',
      },
      ramazan: {
        name: 'Ramazan',
        tagline: 'İmsak, iftar, namaz vakitleri. Konum bazlı uyarılar — Türkiye ve dünya genelinde.',
        category: 'İslami',
      },
      kelimebul: {
        name: 'Kelime Bul',
        tagline: 'Türkçe kelime bulmaca. 10.000+ kelime, 200+ seviye, günlük zorluk.',
        category: 'Oyun',
      },
      hesapvakti: {
        name: 'Hesap Vakti',
        tagline: 'Hesabı kim ödeyecek? Parmaklar ekrana, geri sayım başlasın. Eğlenceli parti oyunu.',
        category: 'Parti Oyunu',
      },
      tasarrufcu: {
        name: 'Tasarrufçu',
        tagline: 'Aylık bütçe, harcama kategorileri, tasarruf hedefleri. Sade ve özel.',
        category: 'Finans',
      },
    },
    statusLive: 'Live',
    statusSoon: 'Yakında',
    featuredEyebrow: '★ Yeni — vol. 03 · Q2 2026',
    featuredTitle1: 'Noctavia',
    featuredTitle2: 'rüyalarını oku',
    featuredText: 'Sesinle anlat, AI saniyeler içinde yorumlasın. 1000+ sembol, 30 günlük tema analizi, 6 dilde sesli okuma. Bilinçaltının bir aynası — kehanet değil.',
    featuredCtaPrimary: 'Keşfet',
    featuredCtaSecondary: 'Play Store ↗',
    manifestoNum: '[ 02 ] Manifesto',
    manifestoTitle: 'Ne yapıyoruz?',
    manifestoDesc: 'Bizi yönlendiren üç ilke.',
    principles: [
      { num: 'İLKE 01', tag: 'Sade', title: 'Az, ama özenli.', desc: 'Her uygulama tek bir işe odaklanır. Ekstralar, gereksiz menüler ve gürültü yok. Açtığında ne yapacağını bilirsin.' },
      { num: 'İLKE 02', tag: 'Gizli', title: 'Verin senindir.', desc: 'Üçüncü taraf takip yok. Veriler cihazda ya da senin Google hesabında kalır. Reklamlar minimal, opsiyonel.' },
      { num: 'İLKE 03', tag: 'Yerli', title: 'Türkçe önce.', desc: 'Ana dilimiz Türkçe — ama altı dile genişledik. Yerel konteksti unutmayan, küresel bir ton.' },
    ],
  },
  // 404
  notFound: {
    crumb: '404',
    h1: 'Bulunamadı.',
    h2: 'Aradığın sayfa burada değil. Belki başka bir rüyada.',
    cta: 'Ana sayfa →',
  },
  // Common
  common: {
    download: 'Play Store\'dan İndir',
    downloadShort: 'Play Store ↗',
    features: 'Özellikler',
    faq: 'Sıkça Sorulanlar',
    featuresQ: 'Ne yapabilir?',
    featuresDesc: 'Tek odakta, özenle inşa edilmiş.',
    faqDesc: 'En çok merak edilenler.',
    detail: 'Detay',
    back: 'Geri',
    allFeatures: 'Tüm özellikler →',
  },
  // App detail pages
  apps: {
    zikirmatik: {
      crumb: 'Zikirmatik',
      eyebrow: 'İslami · Tesbih',
      h1: 'Zikirmatik — modern dijital tesbih',
      h2: 'Sade, hızlı, sessiz. Cep telefonun bir tesbihe dönüşür.',
      lead: <>Zikirmatik, klasik tesbihin sadeliğini cebine taşır. <strong>Tek dokunuşla sayaç</strong>, hedef belirleme, çoklu zikir setleri ve isteğe bağlı titreşim/ses geri bildirimi sunar. Karanlık modda tek elle kullanım için optimize edilmiş — gece namazından sonra ya da yolda, gözünü ekrandan ayırmadan zikrini tamamla. <strong>Çevrimdışı, gizliliğe saygılı, ücretsiz.</strong></>,
      features: [
        { title: 'Tek dokunuş sayaç', desc: 'Ekranın herhangi bir yerine dokun, sayaç artar. Yan tuşlarla da çalışır.' },
        { title: 'Hedef ayarı', desc: '33, 99, 100 ya da özel hedef. Hedefe ulaşınca uyarı.' },
        { title: 'Çoklu set', desc: 'Subhanallah, Elhamdülillah, Allahuekber gibi birden fazla zikir setini paralel takip et.' },
        { title: 'Titreşim & ses', desc: 'Her zikrede hafif titreşim ya da klik sesi — tamamen isteğe bağlı.' },
      ],
      faq: [
        { q: 'Çevrimdışı çalışır mı?', a: 'Evet, internet bağlantısı gerekmez. Tüm sayım ve setler cihazda saklanır.' },
        { q: 'Ücretsiz mi?', a: 'Evet, ücretsizdir. Uygulamada reklamlar görüntülenebilir.' },
        { q: 'Verilerim nereye gidiyor?', a: 'Hiçbir veri toplamıyoruz. Sayım sadece cihazında kalır.' },
      ],
      ctaTitle: 'Zikrine başla.',
      ctaSub: 'Ücretsiz, çevrimdışı, sade.',
    },
    ramazan: {
      crumb: 'Ramazan İmsakiyesi',
      eyebrow: 'İslami · Vakit',
      h1: 'Ramazan İmsakiyesi — vaktinde uyar, doğru hesapla',
      h2: 'İmsak, iftar ve namaz vakitleri. Konum bazlı, dünya genelinde.',
      lead: <>İmsak, iftar ve beş vakit namaz zamanlarını <strong>konumuna göre dinamik olarak</strong> hesaplayan bir uygulama. <strong>Türkiye'nin tüm il ve ilçelerinde</strong> ve <strong>dünya genelinde</strong> şehirlerde çalışır — konumuna göre otomatik tespit ya da manuel şehir seçimi. İftar ve imsak için <strong>özelleştirilebilir bildirimler</strong>, canlı geri sayım ve aylık takvim görünümü. Hızlı, sade, gerçek zamanlı güncel.</>,
      features: [
        { title: 'Tüm dünya', desc: 'Türkiye il/ilçeleri ve dünya genelinde şehirler için doğru vakitler.' },
        { title: 'Akıllı uyarılar', desc: 'İmsak, iftar ve ezan vakitleri için özelleştirilebilir bildirim.' },
        { title: 'Canlı geri sayım', desc: 'Sıradaki vakte kalan süre dinamik olarak ekrana yansır.' },
        { title: 'Aylık takvim', desc: 'Tüm Ramazan ayının vakitleri tek bakışta görünüm.' },
      ],
      faq: [
        { q: 'Yurt dışında çalışır mı?', a: 'Evet — uygulama dünya genelinde tüm büyük şehirlerde çalışır. Konum izni verirsen otomatik tespit, vermezsen manuel şehir seçebilirsin.' },
        { q: 'Vakitler nasıl hesaplanıyor?', a: 'Türkiye için Diyanet verileriyle, dünya geneli için astronomik hesap yöntemleriyle (Muslim World League, ISNA, Umm al-Qura vb.) hesaplanır.' },
        { q: 'Bildirimleri kapatabilir miyim?', a: 'Her vakit için bildirim ayrı ayrı aç/kapat yapılabilir; sessiz mod da var.' },
        { q: 'Ücretsiz mi?', a: 'Evet, ücretsizdir. Uygulamada reklamlar görüntülenebilir.' },
      ],
      ctaTitle: 'Vakti kaçırma.',
      ctaSub: 'Konumuna göre, dünyanın her yerinde.',
    },
    kelimebul: {
      crumb: 'Kelime Bul',
      eyebrow: 'Oyun · Türkçe',
      h1: 'Kelime Bul — Türkçe kelime bulmaca',
      h2: '200+ seviye, 10.000+ kelime, günlük zorluklar.',
      lead: <>Klasik harf-bulmaca akışını Türkçenin zenginliğiyle yeniden tasarladık. <strong>10.000+ kelime</strong> içeren özenle hazırlanmış sözlük, <strong>200+ seviye</strong> ve her gün yeni bir <strong>günlük zorluk</strong>. İpucu sistemi, ilerleme takibi ve karanlık mod. Bağlantı gerekmez, çevrimdışı oynanır.</>,
      features: [
        { title: '10.000+ kelime', desc: 'TDK ile uyumlu, özenle seçilmiş Türkçe sözlük.' },
        { title: '200+ seviye', desc: 'Kolaydan zora, kademeli artan zorluk.' },
        { title: 'Günlük zorluk', desc: 'Her gün yeni bir bulmaca — küresel sıralama.' },
        { title: 'Çevrimdışı', desc: 'İnternetsiz oynayabilir, ilerlemen kaydedilir.' },
      ],
      faq: [
        { q: 'Hangi cihazlarda çalışır?', a: 'Android 7.0+ tüm cihazlarda. Tablet için optimize.' },
        { q: 'İpucu sistemi nasıl?', a: 'Her seviye 3 ücretsiz ipucu hakkı var; reklamla ek ipucu kazanılabilir.' },
        { q: 'Yeni seviyeler eklenecek mi?', a: 'Evet, ayda en az 20 yeni seviye ekleniyor.' },
      ],
      ctaTitle: 'Bir kelime daha.',
      ctaSub: 'Türkçenin zenginliğiyle bulmaca.',
    },
    hesapvakti: {
      crumb: 'Hesap Vakti',
      eyebrow: 'Parti Oyunu · Eğlence',
      h1: 'Hesap Vakti — hesabı kim ödeyecek?',
      h2: 'Parmaklar ekrana, geri sayım başlasın!',
      lead: <>Masada anlaşamadınız mı? Hesabı kim ödeyecek? <strong>Herkes parmağını ekrana koysun</strong>, geri sayım başlasın. Rastgele eleme sistemi tek bir parmak kalana kadar devam eder — kaybeden hesabı öder. <strong>Titreşim, animasyon ve ses efektleriyle</strong> arkadaş grubuyla oynamak için birebir. Adil, hızlı, eğlenceli.</>,
      features: [
        { title: 'Çoklu dokunma', desc: 'Tüm parmaklar aynı anda ekrana — 2 ila 10 oyuncu desteği.' },
        { title: 'Geri sayım', desc: 'Heyecan dolu 3-2-1 ardından rastgele eleme başlar.' },
        { title: 'Rastgele eleme', desc: 'Adil ve şeffaf algoritma. Tek bir parmak kalana kadar.' },
        { title: 'Tam his', desc: 'Titreşim, animasyon ve ses efektleri — masaya enerji katar.' },
      ],
      faq: [
        { q: 'Kaç kişi oynayabilir?', a: 'Cihazın desteklediği parmak sayısı kadar — genellikle 2 ile 10 oyuncu arası.' },
        { q: 'Çevrimdışı çalışır mı?', a: 'Evet, internet bağlantısı gerekmez. Tek dokunuşla başlarsınız.' },
        { q: 'Sadece hesap için mi?', a: 'Hayır — kim alışverişe gidecek, kim bulaşık yıkayacak, kim ilk oynayacak… her türlü "kim?" sorusu için kullanılır.' },
      ],
      ctaTitle: 'Parmaklar ekrana.',
      ctaSub: 'Geri sayım başlasın.',
    },
    tasarrufcu: {
      crumb: 'Tasarrufçu',
      eyebrow: 'Yakında · Q3 2026',
      h1: 'Tasarrufçu — bütçe takibi, sade ve özel',
      h2: 'Aylık bütçe, kategori takibi, tasarruf hedefleri. Veriler cihazında kalır.',
      lead: <>Banka entegrasyonu gerektirmeyen, manuel ama hızlı bir kişisel finans uygulaması. <strong>Aylık bütçe</strong> belirler, harcamalarını <strong>kategorilere</strong> ayırır, <strong>tasarruf hedeflerine</strong> ne kadar yaklaştığını grafikle görürsün. Verilerin cihazında — bulut yok, hesap yok, üçüncü taraf yok. Şu an son testlerde; çıkışı kaçırmak istemezsen aşağıya e-posta bırak.</>,
      features: [
        { title: 'Aylık bütçe', desc: 'Aylık hedef belirle; gerçekleşene karşı görsel takip.' },
        { title: 'Kategoriler', desc: 'Yemek, ulaşım, eğlence, fatura — özelleştirilebilir.' },
        { title: 'Hedefler', desc: 'Tasarruf hedefleri ve ne zaman ulaşacağın projeksiyonu.' },
        { title: 'Tam gizli', desc: 'Hesap yok, bulut yok. Tüm veri cihazında.' },
      ],
      ctaTitle: 'Hazır olduğunda haber veririz.',
      ctaSub: 'E-posta listesine katıl, çıkışta ilk sen bil.',
      emailPlaceholder: 'e-posta@ornek.com',
      emailButton: 'Haber Ver',
      emailSent: '✓ Eklendi — çıkışta haber vereceğiz',
      noScreenshot: 'Henüz screenshot yok',
    },
  },
  // Noctavia: home + 5 subpages
  noctavia: {
    brand: 'NOCTAVIA · v3.2',
    crumb: 'Noctavia',
    home: {
      eyebrow: 'Yapay Zeka · Rüya',
      h1: <>Noctavia — <em>yapay zeka</em> rüya tabircin</>,
      h2: 'Rüyalarını anlat, anlamlandır, sakla. Saniyeler içinde detaylı yorum, sembolik analiz ve yansıma.',
      lead: <>Noctavia, Claude AI tarafından desteklenen üç bölümlü rüya yorumlama deneyimi sunar: <strong>Genel Yorum</strong>, <strong>Sembolik Analiz</strong>, <strong>Yansıma</strong>. Sesli ya da yazılı anlat — uygulama gerisini halleder. Tüm rüyaların güvenle saklanır, istediğin zaman geri dönüp temalarını analiz edebilirsin.</>,
      featuresNum: '[ 01 ] Özellikler',
      featuresQ: 'Ne yapabilir?',
      featuresDesc: '6 ana özellik, tek bir gece.',
      features: [
        { to:'/noctavia/sesli-yorum', title:'Sesli Yorum', desc:'Mikrofona anlat, AI saniyeler içinde yorumlasın.', tag:'AI · STT' },
        { to:'/noctavia/ruya-sozlugu', title:'Rüya Sözlüğü', desc:'1000+ sembol, A–Z indeks, çevrimdışı erişim.', tag:'Offline' },
        { to:'/noctavia/tema-analizi', title:'Tema Analizi', desc:'30 günlük örüntüler, tekrar eden semboller.', tag:'Insights' },
        { to:'/noctavia/ruya-gunlugu', title:'Rüya Günlüğü', desc:'Takvim, arama, favoriler — verilerini sakla.', tag:'Journal' },
        { to:'/noctavia/premium', title:'Premium', desc:'Sınırsız yorum, sesli okuma, gelişmiş analiz.', tag:'Plans' },
        { to:'/noctavia/sesli-yorum', title:'6 Dil Desteği', desc:'TR · EN · AR · DE · FR · ES.', tag:'i18n' },
      ],
      ctaTitle: <>Bu gece <em>başla</em>.</>,
      ctaSub: 'Ücretsiz indir, ilk rüyanı yorumla.',
    },
    sesliYorum: {
      crumb: 'Sesli Yorum',
      eyebrow: 'Speech-to-Text · AI',
      h1: <>Sesli Rüya Yorumu — <em>anlat</em>, AI yorumlasın</>,
      h2: 'Sesinle anlat, saniyeler içinde yorumla.',
      lead: <>Noctavia'nın sesli rüya yorumu özelliğiyle rüyanı yazmak zorunda değilsin. Mikrofona tut, doğal bir şekilde anlat — yapay zeka saniyeler içinde detaylı yorumunu sunar. Sesli mesaj otomatik metne dönüştürülür, <strong>Claude AI</strong> tarafından analiz edilir ve <strong>3 bölümlü</strong> detaylı yorum elde edilir: Genel Yorum, Sembolik Analiz, Yansıma. <strong>TR, EN, AR, DE, FR, ES</strong> destekler.</>,
      recordHead: 'Canlı Kayıt',
      recordMeta: '02:00 max · TR · 48kHz',
      recordRec: '● REC',
      recordTime: '00:23 / 02:00',
      recordLatency: '1247 ms latency',
      steps: [
        { title: 'Mikrofona bas', desc: 'Uygulamayı aç, kayıt butonuna dokun.' },
        { title: 'Doğal anlat', desc: 'En fazla 2 dakika, akıcı şekilde.' },
        { title: 'AI yorumlar', desc: 'Saniyeler içinde 200–400 kelimelik yorum.' },
        { title: 'Dinle (Premium)', desc: 'Sonucu sesli olarak da dinleyebilirsin.' },
      ],
      faq: [
        { q: 'Hangi dilde konuşabilirim?', a: 'Türkçe, İngilizce, Arapça, Almanca, Fransızca ve İspanyolca — uygulama dil ayarına göre otomatik seçilir.' },
        { q: 'Ses kayıtlarım saklanıyor mu?', a: 'Hayır. Sesin metne çevrildikten hemen sonra silinir. Sadece yorumlanan metin ve sonuç senin günlüğünde tutulur.' },
        { q: 'Çevrimdışı çalışır mı?', a: 'STT ve AI yorumlama sunucu taraflı çalıştığı için aktif internet bağlantısı gerekir.' },
        { q: 'Ne kadar uzun anlatabilirim?', a: 'Tek seferde maksimum 2 dakika. Daha uzun rüyalar için yazılı moda geçebilirsin.' },
      ],
      ctaTitle: <><em>Anlat</em>, yorumlansın.</>,
      ctaSub: 'Ses kayıt özelliği tüm sürümlerde ücretsiz.',
    },
    ruyaSozlugu: {
      crumb: 'Rüya Sözlüğü',
      eyebrow: '1000+ sembol · Offline',
      h1: <>Rüya <em>Sözlüğü</em></>,
      h2: 'A\'dan Z\'ye, sembollerin anlamı parmaklarının ucunda.',
      lead: <>Noctavia'nın <strong>1000+ sembol</strong> içeren rüya sözlüğü, klasik tabir kitaplarının özünü modern bir yorumla buluşturur. <strong>A–Z indeksi</strong>, gelişmiş arama ve <strong>çevrimdışı erişim</strong> sayesinde uçakta, otobüste ya da gece yarısı uyandığında her zaman elinin altında. Her sembol için kısa anlam, kültürel arka plan ve psikolojik yorum.</>,
      searchPlaceholder: 'Sembol ara — örn. su, yılan, ev…',
      searchHint: '⌘ K',
      letterAll: 'ALL',
      letters: ['ALL','A','B','C','Ç','D','E','F','G','H','I','İ','J','K','L','M','N','O','Ö','P','R','S','Ş','T','U','Ü','V','Y','Z'],
      noResults: 'Sonuç bulunamadı. Tam sözlük için uygulamayı indir.',
      symbols: [
        { l:'A', name:'Ay', mean:'Bilinçaltı, dişil enerji, döngüsel değişim. Dolunay görmek netleşmeyi, hilal görmek başlangıçları işaret eder.' },
        { l:'A', name:'Aslan', mean:'Cesaret, otorite, içsel güç. Saldırgan aslan kontrol edilemeyen dürtüleri temsil eder.' },
        { l:'A', name:'Altın', mean:'Değer, kalıcılık, içsel zenginlik. Kaybedilen altın özsaygıyla ilgili kaygıyı işaret edebilir.' },
        { l:'B', name:'Bebek', mean:'Yenilik, başlangıçlar, potansiyel. Bakım veren rolünden, sorumluluk hislerine dair ipuçları taşır.' },
        { l:'D', name:'Deniz', mean:'Duygular, bilinçaltı, sonsuzluk. Dingin deniz huzuru, fırtınalı deniz çözümlenmemiş duyguyu yansıtır.' },
        { l:'D', name:'Diş', mean:'Güç, kontrol, kayıp endişesi. Diş düşmesi sıklıkla geçiş dönemleriyle ilişkilendirilir.' },
        { l:'E', name:'Ev', mean:'Benlik, iç dünya, kişisel alan. Yeni odalar keşfedilen yönleri sembolize eder.' },
        { l:'K', name:'Kuş', mean:'Özgürlük, yükseliş, mesaj. Renkli kuşlar yaratıcı enerji, kara kuşlar bilinmeyene dair sezgi.' },
        { l:'K', name:'Köprü', mean:'Geçiş, bağlantı, karar anı. Sağlam köprü güveni, sallantılı köprü belirsizliği işaret eder.' },
        { l:'M', name:'Merdiven', mean:'İlerleme, hiyerarşi, manevi yükseliş. Yukarı çıkmak gelişimi, aşağı inmek geçmişe dönüşü gösterir.' },
        { l:'S', name:'Su', mean:'Yaşam, arınma, duygusal akış. Berrak su sağaltımı, bulanık su karmaşayı temsil eder.' },
        { l:'Y', name:'Yılan', mean:'Dönüşüm, bilgelik, gizli güç. Deri değiştirme yenilenmenin en güçlü sembollerinden.' },
      ],
      faq: [
        { q: 'Çevrimdışı çalışır mı?', a: 'Evet. Sözlüğün tamamı uygulamayla birlikte gelir; internet olmadan da erişebilirsin.' },
        { q: 'Kaç sembol var?', a: '1000+ ana sembol, 3000+ türev anlam.' },
        { q: 'Sözlük güncelleniyor mu?', a: 'Düzenli güncellemelerle yeni semboller ve genişletilmiş yorumlar ekleniyor.' },
      ],
      ctaTitle: <><em>Sembolü</em> bul, anlamla.</>,
      ctaSub: 'Tüm sözlük ücretsiz, çevrimdışı.',
    },
    temaAnalizi: {
      crumb: 'Tema Analizi',
      eyebrow: 'Pattern Recognition',
      h1: <>Tema <em>Analizi</em></>,
      h2: '30 günlük rüya örüntülerin, tek bakışta.',
      lead: <>Noctavia bilinçaltının kalıplarını ortaya çıkarır. <strong>30 günlük</strong> tema analizi, rüyalarında tekrar eden sembolleri, duygu durumlarını ve mekânları gruplar. AI destekli örüntü tanıma sayesinde hangi temaların bilinçaltında ağırlık kazandığını görebilir, dönemsel duygusal yoğunluğunu izleyebilirsin. Bu bir kehanet değil — bir <strong>aynadır</strong>.</>,
      themesHead: 'Son 30 gün — En sık temalar',
      themesMeta: '42 rüya · güncellendi: bugün',
      themes: [
        { name: 'Su / Deniz', pct: 78, count: 23 },
        { name: 'Uçma', pct: 62, count: 18 },
        { name: 'Takip', pct: 54, count: 16 },
        { name: 'Bilinmeyen Yer', pct: 47, count: 14 },
        { name: 'Aile', pct: 41, count: 12 },
        { name: 'Kayıp', pct: 33, count: 10 },
      ],
      heatmapHead: 'Duygu yoğunluğu — heatmap',
      heatmapMeta: 'son 6 hafta · 7×6',
      heatmapLow: 'düşük',
      heatmapHigh: 'yüksek',
      faq: [
        { q: 'Veri nereden geliyor?', a: 'Sadece kendi rüya günlüğünden. Tüm analiz cihazında ya da senin hesabında, anonim olmayan biçimde tutulur.' },
        { q: 'Ne kadar rüya yazmam gerek?', a: 'Anlamlı bir analiz için en az 7 farklı gün kaydı önerilir.' },
        { q: 'AI hangi modeli kullanıyor?', a: 'Claude AI ile özel olarak eğitilmiş tema sınıflandırma katmanı.' },
      ],
      ctaTitle: <>Örüntüyü <em>gör</em>.</>,
      ctaSub: '30 gün sonra kendi haritana bak.',
    },
    premium: {
      crumb: 'Premium',
      eyebrow: 'Plans',
      h1: 'Noctavia Premium',
      h2: 'Daha fazla yorum, sesli dinleme, haftalık tema analizi.',
      lead: <>Noctavia üç planda gelir. <strong>Free</strong>'de günde 2 yazılı yorum, <strong>Standart</strong>'ta günde 10 yorum ve sesli giriş, <strong>Premium</strong>'da günde 30 yorum, sesli yorum dinleme ve haftalık tema analizi açıktır. İstediğin zaman iptal edebilirsin.</>,
      periodMonthly: 'Aylık',
      periodYearly: 'Yıllık',
      perMonth: 'ay',
      perYear: 'yıl',
      tierFree: 'Free',
      tierStandard: 'Standart',
      tierPremium: 'Premium',
      recommended: 'Önerilen',
      freeSub: 'Başlamak için yeterli.',
      standardSub: 'Düzenli rüya görenler için.',
      premiumSub: 'Tam derinlik, tam erişim.',
      freeFeatures: [
        { text: 'Günde 2 yazılı yorum', no: false },
        { text: 'Rüya sözlüğü (200+ sembol)', no: false },
        { text: 'Rüya günlüğü (son 7 gün)', no: false },
        { text: 'Sesli rüya girişi', no: true },
        { text: 'Sesli yorum dinleme', no: true },
        { text: 'Tema analizi', no: true },
      ],
      standardFeatures: [
        { text: 'Günde 10 yorum', no: false },
        { text: 'Sesli rüya girişi', no: false },
        { text: '90 gün geçmiş', no: false },
        { text: '500+ rüya sözlüğü', no: false },
        { text: 'Reklamsız deneyim', no: false },
        { text: 'Sesli yorum dinleme', no: true },
      ],
      premiumFeatures: [
        { text: 'Günde 30 yorum', no: false },
        { text: 'Sesli rüya girişi', no: false },
        { text: 'Sınırsız geçmiş', no: false },
        { text: '1000+ sembol sözlüğü', no: false },
        { text: 'Reklamsız deneyim', no: false },
        { text: 'Sesli yorum dinleme', no: false },
        { text: 'Haftalık tema analizi', no: false },
        { text: 'Öncelikli AI erişimi', no: false },
      ],
      freeCta: 'Ücretsiz İndir',
      standardCta: 'Standart Edin',
      premiumCta: 'Premium Edin',
      compareFeature: 'Özellik',
      compareRows: [
        ['Günlük yorum', '2', '10', '30'],
        ['Sesli rüya girişi', '—', '✓', '✓'],
        ['Sesli yorum dinleme', '—', '—', '✓'],
        ['Rüya sözlüğü', '200+', '500+', '1000+'],
        ['Geçmiş', '7 gün', '90 gün', 'Sınırsız'],
        ['Tema analizi', '—', '—', 'Haftalık'],
        ['Reklamsız', '—', '✓', '✓'],
        ['Öncelikli AI', '—', '—', '✓'],
      ],
      faq: [
        { q: 'İptal edebilir miyim?', a: 'Evet, istediğin zaman Play Store hesabından aboneliğini iptal edebilirsin.' },
        { q: 'Ödeme nasıl yapılır?', a: 'Tüm ödemeler Google Play üzerinden, kayıtlı ödeme yöntemlerinden alınır.' },
        { q: 'Aileyle paylaşabilir miyim?', a: 'Google Play Family Library destekliyse, evet.' },
      ],
      ctaTitle: 'Plan seç.',
      ctaSub: 'İptal kolay, taahhüt yok.',
    },
    ruyaGunlugu: {
      crumb: 'Rüya Günlüğü',
      eyebrow: 'Journal · Search · Sync',
      h1: <>Rüya <em>Günlüğü</em></>,
      h2: 'Sakla, ara, geri dön. Her rüya bir kayıt.',
      lead: <>Rüya günlüğü, gördüğün her şeyi düzenli, aranabilir bir arşive dönüştürür. <strong>Takvim görünümü</strong> ile geçmiş aylara dön; <strong>arama</strong> ile sembol veya kelime üzerinden filtrele; <strong>favoriler</strong> ile özel rüyaları işaretle. Her kayıt bulut yedeklenir — cihaz değiştirsen de günlüğün seninle gelir.</>,
      monthHead: 'Bu ay — Nisan',
      monthMeta: '12 kayıt · 4 favori',
      weekDays: ['P','S','Ç','P','C','C','P'],
      searchPlaceholder: 'Rüyalarında ara — örn. su, anne, uçmak…',
      searchHint: 'SEARCH',
      favoriteLabel: '★ favori',
      entries: [
        { date: '27 NİS', tag: 'Su', title: 'Berrak gölün dibinde', excerpt: 'Suyun altındaydım ama nefes alabiliyordum. Bir kapı vardı zeminde…' },
        { date: '25 NİS', tag: 'Uçma', title: 'Şehir üzerinde süzülürken', excerpt: 'Çatıdan çatıya, yavaşça. Aşağıda bilmediğim bir şehir vardı.' },
        { date: '22 NİS', tag: 'Aile', title: 'Eski evin mutfağında', excerpt: 'Annem yemek pişiriyordu ama ses gelmiyordu. Sadece koku.' },
        { date: '20 NİS', tag: 'Takip', title: 'Karanlık koridor', excerpt: 'Bir şey peşimdeydi ama dönüp baktığımda hiçbir şey yoktu.' },
        { date: '18 NİS', tag: 'Bilinmeyen', title: 'Cam kütüphane', excerpt: 'Tüm raflar boştu. Bir kitabı raftan aldım, sayfaları boştu.' },
      ],
      faq: [
        { q: 'Verilerim güvende mi?', a: 'Tüm günlük kayıtların uçtan uca şifreli ve sadece senin Google hesabınla erişilebilir. Üçüncü taraflarla paylaşılmaz.' },
        { q: 'Cihaz değiştirsem ne olur?', a: 'Yeni cihazına Google ile giriş yapınca tüm günlüğün otomatik yüklenir.' },
        { q: 'Bir kaydı silebilir miyim?', a: 'Evet, her kaydı bireysel olarak ya da toplu silebilirsin. Silinen kayıt tamamen kaldırılır.' },
      ],
      ctaTitle: <><em>Sakla</em>, geri dön.</>,
      ctaSub: 'Günlüğün her zaman seninle.',
    },
    // Shared section labels (Steps, FAQ in Noctavia variant)
    sectionStepsNum: '[ 02 ] Akış',
    sectionStepsTitle: 'Nasıl Çalışır?',
    sectionStepsDesc: 'Saniyeler içinde anlamlı bir yorum.',
    sectionFaqNum: '[ 03 ] SSS',
    sectionFaqTitle: 'Sıkça Sorulanlar',
    sectionFaqDesc: 'Detaylar burada.',
  },
  privacy: {
    crumb: 'Gizlilik Politikası',
    eyebrow: 'Yasal · Gizlilik',
    title: 'Gizlilik Politikası',
    lastUpdated: '01 Mayıs 2026',
    body: <>
      <p className="legal-lead">Kolabs olarak gizliliğine saygı duyuyoruz. Bu politika, web sitemizi ve uygulamalarımızı (Noctavia, Zikirmatik, Ramazan İmsakiyesi, Kelime Bul, Hesap Vakti, Tasarrufçu) kullanırken hangi verilerin toplandığını, nasıl kullanıldığını ve haklarını açıklar.</p>
      <h2>1. Veri Sorumlusu</h2>
      <p>Bu politika kapsamındaki kişisel verilerin sorumlusu <strong>kolabs.</strong> markasıdır. İletişim: <a href="mailto:info@kolabs.tr">info@kolabs.tr</a>.</p>
      <h2>2. Toplanan Veriler</h2>
      <p>Uygulama bazında değişmekle birlikte aşağıdaki veriler işlenebilir:</p>
      <ul>
        <li><strong>Cihaz bilgisi:</strong> Anonim cihaz tipi, işletim sistemi sürümü, dil tercihi.</li>
        <li><strong>Kullanım analitiği:</strong> Hangi ekranların açıldığı, hata raporları (Firebase Crashlytics ve Google Analytics aracılığıyla).</li>
        <li><strong>Reklam tanımlayıcısı:</strong> Reklam içeren uygulamalarda Google AdMob; cihaz reklam ID'si işlenebilir, sıfırlayabilirsin.</li>
        <li><strong>Konum (yalnızca Ramazan İmsakiyesi):</strong> Doğru namaz vakitleri için, yalnızca senin onayınla. İsteğe bağlıdır; manuel şehir seçimi de mümkündür.</li>
        <li><strong>Ses kayıtları (yalnızca Noctavia):</strong> Sesli rüya yorumu için kaydedilir, sunucumuzda metne çevrildikten <em>hemen sonra silinir</em>. Yalnızca yorumlanan metin saklanır.</li>
        <li><strong>Kullanıcı içeriği:</strong> Rüya günlüğü gibi yazdıkların. Bunlar uygulamada veya kendi Google hesabında (yedekleme açıksa) kalır.</li>
      </ul>
      <h2>3. Verilerin Kullanım Amacı</h2>
      <ul>
        <li>Hizmeti sunmak, çalışır halde tutmak ve hataları düzeltmek.</li>
        <li>Anonim olarak kullanım örüntülerini analiz edip ürünü iyileştirmek.</li>
        <li>Reklam içeren ücretsiz sürümlerde alakalı reklamları göstermek.</li>
        <li>Yasal yükümlülüklere uymak.</li>
      </ul>
      <h2>4. Üçüncü Taraf Hizmetler</h2>
      <p>Aşağıdaki hizmet sağlayıcılarla sınırlı veri paylaşımı yapılabilir:</p>
      <ul>
        <li><strong>Google Play Services / Firebase</strong> — analitik, hata raporlama, kimlik doğrulama.</li>
        <li><strong>Google AdMob</strong> — reklam dağıtımı (yalnızca reklamlı sürümlerde).</li>
        <li><strong>Anthropic Claude API</strong> (yalnızca Noctavia) — rüya yorumlama. Yorum sonrası içerik anonim tutulur, eğitim verisi olarak kullanılmaz.</li>
        <li><strong>Vercel</strong> — bu web sitesinin barındırılması.</li>
      </ul>
      <h2>5. Veri Saklama Süresi</h2>
      <p>Veriler, hizmeti sunmak için gereken süre boyunca tutulur. Hesabını silmek istersen <a href="mailto:info@kolabs.tr">info@kolabs.tr</a> adresine yazabilirsin; talebin 30 gün içinde işleme alınır.</p>
      <h2>6. Çerezler</h2>
      <p>Web sitemiz analitik amaçlı çerezler (Google Analytics) kullanabilir. Tarayıcından bu çerezleri her zaman engelleyebilirsin.</p>
      <h2>7. Haklarınız (KVKK & GDPR)</h2>
      <p>Verilerine erişme, düzeltme, silme, işlemeyi kısıtlama ve taşınabilirlik haklarına sahipsin. Talebini <a href="mailto:info@kolabs.tr">info@kolabs.tr</a> adresine ileterek kullanabilirsin.</p>
      <h2>8. Çocuklar</h2>
      <p>Uygulamalarımız 13 yaş altı çocuklara yönelik değildir; bilerek bu yaş grubundan veri toplamayız.</p>
      <h2>9. Değişiklikler</h2>
      <p>Bu politika güncellenebilir; önemli değişiklikleri uygulama ve site içinde bildiririz. Geçerli sürüm her zaman bu sayfada görüntülenir.</p>
      <h2>10. İletişim</h2>
      <p>Soru, talep veya şikâyet için: <a href="mailto:info@kolabs.tr">info@kolabs.tr</a></p>
    </>,
  },
  terms: {
    crumb: 'Kullanım Şartları',
    eyebrow: 'Yasal · Şartlar',
    title: 'Kullanım Şartları',
    lastUpdated: '01 Mayıs 2026',
    body: <>
      <p className="legal-lead">Bu şartlar, kolabs web sitesini ve uygulamalarını kullanımına ilişkin kuralları belirler. Hizmetleri kullanarak bu şartları kabul etmiş sayılırsın.</p>
      <h2>1. Hizmetin Kapsamı</h2>
      <p>kolabs, Android için tüketici uygulamaları geliştiren bağımsız bir markadır. Hizmetlerimiz "olduğu gibi" sunulur; en yüksek özen gösterilir ancak kesintisiz çalışma garantisi verilmez.</p>
      <h2>2. Kabul Edilebilir Kullanım</h2>
      <p>Uygulamaları aşağıdaki amaçlarla kullanmazsın:</p>
      <ul>
        <li>Yasalara aykırı içerik üretmek veya yaymak.</li>
        <li>Hizmetleri tersine mühendislikle kopyalamak ya da yetkisiz erişim sağlamak.</li>
        <li>Diğer kullanıcıları rahatsız edici, taciz edici ya da zararlı şekilde kullanmak.</li>
        <li>Otomatik araçlarla anormal trafik üretmek.</li>
      </ul>
      <h2>3. Hesaplar</h2>
      <p>Bazı uygulamalar Google hesabı ile giriş gerektirebilir. Hesabının güvenliğinden kullanıcı sorumludur; şüpheli erişimi <a href="mailto:info@kolabs.tr">info@kolabs.tr</a>'a bildir.</p>
      <h2>4. Premium ve Satın Alma</h2>
      <p>Bazı özellikler (örn. Noctavia Premium) Google Play üzerinden satın alma gerektirir. İade işlemleri Google Play'in iade politikasına tabidir. Aboneliği Play Store ayarlarından istediğin zaman iptal edebilirsin.</p>
      <h2>5. Fikri Mülkiyet</h2>
      <p>Uygulamalar, web sitesi, marka, logo, görseller ve metinler kolabs'a aittir. İzinsiz çoğaltılamaz, dağıtılamaz, türev eserlerde kullanılamaz. Kullanıcının ürettiği içerik (rüya kaydı, günlük girişi vb.) kullanıcıya aittir.</p>
      <h2>6. Yapay Zeka Çıktıları (Noctavia)</h2>
      <p>Noctavia'nın rüya yorumları yapay zeka tarafından üretilir; <strong>kehanet, tıbbi tavsiye veya psikolojik teşhis değildir</strong>. Yalnızca eğlence ve kişisel yansıma amaçlıdır. Profesyonel destek gereken durumlarda uzmana başvur.</p>
      <h2>7. Reklam ve Üçüncü Taraf Bağlantılar</h2>
      <p>Ücretsiz sürümlerde Google AdMob aracılığıyla reklam gösterilebilir. Üçüncü taraf bağlantıların içeriğinden kolabs sorumlu değildir.</p>
      <h2>8. Sorumluluk Sınırlaması</h2>
      <p>Yasanın izin verdiği ölçüde, kolabs hizmetlerin kullanımı veya kullanılamamasından doğan dolaylı, arızi veya sonuç olarak ortaya çıkan zararlardan sorumlu tutulamaz.</p>
      <h2>9. Şartların Sonlandırılması</h2>
      <p>Bu şartları ihlal eden hesaplara erişim önceden bildirilmeksizin kısıtlanabilir veya sonlandırılabilir.</p>
      <h2>10. Uygulanacak Hukuk</h2>
      <p>Bu şartlar Türkiye Cumhuriyeti hukukuna tabidir. Anlaşmazlıklar Türkiye mahkemelerinde çözümlenir.</p>
      <h2>11. Değişiklikler</h2>
      <p>Şartlar güncellenebilir; önemli değişikliklerde uygulama ve site içinde bildirim yapılır. Güncel sürüm her zaman bu sayfada görüntülenir.</p>
      <h2>12. İletişim</h2>
      <p>Her türlü soru için: <a href="mailto:info@kolabs.tr">info@kolabs.tr</a></p>
    </>,
  },
  legalLastUpdated: 'Son güncelleme:',
};

const EN = {
  // Chrome
  nav: {
    home: 'Home',
    apps: 'Apps',
    manifesto: 'Manifesto',
    contact: 'Contact',
    playStore: 'Play Store',
    menu: 'Menu',
  },
  ticker: {
    sys: 'operational',
    version: 'v 1.4.0 · build 2026.04',
    apps: '6 apps · made in TR',
  },
  footer: {
    intro: 'From Turkey, for the world. We build Android apps that simplify daily life — fast, thoughtful, privacy-respecting.',
    appsTitle: 'Apps',
    noctaviaTitle: 'Noctavia',
    legalTitle: 'Legal',
    privacy: 'Privacy Policy',
    terms: 'Terms of Service',
    rights: '© 2026 kolabs',
    tagline: 'Made with care · Designed in TR',
    sesliYorum: 'Voice Interpretation',
    ruyaSozlugu: 'Dream Dictionary',
    temaAnalizi: 'Theme Analysis',
    ruyaGunlugu: 'Dream Journal',
    premium: 'Premium',
  },
  appsMeta: {
    noctavia: { name: 'Noctavia', desc: 'AI dream interpreter', tag: 'AI' },
    zikirmatik: { name: 'Zikirmatik', desc: 'Digital tasbih', tag: 'Islamic' },
    ramazan: { name: 'Ramadan', desc: 'Imsak & prayer times', tag: 'Islamic' },
    kelimebul: { name: 'Word Find', desc: 'Turkish word puzzle', tag: 'Game' },
    hesapvakti: { name: 'Bill Time', desc: 'Who pays the bill?', tag: 'Game' },
    tasarrufcu: { name: 'Saver', desc: 'Budget tracking', tag: 'Soon' },
  },
  // Home
  home: {
    title: 'Home',
    heroEyebrow: 'K-001 · Active since 2023',
    heroBrandDot: '.',
    heroTagline: 'From Turkey, for the world. Android apps for the small but meaningful parts of daily life.',
    metaApps: 'apps live',
    metaLangs: 'languages',
    metaRating: 'average rating',
    portfolioNum: '[ 01 ] Portfolio',
    portfolioTitle: 'Apps',
    portfolioDesc: 'Each devoted to a specific daily routine, carefully crafted.',
    apps: {
      noctavia: {
        name: 'Noctavia',
        tagline: 'AI-powered dream interpreter. Speak it, let AI read it. Symbol dictionary and theme analysis in 6 languages.',
        category: 'AI · Dream',
      },
      zikirmatik: {
        name: 'Zikirmatik',
        tagline: 'Modern, minimal digital tasbih. Counter, goals, multiple sets. With haptics and sound.',
        category: 'Islamic',
      },
      ramazan: {
        name: 'Ramadan',
        tagline: 'Imsak, iftar, prayer times. Location-based notifications — across Turkey and worldwide.',
        category: 'Islamic',
      },
      kelimebul: {
        name: 'Word Find',
        tagline: 'Turkish word puzzle. 10,000+ words, 200+ levels, daily challenge.',
        category: 'Game',
      },
      hesapvakti: {
        name: 'Bill Time',
        tagline: 'Who pays the bill? Fingers on the screen, countdown begins. A fun party game.',
        category: 'Party Game',
      },
      tasarrufcu: {
        name: 'Saver',
        tagline: 'Monthly budget, expense categories, savings goals. Simple and private.',
        category: 'Finance',
      },
    },
    statusLive: 'Live',
    statusSoon: 'Soon',
    featuredEyebrow: '★ New — vol. 03 · Q2 2026',
    featuredTitle1: 'Noctavia',
    featuredTitle2: 'reads your dreams',
    featuredText: 'Tell it with your voice, AI interprets in seconds. 1000+ symbols, 30-day theme analysis, voice readings in 6 languages. A mirror of the subconscious — not a prophecy.',
    featuredCtaPrimary: 'Explore',
    featuredCtaSecondary: 'Play Store ↗',
    manifestoNum: '[ 02 ] Manifesto',
    manifestoTitle: 'What we do?',
    manifestoDesc: 'Three principles that guide us.',
    principles: [
      { num: 'PRINCIPLE 01', tag: 'Simple', title: 'Less, but considered.', desc: 'Each app focuses on one job. No extras, no buried menus, no noise. You know what to do the moment you open it.' },
      { num: 'PRINCIPLE 02', tag: 'Private', title: 'Your data is yours.', desc: 'No third-party tracking. Data stays on your device or in your own Google account. Ads are minimal, optional.' },
      { num: 'PRINCIPLE 03', tag: 'Local', title: 'Turkish first.', desc: 'Our native language is Turkish — but we expanded to six. A global tone that doesn\'t forget local context.' },
    ],
  },
  notFound: {
    crumb: '404',
    h1: 'Not found.',
    h2: 'The page you\'re looking for isn\'t here. Maybe in another dream.',
    cta: 'Home →',
  },
  common: {
    download: 'Download on Play Store',
    downloadShort: 'Play Store ↗',
    features: 'Features',
    faq: 'FAQ',
    featuresQ: 'What can it do?',
    featuresDesc: 'Single focus, carefully built.',
    faqDesc: 'The most common questions.',
    detail: 'Detail',
    back: 'Back',
    allFeatures: 'All features →',
  },
  apps: {
    zikirmatik: {
      crumb: 'Zikirmatik',
      eyebrow: 'Islamic · Tasbih',
      h1: 'Zikirmatik — a modern digital tasbih',
      h2: 'Simple, fast, silent. Your phone becomes a tasbih.',
      lead: <>Zikirmatik brings the simplicity of the classic tasbih to your pocket. <strong>One-touch counter</strong>, goal setting, multiple zikr sets, and optional haptic/sound feedback. Optimized for one-handed use in dark mode — finish your zikr after night prayer or on the road, without taking your eyes off the screen. <strong>Offline, privacy-respecting, free.</strong></>,
      features: [
        { title: 'One-touch counter', desc: 'Tap anywhere on the screen to increment. Volume keys also work.' },
        { title: 'Goal setting', desc: '33, 99, 100 or a custom target. Notification when goal is reached.' },
        { title: 'Multiple sets', desc: 'Track Subhanallah, Alhamdulillah, Allahu Akbar and more in parallel.' },
        { title: 'Haptics & sound', desc: 'Light vibration or click sound on each tap — fully optional.' },
      ],
      faq: [
        { q: 'Does it work offline?', a: 'Yes, no internet required. All counts and sets are stored on your device.' },
        { q: 'Is it free?', a: 'Yes, it\'s free. Ads may be displayed in the app.' },
        { q: 'Where does my data go?', a: 'We don\'t collect any data. Counts stay only on your device.' },
      ],
      ctaTitle: 'Begin your zikr.',
      ctaSub: 'Free, offline, simple.',
    },
    ramazan: {
      crumb: 'Ramadan',
      eyebrow: 'Islamic · Times',
      h1: 'Ramadan — accurate times, on time alerts',
      h2: 'Imsak, iftar and prayer times. Location-based, worldwide.',
      lead: <>An app that <strong>dynamically calculates</strong> imsak, iftar and the five daily prayer times based on your location. Works <strong>across all of Turkey's provinces and districts</strong> and <strong>worldwide</strong> — automatic detection by location, or manual city selection. <strong>Customizable notifications</strong> for iftar and imsak, live countdown, and monthly calendar view. Fast, simple, accurate in real-time.</>,
      features: [
        { title: 'Worldwide', desc: 'Accurate times for cities across Turkey and around the world.' },
        { title: 'Smart alerts', desc: 'Customizable notifications for imsak, iftar and adhan times.' },
        { title: 'Live countdown', desc: 'Time remaining to the next prayer dynamically displayed.' },
        { title: 'Monthly calendar', desc: 'All Ramadan times in a single overview.' },
      ],
      faq: [
        { q: 'Does it work abroad?', a: 'Yes — the app works in major cities worldwide. With location permission, detection is automatic; without it, you can select a city manually.' },
        { q: 'How are times calculated?', a: 'For Turkey, Diyanet data; for the rest of the world, astronomical calculation methods (Muslim World League, ISNA, Umm al-Qura, etc.).' },
        { q: 'Can I disable notifications?', a: 'Each prayer notification can be toggled individually; there\'s also a silent mode.' },
        { q: 'Is it free?', a: 'Yes, it\'s free. Ads may be displayed in the app.' },
      ],
      ctaTitle: 'Don\'t miss the time.',
      ctaSub: 'Wherever you are, anywhere in the world.',
    },
    kelimebul: {
      crumb: 'Word Find',
      eyebrow: 'Game · Turkish',
      h1: 'Word Find — Turkish word puzzle',
      h2: '200+ levels, 10,000+ words, daily challenges.',
      lead: <>We redesigned the classic letter-puzzle flow with the richness of Turkish. A carefully curated dictionary of <strong>10,000+ words</strong>, <strong>200+ levels</strong> and a fresh <strong>daily challenge</strong> every day. Hint system, progress tracking and dark mode. No connection required, plays offline.</>,
      features: [
        { title: '10,000+ words', desc: 'A carefully chosen Turkish dictionary, aligned with TDK.' },
        { title: '200+ levels', desc: 'Easy to hard, gradually increasing difficulty.' },
        { title: 'Daily challenge', desc: 'A new puzzle every day — global leaderboard.' },
        { title: 'Offline', desc: 'Play without internet, your progress is saved.' },
      ],
      faq: [
        { q: 'Which devices does it support?', a: 'All Android 7.0+ devices. Optimized for tablets.' },
        { q: 'How does the hint system work?', a: 'Each level gives 3 free hints; extra hints can be earned via ads.' },
        { q: 'Will new levels be added?', a: 'Yes, at least 20 new levels are added each month.' },
      ],
      ctaTitle: 'One more word.',
      ctaSub: 'A puzzle with the richness of Turkish.',
    },
    hesapvakti: {
      crumb: 'Bill Time',
      eyebrow: 'Party Game · Fun',
      h1: 'Bill Time — who pays the bill?',
      h2: 'Fingers on the screen, let the countdown begin!',
      lead: <>Couldn't agree at the table? Who pays the bill? <strong>Everyone puts a finger on the screen</strong>, and the countdown begins. The random elimination system continues until only one finger remains — the loser pays. <strong>With haptics, animation and sound effects</strong>, perfect for playing with friends. Fair, fast, fun.</>,
      features: [
        { title: 'Multi-touch', desc: 'All fingers on the screen at once — supports 2 to 10 players.' },
        { title: 'Countdown', desc: 'After an exciting 3-2-1, the random elimination starts.' },
        { title: 'Random elimination', desc: 'Fair and transparent algorithm. Until only one finger remains.' },
        { title: 'Full feel', desc: 'Vibration, animation and sound effects — adds energy to the table.' },
      ],
      faq: [
        { q: 'How many people can play?', a: 'As many as your device supports — usually between 2 and 10 players.' },
        { q: 'Does it work offline?', a: 'Yes, no internet required. Start with a single tap.' },
        { q: 'Is it only for the bill?', a: 'No — who goes shopping, who washes the dishes, who plays first… for any "who?" question.' },
      ],
      ctaTitle: 'Fingers on the screen.',
      ctaSub: 'Let the countdown begin.',
    },
    tasarrufcu: {
      crumb: 'Saver',
      eyebrow: 'Soon · Q3 2026',
      h1: 'Saver — budget tracking, simple and private',
      h2: 'Monthly budget, category tracking, savings goals. Data stays on your device.',
      lead: <>A personal finance app that doesn't require bank integration — manual but fast. Set a <strong>monthly budget</strong>, split your spending into <strong>categories</strong>, and watch how close you are to your <strong>savings goals</strong> on a graph. Your data stays on your device — no cloud, no account, no third parties. Currently in final testing; if you don't want to miss the launch, leave your email below.</>,
      features: [
        { title: 'Monthly budget', desc: 'Set a monthly target; visual tracking against actuals.' },
        { title: 'Categories', desc: 'Food, transport, fun, bills — fully customizable.' },
        { title: 'Goals', desc: 'Savings goals with a projection of when you\'ll reach them.' },
        { title: 'Fully private', desc: 'No account, no cloud. All data on your device.' },
      ],
      ctaTitle: 'We\'ll let you know when it\'s ready.',
      ctaSub: 'Join the email list, be the first to hear at launch.',
      emailPlaceholder: 'email@example.com',
      emailButton: 'Notify Me',
      emailSent: '✓ Added — we\'ll notify you at launch',
      noScreenshot: 'No screenshot yet',
    },
  },
  noctavia: {
    brand: 'NOCTAVIA · v3.2',
    crumb: 'Noctavia',
    home: {
      eyebrow: 'AI · Dream',
      h1: <>Noctavia — your <em>AI</em> dream interpreter</>,
      h2: 'Tell your dreams, make sense of them, save them. Detailed interpretation, symbolic analysis and reflection in seconds.',
      lead: <>Noctavia offers a three-part dream interpretation experience powered by Claude AI: <strong>General Interpretation</strong>, <strong>Symbolic Analysis</strong>, <strong>Reflection</strong>. Speak it or type it — the app handles the rest. All your dreams are stored safely; you can come back anytime to analyze their themes.</>,
      featuresNum: '[ 01 ] Features',
      featuresQ: 'What can it do?',
      featuresDesc: '6 core features, one night.',
      features: [
        { to:'/noctavia/sesli-yorum', title:'Voice Interpretation', desc:'Speak into the mic, AI interprets in seconds.', tag:'AI · STT' },
        { to:'/noctavia/ruya-sozlugu', title:'Dream Dictionary', desc:'1000+ symbols, A–Z index, offline access.', tag:'Offline' },
        { to:'/noctavia/tema-analizi', title:'Theme Analysis', desc:'30-day patterns, recurring symbols.', tag:'Insights' },
        { to:'/noctavia/ruya-gunlugu', title:'Dream Journal', desc:'Calendar, search, favorites — keep your data.', tag:'Journal' },
        { to:'/noctavia/premium', title:'Premium', desc:'Unlimited interpretations, voice readings, advanced analysis.', tag:'Plans' },
        { to:'/noctavia/sesli-yorum', title:'6 Languages', desc:'TR · EN · AR · DE · FR · ES.', tag:'i18n' },
      ],
      ctaTitle: <>Start <em>tonight</em>.</>,
      ctaSub: 'Free download, interpret your first dream.',
    },
    sesliYorum: {
      crumb: 'Voice Interpretation',
      eyebrow: 'Speech-to-Text · AI',
      h1: <>Voice Dream Interpretation — <em>speak</em>, AI interprets</>,
      h2: 'Tell it with your voice, get an interpretation in seconds.',
      lead: <>With Noctavia's voice dream interpretation, you don't have to type your dream. Hold the mic, speak naturally — the AI delivers a detailed interpretation in seconds. Your voice message is automatically transcribed, analyzed by <strong>Claude AI</strong>, and you get a <strong>3-part</strong> detailed interpretation: General, Symbolic, Reflection. Supports <strong>TR, EN, AR, DE, FR, ES</strong>.</>,
      recordHead: 'Live Recording',
      recordMeta: '02:00 max · TR · 48kHz',
      recordRec: '● REC',
      recordTime: '00:23 / 02:00',
      recordLatency: '1247 ms latency',
      steps: [
        { title: 'Press the mic', desc: 'Open the app, tap the record button.' },
        { title: 'Speak naturally', desc: 'Up to 2 minutes, fluently.' },
        { title: 'AI interprets', desc: '200–400 word interpretation in seconds.' },
        { title: 'Listen (Premium)', desc: 'You can also have the result read aloud.' },
      ],
      faq: [
        { q: 'What language can I speak?', a: 'Turkish, English, Arabic, German, French and Spanish — selected automatically based on the app language.' },
        { q: 'Are my recordings stored?', a: 'No. The audio is deleted right after transcription. Only the interpreted text and result are kept in your journal.' },
        { q: 'Does it work offline?', a: 'STT and AI interpretation run server-side, so an active internet connection is required.' },
        { q: 'How long can I speak?', a: 'Up to 2 minutes per session. For longer dreams, switch to text mode.' },
      ],
      ctaTitle: <><em>Speak it</em>, see it interpreted.</>,
      ctaSub: 'Voice recording is free in all tiers.',
    },
    ruyaSozlugu: {
      crumb: 'Dream Dictionary',
      eyebrow: '1000+ symbols · Offline',
      h1: <>Dream <em>Dictionary</em></>,
      h2: 'From A to Z, the meaning of symbols at your fingertips.',
      lead: <>Noctavia's dream dictionary, with <strong>1000+ symbols</strong>, blends the essence of classical interpretation books with a modern reading. With <strong>A–Z index</strong>, advanced search and <strong>offline access</strong>, it's always at hand — on a plane, on a bus, or when you wake up at 3 a.m. Each symbol comes with a short meaning, cultural background and psychological reading.</>,
      searchPlaceholder: 'Search symbols — e.g. water, snake, house…',
      searchHint: '⌘ K',
      letterAll: 'ALL',
      letters: ['ALL','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'],
      noResults: 'No results found. Download the app for the full dictionary.',
      symbols: [
        { l:'M', name:'Moon', mean:'Subconscious, feminine energy, cyclical change. A full moon points to clarity; a crescent to new beginnings.' },
        { l:'L', name:'Lion', mean:'Courage, authority, inner strength. An aggressive lion represents impulses that cannot be controlled.' },
        { l:'G', name:'Gold', mean:'Value, permanence, inner wealth. Lost gold can signal anxiety around self-worth.' },
        { l:'B', name:'Baby', mean:'Renewal, beginnings, potential. Carries hints about caregiving roles and feelings of responsibility.' },
        { l:'S', name:'Sea', mean:'Emotions, the subconscious, infinity. Calm sea reflects peace; stormy sea reflects unresolved feelings.' },
        { l:'T', name:'Tooth', mean:'Power, control, fear of loss. Falling teeth are often associated with transitional periods.' },
        { l:'H', name:'House', mean:'Self, inner world, personal space. New rooms symbolize newly discovered aspects of yourself.' },
        { l:'B', name:'Bird', mean:'Freedom, ascent, message. Colorful birds bring creative energy; dark birds, intuition about the unknown.' },
        { l:'B', name:'Bridge', mean:'Transition, connection, decision point. A solid bridge points to confidence; a shaky one to uncertainty.' },
        { l:'L', name:'Ladder', mean:'Progress, hierarchy, spiritual ascent. Climbing up shows growth; descending shows return to the past.' },
        { l:'W', name:'Water', mean:'Life, purification, emotional flow. Clear water represents healing; murky water, confusion.' },
        { l:'S', name:'Snake', mean:'Transformation, wisdom, hidden power. Shedding skin is one of the strongest renewal symbols.' },
      ],
      faq: [
        { q: 'Does it work offline?', a: 'Yes. The full dictionary ships with the app; no internet needed.' },
        { q: 'How many symbols are there?', a: '1000+ main symbols, 3000+ derived meanings.' },
        { q: 'Is the dictionary updated?', a: 'Yes — new symbols and expanded interpretations are added in regular updates.' },
      ],
      ctaTitle: <>Find the <em>symbol</em>, make sense of it.</>,
      ctaSub: 'The full dictionary is free, offline.',
    },
    temaAnalizi: {
      crumb: 'Theme Analysis',
      eyebrow: 'Pattern Recognition',
      h1: <>Theme <em>Analysis</em></>,
      h2: 'Your 30-day dream patterns, at a glance.',
      lead: <>Noctavia surfaces the patterns of your subconscious. The <strong>30-day</strong> theme analysis groups recurring symbols, moods and locations from your dreams. AI-powered pattern recognition shows you which themes have been weighing on your subconscious and lets you track emotional intensity across periods. This is not a prophecy — it's a <strong>mirror</strong>.</>,
      themesHead: 'Last 30 days — Most frequent themes',
      themesMeta: '42 dreams · updated: today',
      themes: [
        { name: 'Water / Sea', pct: 78, count: 23 },
        { name: 'Flying', pct: 62, count: 18 },
        { name: 'Being chased', pct: 54, count: 16 },
        { name: 'Unknown place', pct: 47, count: 14 },
        { name: 'Family', pct: 41, count: 12 },
        { name: 'Loss', pct: 33, count: 10 },
      ],
      heatmapHead: 'Emotional intensity — heatmap',
      heatmapMeta: 'last 6 weeks · 7×6',
      heatmapLow: 'low',
      heatmapHigh: 'high',
      faq: [
        { q: 'Where does the data come from?', a: 'Only from your own dream journal. All analysis is kept on your device or in your account in non-anonymized form.' },
        { q: 'How many dreams do I need to log?', a: 'For meaningful analysis, at least 7 entries on different days are recommended.' },
        { q: 'Which AI model is used?', a: 'A theme classification layer specially trained with Claude AI.' },
      ],
      ctaTitle: <><em>See</em> the pattern.</>,
      ctaSub: 'Look at your own map after 30 days.',
    },
    premium: {
      crumb: 'Premium',
      eyebrow: 'Plans',
      h1: 'Noctavia Premium',
      h2: 'More interpretations, voice readings, weekly theme analysis.',
      lead: <>Noctavia comes in three plans. <strong>Free</strong> gives you 2 written interpretations a day; <strong>Standard</strong> 10 a day plus voice input; <strong>Premium</strong> 30 a day, voice playback of interpretations, and weekly theme analysis. Cancel anytime.</>,
      periodMonthly: 'Monthly',
      periodYearly: 'Yearly',
      perMonth: 'mo',
      perYear: 'yr',
      tierFree: 'Free',
      tierStandard: 'Standard',
      tierPremium: 'Premium',
      recommended: 'Recommended',
      freeSub: 'Enough to get started.',
      standardSub: 'For regular dreamers.',
      premiumSub: 'Full depth, full access.',
      freeFeatures: [
        { text: '2 written interpretations / day', no: false },
        { text: 'Dream dictionary (200+ symbols)', no: false },
        { text: 'Dream journal (last 7 days)', no: false },
        { text: 'Voice dream input', no: true },
        { text: 'Voice interpretation playback', no: true },
        { text: 'Theme analysis', no: true },
      ],
      standardFeatures: [
        { text: '10 interpretations / day', no: false },
        { text: 'Voice dream input', no: false },
        { text: '90-day history', no: false },
        { text: '500+ dream dictionary', no: false },
        { text: 'Ad-free experience', no: false },
        { text: 'Voice interpretation playback', no: true },
      ],
      premiumFeatures: [
        { text: '30 interpretations / day', no: false },
        { text: 'Voice dream input', no: false },
        { text: 'Unlimited history', no: false },
        { text: '1000+ symbol dictionary', no: false },
        { text: 'Ad-free experience', no: false },
        { text: 'Voice interpretation playback', no: false },
        { text: 'Weekly theme analysis', no: false },
        { text: 'Priority AI access', no: false },
      ],
      freeCta: 'Free Download',
      standardCta: 'Get Standard',
      premiumCta: 'Get Premium',
      compareFeature: 'Feature',
      compareRows: [
        ['Daily interpretations', '2', '10', '30'],
        ['Voice dream input', '—', '✓', '✓'],
        ['Voice playback', '—', '—', '✓'],
        ['Dream dictionary', '200+', '500+', '1000+'],
        ['History', '7 days', '90 days', 'Unlimited'],
        ['Theme analysis', '—', '—', 'Weekly'],
        ['Ad-free', '—', '✓', '✓'],
        ['Priority AI', '—', '—', '✓'],
      ],
      faq: [
        { q: 'Can I cancel?', a: 'Yes, cancel your subscription anytime from your Play Store account.' },
        { q: 'How is payment handled?', a: 'All payments are processed via Google Play, using your registered payment method.' },
        { q: 'Can I share with family?', a: 'If Google Play Family Library supports it, yes.' },
      ],
      ctaTitle: 'Pick a plan.',
      ctaSub: 'Easy to cancel, no commitment.',
    },
    ruyaGunlugu: {
      crumb: 'Dream Journal',
      eyebrow: 'Journal · Search · Sync',
      h1: <>Dream <em>Journal</em></>,
      h2: 'Save, search, return. Every dream is a record.',
      lead: <>The dream journal turns everything you've seen into an organized, searchable archive. With the <strong>calendar view</strong> you can revisit past months; <strong>search</strong> by symbol or keyword; mark special dreams as <strong>favorites</strong>. Every entry is backed up to the cloud — your journal travels with you across devices.</>,
      monthHead: 'This month — April',
      monthMeta: '12 entries · 4 favorites',
      weekDays: ['M','T','W','T','F','S','S'],
      searchPlaceholder: 'Search your dreams — e.g. water, mother, fly…',
      searchHint: 'SEARCH',
      favoriteLabel: '★ favorite',
      entries: [
        { date: '27 APR', tag: 'Water', title: 'At the bottom of a clear lake', excerpt: 'I was underwater but I could breathe. There was a door on the floor…' },
        { date: '25 APR', tag: 'Flying', title: 'Gliding above the city', excerpt: 'Roof to roof, slowly. Below me was a city I didn\'t recognize.' },
        { date: '22 APR', tag: 'Family', title: 'In the kitchen of the old house', excerpt: 'My mother was cooking but there was no sound. Only the smell.' },
        { date: '20 APR', tag: 'Chase', title: 'Dark corridor', excerpt: 'Something was after me but when I turned around, there was nothing.' },
        { date: '18 APR', tag: 'Unknown', title: 'Glass library', excerpt: 'All the shelves were empty. I took a book off the shelf, the pages were blank.' },
      ],
      faq: [
        { q: 'Is my data safe?', a: 'All your journal entries are end-to-end encrypted and accessible only via your Google account. Not shared with third parties.' },
        { q: 'What if I switch devices?', a: 'Sign in with Google on the new device and your full journal loads automatically.' },
        { q: 'Can I delete an entry?', a: 'Yes, you can delete individually or in bulk. Deleted entries are removed completely.' },
      ],
      ctaTitle: <><em>Save</em>, return.</>,
      ctaSub: 'Your journal is always with you.',
    },
    sectionStepsNum: '[ 02 ] Flow',
    sectionStepsTitle: 'How does it work?',
    sectionStepsDesc: 'A meaningful interpretation in seconds.',
    sectionFaqNum: '[ 03 ] FAQ',
    sectionFaqTitle: 'Frequently Asked',
    sectionFaqDesc: 'The details are here.',
  },
  privacy: {
    crumb: 'Privacy Policy',
    eyebrow: 'Legal · Privacy',
    title: 'Privacy Policy',
    lastUpdated: 'May 1, 2026',
    body: <>
      <p className="legal-lead">At kolabs, we respect your privacy. This policy explains, when you use our website and apps (Noctavia, Zikirmatik, Ramadan, Word Find, Bill Time, Saver), what data is collected, how it is used and what your rights are.</p>
      <h2>1. Data Controller</h2>
      <p>The controller of personal data under this policy is the <strong>kolabs.</strong> brand. Contact: <a href="mailto:info@kolabs.tr">info@kolabs.tr</a>.</p>
      <h2>2. Data Collected</h2>
      <p>While it varies per app, the following data may be processed:</p>
      <ul>
        <li><strong>Device info:</strong> Anonymous device type, OS version, language preference.</li>
        <li><strong>Usage analytics:</strong> Which screens are opened, crash reports (via Firebase Crashlytics and Google Analytics).</li>
        <li><strong>Advertising identifier:</strong> In ad-supported apps, Google AdMob; the device's advertising ID may be processed — you can reset it.</li>
        <li><strong>Location (Ramadan only):</strong> For accurate prayer times, only with your consent. Optional; manual city selection is also possible.</li>
        <li><strong>Audio recordings (Noctavia only):</strong> Recorded for voice dream interpretation, <em>deleted immediately</em> after server-side transcription. Only the interpreted text is retained.</li>
        <li><strong>User content:</strong> Things you write, like the dream journal. These remain in the app or in your own Google account (if backup is enabled).</li>
      </ul>
      <h2>3. Purpose of Use</h2>
      <ul>
        <li>To deliver, operate and fix the service.</li>
        <li>To analyze anonymous usage patterns and improve the product.</li>
        <li>To show relevant ads in free, ad-supported versions.</li>
        <li>To comply with legal obligations.</li>
      </ul>
      <h2>4. Third-Party Services</h2>
      <p>Limited data may be shared with the following providers:</p>
      <ul>
        <li><strong>Google Play Services / Firebase</strong> — analytics, crash reporting, authentication.</li>
        <li><strong>Google AdMob</strong> — ad delivery (only in ad-supported versions).</li>
        <li><strong>Anthropic Claude API</strong> (Noctavia only) — dream interpretation. Content is anonymized post-interpretation and is not used as training data.</li>
        <li><strong>Vercel</strong> — hosting of this website.</li>
      </ul>
      <h2>5. Data Retention</h2>
      <p>Data is retained for as long as needed to deliver the service. To delete your account, write to <a href="mailto:info@kolabs.tr">info@kolabs.tr</a>; the request will be processed within 30 days.</p>
      <h2>6. Cookies</h2>
      <p>Our website may use analytics cookies (Google Analytics). You can always block these cookies in your browser.</p>
      <h2>7. Your Rights (KVKK & GDPR)</h2>
      <p>You have rights to access, correct, delete, restrict processing of, and port your data. Send your request to <a href="mailto:info@kolabs.tr">info@kolabs.tr</a>.</p>
      <h2>8. Children</h2>
      <p>Our apps are not directed at children under 13; we do not knowingly collect data from this age group.</p>
      <h2>9. Changes</h2>
      <p>This policy may be updated; significant changes are announced in the app and on the site. The current version is always shown on this page.</p>
      <h2>10. Contact</h2>
      <p>For questions, requests or complaints: <a href="mailto:info@kolabs.tr">info@kolabs.tr</a></p>
    </>,
  },
  terms: {
    crumb: 'Terms of Service',
    eyebrow: 'Legal · Terms',
    title: 'Terms of Service',
    lastUpdated: 'May 1, 2026',
    body: <>
      <p className="legal-lead">These terms set the rules for your use of the kolabs website and apps. By using the services, you are deemed to accept these terms.</p>
      <h2>1. Scope of Service</h2>
      <p>kolabs is an independent brand developing consumer apps for Android. Our services are provided "as is"; we exercise the highest level of care but do not guarantee uninterrupted operation.</p>
      <h2>2. Acceptable Use</h2>
      <p>You may not use the apps to:</p>
      <ul>
        <li>Produce or distribute unlawful content.</li>
        <li>Reverse-engineer the services or gain unauthorized access.</li>
        <li>Use them in a way that disturbs, harasses or harms other users.</li>
        <li>Generate abnormal traffic with automated tools.</li>
      </ul>
      <h2>3. Accounts</h2>
      <p>Some apps may require sign-in with a Google account. The user is responsible for the security of their account; report suspicious access to <a href="mailto:info@kolabs.tr">info@kolabs.tr</a>.</p>
      <h2>4. Premium and Purchases</h2>
      <p>Some features (e.g. Noctavia Premium) require purchase via Google Play. Refunds are subject to Google Play's refund policy. You can cancel your subscription anytime in Play Store settings.</p>
      <h2>5. Intellectual Property</h2>
      <p>The apps, website, brand, logo, visuals and copy belong to kolabs. They may not be reproduced, distributed or used in derivative works without permission. User-generated content (dream entries, journal entries, etc.) belongs to the user.</p>
      <h2>6. AI Outputs (Noctavia)</h2>
      <p>Noctavia's dream interpretations are generated by AI; they are <strong>not prophecy, medical advice or psychological diagnosis</strong>. They are intended only for entertainment and personal reflection. Seek a professional when professional support is needed.</p>
      <h2>7. Advertising and Third-Party Links</h2>
      <p>Free versions may display ads via Google AdMob. kolabs is not responsible for the content of third-party links.</p>
      <h2>8. Limitation of Liability</h2>
      <p>To the extent permitted by law, kolabs is not liable for indirect, incidental or consequential damages arising from the use or inability to use the services.</p>
      <h2>9. Termination</h2>
      <p>Access for accounts that violate these terms may be restricted or terminated without prior notice.</p>
      <h2>10. Governing Law</h2>
      <p>These terms are governed by the laws of the Republic of Türkiye. Disputes are resolved in Turkish courts.</p>
      <h2>11. Changes</h2>
      <p>The terms may be updated; significant changes are announced in the app and on the site. The current version is always shown on this page.</p>
      <h2>12. Contact</h2>
      <p>For any questions: <a href="mailto:info@kolabs.tr">info@kolabs.tr</a></p>
    </>,
  },
  legalLastUpdated: 'Last updated:',
};

const TRANSLATIONS = { tr: TR, en: EN };

// ─── Language switcher ────────────────────────────────────────────
function LanguageSwitcher({ className = '' }) {
  const { lang, setLang } = useLang();
  return (
    <button
      type="button"
      onClick={() => setLang(lang === 'tr' ? 'en' : 'tr')}
      className={'lang-switch ' + className}
      aria-label={lang === 'tr' ? 'Switch to English' : 'Türkçeye geç'}
      title={lang === 'tr' ? 'Switch to English' : 'Türkçeye geç'}
    >
      <span className={lang === 'tr' ? 'active' : ''}>TR</span>
      <span className="lang-sep">/</span>
      <span className={lang === 'en' ? 'active' : ''}>EN</span>
    </button>
  );
}

Object.assign(window, { LangProvider, useLang, useT, LanguageSwitcher, TRANSLATIONS, langFromPath, pathForLang, toTrCanonical });
