1d1bbeb69f
- 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>
462 lines
42 KiB
PHP
462 lines
42 KiB
PHP
<?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 30–60 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 30–60 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 30–60 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',
|
||
),
|
||
);
|