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:
2026-05-19 16:58:15 +02:00
parent 0201115fa3
commit 29579eae66
13 changed files with 3627 additions and 607 deletions
+441
View File
@@ -0,0 +1,441 @@
<?php
// Auto-generated by scripts/generate-page-translations.php
// DO NOT EDIT MANUALLY — re-run the script to regenerate
return array (
'en' =>
array (
'nav_about' => 'About',
'nav_guide' => 'User guide',
'nav_howit' => 'How it works',
'nav_opentool' => '← Open the tool',
'nav_signin' => 'Sign in',
'nav_open' => 'Open Timeline →',
'hero_kicker' => 'Technical Showcase · How the AI reads time',
'hero_title' => 'How Timeline knows when things happened.',
'hero_sub' => 'A full walkthrough of the 3-pass extraction pipeline, Norwegian date format recognition, event classification schema, multi-engine architecture, and the fine-tuned dbn-legal-agent model.',
'stat1' => 'date formats',
'stat2' => 'event types',
'stat3' => 'pipeline passes',
'stat4' => 'engine options',
'arch_eyebrow' => 'Architecture',
'arch_title' => 'Three passes. Each with a distinct job.',
'arch_sub' => 'The pipeline is intentionally sequential — Pass 1 is rule-based and near-instant; Pass 2 is the LLM extraction; Pass 3 post-processes and scores the output.',
'pass1_title' => 'Detect & normalise known formats',
'pass1_p1_html' => 'A deterministic pattern-matching pass runs before any LLM call. It scans the full input for dates matching 12+ Norwegian formats and normalises them to ISO 8601:',
'pass1_li1_html' => '<code>dd.mm.yyyy</code> → <code>YYYY-MM-DD</code>',
'pass1_li2' => 'd. månedsnavn yyyy → resolved calendar date',
'pass1_li3' => 'Diary-format lines (starting with a date + colon) → auto-tagged as events',
'pass1_li4' => 'Two-digit years → always interpreted as 20YY',
'pass1_p2' => 'Normalised anchors are injected into the LLM prompt to reduce hallucinated or misread dates.',
'pass2_title' => 'Extract, classify & score',
'pass2_p1_html' => 'The LLM reads the full document alongside the pre-pass anchors. For every temporal reference it returns a structured JSON event object:',
'pass2_p2' => 'The prompt explicitly instructs the model not to invent dates or actors not present in the source. Temperature is set to 0.1 for deterministic output.',
'pass3_title' => 'Filter, sort & assemble',
'pass3_p1_html' => 'PHP applies all active filters before returning the result:',
'pass3_f1_html' => '<strong>Focus filter</strong> — strips events not matching the requested focus mode (deadlines / hearings / CPS)',
'pass3_f2_html' => '<strong>Confidence filter</strong> — removes LOW-confidence events if requested',
'pass3_f3_html' => '<strong>Background filter</strong> — strips background/narrative events if unchecked',
'pass3_f4_html' => '<strong>Date-type filter</strong> — strips relative/recurring events if unchecked',
'pass3_p2_html' => 'The post-processor then assembles the <code>what_remains_uncertain</code> list and the <code>next_practical_step</code> recommendation.',
'date_eyebrow' => 'Date recognition',
'date_title' => '12+ Norwegian date formats, all recognised.',
'date_sub' => 'Norwegian legal documents use a wide variety of date notations. The Pass 1 pre-pass recognises all of these deterministically; the LLM handles the rest in Pass 2.',
'th_format' => 'Format',
'th_example' => 'Example',
'th_notes' => 'Notes',
'dn1' => 'Standard Norwegian numeric',
'dn2' => 'Two-digit year → always 20YY',
'dn3' => 'Written month in bokmål/nynorsk',
'dn4' => 'Year inferred by proximity scanning',
'dn5' => 'ISO 8601',
'dn6' => 'Month + year only',
'dn7' => 'Year-only reference',
'dn8' => 'Seasonal reference → Q3/Q4',
'dn9' => 'Date + colon → auto-tagged as event',
'dn10' => 'Anchored to nearest resolved event',
'dn11' => 'Classified as recurring',
'dn12' => 'Yields start_date + end_date',
'class_eyebrow' => 'Classification schema',
'class_title' => 'Five event types. Three confidence levels.',
'class_h1' => 'date_type values',
'th_datetype' => 'date_type',
'th_definition' => 'Definition',
'dt1_def' => 'A specific, resolvable calendar date',
'dt2_def' => 'A date expressed relative to another event',
'dt3_def' => 'A pattern that repeats on a schedule',
'dt4_def' => 'A date contingent on a condition being met',
'dt5_def' => 'A date range or duration with start and end',
'class_h2' => 'confidence levels',
'th_conf' => 'confidence',
'th_meaning' => 'Meaning',
'th_visual' => 'Visual in timeline',
'conf1_meaning' => 'Date is explicitly and unambiguously stated in the source text',
'conf1_visual' => 'Green badge',
'conf2_meaning' => 'Date is inferred, approximate, or stated with slight ambiguity',
'conf2_visual' => 'Amber badge',
'conf3_meaning' => 'Date is implied, undated, or extracted from a degraded/ambiguous passage',
'conf3_visual' => 'Grey badge',
'class_h3' => 'Actor attribution rules',
'th_rule' => 'Rule',
'act1_rule' => 'Named entity in the same sentence',
'act2_rule' => 'Role label without a name',
'act3_rule' => 'No clear attribution in sentence',
'act4_rule' => 'Document-level default',
'act4_example' => 'If no per-event actor, defaults to the document sender/issuing body',
'eng_eyebrow' => 'Engines',
'eng_title' => 'Three engines, one structured output.',
'eng_sub' => 'All engines return the same JSON schema — the post-processor handles all three identically. Engine choice affects speed, quality, and privacy only.',
'th_model' => 'Model',
'th_latency' => 'Latency',
'th_best' => 'Best for',
'eng1_best' => 'Default. Fast, cost-efficient, handles most legal documents well.',
'eng2_best' => 'Complex documents, overlapping events, poor-quality or dense source text.',
'eng3_best' => 'Maximum privacy. Entirely local. Fine-tuned on Norwegian legal corpus.',
'ft_eyebrow' => 'Fine-tuned model',
'ft_title' => 'dbn-legal-agent: trained on Norwegian legal text.',
'ft_badge' => 'QLoRA fine-tune',
'ft_p1' => 'A QLoRA (Quantized Low-Rank Adaptation) fine-tune trained on Norwegian child-welfare and administrative law text — case notes, court decisions, Barnevernet correspondence, Fylkesnemnda decisions, and Statsforvalter rulings. The model has internalised the temporal patterns of Norwegian legal proceedings: the procedural sequence of an omsorgsovertakelse, the typical timeline of a tiltaksplan review cycle, what akutt means as a temporal signal, how Fylkesnemnda milestones are ordered.',
'ft_p2' => 'In the Timeline GPU engine, dbn-legal-agent runs as the primary extraction model via the LiteLLM proxy on cuttlefish. The structured JSON output schema is identical to the Azure engines — the same post-processing pipeline applies regardless of which engine produced the extraction. No Azure API calls are made when the GPU engine is selected.',
'priv_eyebrow' => 'Privacy & security',
'priv_title' => 'Your documents never leave your session.',
'priv_badge' => 'Privacy by design',
'priv_1_html' => 'All uploaded files are extracted to text <strong>in memory</strong> using PHP\'s in-process file handlers. The raw binary is never written to disk on the server.',
'priv_2' => 'Session context (pasted text, uploaded content, extracted timeline events) is scoped to your authenticated session and discarded when the session ends.',
'priv_3_html' => 'Azure OpenAI (<code>gpt-4o</code>, <code>gpt-4o-mini</code>) is configured on the <strong>West Europe</strong> region. Data processed via Azure OpenAI is not used for model training under the default enterprise agreement.',
'priv_4_html' => 'The GPU/cuttlefish engine processes entirely locally — no data leaves your network. The LiteLLM proxy on cuttlefish receives your document text and returns structured JSON; nothing is forwarded to an external API.',
'priv_5_html' => 'Telemetry logged: tool name, engine, focus mode, event count, latency. <strong>No document text, case references, actor names, or extracted events are logged.</strong>',
'cta_title' => 'See it work on your case.',
'cta_sub' => 'Free for Do Better Norge members. All engines available to every member.',
'btn_open' => 'Open Timeline →',
'btn_signin_cta' => 'Sign in to use Timeline →',
'btn_register' => 'Register free',
'btn_guide' => 'User guide',
),
'no' =>
array (
'nav_about' => 'Om',
'nav_guide' => 'Brukerveiledning',
'nav_howit' => 'Hvordan det fungerer',
'nav_opentool' => '← Åpne verktøyet',
'nav_signin' => 'Logg inn',
'nav_open' => 'Åpne Tidslinje →',
'hero_kicker' => 'Teknisk Vist · Hvordan AI-en leser tid',
'hero_title' => 'Hvordan Tidslinje vet når ting skjedde.',
'hero_sub' => 'En full gjennomgang av 3-pass ekstraksjonsrørledningen, gjenkjenning av norsk datoformat, hendelsesklassifiseringsskjema, multi-motor arkitektur, og den finjusterte dbn-legal-agent modellen.',
'stat1' => 'datoformater',
'stat2' => 'hendelsestyper',
'stat3' => 'rørledningspass',
'stat4' => 'motoralternativer',
'arch_eyebrow' => 'Arkitektur',
'arch_title' => 'Tre pass. Hvert med en distinkt oppgave.',
'arch_sub' => 'Rørledningen er bevisst sekvensiell — Pass 1 er regelbasert og nesten umiddelbar; Pass 2 er LLM-ekstraksjonen; Pass 3 etterbehandler og vurderer utdataene.',
'pass1_title' => 'Oppdag & normaliser kjente formater',
'pass1_p1_html' => 'Et deterministisk mønster-matching pass kjører før noen LLM-anrop. Det skanner hele inngangen for datoer som matcher 12+ norske formater og normaliserer dem til ISO 8601:',
'pass1_li1_html' => '<code>dd.mm.yyyy</code> → <code>YYYY-MM-DD</code>',
'pass1_li2' => 'd. månedsnavn yyyy → løst kalenderdato',
'pass1_li3' => 'Dagbok-format linjer (som starter med en dato + kolon) → automatisk merket som hendelser',
'pass1_li4' => 'To-sifrede år → alltid tolket som 20YY',
'pass1_p2' => 'Normaliserte anker injiseres i LLM-prompten for å redusere hallusinerte eller feiltolket datoer.',
'pass2_title' => 'Ekstrahere, klassifisere & vurdere',
'pass2_p1_html' => 'LLM leser hele dokumentet sammen med pre-pass anker. For hver tidsreferanse returnerer den et strukturert JSON-hendelsesobjekt:',
'pass2_p2' => 'Prompten instruerer eksplisitt modellen om ikke å finne på datoer eller aktører som ikke er til stede i kilden. Temperaturen er satt til 0,1 for deterministisk utdata.',
'pass3_title' => 'Filtrere, sortere & sette sammen',
'pass3_p1_html' => 'PHP anvender alle aktive filtre før resultatet returneres:',
'pass3_f1_html' => '<strong>Fokusfilter</strong> — fjerner hendelser som ikke samsvarer med den forespurte fokusmodusen (frister / høringer / CPS)',
'pass3_f2_html' => '<strong>Konfidensfilter</strong> — fjerner hendelser med LAV konfidens hvis forespurt',
'pass3_f3_html' => '<strong>Bakgrunnsfilter</strong> — fjerner bakgrunns/narrative hendelser hvis ikke avkrysset',
'pass3_f4_html' => '<strong>Dato-type filter</strong> — fjerner relative/gjentakende hendelser hvis ikke avkrysset',
'pass3_p2_html' => 'Post-prosessoren setter deretter sammen <code>what_remains_uncertain</code> listen og <code>next_practical_step</code> anbefalingen.',
'date_eyebrow' => 'Dato gjenkjenning',
'date_title' => '12+ norske datoformater, alle gjenkjent.',
'date_sub' => 'Norske juridiske dokumenter bruker et bredt spekter av datonotasjoner. Pass 1 pre-pass gjenkjenner alle disse deterministisk; LLM håndterer resten i Pass 2.',
'th_format' => 'Format',
'th_example' => 'Eksempel',
'th_notes' => 'Notater',
'dn1' => 'Standard norsk numerisk',
'dn2' => 'To-sifret år → alltid 20YY',
'dn3' => 'Skriftlig måned på bokmål/nynorsk',
'dn4' => 'År utledet ved nærhetsskanning',
'dn5' => 'ISO 8601',
'dn6' => 'Måned + år kun',
'dn7' => 'År-referanse',
'dn8' => 'Sesongreferanse → Q3/Q4',
'dn9' => 'Dato + kolon → automatisk merket som hendelse',
'dn10' => 'Forankret til nærmeste løste hendelse',
'dn11' => 'Klassifisert som gjentakende',
'dn12' => 'Gir start_dato + slutt_dato',
'class_eyebrow' => 'Klassifiseringsskjema',
'class_title' => 'Fem hendelsestyper. Tre tillitsnivåer.',
'class_h1' => 'date_type verdier',
'th_datetype' => 'date_type',
'th_definition' => 'Definisjon',
'dt1_def' => 'En spesifikk, løselig kalenderdato',
'dt2_def' => 'En dato uttrykt relativt til en annen hendelse',
'dt3_def' => 'Et mønster som gjentar seg etter en timeplan',
'dt4_def' => 'En dato avhengig av at en betingelse er oppfylt',
'dt5_def' => 'Et datointervall eller varighet med start og slutt',
'class_h2' => 'konfidensnivåer',
'th_conf' => 'konfidens',
'th_meaning' => 'Betydning',
'th_visual' => 'Visuell i tidslinje',
'conf1_meaning' => 'Datoen er eksplisitt og entydig angitt i kildeteksten',
'conf1_visual' => 'Grønn merkelapp',
'conf2_meaning' => 'Datoen er utledet, omtrentlig, eller angitt med liten tvetydighet',
'conf2_visual' => 'Amber merkelapp',
'conf3_meaning' => 'Datoen er implisert, uten dato, eller hentet fra et forringet/tvetydig avsnitt',
'conf3_visual' => 'Grå merkelapp',
'class_h3' => 'Regler for aktørattribusjon',
'th_rule' => 'Regel',
'act1_rule' => 'Navngitt enhet i samme setning',
'act2_rule' => 'Rollemerkelapp uten navn',
'act3_rule' => 'Ingen klar attribusjon i setningen',
'act4_rule' => 'Standard på dokumentnivå',
'act4_example' => 'Hvis ingen aktør per hendelse, standardiseres til dokumentets avsender/utstedende organ',
'eng_eyebrow' => 'Motorer',
'eng_title' => 'Tre motorer, ett strukturert utdata.',
'eng_sub' => 'Alle motorer returnerer det samme JSON-skjemaet — etterbehandleren håndterer alle tre identisk. Valg av motor påvirker hastighet, kvalitet og personvern kun.',
'th_model' => 'Modell',
'th_latency' => 'Forsinkelse',
'th_best' => 'Best for',
'eng1_best' => 'Standard. Rask, kostnadseffektiv, håndterer de fleste juridiske dokumenter godt.',
'eng2_best' => 'Komplekse dokumenter, overlappende hendelser, dårlig kvalitet eller tett kilde tekst.',
'eng3_best' => 'Maksimalt personvern. Helt lokalt. Finjustert på norsk juridisk korpus.',
'ft_eyebrow' => 'Finjustert modell',
'ft_title' => 'dbn-legal-agent: trent på norsk juridisk tekst.',
'ft_badge' => 'QLoRA finjustering',
'ft_p1' => 'En QLoRA (Quantized Low-Rank Adaptation) finjustering trent på norsk barnevern og forvaltningsrett tekst — saksnotater, rettsavgjørelser, Barnevernet korrespondanse, Fylkesnemnda avgjørelser, og Statsforvalteren vedtak. Modellen har internalisert de tidsmessige mønstrene i norske rettsprosedyrer: den prosessuelle sekvensen av en omsorgsovertakelse, den typiske tidslinjen for en tiltaksplan vurderingssyklus, hva akutt betyr som et tidsmessig signal, hvordan Fylkesnemnda milepæler er ordnet.',
'ft_p2' => 'I Timeline GPU-motoren kjører dbn-legal-agent som den primære ekstraksjonsmodellen via LiteLLM-proxyen på cuttlefish. Det strukturerte JSON-utdata-skjemaet er identisk med Azure-motorene — den samme etterbehandlingslinjen gjelder uavhengig av hvilken motor som produserte ekstraksjonen. Ingen Azure API-anrop blir gjort når GPU-motoren er valgt.',
'priv_eyebrow' => 'Personvern & sikkerhet',
'priv_title' => 'Dine dokumenter forlater aldri sesjonen din.',
'priv_badge' => 'Personvern ved design',
'priv_1_html' => 'Alle opplastede filer blir ekstraktert til tekst <strong>i minnet</strong> ved hjelp av PHPs in-process filbehandlere. Den rå binære data skrives aldri til disk på serveren.',
'priv_2' => 'Sesjonskonteksten (innlimt tekst, opplastet innhold, ekstrakterte tidslinjehendelser) er avgrenset til din autentiserte sesjon og kastes når sesjonen avsluttes.',
'priv_3_html' => 'Azure OpenAI (<code>gpt-4o</code>, <code>gpt-4o-mini</code>) er konfigurert på <strong>Vest-Europa</strong> regionen. Data behandlet via Azure OpenAI brukes ikke til modelltrening under den standard bedriftsavtalen.',
'priv_4_html' => 'GPU/cuttlefish-motoren prosesserer helt lokalt — ingen data forlater nettverket ditt. LiteLLM-proxyen på cuttlefish mottar dokumentteksten din og returnerer strukturert JSON; ingenting videresendes til en ekstern API.',
'priv_5_html' => 'Telemetri logget: verktøynavn, motor, fokusmodus, hendelsestall, forsinkelse. <strong>Ingen dokumenttekst, saksreferanser, aktørnavn eller ekstrakterte hendelser blir logget.</strong>',
'cta_title' => 'Se det fungere i din sak.',
'cta_sub' => 'Gratis for Do Better Norge medlemmer. Alle motorer tilgjengelig for hvert medlem.',
'btn_open' => 'Åpne Tidslinje →',
'btn_signin_cta' => 'Logg inn for å bruke Tidslinje →',
'btn_register' => 'Registrer gratis',
'btn_guide' => 'Brukerveiledning',
),
'uk' =>
array (
'nav_about' => 'Про нас',
'nav_guide' => 'Посібник користувача',
'nav_howit' => 'Як це працює',
'nav_opentool' => '← Відкрити інструмент',
'nav_signin' => 'Увійти',
'nav_open' => 'Відкрити Хронологію →',
'hero_kicker' => 'Технічна демонстрація · Як ШІ читає час',
'hero_title' => 'Як Хронологія знає, коли відбулися події.',
'hero_sub' => 'Повний огляд трьохетапного процесу витягування, розпізнавання дат у норвезькому форматі, схеми класифікації подій, архітектури з кількома двигунами та тонко налаштованої моделі dbn-legal-agent.',
'stat1' => 'формати дат',
'stat2' => 'типи подій',
'stat3' => 'етапи процесу',
'stat4' => 'варіанти двигунів',
'arch_eyebrow' => 'Архітектура',
'arch_title' => 'Три етапи. Кожен з чіткою задачею.',
'arch_sub' => 'Процес навмисно послідовний — Етап 1 базується на правилах і майже миттєвий; Етап 2 — витягування LLM; Етап 3 обробляє та оцінює вихідні дані.',
'pass1_title' => 'Виявлення та нормалізація відомих форматів',
'pass1_p1_html' => 'Детермінований етап зіставлення шаблонів виконується перед будь-яким викликом LLM. Він сканує весь вхід на наявність дат, що відповідають 12+ норвезьким форматам, і нормалізує їх до ISO 8601:',
'pass1_li1_html' => '<code>dd.mm.yyyy</code> → <code>YYYY-MM-DD</code>',
'pass1_li2' => 'd. månedsnavn yyyy → визначена календарна дата',
'pass1_li3' => 'Рядки формату щоденника (починаючи з дати + двокрапка) → автоматично позначаються як події',
'pass1_li4' => 'Двозначні роки → завжди інтерпретуються як 20YY',
'pass1_p2' => 'Нормалізовані якорі вводяться в запит LLM, щоб зменшити випадкові або неправильно прочитані дати.',
'pass2_title' => 'Витягти, класифікувати та оцінити',
'pass2_p1_html' => 'LLM читає повний документ разом з попередніми якорями. Для кожного тимчасового посилання він повертає структурований об\'єкт події JSON:',
'pass2_p2' => 'Запит чітко інструктує модель не вигадувати дати або акторів, які не присутні в джерелі. Температура встановлена на 0.1 для детермінованого виходу.',
'pass3_title' => 'Фільтрувати, сортувати та збирати',
'pass3_p1_html' => 'PHP застосовує всі активні фільтри перед поверненням результату:',
'pass3_f1_html' => '<strong>Фільтр фокусу</strong> — видаляє події, які не відповідають запитаному режиму фокусу (строки / слухання / CPS)',
'pass3_f2_html' => '<strong>Фільтр впевненості</strong> — видаляє події з НИЗЬКОЮ впевненістю, якщо запитано',
'pass3_f3_html' => '<strong>Фільтр фону</strong> — видаляє фонові/наративні події, якщо не вибрано',
'pass3_f4_html' => '<strong>Фільтр типу дати</strong> — видаляє відносні/повторювані події, якщо не вибрано',
'pass3_p2_html' => 'Постобробник потім збирає список <code>what_remains_uncertain</code> та рекомендацію <code>next_practical_step</code>.',
'date_eyebrow' => 'Визнання дати',
'date_title' => '12+ норвезьких форматів дати, всі визнані.',
'date_sub' => 'Норвезькі юридичні документи використовують широкий спектр позначень дати. Попередній прохід Pass 1 розпізнає всі ці дати детерміновано; LLM обробляє решту в Pass 2.',
'th_format' => 'Формат',
'th_example' => 'Приклад',
'th_notes' => 'Примітки',
'dn1' => 'Стандартний норвезький числовий',
'dn2' => 'Дворічний рік → завжди 20YY',
'dn3' => 'Написаний місяць у bokmål/nynorsk',
'dn4' => 'Рік, виведений шляхом сканування близькості',
'dn5' => 'ISO 8601',
'dn6' => 'Тільки місяць + рік',
'dn7' => 'Посилання тільки на рік',
'dn8' => 'Сезонне посилання → Q3/Q4',
'dn9' => 'Дата + двокрапка → автоматично позначена як подія',
'dn10' => 'Закріплена за найближчою вирішеною подією',
'dn11' => 'Класифікована як повторювана',
'dn12' => 'Видає start_date + end_date',
'class_eyebrow' => 'Схема класифікації',
'class_title' => 'П\'ять типів подій. Три рівні впевненості.',
'class_h1' => 'значення date_type',
'th_datetype' => 'date_type',
'th_definition' => 'Визначення',
'dt1_def' => 'Конкретна, вирішувана календарна дата',
'dt2_def' => 'Дата, виражена відносно іншої події',
'dt3_def' => 'Шаблон, що повторюється за розкладом',
'dt4_def' => 'Дата, що залежить від виконання умови',
'dt5_def' => 'Діапазон дат або тривалість з початком і закінченням',
'class_h2' => 'рівні впевненості',
'th_conf' => 'впевненість',
'th_meaning' => 'Значення',
'th_visual' => 'Візуалізація в хронології',
'conf1_meaning' => 'Дата чітко і однозначно вказана в вихідному тексті',
'conf1_visual' => 'Зелений значок',
'conf2_meaning' => 'Дата виведена, приблизна або вказана з невеликою неоднозначністю',
'conf2_visual' => 'Помаранчевий значок',
'conf3_meaning' => 'Дата має на увазі, без дати або витягнута з зіпсованого/неоднозначного уривка',
'conf3_visual' => 'Сірий значок',
'class_h3' => 'Правила атрибуції акторів',
'th_rule' => 'Правило',
'act1_rule' => 'Названа сутність в одному реченні',
'act2_rule' => 'Мітка ролі без імені',
'act3_rule' => 'Немає чіткої атрибуції в реченні',
'act4_rule' => 'За замовчуванням на рівні документа',
'act4_example' => 'Якщо немає актора для кожної події, за замовчуванням використовується відправник/видавець документа',
'eng_eyebrow' => 'Двигуни',
'eng_title' => 'Три двигуни, один структурований вихід.',
'eng_sub' => 'Усі двигуни повертають однакову JSON-схему — пост-обробник обробляє всі три однаково. Вибір двигуна впливає на швидкість, якість та конфіденційність лише.',
'th_model' => 'Модель',
'th_latency' => 'Затримка',
'th_best' => 'Найкраще для',
'eng1_best' => 'За замовчуванням. Швидко, економічно, добре обробляє більшість юридичних документів.',
'eng2_best' => 'Складні документи, перекриття подій, текст джерела низької якості або щільний.',
'eng3_best' => 'Максимальна конфіденційність. Повністю локально. Тонко налаштований на норвезький юридичний корпус.',
'ft_eyebrow' => 'Тонко налаштована модель',
'ft_title' => 'dbn-legal-agent: навчена на норвезькому юридичному тексті.',
'ft_badge' => 'Тонке налаштування QLoRA',
'ft_p1' => 'Тонке налаштування QLoRA (Квантована Низькорозмірна Адаптація), навчена на текстах норвезького законодавства про дитяче благополуччя та адміністративного права — нотатки справ, судові рішення, кореспонденція Barnevernet, рішення Fylkesnemnda та постанови Statsforvalteren. Модель усвідомила тимчасові патерни норвезьких юридичних процесів: процедурна послідовність omsorgsovertakelse, типовий графік циклу перегляду tiltaksplan, що означає akutt як тимчасовий сигнал, як упорядковані етапи Fylkesnemnda.',
'ft_p2' => 'У Timeline GPU двигуні dbn-legal-agent працює як основна модель витягування через проксі LiteLLM на cuttlefish. Структурована JSON-схема виходу ідентична схемам Azure — той самий пост-обробний конвеєр застосовується незалежно від того, який двигун виробив витяг. Жодні виклики API Azure не здійснюються, коли вибрано GPU двигун.',
'priv_eyebrow' => 'Конфіденційність та безпека',
'priv_title' => 'Ваші документи ніколи не залишають вашу сесію.',
'priv_badge' => 'Конфіденційність за дизайном',
'priv_1_html' => 'Усі завантажені файли витягуються в текст <strong>в пам\'яті</strong> за допомогою обробників файлів PHP в процесі. Сирий бінарний файл ніколи не записується на диск на сервері.',
'priv_2' => 'Контекст сесії (вставлений текст, завантажений вміст, витягнуті події хронології) обмежується вашою автентифікованою сесією і знищується, коли сесія закінчується.',
'priv_3_html' => 'Azure OpenAI (<code>gpt-4o</code>, <code>gpt-4o-mini</code>) налаштовано на регіоні <strong>Західна Європа</strong>. Дані, оброблені через Azure OpenAI, не використовуються для навчання моделі за умовами стандартної корпоративної угоди.',
'priv_4_html' => 'Двигун GPU/cuttlefish обробляє повністю локально — жодні дані не залишають вашу мережу. Проксі LiteLLM на cuttlefish отримує текст вашого документа і повертає структурований JSON; нічого не пересилається на зовнішній API.',
'priv_5_html' => 'Логування телеметрії: назва інструменту, двигун, режим фокусу, кількість подій, затримка. <strong>Жоден текст документа, посилання на справи, імена учасників або витягнуті події не реєструються.</strong>',
'cta_title' => 'Перегляньте, як це працює у вашій справі.',
'cta_sub' => 'Безкоштовно для членів Do Better Norge. Усі механізми доступні для кожного члена.',
'btn_open' => 'Відкрити Хронологію →',
'btn_signin_cta' => 'Увійти, щоб використовувати Хронологію →',
'btn_register' => 'Зареєструватися безкоштовно',
'btn_guide' => 'Посібник користувача',
),
'pl' =>
array (
'nav_about' => 'O nas',
'nav_guide' => 'Podręcznik użytkownika',
'nav_howit' => 'Jak to działa',
'nav_opentool' => '← Otwórz narzędzie',
'nav_signin' => 'Zaloguj się',
'nav_open' => 'Otwórz oś czasu →',
'hero_kicker' => 'Pokaz techniczny · Jak AI odczytuje czas',
'hero_title' => 'Jak oś czasu wie, kiedy miały miejsce wydarzenia.',
'hero_sub' => 'Pełne przejście przez proces ekstrakcji w 3 etapach, rozpoznawanie formatu daty w Norwegii, schemat klasyfikacji wydarzeń, architektura wielosilnikowa oraz dostosowany model dbn-legal-agent.',
'stat1' => 'formaty dat',
'stat2' => 'typy wydarzeń',
'stat3' => 'przejścia w pipeline',
'stat4' => 'opcje silnika',
'arch_eyebrow' => 'Architektura',
'arch_title' => 'Trzy przejścia. Każde z wyraźnym zadaniem.',
'arch_sub' => 'Pipeline jest celowo sekwencyjny — Przejście 1 jest oparte na regułach i niemal natychmiastowe; Przejście 2 to ekstrakcja LLM; Przejście 3 przetwarza i ocenia wynik.',
'pass1_title' => 'Wykryj i normalizuj znane formaty',
'pass1_p1_html' => 'Deterministyczne przejście dopasowujące wzory działa przed jakimkolwiek wywołaniem LLM. Skanuje pełne wejście w poszukiwaniu dat pasujących do 12+ norweskich formatów i normalizuje je do ISO 8601:',
'pass1_li1_html' => '<code>dd.mm.yyyy</code> → <code>YYYY-MM-DD</code>',
'pass1_li2' => 'd. nazwamiesiąca yyyy → rozwiązana data kalendarzowa',
'pass1_li3' => 'Linie w formacie dziennika (zaczynające się od daty + dwukropek) → automatycznie oznaczane jako wydarzenia',
'pass1_li4' => 'Dwu-cyfrowe lata → zawsze interpretowane jako 20YY',
'pass1_p2' => 'Znormalizowane kotwice są wstrzykiwane do promptu LLM, aby zredukować halucynacje lub błędnie odczytane daty.',
'pass2_title' => 'Ekstrakcja, klasyfikacja i ocena',
'pass2_p1_html' => 'LLM odczytuje pełny dokument wraz z kotwicami z pre-pasu. Dla każdego odniesienia czasowego zwraca strukturalny obiekt JSON wydarzenia:',
'pass2_p2' => 'Prompt wyraźnie instruuje model, aby nie wymyślał dat ani aktorów, którzy nie są obecni w źródle. Temperatura jest ustawiona na 0,1 dla deterministycznego wyniku.',
'pass3_title' => 'Filtruj, sortuj i zestawiaj',
'pass3_p1_html' => 'PHP stosuje wszystkie aktywne filtry przed zwróceniem wyniku:',
'pass3_f1_html' => '<strong>Filtr skupienia</strong> — usuwa wydarzenia, które nie pasują do żądanego trybu skupienia (terminy / przesłuchania / CPS)',
'pass3_f2_html' => '<strong>Filtr pewności</strong> — usuwa wydarzenia o NISKIEJ pewności, jeśli jest to wymagane',
'pass3_f3_html' => '<strong>Filtr tła</strong> — usuwa wydarzenia tła/narracyjne, jeśli nie zaznaczone',
'pass3_f4_html' => '<strong>Filtr typu daty</strong> — usuwa wydarzenia względne/powtarzające się, jeśli nie zaznaczone',
'pass3_p2_html' => 'Post-processer następnie zestawia listę <code>what_remains_uncertain</code> oraz rekomendację <code>next_practical_step</code>.',
'date_eyebrow' => 'Rozpoznawanie dat',
'date_title' => '12+ norweskich formatów dat, wszystkie rozpoznawane.',
'date_sub' => 'Norweskie dokumenty prawne używają szerokiej gamy notacji dat. Pre-pas 1 rozpoznaje wszystkie z nich deterministycznie; LLM zajmuje się resztą w Pasie 2.',
'th_format' => 'Format',
'th_example' => 'Przykład',
'th_notes' => 'Uwagi',
'dn1' => 'Standardowa norweska liczba',
'dn2' => 'Dwu-cyfrowy rok → zawsze 20YY',
'dn3' => 'Napisany miesiąc w bokmål/nynorsk',
'dn4' => 'Rok wnioskowany na podstawie skanowania bliskości',
'dn5' => 'ISO 8601',
'dn6' => 'Tylko miesiąc + rok',
'dn7' => 'Odniesienie tylko do roku',
'dn8' => 'Odniesienie sezonowe → Q3/Q4',
'dn9' => 'Data + dwukropek → automatycznie oznaczona jako wydarzenie',
'dn10' => 'Przywiązana do najbliższego rozwiązania wydarzenia',
'dn11' => 'Klasyfikowana jako powtarzająca się',
'dn12' => 'Generuje start_date + end_date',
'class_eyebrow' => 'Schemat klasyfikacji',
'class_title' => 'Pięć typów wydarzeń. Trzy poziomy pewności.',
'class_h1' => 'Wartości date_type',
'th_datetype' => 'date_type',
'th_definition' => 'Definicja',
'dt1_def' => 'Specyficzna, rozwiązywalna data kalendarzowa',
'dt2_def' => 'Data wyrażona w odniesieniu do innego wydarzenia',
'dt3_def' => 'Wzór, który powtarza się według harmonogramu',
'dt4_def' => 'Data uzależniona od spełnienia warunku',
'dt5_def' => 'Zakres dat lub czas trwania z początkiem i końcem',
'class_h2' => 'poziomy pewności',
'th_conf' => 'pewność',
'th_meaning' => 'Znaczenie',
'th_visual' => 'Wizualizacja w osi czasu',
'conf1_meaning' => 'Data jest wyraźnie i jednoznacznie podana w tekście źródłowym',
'conf1_visual' => 'Zielona odznaka',
'conf2_meaning' => 'Data jest wnioskowana, przybliżona lub podana z niewielką niejednoznacznością',
'conf2_visual' => 'Bursztynowa odznaka',
'conf3_meaning' => 'Data jest sugerowana, niepodana lub wyciągnięta z zdegenerowanego/niejednoznacznego fragmentu',
'conf3_visual' => 'Szara odznaka',
'class_h3' => 'Zasady przypisywania aktorów',
'th_rule' => 'Zasada',
'act1_rule' => 'Nazwana jednostka w tym samym zdaniu',
'act2_rule' => 'Etykieta roli bez imienia',
'act3_rule' => 'Brak wyraźnego przypisania w zdaniu',
'act4_rule' => 'Domyślne na poziomie dokumentu',
'act4_example' => 'Jeśli brak aktora dla konkretnego zdarzenia, domyślnie przypisuje się nadawcę dokumentu/ciała wydającego',
'eng_eyebrow' => 'Silniki',
'eng_title' => 'Trzy silniki, jeden zorganizowany wynik.',
'eng_sub' => 'Wszystkie silniki zwracają ten sam schemat JSON — post-processer obsługuje wszystkie trzy identycznie. Wybór silnika wpływa tylko na prędkość, jakość i prywatność.',
'th_model' => 'Model',
'th_latency' => 'Opóźnienie',
'th_best' => 'Najlepszy dla',
'eng1_best' => 'Domyślny. Szybki, efektywny kosztowo, dobrze radzi sobie z większością dokumentów prawnych.',
'eng2_best' => 'Złożone dokumenty, nakładające się zdarzenia, tekst źródłowy o słabej jakości lub gęsty.',
'eng3_best' => 'Maksymalna prywatność. Całkowicie lokalny. Dostosowany do norweskiego korpusu prawnego.',
'ft_eyebrow' => 'Model dostosowany',
'ft_title' => 'dbn-legal-agent: wytrenowany na norweskim tekście prawnym.',
'ft_badge' => 'QLoRA fine-tune',
'ft_p1' => 'Dostosowanie QLoRA (Quantized Low-Rank Adaptation) wytrenowane na norweskim prawie dotyczącym opieki nad dziećmi i prawie administracyjnym — notatki spraw, decyzje sądowe, korespondencja Barnevernet, decyzje Fylkesnemnda oraz orzeczenia Statsforvalteren. Model zinternalizował temporalne wzorce norweskich postępowań prawnych: sekwencję proceduralną omsorgsovertakelse, typowy harmonogram cyklu przeglądu tiltaksplan, co oznacza akutt jako sygnał czasowy, jak są uporządkowane kamienie milowe Fylkesnemnda.',
'ft_p2' => 'W silniku Timeline GPU, dbn-legal-agent działa jako główny model ekstrakcji za pośrednictwem proxy LiteLLM na cuttlefish. Strukturalny schemat wyjściowy JSON jest identyczny dla silników Azure — ten sam proces post-przetwarzania ma zastosowanie niezależnie od tego, który silnik wyprodukował ekstrakcję. Żadne wywołania API Azure nie są wykonywane, gdy wybrany jest silnik GPU.',
'priv_eyebrow' => 'Prywatność i bezpieczeństwo',
'priv_title' => 'Twoje dokumenty nigdy nie opuszczają twojej sesji.',
'priv_badge' => 'Prywatność przez projekt',
'priv_1_html' => 'Wszystkie przesłane pliki są ekstraktowane do tekstu <strong>w pamięci</strong> przy użyciu obsługi plików w procesie PHP. Surowy binarny nie jest nigdy zapisywany na dysku serwera.',
'priv_2' => 'Kontekst sesji (wklejony tekst, przesłana zawartość, wyodrębnione zdarzenia czasowe) jest ograniczony do twojej uwierzytelnionej sesji i jest usuwany po zakończeniu sesji.',
'priv_3_html' => 'Azure OpenAI (<code>gpt-4o</code>, <code>gpt-4o-mini</code>) jest skonfigurowany w regionie <strong>Europa Zachodnia</strong>. Dane przetwarzane za pośrednictwem Azure OpenAI nie są wykorzystywane do szkolenia modelu w ramach domyślnej umowy przedsiębiorstwa.',
'priv_4_html' => 'Silnik GPU/cuttlefish przetwarza całkowicie lokalnie — żadne dane nie opuszczają twojej sieci. Proxy LiteLLM na cuttlefish otrzymuje tekst twojego dokumentu i zwraca strukturalny JSON; nic nie jest przesyłane do zewnętrznego API.',
'priv_5_html' => 'Zarejestrowana telemetria: nazwa narzędzia, silnik, tryb skupienia, liczba zdarzeń, opóźnienie. <strong>Żaden tekst dokumentu, odniesienia do spraw, nazwy aktorów ani wyodrębnione zdarzenia nie są rejestrowane.</strong>',
'cta_title' => 'Zobacz, jak to działa w Twojej sprawie.',
'cta_sub' => 'Darmowe dla członków Do Better Norge. Wszystkie silniki dostępne dla każdego członka.',
'btn_open' => 'Otwórz Oś czasu →',
'btn_signin_cta' => 'Zaloguj się, aby użyć Oś czasu →',
'btn_register' => 'Zarejestruj się za darmo',
'btn_guide' => 'Podręcznik użytkownika',
),
);