Files
dobetternorge-tools/translations/timeline-tech.php
T
daveadmin 1d1bbeb69f Add redact doc pages; update timeline docs to remove GPU references
- New: redact-about.php, redact-guide.php, redact-tech.php with full
  two-pass pipeline docs, regional rule sets, output format comparison
- New: translations/redact-{about,guide,tech}.php (en + no)
- redact.php: add About/Guide/How-it-works doc links
- timeline-guide.php: remove GPU/cuttlefish engine row
- timeline-tech.php: remove GPU row, replace fine-tuned LLM section
  with SSE streaming + DOCX export section, stat4 3→2 engines
- timeline-about.php: replace dbn-legal-agent spotlight with
  SSE/DOCX export highlight
- translations/timeline-{about,guide,tech}.php: remove all GPU/
  cuttlefish references across all 4 languages; add stream_* and
  export_* keys; fix upload copy (5 files → 1 file)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 09:53:54 +02:00

462 lines
42 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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, live SSE streaming, and one-click Word export.',
'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' => 'Two engines, one structured output.',
'eng_sub' => 'Both engines return the same JSON schema — the post-processor handles them identically. Engine choice affects speed, quality, and credit cost only.',
'stream_eyebrow' => 'Live updates & export',
'stream_title' => 'See progress as it happens. Download in Word.',
'stream_h1' => 'SSE streaming + DOCX export',
'stream_p1' => 'Timeline uses Server-Sent Events (SSE) to stream live status messages to the browser as extraction runs. Instead of staring at a spinner for 3060 seconds, you see "Preparing document…", "Calling gpt-4o-mini…", "Parsing events…" in real time.',
'stream_p2' => 'Once extraction completes, click Export to Word to download a formatted .docx with every event as a labelled paragraph, source excerpts, and a divider line between events. No third-party DOCX library is used — the file is assembled directly from OOXML via PHP ZipArchive.',
'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' => 'Azure OpenAI is called only for the extraction pass. No document content is retained by Azure after the response is returned, per the enterprise data-handling agreement.',
'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, live SSE-strømming og nedlasting som Word-dokument.',
'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' => 'To motorer, ett strukturert utdata.',
'eng_sub' => 'Begge motorer returnerer det samme JSON-skjemaet — etterbehandleren håndterer dem identisk. Valg av motor påvirker hastighet, kvalitet og kreditt-kostnad.',
'stream_eyebrow' => 'Live oppdateringer og eksport',
'stream_title' => 'Se fremgangen i sanntid. Last ned i Word.',
'stream_h1' => 'SSE-strømming + DOCX-eksport',
'stream_p1' => 'Tidslinje bruker Server-Sent Events (SSE) for å strømme live statusmeldinger til nettleseren mens ekstraksjon kjører. I stedet for å stirre på en spinner i 3060 sekunder, ser du «Forbereder dokument…», «Kaller gpt-4o-mini…», «Analyserer hendelser…» i sanntid.',
'stream_p2' => 'Når ekstraksjon er fullført, klikk Eksporter til Word for å laste ned en formatert .docx med hver hendelse som et merket avsnitt, kildesitater og en skillelinje mellom hendelsene.',
'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' => 'Azure OpenAI kalles kun under ekstraksjonspasset. Ingen dokumentinnhold beholdes av Azure etter at svaret er returnert, i henhold til bedriftsavtalen for datahåndtering.',
'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' => 'Повний огляд трьохетапного процесу витягування, розпізнавання норвезьких форматів дат, схеми класифікації подій, потокового оновлення SSE та завантаження у форматі Word.',
'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-схему — пост-обробник обробляє їх однаково. Вибір двигуна впливає лише на швидкість, якість і вартість кредитів.',
'stream_eyebrow' => 'Живі оновлення та експорт',
'stream_title' => 'Дивіться прогрес у режимі реального часу. Завантажуйте у Word.',
'stream_h1' => 'SSE-потік + експорт DOCX',
'stream_p1' => 'Хронологія використовує Server-Sent Events (SSE) для потокової передачі живих повідомлень про стан у браузер під час виконання вилучення. Замість того, щоб дивитися на індикатор завантаження 30–60 секунд, ви бачите «Підготовка документа…», «Виклик gpt-4o-mini…», «Аналіз подій…» у режимі реального часу.',
'stream_p2' => 'Після завершення вилучення натисніть «Експортувати до Word», щоб завантажити відформатований .docx з кожною подією як позначеним абзацом, цитатами з джерел і роздільником між подіями.',
'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' => 'Azure OpenAI викликається лише під час проходу вилучення. Жодний вміст документа не зберігається Azure після повернення відповіді згідно з корпоративною угодою про обробку даних.',
'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 norweskich formatów dat, schemat klasyfikacji wydarzeń, transmisja SSE na żywo oraz eksport do formatu Word.',
'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' => 'Dwa silniki, jeden zorganizowany wynik.',
'eng_sub' => 'Oba silniki zwracają ten sam schemat JSON — post-processer obsługuje je identycznie. Wybór silnika wpływa tylko na prędkość, jakość i koszt kredytów.',
'stream_eyebrow' => 'Aktualizacje na żywo i eksport',
'stream_title' => 'Obserwuj postęp na bieżąco. Pobierz w Word.',
'stream_h1' => 'Transmisja SSE + eksport DOCX',
'stream_p1' => 'Oś czasu używa Server-Sent Events (SSE) do strumieniowania komunikatów o stanie na żywo do przeglądarki podczas ekstrakcji. Zamiast patrzeć na spinner przez 3060 sekund, widzisz „Przygotowywanie dokumentu…", „Wywołanie gpt-4o-mini…", „Analiza wydarzeń…" w czasie rzeczywistym.',
'stream_p2' => 'Po zakończeniu ekstrakcji kliknij Eksportuj do Word, aby pobrać sformatowany .docx z każdym wydarzeniem jako oznaczony akapit, cytaty ze źródeł i linię separatora między wydarzeniami.',
'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' => 'Azure OpenAI jest wywoływane tylko podczas kroku ekstrakcji. Żadna treść dokumentu nie jest przechowywana przez Azure po zwróceniu odpowiedzi, zgodnie z umową korporacyjną dotyczącą przetwarzania danych.',
'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',
),
);