Add EN/UK/PL translations across index, footer, and why-ours pages

- index.php: translate hardcoded hero kicker, stat, explore CTA, tools
  section title/sub, and learn-more arrow; add Pricing nav link
- footer.php: fully translate tagline, privacy note, nav links, and
  disclaimer into all 4 languages via dbnToolsT()
- includes/i18n.php: 15 new keys per language (hero_kicker, footer_*,
  tools_section_*, pricing_nav_link, why_ours_trust_link, learn_more)
- translations/why-ours.php: complete uk + pl translations (70 keys each)
- assets/css/tools.css: add .lt-nav__secondary-link style

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-21 07:48:40 +02:00
parent abdad0f7e3
commit 7edc42c483
5 changed files with 291 additions and 19 deletions
+12
View File
@@ -5676,6 +5676,18 @@ body.lt-landing {
background: #0a3080; background: #0a3080;
box-shadow: 0 6px 18px rgba(0,32,91,0.50); box-shadow: 0 6px 18px rgba(0,32,91,0.50);
} }
.lt-nav__secondary-link {
display: inline-flex;
align-items: center;
color: rgba(255,255,255,0.80);
font-size: 0.82rem;
font-weight: 600;
text-decoration: none;
padding: 0 0.5rem;
transition: color 0.15s;
white-space: nowrap;
}
.lt-nav__secondary-link:hover { color: #fff; }
/* ── Hero: logged-in CTA ─────────────────────────────────────────────────── */ /* ── Hero: logged-in CTA ─────────────────────────────────────────────────── */
.lt-hero__auth-cta { .lt-hero__auth-cta {
+16 -9
View File
@@ -1,4 +1,10 @@
<?php declare(strict_types=1); ?> <?php
declare(strict_types=1);
$_footerLang = dbnToolsCurrentLanguage();
function _ft(string $key, string $lang): string {
return htmlspecialchars(dbnToolsT($key, $lang));
}
?>
<footer class="lt-footer"> <footer class="lt-footer">
<div class="lt-footer__inner"> <div class="lt-footer__inner">
@@ -8,23 +14,24 @@
<img class="lt-footer__logo" src="assets/images/logo-header.png" alt="Do Better Norge" width="140" height="34" loading="lazy"> <img class="lt-footer__logo" src="assets/images/logo-header.png" alt="Do Better Norge" width="140" height="34" loading="lazy">
</picture> </picture>
<p class="lt-footer__tagline"> <p class="lt-footer__tagline">
AI legal tools for families navigating Norwegian child-welfare cases. <?= _ft('footer_tagline', $_footerLang) ?>
Powered by <a href="https://bluenotelogic.com/caveauai" target="_blank" rel="noopener noreferrer">CaveauAI</a>. <?= $_footerLang === 'no' ? 'Drevet av' : 'Powered by' ?> <a href="https://bluenotelogic.com/caveauai" target="_blank" rel="noopener noreferrer">CaveauAI</a>.
</p> </p>
<p class="lt-footer__privacy-note"> <p class="lt-footer__privacy-note">
Your documents are processed in memory and discarded when your session ends. <?= _ft('footer_privacy_note', $_footerLang) ?>
Nothing is stored or retained.
</p> </p>
</div> </div>
<nav class="lt-footer__links" aria-label="Footer links"> <nav class="lt-footer__links" aria-label="Footer links">
<div class="lt-footer__link-col"> <div class="lt-footer__link-col">
<a href="https://dobetternorge.no" target="_blank" rel="noopener noreferrer">Do Better Norge</a> <a href="https://dobetternorge.no" target="_blank" rel="noopener noreferrer">Do Better Norge</a>
<a href="https://dobetternorge.no/library.php">Legal library</a> <a href="https://dobetternorge.no/library.php"><?= _ft('footer_legal_lib', $_footerLang) ?></a>
<a href="mailto:support@dobetternorge.no">Report an issue</a> <a href="/pricing.php"><?= _ft('pricing_nav_link', $_footerLang) ?></a>
<a href="/why-ours.php"><?= _ft('why_ours_trust_link', $_footerLang) ?></a>
<a href="mailto:support@dobetternorge.no"><?= _ft('footer_report', $_footerLang) ?></a>
</div> </div>
<div class="lt-footer__link-col"> <div class="lt-footer__link-col">
<a href="https://bluenotelogic.com/caveauai" target="_blank" rel="noopener noreferrer">About CaveauAI</a> <a href="https://bluenotelogic.com/caveauai" target="_blank" rel="noopener noreferrer"><?= _ft('footer_about_caveau', $_footerLang) ?></a>
<a href="https://bluenotelogic.com" target="_blank" rel="noopener noreferrer">Blue Note Logic</a> <a href="https://bluenotelogic.com" target="_blank" rel="noopener noreferrer">Blue Note Logic</a>
</div> </div>
</nav> </nav>
@@ -32,6 +39,6 @@
</div> </div>
<div class="lt-footer__bottom"> <div class="lt-footer__bottom">
<p class="lt-footer__copy">&copy; 2026 Blue Note Logic Inc. All rights reserved.</p> <p class="lt-footer__copy">&copy; 2026 Blue Note Logic Inc. All rights reserved.</p>
<p class="lt-footer__disclaimer">AI output is for advocacy support only &mdash; not legal advice. Always verify with a licensed Norwegian lawyer.</p> <p class="lt-footer__disclaimer"><?= _ft('footer_disclaimer', $_footerLang) ?></p>
</div> </div>
</footer> </footer>
+56
View File
@@ -200,6 +200,20 @@ function dbnToolsTranslations(): array
'pricing_error_retry' => 'Error — try again', 'pricing_error_retry' => 'Error — try again',
'pricing_error_checkout' => 'Could not start checkout.', 'pricing_error_checkout' => 'Could not start checkout.',
'pricing_credits_label' => 'credits', 'pricing_credits_label' => 'credits',
'hero_kicker' => 'AI Legal Tools · Norway · Free for members',
'stat_passages_indexed' => 'Legal passages indexed',
'explore_tools' => 'Explore tools ↓',
'tools_section_title' => 'Built for families navigating a complex system.',
'tools_section_sub' => 'Seven purpose-built AI tools — from audio transcription to deep legal research. Every tool processes your documents in memory and discards them when you\'re done.',
'learn_more' => 'Learn more →',
'pricing_nav_link' => 'Pricing →',
'why_ours_trust_link' => 'Why our tools give different answers than ChatGPT →',
'footer_tagline' => 'AI legal tools for families navigating Norwegian child-welfare cases.',
'footer_privacy_note' => 'Your documents are processed in memory and discarded when your session ends. Nothing is stored or retained.',
'footer_legal_lib' => 'Legal library',
'footer_report' => 'Report an issue',
'footer_about_caveau' => 'About CaveauAI',
'footer_disclaimer' => 'AI output is for advocacy support only — not legal advice. Always verify with a licensed Norwegian lawyer.',
], ],
'no' => [ 'no' => [
'meta_title' => 'Do Better Norge - juridiske AI-verktøy', 'meta_title' => 'Do Better Norge - juridiske AI-verktøy',
@@ -333,6 +347,20 @@ function dbnToolsTranslations(): array
'pricing_error_retry' => 'Feil — prøv igjen', 'pricing_error_retry' => 'Feil — prøv igjen',
'pricing_error_checkout' => 'Kunne ikke starte kassen.', 'pricing_error_checkout' => 'Kunne ikke starte kassen.',
'pricing_credits_label' => 'kreditter', 'pricing_credits_label' => 'kreditter',
'hero_kicker' => 'Juridiske AI-verktøy · Norge · Gratis for medlemmer',
'stat_passages_indexed' => 'juridiske tekstutdrag indeksert',
'explore_tools' => 'Utforsk verktøy ↓',
'tools_section_title' => 'Laget for familier som navigerer i et komplekst system.',
'tools_section_sub' => 'Syv spesialbygde AI-verktøy — fra lydtranskripsjon til dyp juridisk forskning. Hvert verktøy behandler dokumentene dine i minnet og sletter dem når du er ferdig.',
'learn_more' => 'Les mer →',
'pricing_nav_link' => 'Priser →',
'why_ours_trust_link' => 'Hvorfor verktøyene våre gir andre svar enn ChatGPT →',
'footer_tagline' => 'Juridiske AI-verktøy for familier i norske barnevernssaker.',
'footer_privacy_note' => 'Dokumentene dine behandles i minnet og slettes når økten avsluttes. Ingenting lagres.',
'footer_legal_lib' => 'Juridisk bibliotek',
'footer_report' => 'Rapporter et problem',
'footer_about_caveau' => 'Om CaveauAI',
'footer_disclaimer' => 'KI-resultater er kun til støtte for saksforberedelse — ikke juridisk rådgivning. Bekreft alltid med en norsk advokat.',
], ],
'uk' => [ 'uk' => [
'meta_title' => 'Do Better Norge - юридичні AI інструменти', 'meta_title' => 'Do Better Norge - юридичні AI інструменти',
@@ -466,6 +494,20 @@ function dbnToolsTranslations(): array
'pricing_error_retry' => 'Помилка — спробуйте ще раз', 'pricing_error_retry' => 'Помилка — спробуйте ще раз',
'pricing_error_checkout' => 'Не вдалося розпочати оплату.', 'pricing_error_checkout' => 'Не вдалося розпочати оплату.',
'pricing_credits_label' => 'кредитів', 'pricing_credits_label' => 'кредитів',
'hero_kicker' => 'Правові AI-інструменти · Норвегія · Безкоштовно для членів',
'stat_passages_indexed' => 'правових уривків проіндексовано',
'explore_tools' => 'Дослідити інструменти ↓',
'tools_section_title' => 'Створено для сімей, що долають складну систему.',
'tools_section_sub' => 'Сім спеціально розроблених AI-інструментів — від транскрипції аудіо до глибоких правових досліджень. Кожен інструмент обробляє ваші документи в пам\'яті та відкидає їх після завершення.',
'learn_more' => 'Дізнатися більше →',
'pricing_nav_link' => 'Ціни →',
'why_ours_trust_link' => 'Чому наші інструменти дають інші відповіді, ніж ChatGPT →',
'footer_tagline' => 'Правові AI-інструменти для сімей у норвезьких справах про захист дітей.',
'footer_privacy_note' => 'Ваші документи обробляються в пам\'яті та видаляються після завершення сеансу. Нічого не зберігається.',
'footer_legal_lib' => 'Правова бібліотека',
'footer_report' => 'Повідомити про проблему',
'footer_about_caveau' => 'Про CaveauAI',
'footer_disclaimer' => 'Вихідні дані AI призначені лише для підтримки підготовки справи — не для юридичних порад. Завжди перевіряйте у ліцензованого норвезького юриста.',
], ],
'pl' => [ 'pl' => [
'meta_title' => 'Do Better Norge - prawne narzędzia AI', 'meta_title' => 'Do Better Norge - prawne narzędzia AI',
@@ -599,6 +641,20 @@ function dbnToolsTranslations(): array
'pricing_error_retry' => 'Błąd — spróbuj ponownie', 'pricing_error_retry' => 'Błąd — spróbuj ponownie',
'pricing_error_checkout' => 'Nie można uruchomić płatności.', 'pricing_error_checkout' => 'Nie można uruchomić płatności.',
'pricing_credits_label' => 'kredytów', 'pricing_credits_label' => 'kredytów',
'hero_kicker' => 'Prawne narzędzia AI · Norwegia · Bezpłatnie dla członków',
'stat_passages_indexed' => 'przepisów prawnych zindeksowanych',
'explore_tools' => 'Przeglądaj narzędzia ↓',
'tools_section_title' => 'Stworzone dla rodzin poruszających się w skomplikowanym systemie.',
'tools_section_sub' => 'Siedem dedykowanych narzędzi AI — od transkrypcji audio po dogłębne badania prawne. Każde narzędzie przetwarza Twoje dokumenty w pamięci i usuwa je po zakończeniu.',
'learn_more' => 'Dowiedz się więcej →',
'pricing_nav_link' => 'Cennik →',
'why_ours_trust_link' => 'Dlaczego nasze narzędzia dają inne odpowiedzi niż ChatGPT →',
'footer_tagline' => 'Prawne narzędzia AI dla rodzin w norweskich sprawach dotyczących ochrony dzieci.',
'footer_privacy_note' => 'Twoje dokumenty są przetwarzane w pamięci i usuwane po zakończeniu sesji. Nic nie jest przechowywane.',
'footer_legal_lib' => 'Biblioteka prawna',
'footer_report' => 'Zgłoś problem',
'footer_about_caveau' => 'O CaveauAI',
'footer_disclaimer' => 'Wyniki AI służą wyłącznie jako wsparcie w przygotowaniu sprawy — nie jako porada prawna. Zawsze weryfikuj z licencjonowanym norweskim prawnikiem.',
], ],
]; ];
} }
+10 -8
View File
@@ -90,6 +90,7 @@ window.DBN_TOOLS_LANG = <?= json_encode($uiLang, JSON_UNESCAPED_UNICODE) ?>;
<span class="lt-nav__badge">Legal Tools</span> <span class="lt-nav__badge">Legal Tools</span>
</a> </a>
<div class="lt-nav__right"> <div class="lt-nav__right">
<a href="/pricing.php<?= $uiLang !== 'en' ? '?lang=' . urlencode($uiLang) : '' ?>" class="lt-nav__secondary-link"><?= htmlspecialchars(dbnToolsT('pricing_nav_link', $uiLang)) ?></a>
<nav class="shell-lang-switcher" aria-label="Language"> <nav class="shell-lang-switcher" aria-label="Language">
<?php foreach (dbnToolsSupportedLanguages() as $langCode): ?> <?php foreach (dbnToolsSupportedLanguages() as $langCode): ?>
<a href="<?= htmlspecialchars($langPath . '?lang=' . $langCode . '&return=' . urlencode($returnPath)) ?>" class="<?= $langCode === $uiLang ? 'is-active' : '' ?>"><?= htmlspecialchars(dbnToolsLanguageLabel($langCode)) ?></a> <a href="<?= htmlspecialchars($langPath . '?lang=' . $langCode . '&return=' . urlencode($returnPath)) ?>" class="<?= $langCode === $uiLang ? 'is-active' : '' ?>"><?= htmlspecialchars(dbnToolsLanguageLabel($langCode)) ?></a>
@@ -108,7 +109,7 @@ window.DBN_TOOLS_LANG = <?= json_encode($uiLang, JSON_UNESCAPED_UNICODE) ?>;
<section class="lt-hero"> <section class="lt-hero">
<div class="lt-hero__inner"> <div class="lt-hero__inner">
<p class="lt-hero__kicker">AI Legal Tools &middot; Norway &middot; Free for members</p> <p class="lt-hero__kicker"><?= htmlspecialchars(dbnToolsT('hero_kicker', $uiLang)) ?></p>
<h1 class="lt-hero__title"><?= htmlspecialchars(dbnToolsT('landing_title', $uiLang)) ?></h1> <h1 class="lt-hero__title"><?= htmlspecialchars(dbnToolsT('landing_title', $uiLang)) ?></h1>
<p class="lt-hero__body"><?= htmlspecialchars(dbnToolsT('landing_sub', $uiLang)) ?></p> <p class="lt-hero__body"><?= htmlspecialchars(dbnToolsT('landing_sub', $uiLang)) ?></p>
<div class="lt-hero__stats"> <div class="lt-hero__stats">
@@ -126,7 +127,7 @@ window.DBN_TOOLS_LANG = <?= json_encode($uiLang, JSON_UNESCAPED_UNICODE) ?>;
</div> </div>
<div class="lt-hero__stat"> <div class="lt-hero__stat">
<strong>220K</strong> <strong>220K</strong>
<span>Legal passages indexed</span> <span><?= htmlspecialchars(dbnToolsT('stat_passages_indexed', $uiLang)) ?></span>
</div> </div>
</div> </div>
<?php if ($isAuthed): ?> <?php if ($isAuthed): ?>
@@ -136,7 +137,7 @@ window.DBN_TOOLS_LANG = <?= json_encode($uiLang, JSON_UNESCAPED_UNICODE) ?>;
<a href="/dashboard.php" class="lt-hero__enter-btn"><?= htmlspecialchars(dbnToolsT('enter_workbench', $uiLang)) ?> &rarr;</a> <a href="/dashboard.php" class="lt-hero__enter-btn"><?= htmlspecialchars(dbnToolsT('enter_workbench', $uiLang)) ?> &rarr;</a>
</div> </div>
<?php else: ?> <?php else: ?>
<a href="#tools" class="lt-hero__cta-link">Explore tools &#x2193;</a> <a href="#tools" class="lt-hero__cta-link"><?= htmlspecialchars(dbnToolsT('explore_tools', $uiLang)) ?></a>
<?php endif; ?> <?php endif; ?>
</div> </div>
</section> </section>
@@ -144,8 +145,8 @@ window.DBN_TOOLS_LANG = <?= json_encode($uiLang, JSON_UNESCAPED_UNICODE) ?>;
<section class="lt-tools" id="tools"> <section class="lt-tools" id="tools">
<div class="lt-tools__header"> <div class="lt-tools__header">
<p class="lt-tools__eyebrow"><?= htmlspecialchars(dbnToolsT('tools_title', $uiLang)) ?></p> <p class="lt-tools__eyebrow"><?= htmlspecialchars(dbnToolsT('tools_title', $uiLang)) ?></p>
<h2 class="lt-tools__title">Built for families navigating a complex system.</h2> <h2 class="lt-tools__title"><?= htmlspecialchars(dbnToolsT('tools_section_title', $uiLang)) ?></h2>
<p class="lt-tools__sub">Seven purpose-built AI tools &mdash; from audio transcription to deep legal research. Every tool processes your documents in memory and discards them when you&rsquo;re done.</p> <p class="lt-tools__sub"><?= htmlspecialchars(dbnToolsT('tools_section_sub', $uiLang)) ?></p>
</div> </div>
<div class="lt-grid"> <div class="lt-grid">
<a class="lt-card lt-card--workbench" href="<?= $isAuthed ? '/workbench.php' : '#access' ?>" data-tool="workbench"> <a class="lt-card lt-card--workbench" href="<?= $isAuthed ? '/workbench.php' : '#access' ?>" data-tool="workbench">
@@ -168,7 +169,7 @@ window.DBN_TOOLS_LANG = <?= json_encode($uiLang, JSON_UNESCAPED_UNICODE) ?>;
<p class="lt-card__badge"><?= htmlspecialchars($item['badge']) ?></p> <p class="lt-card__badge"><?= htmlspecialchars($item['badge']) ?></p>
<h3 class="lt-card__title"><?= htmlspecialchars($item['label']) ?></h3> <h3 class="lt-card__title"><?= htmlspecialchars($item['label']) ?></h3>
<p class="lt-card__desc"><?= htmlspecialchars($item['description']) ?></p> <p class="lt-card__desc"><?= htmlspecialchars($item['description']) ?></p>
<span class="lt-card__arrow">Learn more &#x2192;</span> <span class="lt-card__arrow"><?= htmlspecialchars(dbnToolsT('learn_more', $uiLang)) ?></span>
</div> </div>
</a> </a>
<?php endforeach; ?> <?php endforeach; ?>
@@ -195,8 +196,9 @@ window.DBN_TOOLS_LANG = <?= json_encode($uiLang, JSON_UNESCAPED_UNICODE) ?>;
<p><?= htmlspecialchars(dbnToolsT('source_text', $uiLang)) ?></p> <p><?= htmlspecialchars(dbnToolsT('source_text', $uiLang)) ?></p>
</div> </div>
</div> </div>
<div style="text-align:center;margin-top:2rem"> <div style="text-align:center;margin-top:2rem;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center">
<a href="/why-ours.php" style="display:inline-block;padding:.6rem 1.4rem;border:1.5px solid rgba(0,32,91,.25);border-radius:8px;font-size:.85rem;font-weight:600;color:var(--dbn-blue,#00205b);text-decoration:none;transition:border-color .2s,background .2s" onmouseover="this.style.background='rgba(0,32,91,.05)'" onmouseout="this.style.background=''">Why our tools give different answers than ChatGPT &rarr;</a> <a href="/why-ours.php<?= $uiLang !== 'en' ? '?lang=' . urlencode($uiLang) : '' ?>" style="display:inline-block;padding:.6rem 1.4rem;border:1.5px solid rgba(0,32,91,.25);border-radius:8px;font-size:.85rem;font-weight:600;color:var(--dbn-blue,#00205b);text-decoration:none;transition:border-color .2s,background .2s" onmouseover="this.style.background='rgba(0,32,91,.05)'" onmouseout="this.style.background=''"><?= htmlspecialchars(dbnToolsT('why_ours_trust_link', $uiLang)) ?></a>
<a href="/pricing.php<?= $uiLang !== 'en' ? '?lang=' . urlencode($uiLang) : '' ?>" style="display:inline-block;padding:.6rem 1.4rem;border:1.5px solid rgba(0,32,91,.25);border-radius:8px;font-size:.85rem;font-weight:600;color:var(--dbn-blue,#00205b);text-decoration:none;transition:border-color .2s,background .2s" onmouseover="this.style.background='rgba(0,32,91,.05)'" onmouseout="this.style.background=''"><?= htmlspecialchars(dbnToolsT('pricing_nav_link', $uiLang)) ?></a>
</div> </div>
</section> </section>
+197 -2
View File
@@ -198,6 +198,201 @@ return [
'btn_signin_cta' => 'Logg inn →', 'btn_signin_cta' => 'Logg inn →',
], ],
'uk' => [], // TODO: translate — falls back to 'en' 'uk' => [
'pl' => [], // TODO: translate — falls back to 'en' 'nav_signin' => 'Увійти',
'nav_open' => 'Відкрити інструменти →',
'hero_kicker' => 'Чому Do Better Norge · Пояснення простою мовою',
'hero_title' => 'Чому наші інструменти дають інші відповіді, ніж ChatGPT',
'hero_sub' => 'ChatGPT і Gemini — чудові загальні помічники. Але коли ваша справа про захист дітей залежить від точного формулювання barnevernsloven § 4-4, «загалом правильно» — недостатньо.',
'stat_passages' => 'правових уривків проіндексовано',
'stat_tribunal' => 'рішення трибуналів',
'stat_echr' => 'рішення ЄСПЛ проти Норвегії',
'stat_scope' => 'лише норвезьке право',
'btn_try' => 'Спробуйте інструменти →',
'btn_register' => 'Створити безкоштовний акаунт',
'problem_eyebrow' => 'Основна відмінність',
'problem_title' => 'Пам\'ять проти бібліотеки.',
'problem_sub' => 'Загальний AI відповідає з пам\'яті. Наші інструменти спочатку шукають — щоразу.',
'col_generic_label'=> 'Загальний AI (ChatGPT · Gemini)',
'col_dbn_label' => 'Інструменти Do Better Norge',
'col_generic_s1' => 'Ви ставите запитання',
'col_generic_s2' => 'AI шукає у своїй пам\'яті — навченій на всьому інтернеті до певної дати',
'col_generic_s3' => 'Він генерує правдоподібну відповідь',
'col_generic_s4' => 'Він може посилатися на закони, яких не існує, застарілі або з іншої країни',
'col_dbn_s1' => 'Ви ставите запитання',
'col_dbn_s2' => 'Система шукає по 220 000+ перевірених норвезьких правових уривках (RAG — Retrieval Augmented Generation)',
'col_dbn_s3' => 'Знаходить точні уривки за ключовими словами ТА за змістом (BM25 + векторний пошук, паралельно)',
'col_dbn_s4' => 'Ранжувальник вибирає найрелевантніші результати для вашої конкретної ситуації',
'col_dbn_s5' => 'AI, навчений праву, пише вашу відповідь — цитуючи реальні знайдені уривки',
'problem_caption' => 'Різниця не в швидкості чи стилі. Різниця в тому, чи ґрунтується відповідь на норвезькому праві.',
'analogy_eyebrow' => 'Як це працює простою мовою',
'analogy_title' => 'Три ідеї, що пояснюють усе.',
'a1_icon' => '📚',
'a1_title' => 'Бібліотекар',
'a1_body' => 'Уявіть, що ви ставите запитання, і замість того, щоб AI вгадував з пам\'яті, бібліотекар біжить до полиць, бере 10 книг, знаходить точні абзаци — і зачитує їх вам. Це і є RAG. Наші інструменти роблять це з 220 000 норвезькими правовими уривками щоразу.',
'a1_term' => 'RAG — Retrieval Augmented Generation',
'a2_icon' => '🔍',
'a2_title' => 'Два способи знайти книгу',
'a2_body' => 'Один підхід знаходить точні слова — пошук «§ 4-4 barnevernsloven» знайде саме цей параграф. Інший знаходить сенс — якщо ви описуєте ситуацію, не знаючи назви закону, система все одно знайде його. Ми використовуємо обидва одночасно і поєднуємо результати.',
'a2_term' => 'BM25 пошук за ключовими словами + семантичний векторний пошук',
'a3_icon' => '⚖️',
'a3_title' => 'Друга думка',
'a3_body' => 'Знайшовши 30 кандидатних уривків, другий AI переглядає їх і ставить найрелевантніші на перше місце — як досвідчений юрист переглядає стос справ і витягує ті три, що справді стосуються вашої ситуації.',
'a3_term' => 'Ранжувальник — прохід оцінки релевантності',
'graph_eyebrow' => 'Взаємопов\'язане право',
'graph_title' => 'Норвезьке право — це мережа, не список.',
'graph_sub' => 'ChatGPT не знає, які норвезькі закони пов\'язані з якими статтями ЄКПЛ у вашому конкретному типі справи. Наш корпус побудований, щоб стежити за цими зв\'язками.',
'graph_caption' => 'Ваша відповідь спирається на все це — статут, судову практику, міжнародну конвенцію, керівництво — пов\'язане та перехресно посилане.',
'graph_n1' => 'Ваше запитання',
'graph_n2' => 'barnevernsloven § 4-4',
'graph_n2_note' => 'невідкладна опіка',
'graph_n3' => 'barneloven § 30 · § 34',
'graph_n3_note' => 'батьківські права',
'graph_n4' => 'Стаття 8 ЄКПЛ',
'graph_n4_note' => 'право на сімейне життя',
'graph_n5' => '23 рішення ЄСПЛ проти Норвегії',
'graph_n5_note' => 'Strand Lobben, Johansen, K.O. and V.M. …',
'graph_n6' => 'Посібники Bufdir + Statsforvalter',
'graph_n6_note' => 'адміністративна практика',
'graph_n7' => 'Ваша відповідь',
'graph_n7_note' => 'заснована на всьому вищезазначеному',
'compare_eyebrow' => 'Реальні приклади',
'compare_title' => 'Те саме запитання. Дуже різні відповіді.',
'compare_sub' => 'Ось що відбувається, коли ви ставите питання про захист дітей загальному AI порівняно з нашими інструментами.',
'compare_th_q' => 'Ваше запитання',
'compare_th_gpt' => 'Відповідь загального AI',
'compare_th_dbn' => 'Відповідь Do Better Norge',
'compare_r1_q' => '«Чи може Barnevernet забрати мою дитину без попередження?»',
'compare_r1_gpt' => 'Загальний опис служб захисту дітей. Може посилатися на шведські, британські чи американські процедури. Жодного конкретного статуту. Жодної цитати для перевірки.',
'compare_r1_dbn' => 'Цитує barnevernsloven § 4-2 (обов\'язок розслідувати), § 4-6 (умови негайного вилучення), тест пропорційності ЄКПЛ ст. 8 — з номерами уривків з корпусу.',
'compare_r2_q' => '«Як я можу оскаржити постанову про опіку?»',
'compare_r2_gpt' => 'Описує загальний процес апеляції. Згадує «відповідний орган» без назви. Терміни можуть бути неправильними для Норвегії.',
'compare_r2_dbn' => 'Цитує barnevernsloven § 7-2 (провадження в трибуналі), tvisteloven, строк скарги до Statsforvalter — з прямими посиланнями на джерела.',
'compare_r3_q' => '«Що означає стаття 8 для моєї справи?»',
'compare_r3_gpt' => 'Пояснює статтю 8 ЄКПЛ у загальних термінах. Жодної згадки про конкретні рішення проти Норвегії. Жодного зв\'язку з barnevernsloven.',
'compare_r3_dbn' => 'Цитує 4 рішення ЄСПЛ проти Норвегії, найбільш релевантні для возз\'єднання сім\'ї, з перехресними посиланнями на barnevernsloven і керівництво Bufdir — простою норвезькою та вашою мовою.',
'compare_caption' => 'Це не гіпотетичні відмінності. Це те, з чим щодня стикаються користувачі.',
'llm_eyebrow' => 'Навчено для Норвегії',
'llm_title' => 'Не загальний AI. Норвезький правовий AI.',
'llm_body_html' => 'Наш AI-помічник не просто отримав доступ до юридичних документів. Його <strong>навчено спеціально на норвезькому праві захисту дітей</strong> — barnevernsloven, barneloven, судова практика ЄКПЛ статті 8 — тому він розуміє норвезьке правове мислення, а не лише норвезькі слова. Загальний LLM вгадує правовий зміст. Наш створений для цього.',
'llm_badge' => 'Дотренована модель',
'llm_s1' => 'метод дотренування',
'llm_s2' => 'корпус захисту дітей',
'llm_s3' => 'судова практика ЄКПЛ ст. 8',
'llm_s4' => 'норвезька букмол',
'privacy_eyebrow' => 'Ваша конфіденційність',
'privacy_title' => 'Деталі вашої справи ніколи не покидають наші сервери.',
'privacy_body' => 'На відміну від ChatGPT або Gemini, наші інструменти працюють на інфраструктурі, яку ми контролюємо. Деталі вашої справи ніколи не надсилаються до OpenAI, Google чи будь-якої сторонньої AI-компанії. Ваші розмови ніколи не використовуються для навчання жодної моделі. Те, чим ви ділитеся з нами, залишається у нас.',
'cta_title' => 'Готові спробувати?',
'cta_sub' => 'Безкоштовно для початку. Жодної юридичної підготовки не потрібно.',
'btn_open' => 'Відкрити інструменти →',
'btn_signin_cta' => 'Увійти →',
],
'pl' => [
'nav_signin' => 'Zaloguj',
'nav_open' => 'Otwórz narzędzia →',
'hero_kicker' => 'Dlaczego Do Better Norge · Wyjaśnienie prostym językiem',
'hero_title' => 'Dlaczego nasze narzędzia dają inne odpowiedzi niż ChatGPT',
'hero_sub' => 'ChatGPT i Gemini to świetni asystenci ogólnego zastosowania. Ale gdy Twoja sprawa o ochronę dziecka zależy od dokładnego brzmienia barnevernsloven § 4-4, „ogólnie poprawne" nie wystarczy.',
'stat_passages' => 'przepisów prawnych zindeksowanych',
'stat_tribunal' => 'decyzje trybunałów',
'stat_echr' => 'wyroki ETPC przeciwko Norwegii',
'stat_scope' => 'wyłącznie prawo norweskie',
'btn_try' => 'Wypróbuj narzędzia →',
'btn_register' => 'Utwórz bezpłatne konto',
'problem_eyebrow' => 'Podstawowa różnica',
'problem_title' => 'Pamięć kontra biblioteka.',
'problem_sub' => 'Ogólna AI odpowiada z pamięci. Nasze narzędzia najpierw to sprawdzają — za każdym razem.',
'col_generic_label'=> 'Ogólna AI (ChatGPT · Gemini)',
'col_dbn_label' => 'Narzędzia Do Better Norge',
'col_generic_s1' => 'Zadajesz pytanie',
'col_generic_s2' => 'AI przeszukuje swoją pamięć — wytrenowaną na całym internecie do określonej daty',
'col_generic_s3' => 'Generuje brzmiącą wiarygodnie odpowiedź',
'col_generic_s4' => 'Może cytować prawa, które nie istnieją, są przestarzałe lub dotyczą innego kraju',
'col_dbn_s1' => 'Zadajesz pytanie',
'col_dbn_s2' => 'System przeszukuje 220 000+ zweryfikowanych norweskich przepisów prawnych (RAG — Retrieval Augmented Generation)',
'col_dbn_s3' => 'Znajduje dokładne przepisy według słów kluczowych I znaczenia (BM25 + wyszukiwanie wektorowe, równolegle)',
'col_dbn_s4' => 'Reranker wybiera najtrafniejsze wyniki dla Twojej konkretnej sytuacji',
'col_dbn_s5' => 'AI wytrenowana w prawie pisze Twoją odpowiedź — cytując właśnie znalezione przepisy',
'problem_caption' => 'Różnica nie polega na szybkości czy stylu. Różnica polega na tym, czy odpowiedź jest zakorzeniona w prawie norweskim.',
'analogy_eyebrow' => 'Jak to działa prostym językiem',
'analogy_title' => 'Trzy pomysły, które wyjaśniają wszystko.',
'a1_icon' => '📚',
'a1_title' => 'Bibliotekarz',
'a1_body' => 'Wyobraź sobie, że zadajesz pytanie, a zamiast AI zgadywać z pamięci, bibliotekarz biegnie do półek, pobiera 10 książek, znajduje dokładne akapity — i czyta je Ci. To właśnie oznacza RAG. Nasze narzędzia robią to z 220 000 norweskich przepisów prawnych za każdym razem.',
'a1_term' => 'RAG — Retrieval Augmented Generation',
'a2_icon' => '🔍',
'a2_title' => 'Dwa sposoby znalezienia książki',
'a2_body' => 'Jedno podejście znajduje dokładne słowa — wyszukiwanie „§ 4-4 barnevernsloven" znajdzie dokładnie ten akapit. Drugie znajduje znaczenie — jeśli opisujesz swoją sytuację bez znajomości nazwy prawa, system i tak je znajdzie. Używamy obu jednocześnie i łączymy wyniki.',
'a2_term' => 'Wyszukiwanie słów kluczowych BM25 + semantyczne wyszukiwanie wektorowe',
'a3_icon' => '⚖️',
'a3_title' => 'Druga opinia',
'a3_body' => 'Po znalezieniu 30 przepisów kandydatów, druga AI przegląda je i umieszcza najtrafniejsze na górze — tak jak doświadczony prawnik przejrzy stos akt i wyciągnie te trzy, które rzeczywiście dotyczą Twojej sytuacji.',
'a3_term' => 'Reranker — przebieg oceny trafności',
'graph_eyebrow' => 'Powiązane prawo',
'graph_title' => 'Prawo norweskie to sieć, nie lista.',
'graph_sub' => 'ChatGPT nie wie, które norweskie prawa łączą się z którymi artykułami EKPC w Twoim konkretnym typie sprawy. Nasz korpus jest zbudowany tak, aby podążać za tymi powiązaniami.',
'graph_caption' => 'Twoja odpowiedź opiera się na tym wszystkim — ustawie, orzecznictwie, konwencji międzynarodowej, wytycznych — powiązanych i ze wzajemnymi odniesieniami.',
'graph_n1' => 'Twoje pytanie',
'graph_n2' => 'barnevernsloven § 4-4',
'graph_n2_note' => 'natychmiastowa opieka',
'graph_n3' => 'barneloven § 30 · § 34',
'graph_n3_note' => 'prawa rodzicielskie',
'graph_n4' => 'Artykuł 8 EKPC',
'graph_n4_note' => 'prawo do życia rodzinnego',
'graph_n5' => '23 wyroki ETPC przeciwko Norwegii',
'graph_n5_note' => 'Strand Lobben, Johansen, K.O. i V.M. …',
'graph_n6' => 'Wytyczne Bufdir + Statsforvalter',
'graph_n6_note' => 'praktyka administracyjna',
'graph_n7' => 'Twoja odpowiedź',
'graph_n7_note' => 'oparta na wszystkim powyższym',
'compare_eyebrow' => 'Prawdziwe przykłady',
'compare_title' => 'To samo pytanie. Zupełnie różne odpowiedzi.',
'compare_sub' => 'Oto co się dzieje, gdy zadajesz pytanie o ochronę dziecka ogólnej AI kontra nasze narzędzia.',
'compare_th_q' => 'Twoje pytanie',
'compare_th_gpt' => 'Odpowiedzi ogólnej AI',
'compare_th_dbn' => 'Odpowiedzi Do Better Norge',
'compare_r1_q' => '"Czy Barnevernet może zabrać moje dziecko bez ostrzeżenia?"',
'compare_r1_gpt' => 'Ogólny opis służb ochrony dzieci. Może odwoływać się do procedur szwedzkich, brytyjskich lub amerykańskich. Brak konkretnego przepisu. Brak cytatu, który można zweryfikować.',
'compare_r1_dbn' => 'Cytuje barnevernsloven § 4-2 (obowiązek dochodzenia), § 4-6 (warunki natychmiastowego odebrania), test proporcjonalności EKPC Art. 8 — z numerami przepisów z korpusu.',
'compare_r2_q' => '"Jak odwołać się od nakazu opieki?"',
'compare_r2_gpt' => 'Opisuje ogólny proces odwoławczy. Wspomina „właściwy organ" bez jego nazwy. Terminy mogą być błędne dla Norwegii.',
'compare_r2_dbn' => 'Cytuje barnevernsloven § 7-2 (postępowanie trybunału), tvisteloven, termin skargi do Statsforvalter — z bezpośrednimi linkami do źródeł.',
'compare_r3_q' => '"Co oznacza Artykuł 8 dla mojej sprawy?"',
'compare_r3_gpt' => 'Wyjaśnia EKPC Artykuł 8 w ogólnych kategoriach. Brak wzmianki o konkretnych wyrokach dotyczących Norwegii. Brak powiązania z barnevernsloven.',
'compare_r3_dbn' => 'Cytuje 4 wyroki ETPC przeciwko Norwegii najbardziej istotne dla reunifikacji rodziny, ze wzajemnymi odniesieniami do barnevernsloven i wytycznych Bufdir — w prostym norweskim i Twoim języku.',
'compare_caption' => 'To nie są hipotetyczne różnice. To jest to, z czym użytkownicy spotykają się każdego dnia.',
'llm_eyebrow' => 'Wytrenowana dla Norwegii',
'llm_title' => 'Nie ogólna AI. Norweska AI prawnicza.',
'llm_body_html' => 'Nasz asystent AI nie tylko otrzymał dostęp do dokumentów prawnych. Został <strong>wytrenowany specjalnie na norweskim prawie ochrony dzieci</strong> — barnevernsloven, barneloven, orzecznictwo EKPC Artykuł 8 — więc rozumie norweskie rozumowanie prawne, nie tylko norweskie słowa. Ogólny LLM zgaduje znaczenie prawne. Nasz jest do tego stworzony.',
'llm_badge' => 'Model dostrojony',
'llm_s1' => 'metoda dostrajania',
'llm_s2' => 'korpus ochrony dzieci',
'llm_s3' => 'orzecznictwo EKPC Art. 8',
'llm_s4' => 'norweski bokmål',
'privacy_eyebrow' => 'Twoja prywatność',
'privacy_title' => 'Szczegóły Twojej sprawy nigdy nie opuszczają naszych serwerów.',
'privacy_body' => 'W przeciwieństwie do ChatGPT lub Gemini, nasze narzędzia działają na infrastrukturze, którą kontrolujemy. Szczegóły Twojej sprawy nigdy nie są wysyłane do OpenAI, Google ani żadnej zewnętrznej firmy AI. Twoje rozmowy nigdy nie są używane do trenowania żadnego modelu. To, czym się z nami dzielisz, pozostaje u nas.',
'cta_title' => 'Gotowy, żeby spróbować?',
'cta_sub' => 'Bezpłatny start. Nie wymagana wiedza prawna.',
'btn_open' => 'Otwórz narzędzia →',
'btn_signin_cta' => 'Zaloguj →',
],
]; ];