Add NO/UK/PL translations to all 6 doc pages
Per-page translation arrays in translations/*.php (EN/NO/UK/PL) for korrespond-about, korrespond-guide, korrespond-tech, timeline-about, timeline-guide, and timeline-tech. Generated via Azure gpt-4o-mini; Norwegian legal/institution terms preserved as-is in all languages. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+108
-180
@@ -7,6 +7,9 @@ $isAuthed = dbnToolsIsAuthenticated();
|
||||
$langPath = '/korrespond-guide.php';
|
||||
$toolsLogin = 'https://dobetternorge.no/tools-login.php?return=' . urlencode('/korrespond.php');
|
||||
$registerUrl = 'https://dobetternorge.no/register.php';
|
||||
|
||||
$_pt = require __DIR__ . '/translations/korrespond-guide.php';
|
||||
$t = $_pt[$uiLang] ?? $_pt['en'];
|
||||
?>
|
||||
<!doctype html>
|
||||
<html lang="<?= htmlspecialchars($uiLang) ?>">
|
||||
@@ -42,28 +45,28 @@ $registerUrl = 'https://dobetternorge.no/register.php';
|
||||
<?php endforeach; ?>
|
||||
</nav>
|
||||
<?php if ($isAuthed): ?>
|
||||
<a href="/korrespond.php" class="lt-nav__cta lt-nav__cta--enter">Open Korrespond →</a>
|
||||
<a href="/korrespond.php" class="lt-nav__cta lt-nav__cta--enter"><?= htmlspecialchars($t['nav_open']) ?></a>
|
||||
<?php else: ?>
|
||||
<a href="<?= htmlspecialchars($toolsLogin) ?>" class="lt-nav__cta">Sign in</a>
|
||||
<a href="<?= htmlspecialchars($toolsLogin) ?>" class="lt-nav__cta"><?= htmlspecialchars($t['nav_signin']) ?></a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<nav class="kdoc-doc-nav" aria-label="Korrespond documentation">
|
||||
<div class="kdoc-doc-nav__inner">
|
||||
<a href="/korrespond-about.php">About</a>
|
||||
<a href="/korrespond-guide.php" class="is-active">User guide</a>
|
||||
<a href="/korrespond-tech.php">How it works</a>
|
||||
<?php if ($isAuthed): ?><a href="/korrespond.php">← Open the tool</a><?php endif; ?>
|
||||
<a href="/korrespond-about.php"><?= htmlspecialchars($t['nav_about']) ?></a>
|
||||
<a href="/korrespond-guide.php" class="is-active"><?= htmlspecialchars($t['nav_guide']) ?></a>
|
||||
<a href="/korrespond-tech.php"><?= htmlspecialchars($t['nav_howit']) ?></a>
|
||||
<?php if ($isAuthed): ?><a href="/korrespond.php"><?= htmlspecialchars($t['nav_opentool']) ?></a><?php endif; ?>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- Hero -->
|
||||
<section class="kdoc-hero" style="background: linear-gradient(rgba(0,20,60,0.78),rgba(0,20,60,0.86)), url('assets/images/korrespond/hero-guide.png') center/cover no-repeat;">
|
||||
<div class="kdoc-hero__inner">
|
||||
<p class="kdoc-hero__kicker">User Guide · Korrespond</p>
|
||||
<h1 class="kdoc-hero__title">How to use Korrespond.</h1>
|
||||
<p class="kdoc-hero__sub">A step-by-step walkthrough of every control — from choosing your mode to understanding the output and using the formal citation refine pass.</p>
|
||||
<p class="kdoc-hero__kicker"><?= htmlspecialchars($t['hero_kicker']) ?></p>
|
||||
<h1 class="kdoc-hero__title"><?= htmlspecialchars($t['hero_title']) ?></h1>
|
||||
<p class="kdoc-hero__sub"><?= htmlspecialchars($t['hero_sub']) ?></p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -71,19 +74,19 @@ $registerUrl = 'https://dobetternorge.no/register.php';
|
||||
<div class="kdoc-section">
|
||||
|
||||
<div class="kdoc-toc">
|
||||
<p class="kdoc-toc__title">In this guide</p>
|
||||
<p class="kdoc-toc__title"><?= htmlspecialchars($t['toc_title']) ?></p>
|
||||
<ol>
|
||||
<li><a href="#mode">Choose a mode: Reply or Initiate</a></li>
|
||||
<li><a href="#body">Choose the recipient body</a></li>
|
||||
<li><a href="#output">Output type</a></li>
|
||||
<li><a href="#tone">Tone</a></li>
|
||||
<li><a href="#context">Context fields</a></li>
|
||||
<li><a href="#narrative">Describe the situation & goal chips</a></li>
|
||||
<li><a href="#upload">Upload files (Reply mode)</a></li>
|
||||
<li><a href="#clarify">The clarify gate</a></li>
|
||||
<li><a href="#output-result">Understanding the output</a></li>
|
||||
<li><a href="#refine">Using the Refine pass</a></li>
|
||||
<li><a href="#tips">Tips & gotchas</a></li>
|
||||
<li><a href="#mode"><?= htmlspecialchars($t['toc_1']) ?></a></li>
|
||||
<li><a href="#body"><?= htmlspecialchars($t['toc_2']) ?></a></li>
|
||||
<li><a href="#output"><?= htmlspecialchars($t['toc_3']) ?></a></li>
|
||||
<li><a href="#tone"><?= htmlspecialchars($t['toc_4']) ?></a></li>
|
||||
<li><a href="#context"><?= htmlspecialchars($t['toc_5']) ?></a></li>
|
||||
<li><a href="#narrative"><?= htmlspecialchars($t['toc_6']) ?></a></li>
|
||||
<li><a href="#upload"><?= htmlspecialchars($t['toc_7']) ?></a></li>
|
||||
<li><a href="#clarify"><?= htmlspecialchars($t['toc_8']) ?></a></li>
|
||||
<li><a href="#output-result"><?= htmlspecialchars($t['toc_9']) ?></a></li>
|
||||
<li><a href="#refine"><?= htmlspecialchars($t['toc_10']) ?></a></li>
|
||||
<li><a href="#tips"><?= htmlspecialchars($t['toc_11']) ?></a></li>
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
@@ -91,14 +94,14 @@ $registerUrl = 'https://dobetternorge.no/register.php';
|
||||
<div class="kdoc-guide-step" id="mode">
|
||||
<div class="kdoc-guide-step__header">
|
||||
<span class="kdoc-guide-step__num">1</span>
|
||||
<h2 class="kdoc-guide-step__title">Choose a mode: Reply or Initiate</h2>
|
||||
<h2 class="kdoc-guide-step__title"><?= htmlspecialchars($t['step1_title']) ?></h2>
|
||||
</div>
|
||||
<div class="kdoc-guide-step__screenshot">
|
||||
<img src="assets/images/korrespond/form-top.png" alt="Mode toggle showing Reply and Initiate options" class="kdoc-screenshot" style="max-width:700px;" loading="lazy">
|
||||
</div>
|
||||
<div class="kdoc-guide-step__body">
|
||||
<p><strong>Reply mode</strong> is for when you have received a letter, decision, or notice and need to respond to it. Upload the document (PDF, DOCX, or TXT) and the tool will read it as the basis for your reply. You can still add narrative context.</p>
|
||||
<p style="margin-top:0.8rem;"><strong>Initiate mode</strong> is for when you want to start a new correspondence from scratch — no incoming document. You'll describe the situation in the "What happened" field. This mode is required for the narrative field.</p>
|
||||
<p><?= $t['step1_p1_html'] ?></p>
|
||||
<p style="margin-top:0.8rem;"><?= $t['step1_p2_html'] ?></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -106,75 +109,31 @@ $registerUrl = 'https://dobetternorge.no/register.php';
|
||||
<div class="kdoc-guide-step" id="body">
|
||||
<div class="kdoc-guide-step__header">
|
||||
<span class="kdoc-guide-step__num">2</span>
|
||||
<h2 class="kdoc-guide-step__title">Choose the recipient body</h2>
|
||||
<h2 class="kdoc-guide-step__title"><?= htmlspecialchars($t['step2_title']) ?></h2>
|
||||
</div>
|
||||
<div class="kdoc-guide-step__body">
|
||||
<p>The recipient body dropdown pre-loads the relevant statute set into the Hard-RAG retrieval pipeline. Choosing correctly means the tool searches the right laws — you don't need to know which statutes apply yourself.</p>
|
||||
<p><?= htmlspecialchars($t['step2_intro']) ?></p>
|
||||
</div>
|
||||
<table class="kdoc-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Recipient</th>
|
||||
<th>Statutes loaded</th>
|
||||
<th>Typical use</th>
|
||||
<th><?= htmlspecialchars($t['th_recipient']) ?></th>
|
||||
<th><?= htmlspecialchars($t['th_statutes']) ?></th>
|
||||
<th><?= htmlspecialchars($t['th_typical']) ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Barnehage</td>
|
||||
<td>barnehageloven · fvl</td>
|
||||
<td>Enrolment disputes, special needs provisions</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Skole (1.–10. trinn)</td>
|
||||
<td>opplæringslova · fvl</td>
|
||||
<td>Access to education, psycho-social environment</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>SFO</td>
|
||||
<td>opplæringslova · fvl</td>
|
||||
<td>After-school care disputes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>NAV</td>
|
||||
<td>NAV-loven · fvl</td>
|
||||
<td>Benefit denials, appeal of decisions</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Bufdir</td>
|
||||
<td>fvl · EMK Art. 8</td>
|
||||
<td>Adoption, surrogacy, family reunification</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Barnevernet</td>
|
||||
<td>barnevernsloven · fvl · EMK Art. 8</td>
|
||||
<td>Care orders, emergency placements, tiltaksplan</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Statsforvalteren</td>
|
||||
<td>fvl · barnevernsloven</td>
|
||||
<td>Complaints about municipality / Barnevernet</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Trygderetten</td>
|
||||
<td>trygderettsloven · fvl</td>
|
||||
<td>Social security tribunal appeals</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Tingretten</td>
|
||||
<td>tvisteloven · EMK Art. 6</td>
|
||||
<td>Court filings, procedural motions</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Kommune (annet)</td>
|
||||
<td>fvl</td>
|
||||
<td>Any other municipal body</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Annet</td>
|
||||
<td>fvl (general)</td>
|
||||
<td>Authorities not in the list above</td>
|
||||
</tr>
|
||||
<tr><td>Barnehage</td><td>barnehageloven · fvl</td><td><?= htmlspecialchars($t['r1_use']) ?></td></tr>
|
||||
<tr><td>Skole (1.–10. trinn)</td><td>opplæringslova · fvl</td><td><?= htmlspecialchars($t['r2_use']) ?></td></tr>
|
||||
<tr><td>SFO</td><td>opplæringslova · fvl</td><td><?= htmlspecialchars($t['r3_use']) ?></td></tr>
|
||||
<tr><td>NAV</td><td>NAV-loven · fvl</td><td><?= htmlspecialchars($t['r4_use']) ?></td></tr>
|
||||
<tr><td>Bufdir</td><td>fvl · EMK Art. 8</td><td><?= htmlspecialchars($t['r5_use']) ?></td></tr>
|
||||
<tr><td>Barnevernet</td><td>barnevernsloven · fvl · EMK Art. 8</td><td><?= htmlspecialchars($t['r6_use']) ?></td></tr>
|
||||
<tr><td>Statsforvalteren</td><td>fvl · barnevernsloven</td><td><?= htmlspecialchars($t['r7_use']) ?></td></tr>
|
||||
<tr><td>Trygderetten</td><td>trygderettsloven · fvl</td><td><?= htmlspecialchars($t['r8_use']) ?></td></tr>
|
||||
<tr><td>Tingretten</td><td>tvisteloven · EMK Art. 6</td><td><?= htmlspecialchars($t['r9_use']) ?></td></tr>
|
||||
<tr><td>Kommune (annet)</td><td>fvl</td><td><?= htmlspecialchars($t['r10_use']) ?></td></tr>
|
||||
<tr><td>Annet</td><td>fvl (general)</td><td><?= htmlspecialchars($t['r11_use']) ?></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -183,36 +142,20 @@ $registerUrl = 'https://dobetternorge.no/register.php';
|
||||
<div class="kdoc-guide-step" id="output">
|
||||
<div class="kdoc-guide-step__header">
|
||||
<span class="kdoc-guide-step__num">3</span>
|
||||
<h2 class="kdoc-guide-step__title">Output type</h2>
|
||||
<h2 class="kdoc-guide-step__title"><?= htmlspecialchars($t['step3_title']) ?></h2>
|
||||
</div>
|
||||
<div class="kdoc-guide-step__body">
|
||||
<p>Choose the format that fits what you need to send.</p>
|
||||
<p><?= htmlspecialchars($t['step3_intro']) ?></p>
|
||||
</div>
|
||||
<table class="kdoc-table">
|
||||
<thead>
|
||||
<tr><th>Type</th><th>When to use it</th><th>Structure</th></tr>
|
||||
<tr><th><?= htmlspecialchars($t['th_type']) ?></th><th><?= htmlspecialchars($t['th_when']) ?></th><th><?= htmlspecialchars($t['th_structure']) ?></th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Email</td>
|
||||
<td>Day-to-day correspondence, quick inquiries, follow-ups</td>
|
||||
<td>Short subject + body with signature</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Formal letter</td>
|
||||
<td>Official complaints, appeals, access-to-documents requests</td>
|
||||
<td>Sender/receiver block, date, reference, body, signature</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Court/tribunal filing</td>
|
||||
<td>Submissions to Tingretten or Trygderetten</td>
|
||||
<td>Numbered sections, legal argument structure, prayer for relief</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Phone-call prep</td>
|
||||
<td>Before calling a caseworker or authority</td>
|
||||
<td>Opening line · key facts · statutes to cite if pressed · questions to ask · escalation path</td>
|
||||
</tr>
|
||||
<tr><td>Email</td><td><?= htmlspecialchars($t['ot1_when']) ?></td><td><?= htmlspecialchars($t['ot1_struct']) ?></td></tr>
|
||||
<tr><td>Formal letter</td><td><?= htmlspecialchars($t['ot2_when']) ?></td><td><?= htmlspecialchars($t['ot2_struct']) ?></td></tr>
|
||||
<tr><td>Court/tribunal filing</td><td><?= htmlspecialchars($t['ot3_when']) ?></td><td><?= htmlspecialchars($t['ot3_struct']) ?></td></tr>
|
||||
<tr><td>Phone-call prep</td><td><?= htmlspecialchars($t['ot4_when']) ?></td><td><?= htmlspecialchars($t['ot4_struct']) ?></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -221,36 +164,21 @@ $registerUrl = 'https://dobetternorge.no/register.php';
|
||||
<div class="kdoc-guide-step" id="tone">
|
||||
<div class="kdoc-guide-step__header">
|
||||
<span class="kdoc-guide-step__num">4</span>
|
||||
<h2 class="kdoc-guide-step__title">Tone</h2>
|
||||
<h2 class="kdoc-guide-step__title"><?= htmlspecialchars($t['step4_title']) ?></h2>
|
||||
</div>
|
||||
<div class="kdoc-guide-step__body">
|
||||
<p>Tone affects the register and directness of the draft — not the legal accuracy. The AI will maintain correct Norwegian procedural formality regardless of tone.</p>
|
||||
<p><?= htmlspecialchars($t['step4_intro']) ?></p>
|
||||
</div>
|
||||
<table class="kdoc-table">
|
||||
<thead>
|
||||
<tr><th>Tone</th><th>When to use it</th></tr>
|
||||
<tr><th><?= htmlspecialchars($t['th_tone']) ?></th><th><?= htmlspecialchars($t['th_when']) ?></th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Cooperative</td>
|
||||
<td>First contact, relationship still intact, no conflict yet</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Neutral-professional ★</td>
|
||||
<td>Default. Works for most situations — factual, polite, direct</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Firm</td>
|
||||
<td>Deadline has passed, previous requests ignored, clear legal obligation exists</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Adversarial</td>
|
||||
<td>Formal complaints, escalations, when cooperation has broken down completely. Use intentionally — sets a confrontational tone that can close doors.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Conciliatory-warm</td>
|
||||
<td>De-escalation, apology situations, requesting a second chance or meeting</td>
|
||||
</tr>
|
||||
<tr><td>Cooperative</td><td><?= htmlspecialchars($t['tone1_when']) ?></td></tr>
|
||||
<tr><td>Neutral-professional ★</td><td><?= htmlspecialchars($t['tone2_when']) ?></td></tr>
|
||||
<tr><td>Firm</td><td><?= htmlspecialchars($t['tone3_when']) ?></td></tr>
|
||||
<tr><td>Adversarial</td><td><?= htmlspecialchars($t['tone4_when']) ?></td></tr>
|
||||
<tr><td>Conciliatory-warm</td><td><?= htmlspecialchars($t['tone5_when']) ?></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -259,13 +187,13 @@ $registerUrl = 'https://dobetternorge.no/register.php';
|
||||
<div class="kdoc-guide-step" id="context">
|
||||
<div class="kdoc-guide-step__header">
|
||||
<span class="kdoc-guide-step__num">5</span>
|
||||
<h2 class="kdoc-guide-step__title">Context fields</h2>
|
||||
<h2 class="kdoc-guide-step__title"><?= htmlspecialchars($t['step5_title']) ?></h2>
|
||||
</div>
|
||||
<div class="kdoc-guide-step__body">
|
||||
<p><strong>Case reference (saksnummer):</strong> The reference number on any letter you've received. Providing this helps the AI draft precise references in the header. If you don't have one yet, leave it blank.</p>
|
||||
<p style="margin-top:0.8rem;"><strong>Where (kommune / fylke):</strong> The geographical location of the authority. This helps the AI address the letter correctly and can affect which specific regulations apply (e.g. local school rules).</p>
|
||||
<p style="margin-top:0.8rem;"><strong>Next deadline:</strong> If there's a deadline for your response or action, enter it here. The AI will include an explicit deadline reference in the letter where appropriate. Accepts YYYY-MM-DD or plain text like "3 weeks from today".</p>
|
||||
<p style="margin-top:0.8rem;"><strong>Who is involved:</strong> Names and roles of the key parties — you, any caseworker, the child if relevant, a lawyer, etc. Keep it brief (e.g. "Me (parent), caseworker Anna Hansen, son Ola (age 8)"). <em>Tip: use the Redact tool first if you'll share this externally.</em></p>
|
||||
<p><?= $t['step5_p1_html'] ?></p>
|
||||
<p style="margin-top:0.8rem;"><?= $t['step5_p2_html'] ?></p>
|
||||
<p style="margin-top:0.8rem;"><?= $t['step5_p3_html'] ?></p>
|
||||
<p style="margin-top:0.8rem;"><?= $t['step5_p4_html'] ?></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -273,24 +201,24 @@ $registerUrl = 'https://dobetternorge.no/register.php';
|
||||
<div class="kdoc-guide-step" id="narrative">
|
||||
<div class="kdoc-guide-step__header">
|
||||
<span class="kdoc-guide-step__num">6</span>
|
||||
<h2 class="kdoc-guide-step__title">Describe the situation & choose a goal</h2>
|
||||
<h2 class="kdoc-guide-step__title"><?= htmlspecialchars($t['step6_title']) ?></h2>
|
||||
</div>
|
||||
<div class="kdoc-guide-step__screenshot">
|
||||
<img src="assets/images/korrespond/form-bottom.png" alt="Narrative field and goal chips" class="kdoc-screenshot" style="max-width:700px;" loading="lazy">
|
||||
</div>
|
||||
<div class="kdoc-guide-step__body">
|
||||
<p><strong>"What happened / context"</strong> is the most important field. Write what happened, when, who decided what, and what outcome you want. The more specific you are, the better the draft. 8,000 characters maximum.</p>
|
||||
<p style="margin-top:0.8rem;"><strong>Goal chips</strong> let you quickly state your legal goal. Click one to auto-fill the Goal field — you can then edit it. Each chip maps to a specific procedural right:</p>
|
||||
<p><?= $t['step6_p1_html'] ?></p>
|
||||
<p style="margin-top:0.8rem;"><?= $t['step6_p2_html'] ?></p>
|
||||
<ul style="margin-top:0.6rem; padding-left:1.4rem; font-size:0.9rem; line-height:1.8;">
|
||||
<li><strong>Access to docs (fvl §18)</strong> — Request access to all documents in your case</li>
|
||||
<li><strong>Appeal (fvl §28)</strong> — Formally appeal a decision to the klageinstans</li>
|
||||
<li><strong>Request meeting</strong> — Request a face-to-face meeting with a caseworker</li>
|
||||
<li><strong>Reasoned decision (fvl §24-25)</strong> — Demand a written, reasoned decision</li>
|
||||
<li><strong>Right to be heard (fvl §17)</strong> — Invoke your procedural right to be heard before a decision</li>
|
||||
<li><strong>Complaint</strong> — File a complaint about caseworker conduct</li>
|
||||
<li><strong>Clarify timeline</strong> — Ask for a status update and expected timeline</li>
|
||||
<li><?= $t['goal1_html'] ?></li>
|
||||
<li><?= $t['goal2_html'] ?></li>
|
||||
<li><?= $t['goal3_html'] ?></li>
|
||||
<li><?= $t['goal4_html'] ?></li>
|
||||
<li><?= $t['goal5_html'] ?></li>
|
||||
<li><?= $t['goal6_html'] ?></li>
|
||||
<li><?= $t['goal7_html'] ?></li>
|
||||
</ul>
|
||||
<p style="margin-top:0.8rem;">You can type your own goal in the text field instead of — or in addition to — using a chip.</p>
|
||||
<p style="margin-top:0.8rem;"><?= htmlspecialchars($t['goal_note']) ?></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -298,13 +226,13 @@ $registerUrl = 'https://dobetternorge.no/register.php';
|
||||
<div class="kdoc-guide-step" id="upload">
|
||||
<div class="kdoc-guide-step__header">
|
||||
<span class="kdoc-guide-step__num">7</span>
|
||||
<h2 class="kdoc-guide-step__title">Upload files (Reply mode)</h2>
|
||||
<h2 class="kdoc-guide-step__title"><?= htmlspecialchars($t['step7_title']) ?></h2>
|
||||
</div>
|
||||
<div class="kdoc-guide-step__body">
|
||||
<p>In <strong>Reply mode</strong>, upload the letter or decision you received. The AI will read and summarise it as the basis for your reply. Supported formats: <strong>PDF</strong>, <strong>DOCX</strong>, <strong>TXT</strong>. Up to 4 files, max 8 MB each.</p>
|
||||
<p style="margin-top:0.8rem;"><strong>Convention:</strong> the first file uploaded is treated as the primary received letter. Additional files are treated as supporting attachments (e.g. previous correspondence, evidence).</p>
|
||||
<p style="margin-top:0.8rem;">In <strong>Initiate mode</strong>, uploads are optional — use them to provide supporting context (previous letters, medical reports, etc.).</p>
|
||||
<p style="margin-top:0.8rem;">All files are processed in memory and immediately discarded when the session ends. Nothing is written to disk or retained.</p>
|
||||
<p><?= $t['step7_p1_html'] ?></p>
|
||||
<p style="margin-top:0.8rem;"><?= $t['step7_p2_html'] ?></p>
|
||||
<p style="margin-top:0.8rem;"><?= $t['step7_p3_html'] ?></p>
|
||||
<p style="margin-top:0.8rem;"><?= htmlspecialchars($t['step7_p4']) ?></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -312,13 +240,13 @@ $registerUrl = 'https://dobetternorge.no/register.php';
|
||||
<div class="kdoc-guide-step" id="clarify">
|
||||
<div class="kdoc-guide-step__header">
|
||||
<span class="kdoc-guide-step__num">8</span>
|
||||
<h2 class="kdoc-guide-step__title">The clarify gate</h2>
|
||||
<h2 class="kdoc-guide-step__title"><?= htmlspecialchars($t['step8_title']) ?></h2>
|
||||
</div>
|
||||
<div class="kdoc-guide-step__body">
|
||||
<p>Before drafting, the AI runs a quick classification pass (Pass 1) to understand your situation. If it finds gaps that would significantly affect the quality of the draft — a missing decision date, unclear which child is involved, unknown authority — it pauses and shows a <strong>"Before we draft, clarify:"</strong> panel with specific questions.</p>
|
||||
<p style="margin-top:0.8rem;"><strong>Answer what you can</strong>, then click <em>Continue draft</em>. Your answers are merged into the context before Pass 2 runs. This extra step costs no additional credit.</p>
|
||||
<p style="margin-top:0.8rem;">If you're in a hurry or simply don't know the answers, click <em>Draft anyway</em>. The tool will proceed with what it has and flag uncertainties in the output.</p>
|
||||
<p style="margin-top:0.8rem;"><strong>Note:</strong> the clarify pass is free. Credits are only deducted when the actual drafting (Pass 2) begins.</p>
|
||||
<p><?= $t['step8_p1_html'] ?></p>
|
||||
<p style="margin-top:0.8rem;"><?= $t['step8_p2_html'] ?></p>
|
||||
<p style="margin-top:0.8rem;"><?= $t['step8_p3_html'] ?></p>
|
||||
<p style="margin-top:0.8rem;"><?= $t['step8_p4_html'] ?></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -326,18 +254,18 @@ $registerUrl = 'https://dobetternorge.no/register.php';
|
||||
<div class="kdoc-guide-step" id="output-result">
|
||||
<div class="kdoc-guide-step__header">
|
||||
<span class="kdoc-guide-step__num">9</span>
|
||||
<h2 class="kdoc-guide-step__title">Understanding the output</h2>
|
||||
<h2 class="kdoc-guide-step__title"><?= htmlspecialchars($t['step9_title']) ?></h2>
|
||||
</div>
|
||||
<div class="kdoc-guide-step__screenshot">
|
||||
<img src="assets/images/korrespond/output-draft.png" alt="Two-column output: Norwegian bokmål and English side by side" class="kdoc-screenshot" style="max-width:800px;" loading="lazy">
|
||||
</div>
|
||||
<div class="kdoc-guide-step__body">
|
||||
<p>The output has two columns:</p>
|
||||
<p><?= htmlspecialchars($t['step9_intro']) ?></p>
|
||||
<ul style="padding-left:1.4rem; font-size:0.9rem; line-height:1.8; margin-top:0.5rem;">
|
||||
<li><strong>Norsk (bokmål) — canonical:</strong> The legally operative draft. This is what you send. Use the Copy or Download .txt button to get the text.</li>
|
||||
<li><strong>Working language — reference:</strong> A translation into your working language (EN/PL/UK). Use this to understand what you're sending — do not send this version to the authority.</li>
|
||||
<li><?= $t['step9_col1_html'] ?></li>
|
||||
<li><?= $t['step9_col2_html'] ?></li>
|
||||
</ul>
|
||||
<p style="margin-top:0.8rem;"><strong>Cited law note:</strong> at the bottom of the output, a note shows how many law sources were retrieved and cited. If it says "No cited law sources — draft is plain-language", it means no statute matched your situation closely enough to cite — the draft will still be useful but won't include § references. This is the honest behaviour: no fake citations.</p>
|
||||
<p style="margin-top:0.8rem;"><?= $t['step9_note_html'] ?></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -345,18 +273,18 @@ $registerUrl = 'https://dobetternorge.no/register.php';
|
||||
<div class="kdoc-guide-step" id="refine">
|
||||
<div class="kdoc-guide-step__header">
|
||||
<span class="kdoc-guide-step__num">10</span>
|
||||
<h2 class="kdoc-guide-step__title">Using the Refine pass</h2>
|
||||
<h2 class="kdoc-guide-step__title"><?= htmlspecialchars($t['step10_title']) ?></h2>
|
||||
</div>
|
||||
<div class="kdoc-guide-step__screenshot">
|
||||
<img src="assets/images/korrespond/refine-panel.png" alt="Refine panel with Norwegian law, ECHR, and Both options" class="kdoc-screenshot" style="max-width:700px;" loading="lazy">
|
||||
</div>
|
||||
<div class="kdoc-guide-step__body">
|
||||
<p>The <strong>Refine with formal citations</strong> panel appears after the initial draft. This optional second pass (+1 credit) rewrites the draft with court-ready citation style and appends a Rettskilder (legal sources) block at the end.</p>
|
||||
<p style="margin-top:0.8rem;">Choose your jurisdiction scope:</p>
|
||||
<p><?= $t['step10_p1_html'] ?></p>
|
||||
<p style="margin-top:0.8rem;"><?= htmlspecialchars($t['step10_scope']) ?></p>
|
||||
<ul style="padding-left:1.4rem; font-size:0.9rem; line-height:1.8; margin-top:0.5rem;">
|
||||
<li><strong>Norwegian law only:</strong> Rewrites to use <em>jf. forvaltningsloven § 17</em>, <em>jf. opplæringslova § 9 A-4</em> style. Best for most domestic correspondence.</li>
|
||||
<li><strong>ECHR (EMK + HUDOC):</strong> Adds European Court of Human Rights citations with full case name, application number, date, and paragraph — e.g. <em>Strand Lobben m.fl. mot Norge, EMD-37283/13 (17.09.2019), § 207</em>. Use when arguing family life rights (Art. 8) or fair trial (Art. 6).</li>
|
||||
<li><strong>Both:</strong> Combines Norwegian statute citations with ECHR case law. Strongest for Barnevernet, Bufdir, or court filings where both domestic and ECHR grounds apply.</li>
|
||||
<li><?= $t['step10_opt1_html'] ?></li>
|
||||
<li><?= $t['step10_opt2_html'] ?></li>
|
||||
<li><?= $t['step10_opt3_html'] ?></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="kdoc-guide-step__screenshot" style="margin-top:1rem;">
|
||||
@@ -368,15 +296,15 @@ $registerUrl = 'https://dobetternorge.no/register.php';
|
||||
<div class="kdoc-guide-step" id="tips">
|
||||
<div class="kdoc-guide-step__header">
|
||||
<span class="kdoc-guide-step__num">11</span>
|
||||
<h2 class="kdoc-guide-step__title">Tips & gotchas</h2>
|
||||
<h2 class="kdoc-guide-step__title"><?= htmlspecialchars($t['step11_title']) ?></h2>
|
||||
</div>
|
||||
<div class="kdoc-tips">
|
||||
<div class="kdoc-tip"><strong>Use the Redact tool first.</strong> If your narrative includes full names, fødselsnumre, or addresses, run it through Redact before pasting into Korrespond — especially if you plan to share the output.</div>
|
||||
<div class="kdoc-tip"><strong>Saksnummer helps a lot.</strong> Even a partial case reference from a letter header helps the AI address the reply correctly and cite the right case context.</div>
|
||||
<div class="kdoc-tip"><strong>Adversarial tone is powerful — use it intentionally.</strong> It signals formal conflict escalation. Once sent, it can close cooperative doors. Use Firm first unless you've genuinely exhausted other options.</div>
|
||||
<div class="kdoc-tip"><strong>Goal chips stack with the narrative.</strong> If you pick "Appeal (fvl §28)" but your narrative also mentions access to documents, the AI will address both — you don't need to pick just one chip.</div>
|
||||
<div class="kdoc-tip"><strong>Deadline field affects the draft directly.</strong> The AI explicitly states the deadline in the letter and frames the request with urgency where appropriate. Always fill it in if one exists.</div>
|
||||
<div class="kdoc-tip"><strong>For ECHR citations, choose Barnevernet or Bufdir as body.</strong> Those presets load the ECHR + family law corpus slices. The Refine pass will then find the strongest relevant case law (Strand Lobben, Johansen, K.O. and V.M.).</div>
|
||||
<div class="kdoc-tip"><?= $t['tip1_html'] ?></div>
|
||||
<div class="kdoc-tip"><?= $t['tip2_html'] ?></div>
|
||||
<div class="kdoc-tip"><?= $t['tip3_html'] ?></div>
|
||||
<div class="kdoc-tip"><?= $t['tip4_html'] ?></div>
|
||||
<div class="kdoc-tip"><?= $t['tip5_html'] ?></div>
|
||||
<div class="kdoc-tip"><?= $t['tip6_html'] ?></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -384,16 +312,16 @@ $registerUrl = 'https://dobetternorge.no/register.php';
|
||||
|
||||
<!-- CTA -->
|
||||
<section class="kdoc-cta-strip">
|
||||
<h2 class="kdoc-cta-strip__title">Ready to try it?</h2>
|
||||
<p class="kdoc-cta-strip__sub">Free for Do Better Norge members.</p>
|
||||
<h2 class="kdoc-cta-strip__title"><?= htmlspecialchars($t['cta_title']) ?></h2>
|
||||
<p class="kdoc-cta-strip__sub"><?= htmlspecialchars($t['cta_sub']) ?></p>
|
||||
<div class="kdoc-hero__ctas">
|
||||
<?php if ($isAuthed): ?>
|
||||
<a href="/korrespond.php" class="kdoc-btn-primary">Open Korrespond →</a>
|
||||
<a href="/korrespond.php" class="kdoc-btn-primary"><?= htmlspecialchars($t['btn_open']) ?></a>
|
||||
<?php else: ?>
|
||||
<a href="<?= htmlspecialchars($toolsLogin) ?>" class="kdoc-btn-primary">Sign in to use Korrespond →</a>
|
||||
<a href="<?= htmlspecialchars($registerUrl) ?>" class="kdoc-btn-secondary">Register free</a>
|
||||
<a href="<?= htmlspecialchars($toolsLogin) ?>" class="kdoc-btn-primary"><?= htmlspecialchars($t['btn_signin_cta']) ?></a>
|
||||
<a href="<?= htmlspecialchars($registerUrl) ?>" class="kdoc-btn-secondary"><?= htmlspecialchars($t['btn_register']) ?></a>
|
||||
<?php endif; ?>
|
||||
<a href="/korrespond-tech.php" class="kdoc-btn-secondary">How it works under the hood</a>
|
||||
<a href="/korrespond-tech.php" class="kdoc-btn-secondary"><?= htmlspecialchars($t['btn_techlink']) ?></a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user