Files
dobetternorge-tools/includes/i18n.php
T
daveadmin 21c092e0d0 Legal Analysis: full language follow-through (UI + LLM)
The tool now respects the chosen UI language end-to-end — even if the
source document is Norwegian, a user on EN/UK/PL gets the analysis in
their language. Norwegian statute references (barnevernsloven § 4-25,
EMK Art. 8) and case names (Strand Lobben mot Norge 37283/13) are kept
verbatim because they are proper nouns.

LLM (LegalAnalysisAgent.php):
- extractIssues: prompt asks for question + brief_context in user's
  language; statute refs preserved
- answerIssue: Norwegian core system prompt (keeps fine-tune precision)
  + language-coercion line for non-NO; localised context/source labels
- synthesise: overall_assessment, next_steps, disclaimer in user's
  language; explicit per-language disclaimer text
- runFullAnalysis empty-case fallback also localised
- what_to_check translated per language

UI:
- 40 new la_* translation keys in i18n.php × 4 languages (NO/EN/UK/PL)
- legal-analysis.php: 4-way lang switcher, dbnToolsT() for every label,
  emits window.DBN_LA_I18N for runtime JS strings
- legal-analysis.js: t() helper reads from window.DBN_LA_I18N
- layout_footer.php: emits window.DBN_CURRENT_LANG +
  window.DBN_ADDON_I18N so the legal-analysis add-on button works in
  the page's language no matter which tool it's invoked from
- tools.js add-on: reads from DBN_ADDON_I18N, passes DBN_CURRENT_LANG
  to /api/legal-analysis.php so server responds in same language

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 08:43:15 +02:00

1757 lines
137 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
declare(strict_types=1);
function dbnToolsSupportedLanguages(): array
{
return ['en', 'no', 'uk', 'pl'];
}
function dbnToolsNormalizeUiLanguage(mixed $language): string
{
$language = strtolower(trim((string)$language));
if ($language === 'nb') {
return 'no';
}
return in_array($language, dbnToolsSupportedLanguages(), true) ? $language : 'en';
}
function dbnToolsCurrentLanguage(): string
{
if (isset($_GET['lang'])) {
$lang = dbnToolsNormalizeUiLanguage($_GET['lang']);
$_SESSION['dbn_tools_lang'] = $lang;
if (!headers_sent()) {
setcookie('dbn_tools_lang', $lang, [
'expires' => time() + 60 * 60 * 24 * 180,
'path' => '/',
'secure' => dbnToolsIsHttps(),
'httponly' => false,
'samesite' => 'Lax',
]);
}
return $lang;
}
if (!empty($_SESSION['dbn_tools_lang'])) {
return dbnToolsNormalizeUiLanguage($_SESSION['dbn_tools_lang']);
}
if (!empty($_COOKIE['dbn_tools_lang'])) {
$lang = dbnToolsNormalizeUiLanguage($_COOKIE['dbn_tools_lang']);
$_SESSION['dbn_tools_lang'] = $lang;
return $lang;
}
return 'en';
}
function dbnToolsLanguageName(string $language): string
{
return match (dbnToolsNormalizeUiLanguage($language)) {
'no' => 'Norwegian',
'uk' => 'Ukrainian',
'pl' => 'Polish',
default => 'English',
};
}
function dbnToolsLanguageLabel(string $language): string
{
return match (dbnToolsNormalizeUiLanguage($language)) {
'no' => 'NO',
'uk' => 'UK',
'pl' => 'PL',
default => 'EN',
};
}
function dbnToolsTranslations(): array
{
return [
'en' => [
'meta_title' => 'Do Better Norge - AI Legal Tools',
'brand_line' => 'Do Better Norge - tools.dobetternorge.no',
'suite_title' => 'Legal Tools',
'workspace_title' => 'Case Workbench',
'session_active' => 'Session active',
'health' => 'Health',
'sign_out' => 'Sign out',
'retention' => 'Session in memory - nothing stored by default',
'disclaimer' => 'Legal information and preparation support, not final legal advice. Pasted text and uploads are processed in memory by default.',
'manifesto_eyebrow' => 'Family rights - Norway - since 2019',
'manifesto_title' => 'They took her child in twelve minutes.',
'manifesto_sub' => 'Open a tool. Build a chronology, research the law, protect privacy, and prepare your next step with cited support.',
'stat_echr' => 'ECHR violations since 2015',
'stat_loss' => 'ECHR cases lost 2017-22',
'stat_tribunal' => 'tribunal decisions analysed',
'stat_pending' => 'pending Strasbourg cases',
'reasoning_eyebrow' => 'File - Evidence trail',
'reasoning_title' => 'Reasoning',
'waiting_title' => 'Waiting',
'waiting_text' => 'Run a tool to see interpretation, retrieval, confidence, uncertainty, and next step.',
'dashboard_eyebrow' => 'Approved tools suite',
'dashboard_title' => 'Choose a legal AI tool',
'dashboard_sub' => 'Built for families, advocates, and supporters preparing Norwegian family-rights and child-welfare cases.',
'open_tool' => 'Open tool',
'landing_kicker' => 'AI legal preparation for family-rights cases in Norway',
'landing_title' => 'Legal tools for families who need the record to make sense.',
'landing_sub' => 'Transcribe meetings, build timelines, analyze Barnevernet documents, research ECHR and Norwegian sources, and prepare cited advocacy briefs.',
'primary_access' => 'Continue with Do Better Norge / Google',
'secondary_access' => 'Sign in with Caveau account',
'member_note' => 'Use your Do Better Norge account. Google login is handled on the main site, then you return here securely.',
'email' => 'Email',
'password' => 'Password',
'sign_in' => 'Sign in',
'register' => 'Register free at dobetternorge.no',
'cause_title' => 'Evidence over outrage.',
'cause_text' => 'Every tool is designed around the same principle as the movement: document the facts, cite the law, and make the next practical step visible.',
'privacy_title' => 'Private by design',
'privacy_text' => 'Uploads are processed in memory by default. The app records only operational metadata such as tool name, latency, language, and anonymous session id.',
'source_title' => 'Sources stay visible',
'source_text' => 'Research tools keep citations, sections, source excerpts, and uncertainty notes next to the answer.',
'tools_title' => 'Launched tools',
'preview_back' => '← All tools',
'preview_what_it_does' => 'What it does',
'preview_get_access' => 'Get access',
'preview_ready_title' => 'Ready to use',
'preview_free_note' => 'Free for Do Better Norge members. Documents are processed in memory and never stored.',
'preview_other_tools' => 'Other tools',
'preview_join' => 'Not a member? Join Do Better Norge',
'preview_input_label' => 'Sample input',
'preview_output_label' => 'Sample output',
'enter_workbench' => 'Open Workbench',
'signed_in_as' => 'Signed in as',
'member_card_title' => 'Already a member?',
'member_card_note' => 'Sign in with your Do Better Norge account. Google login is handled on the main site.',
'register_card_title' => 'New to Do Better Norge?',
'register_card_note' => 'Free for families navigating Norwegian child-welfare cases.',
'register_google' => 'Register with Google',
'register_email' => 'Register with email',
'my_docs_title' => 'My Documents',
'my_docs_desc' => 'Reference documents you uploaded in the AI Chat are available here. Use them across tools or remove them when no longer needed.',
'my_docs_upload_cta' => 'Upload documents in AI Chat',
'my_docs_empty' => 'No documents uploaded yet. Upload PDFs, DOCX, or TXT files in the AI Chat sidebar.',
'my_docs_remove' => 'Remove',
'my_docs_source_ai' => 'AI Chat',
'my_docs_source_tools' => 'Tools',
'loading' => 'Loading…',
'pricing_title_meta' => 'Pricing — Do Better Norge tools',
'pricing_desc_meta' => 'Pricing for tools.dobetternorge.no: free tier, subscriptions, and credit top-ups. Build your own case with private RAG.',
'pricing_eyebrow' => 'Do Better Norge — tools',
'pricing_hero_title' => 'Build your own case. Use the full toolkit.',
'pricing_hero_sub' => '13 AI tools for child-welfare cases. Upload your own documents and let the tools work on your private case — not just generic law.',
'pricing_status_success' => 'Thank you! Your payment is confirmed. It may take a few seconds for your account to update.',
'pricing_status_canceled' => 'Checkout was cancelled. You can try again any time.',
'pricing_survey_title' => 'Earn 25 extra credits',
'pricing_survey_text' => 'Answer 5 short questions about what helps you most. No sales pitch — just research that helps us improve the tools.',
'pricing_survey_cta' => 'Take the survey',
'pricing_period_always' => 'always',
'pricing_period_mo' => '/ month',
'pricing_credits_mo' => 'credits / month',
'pricing_no_storage' => 'No case storage',
'pricing_seat_1' => '1 seat',
'pricing_seats_family' => '3 seats (family)',
'pricing_cap_suffix' => 'tools/hr',
'pricing_cap_per_seat' => 'tools/hr per seat',
'pricing_unlimited' => 'Unlimited',
'pricing_free_f1' => 'Access to all 13 tools',
'pricing_free_f2' => 'Questions, search, editing',
'pricing_free_f3' => 'Correspondence drafts',
'pricing_light_f1' => 'Everything in Free',
'pricing_light_f2' => 'Build your own case (My Case)',
'pricing_light_f3' => 'Private document RAG in all tools',
'pricing_light_f4' => 'OCR on uploaded PDFs',
'pricing_pro_f1' => 'Everything in Light',
'pricing_pro_f2' => 'Hybrid search (BM25 + vector) in your case',
'pricing_pro_f3' => 'Priority queue for uploads',
'pricing_pro_f4' => 'Timeline report on your case',
'pricing_proplus_f1' => 'Everything in Pro',
'pricing_proplus_f2' => 'Invite 2 family members or a lawyer',
'pricing_proplus_f3' => 'Shared case archive with audit log',
'pricing_proplus_f4' => 'Unlimited case reports',
'pricing_badge_popular' => 'Most popular',
'pricing_badge_family' => 'For families',
'pricing_cta_login' => 'Sign in to start',
'pricing_cta_current' => 'Your current plan',
'pricing_cta_available' => 'Available',
'pricing_cta_subscribe' => 'Sign in to subscribe',
'pricing_cta_choose' => 'Choose',
'pricing_topup_title' => 'Top up credits',
'pricing_topup_lead' => 'Need more credits this month? Buy a one-off pack — they never expire.',
'pricing_topup_s_note' => 'Quick boost',
'pricing_topup_m_note' => 'Best value',
'pricing_topup_l_note' => 'Heavy users',
'pricing_topup_buy' => 'Buy',
'pricing_login_first' => 'Sign in first',
'pricing_faq_title' => 'Frequently asked questions',
'pricing_faq1_q' => 'What is the difference between monthly credits and bonus credits?',
'pricing_faq1_a' => 'Monthly credits (from subscription or free tier) reset on the first of each month. Bonus credits (from the survey or top-ups) never expire and are used after monthly credits run out.',
'pricing_faq2_q' => 'What is My Case?',
'pricing_faq2_a' => 'My Case is your private document bank. Upload PDFs from your case; they are OCR-processed, analysed, and stored in your own secure corpus. All tools can then reference your own documents instead of just generic law.',
'pricing_faq3_q' => 'Where is my data stored?',
'pricing_faq3_a' => 'All within the EU: servers in Falkenstein (Germany) and Helsinki (Finland), AI services in West Europe and Norway East. We use Hetzner and Microsoft Azure for AI. Stripe processes payments through Ireland.',
'pricing_faq4_q' => 'Can I share an account with my lawyer?',
'pricing_faq4_a' => 'Yes — Pro+ Family includes 3 seats. You can invite a lawyer, co-parent, or other family member. Everyone sees the same documents, but who did what is logged.',
'pricing_faq5_q' => 'What happens if I cancel?',
'pricing_faq5_a' => 'You revert to the free tier. Your bonus credits are kept. Documents in My Case are retained for 90 days before deletion — giving you time to export or renew.',
'pricing_faq6_q' => 'Do you offer refunds?',
'pricing_faq6_a' => 'Yes, full refund within 7 days if you are not satisfied. Send us an email.',
'pricing_connecting' => 'Connecting…',
'pricing_error_retry' => 'Error — try again',
'pricing_error_checkout' => 'Could not start checkout.',
'pricing_credits_label' => 'credits',
'hero_kicker' => 'AI Legal Tools · Norway · Free for members',
'stat_passages_indexed' => 'Legal passages indexed',
'explore_tools' => 'Explore tools ↓',
'tools_section_title' => 'Built for families navigating a complex system.',
'tools_section_sub' => 'Seven purpose-built AI tools — from audio transcription to deep legal research. Every tool processes your documents in memory and discards them when you\'re done.',
'learn_more' => 'Learn more →',
'pricing_nav_link' => 'Pricing →',
'why_ours_trust_link' => 'Why our tools give different answers than ChatGPT →',
'footer_tagline' => 'AI legal tools for families navigating Norwegian child-welfare cases.',
'footer_privacy_note' => 'Your documents are processed in memory and discarded when your session ends. Nothing is stored or retained.',
'footer_legal_lib' => 'Legal library',
'footer_report' => 'Report an issue',
'footer_about_caveau' => 'About CaveauAI',
'footer_disclaimer' => 'AI output is for advocacy support only — not legal advice. Always verify with a licensed Norwegian lawyer.',
'why_ours_strip_eyebrow' => 'Not ChatGPT. Not guesswork.',
'why_ours_strip_title' => 'Why our tools give you fundamentally different answers.',
'why_ours_strip_sub' => 'We search 220,000+ verified Norwegian legal passages on every query and cite what we find. General AI answers from memory.',
'why_ours_strip_p1' => 'Searches the actual law — not its training memory',
'why_ours_strip_p2' => 'Cites the exact passage found, every time',
'why_ours_strip_p3' => 'Fine-tuned on Norwegian child welfare law',
'why_ours_strip_cta' => 'Full explainer — how it works →',
'pricing_strip_eyebrow' => 'Plans & pricing',
'pricing_strip_title' => 'Start free. Upgrade when you need your own case.',
'pricing_strip_sub' => '30 free credits every month. Paid plans unlock private case storage — upload your documents and every tool references them.',
'pricing_strip_cta' => 'See all plans & pricing →',
// ── Nav + account + dashboard i18n (added 2026-05-23) ──────────
'nav_tools' => 'Tools',
'nav_dashboard' => 'Dashboard',
'nav_account' => 'Account',
'nav_login' => 'Log in',
'nav_logout' => 'Log out',
'credits_available' => 'Available credits',
'credits_monthly' => 'monthly',
'credits_bonus' => 'bonus',
'details_link' => 'Details',
'my_case' => 'My case',
'build_your_case' => 'Build your own case',
'upload_documents' => 'Upload documents',
'upgrade_from_plus' => 'Available from Plus NOK 129/month',
'my_corpus' => 'My corpus',
'open_corpus' => 'Open corpus',
'account_title' => 'Account',
'account_credits' => 'Credits & plan',
'account_profile' => 'Profile',
'account_team' => 'Team',
'account_usage' => 'Usage',
'renewal_date' => 'Next renewal',
'trial_active_label' => 'Trial active',
'trial_days_left' => 'days left',
'earn_credits_eyebrow'=> 'Earn 25 extra credits',
'survey_cta_text' => 'Answer 5 short questions — no sales pitch, just research.',
'survey_btn' => 'Take the survey',
'login_method_sso' => 'Google SSO',
'login_method_email' => 'Email & password',
'team_single_sso' => 'Single-user account (SSO)',
'usage_credits_used' => 'Credits used this month',
'usage_storage_used' => 'Storage used',
'usage_log_coming' => 'Detailed activity log coming soon',
'account_not_auth' => 'You must be logged in to view your account.',
// ── Corpus dashboard pages ────────────────────────────
'dash_nav_overview' => 'Overview',
'dash_nav_documents' => 'Documents',
'dash_nav_upload' => 'Upload',
'dash_nav_ask' => 'Ask',
'dash_nav_settings' => 'Settings',
'dash_page_subtitle' => 'My corpus',
'dash_title_overview' => 'My corpus',
'dash_lead_overview' => 'Private legal knowledge base. Upload, organise, ask — all kept to your account.',
'dash_title_docs' => 'Documents',
'dash_lead_docs' => 'All documents in your private corpus. Click to open, or select multiple for bulk actions.',
'dash_title_upload' => 'Upload documents',
'dash_lead_upload' => 'Upload PDF, DOCX, or TXT — or paste text or a URL. Content is chunked, embedded and indexed in your private corpus.',
'dash_title_chat' => 'Ask the corpus',
'dash_lead_chat' => 'Ask legal questions. Answers stream with citations from your corpus and the shared Do Better Norge package.',
'dash_title_settings' => 'Settings',
'dash_lead_settings' => 'Settings for your private corpus.',
'dash_title_document' => 'Document',
'dash_section_account' => 'Account',
'dash_label_client_id' => 'Client ID',
'dash_label_corpus_id' => 'Corpus ID',
'dash_label_user_id' => 'User ID',
'dash_section_rag' => 'RAG pipeline',
'dash_section_privacy' => 'Privacy',
'dash_privacy_p1' => 'Everything you upload or save here is kept to your account. Other users cannot see or search your documents. The shared package family-legal (~220 K passages of Norwegian law and case law) is shared and used to enrich answers with authoritative sources, but you own everything you add.',
'dash_privacy_p2a' => 'Delete individual documents from',
'dash_privacy_p2b' => 'To delete the whole account, contact support.',
'dash_upload_source' => 'Choose source',
'dash_upload_file_btn' => 'File',
'dash_upload_text_btn' => 'Paste text',
'dash_upload_drop_strong' => 'Drop file here, or click to browse',
'dash_upload_drop_small' => 'PDF · DOCX · TXT · max 8 MB · automatic OCR for scanned PDFs',
'dash_upload_title_lbl' => 'Title',
'dash_upload_title_ph' => 'Auto from filename if empty',
'dash_upload_category_lbl'=> 'Category',
'dash_upload_category_ph' => 'e.g. family law, child welfare',
'dash_upload_tags_lbl' => 'Tags',
'dash_upload_lang_lbl' => 'Language',
'dash_upload_content_lbl' => 'Content',
'dash_upload_content_ph' => 'Paste text here — at least 30 characters',
'dash_upload_note_title_ph'=> 'Give the note a title',
'dash_upload_url_ph' => 'https://lovdata.no/dokument/…',
'dash_upload_url_title_ph'=> 'Empty = uses URL',
'dash_upload_url_note' => 'URLs run in the background — check «Documents» for status.',
'dash_upload_btn_file' => 'Upload and index',
'dash_upload_btn_text' => 'Save to corpus',
'dash_upload_btn_url' => 'Fetch and index',
'dash_chat_disclaimer' => '⚖ Legal information and preparation support — not definitive legal advice. Always confirm with a lawyer.',
'dash_chat_placeholder' => 'e.g. «What does § 4-12 say about placement without consent?»',
'dash_filter_q_ph' => 'Search titles or tags…',
'dash_filter_all_status' => 'All statuses',
'dash_delete_selected' => 'Delete selected',
'dash_upload_btn_short' => '+ Upload',
'dash_prev' => '← Previous',
'dash_next' => 'Next →',
'js_locale' => 'en-GB',
'js_status_ready' => 'Ready',
'js_status_pending' => 'Pending',
'js_status_processing' => 'Processing',
'js_status_error' => 'Error',
'js_th_title' => 'Title',
'js_th_status' => 'Status',
'js_th_chunks' => 'Passages',
'js_th_added' => 'Added',
'js_th_category' => 'Category',
'js_loading' => 'Loading…',
'js_loading_docs' => 'Loading documents…',
'js_empty_docs' => 'No documents yet.',
'js_empty_docs_link' => 'Upload your first',
'js_empty_filter' => 'No results for selected filter.',
'js_error_loading' => 'Could not load: ',
'js_kpi_docs' => 'Documents',
'js_kpi_chunks' => 'Passages indexed',
'js_kpi_ready' => 'Ready',
'js_kpi_last' => 'Last upload',
'js_kpi_of_quota' => 'of quota',
'js_kpi_searchable' => 'searchable pieces',
'js_kpi_of_total' => 'of total',
'js_kpi_date_label' => 'date',
'js_get_started' => 'Get started',
'js_see_all' => 'See all →',
'js_recent_activity' => 'Recent activity',
'js_upload_docs_btn' => '📥 Upload documents',
'js_ask_btn' => '💬 Ask a legal question',
'js_browse_btn' => '📚 Browse corpus',
'js_pager_showing' => 'Showing {from}{to} of {total}',
'js_delete_selected' => 'Delete selected',
'js_delete_n_selected' => 'Delete selected ({n})',
'js_delete_docs_confirm'=> 'Delete {n} documents? This cannot be undone.',
'js_prev' => '← Previous',
'js_next' => 'Next →',
'js_filter_all_status' => 'All statuses',
'js_filter_placeholder'=> 'Search titles or tags…',
'js_chat_thinking' => 'thinking…',
'js_chat_save' => '💾 Save to corpus',
'js_chat_copy' => '📋 Copy',
'js_chat_copied' => '✓ Copied',
'js_chat_passages_meta'=> '{n} passages',
'js_chat_save_unavail' => 'Save dialog unavailable.',
'js_tab_preview' => 'Preview',
'js_tab_chunks' => 'Passages',
'js_tab_related' => 'Related',
'js_tab_edit' => 'Edit',
'js_words' => 'words',
'js_passages_label' => 'passages',
'js_added_at' => 'added',
'js_tags_label' => 'Tags:',
'js_source_url_label' => 'Original source ↗',
'js_back' => '← Back',
'js_delete_btn' => 'Delete',
'js_save_changes' => 'Save changes',
'js_saving' => 'Saving…',
'js_saved_at' => 'Saved {time}',
'js_delete_doc_confirm'=> 'Delete this document permanently?',
'js_loading_related' => 'Loading related authorities from the graph…',
'js_no_citations' => 'No known citations in the graph database yet.',
'js_graph_unavailable' => 'Graph database is not available right now.',
'js_no_chunks' => 'No passages indexed yet.',
'js_content_empty' => '(empty)',
'js_doc_not_found' => 'Document not found',
'js_missing_doc_id' => 'Missing document ID.',
'js_upload_select_file'=> 'Select a file first.',
'js_upload_indexing' => 'Uploading and indexing…',
'js_upload_saving' => 'Indexing…',
'js_upload_queuing' => 'Queuing URL for fetching…',
'js_upload_drop_hint' => 'Drop file here, or click to browse',
'js_upload_indexed' => '✅ Indexed! {n} passages added.',
'js_upload_open_doc' => 'Open document',
'js_upload_queued' => '📥 Queued.',
'js_upload_follow_docs'=> 'Follow progress in Documents',
'js_upload_bg_done' => '✅ Background job done. {n} passages indexed.',
'js_field_title' => 'Title',
'js_field_category' => 'Category',
'js_field_tags' => 'Tags (comma-separated)',
'js_field_lang' => 'Language',
'js_field_author' => 'Author',
// ── Legal Analysis tool ───────────────────────────────────────────
'la_doc_type_label' => 'Document type',
'la_doc_type_auto' => 'Auto-detect',
'la_doc_type_other' => 'Other',
'la_engine_hint' => 'Engine: dbn-legal-agent-v3 (Norwegian legal fine-tune on GPU). Each issue answered separately; ~30-60s per issue, up to 5 issues per run.',
'la_input_label' => 'Pasted text',
'la_input_hint' => '(optional if file or doc selected)',
'la_input_placeholder' => 'Paste a case note, court decision, vedtak, letter, or any legal document text. You can also upload a file or select from My Docs above — at least one source is required.',
'la_run_button' => 'Run legal analysis',
'la_run_button_busy' => 'Running…',
'la_ready_title' => 'Ready',
'la_ready_intro' => 'Upload a document or paste text — the tool will extract up to 5 distinct legal issues, then ask the Norwegian-law fine-tune to answer each one with citations.',
'la_ready_pipeline' => 'Pass 1 uses Azure GPT-4o-mini to spot issues. Pass 2 calls the dbn-legal-agent-v3 fine-tune on ocelot for each one. Pass 3 synthesises the overall picture. A typical run takes 2-5 minutes.',
'la_pipeline_pass1' => 'Pass 1',
'la_pipeline_pass2' => 'Pass 2',
'la_pipeline_pass3' => 'Pass 3',
'la_pass1_extracting' => 'Extracting legal issues from your document…',
'la_pass1_found' => 'Found {n} legal issue(s)',
'la_pass2_asking' => 'Asking dbn-legal-agent-v3 about each issue…',
'la_pass2_answered' => 'Specialist answered {n} issue(s)',
'la_pass3_synthesis' => 'Synthesis complete',
'la_waiting' => 'Waiting…',
'la_searching_corpus' => 'Searching legal corpus…',
'la_asking_finetune' => 'Asking dbn-legal-agent-v3…',
'la_overall' => 'Overall assessment',
'la_next_steps' => 'Next steps',
'la_answer_header' => 'Answer',
'la_legal_basis' => 'Legal basis:',
'la_extracting_status' => 'Identifying distinct legal issues…',
'la_synthesising_status' => 'Synthesising overall assessment…',
'la_extracting_files' => 'Extracting text from {n} file(s)…',
'la_need_input' => 'Paste text, upload a file, or select a document before running.',
'la_error_prefix' => 'Error:',
'la_server_returned' => 'Server returned',
'la_empty_issues' => 'No discrete legal issues were identified.',
'la_addon_button' => '⚖️🇳🇴 Run deep legal analysis on this text',
'la_addon_button_busy' => 'Running deep legal analysis…',
'la_addon_section' => 'Deep Legal Analysis',
],
'no' => [
'meta_title' => 'Do Better Norge - juridiske AI-verktøy',
'brand_line' => 'Do Better Norge - tools.dobetternorge.no',
'suite_title' => 'Juridiske verktøy',
'workspace_title' => 'Saksarbeidsbenk',
'session_active' => 'Økt aktiv',
'health' => 'Helse',
'sign_out' => 'Logg ut',
'retention' => 'Økt i minnet - ingenting lagres som standard',
'disclaimer' => 'Juridisk informasjon og forberedelsesstøtte, ikke endelig juridisk rådgivning. Tekst og opplastinger behandles som standard i minnet.',
'manifesto_eyebrow' => 'Familierettigheter - Norge - siden 2019',
'manifesto_title' => 'De tok barnet hennes på tolv minutter.',
'manifesto_sub' => 'Åpne et verktøy. Bygg kronologi, undersøk loven, beskytt personvern og forbered neste steg med kilder.',
'stat_echr' => 'EMD-brudd siden 2015',
'stat_loss' => 'EMD-saker tapt 2017-22',
'stat_tribunal' => 'nemndsvedtak analysert',
'stat_pending' => 'saker venter i Strasbourg',
'reasoning_eyebrow' => 'Fil - evidensspor',
'reasoning_title' => 'Resonnement',
'waiting_title' => 'Venter',
'waiting_text' => 'Kjør et verktøy for å se tolkning, kilder, tillit, usikkerhet og neste steg.',
'dashboard_eyebrow' => 'Godkjent verktøypakke',
'dashboard_title' => 'Velg et juridisk AI-verktøy',
'dashboard_sub' => 'Laget for familier, støttespillere og advokater som forbereder norske familie- og barnevernssaker.',
'open_tool' => 'Åpne verktøy',
'landing_kicker' => 'Juridisk AI-forberedelse for familierettssaker i Norge',
'landing_title' => 'Juridiske verktøy for familier som trenger orden i saksbildet.',
'landing_sub' => 'Transkriber møter, bygg tidslinjer, analyser barnevernsdokumenter, undersøk EMD og norske kilder, og forbered kildebelagte prosesskriv.',
'primary_access' => 'Fortsett med Do Better Norge / Google',
'secondary_access' => 'Logg inn med Caveau-konto',
'member_note' => 'Bruk Do Better Norge-kontoen din. Google-pålogging skjer på hovedsiden, så kommer du trygt tilbake hit.',
'email' => 'E-post',
'password' => 'Passord',
'sign_in' => 'Logg inn',
'register' => 'Registrer deg gratis på dobetternorge.no',
'cause_title' => 'Bevis fremfor raseri.',
'cause_text' => 'Hvert verktøy følger samme prinsipp som bevegelsen: dokumenter fakta, vis lovgrunnlaget og gjør neste praktiske steg tydelig.',
'privacy_title' => 'Personvern først',
'privacy_text' => 'Opplastinger behandles som standard i minnet. Appen lagrer bare operasjonelle metadata som verktøy, tidsbruk, språk og anonym økt-id.',
'source_title' => 'Kildene er synlige',
'source_text' => 'Forskningsverktøyene holder sitater, paragrafer, kildeutdrag og usikkerhet ved siden av svaret.',
'tools_title' => 'Lanserte verktøy',
'preview_back' => '← Alle verktøy',
'preview_what_it_does' => 'Hva det gjør',
'preview_get_access' => 'Få tilgang',
'preview_ready_title' => 'Klar til å bruke',
'preview_free_note' => 'Gratis for Do Better Norge-medlemmer. Dokumenter behandles i minnet og lagres aldri.',
'preview_other_tools' => 'Andre verktøy',
'preview_join' => 'Ikke medlem? Bli med i Do Better Norge',
'preview_input_label' => 'Eksempel — inndata',
'preview_output_label' => 'Eksempel — utdata',
'enter_workbench' => 'Åpne arbeidsbenk',
'signed_in_as' => 'Innlogget som',
'member_card_title' => 'Allerede medlem?',
'member_card_note' => 'Logg inn med Do Better Norge-kontoen din. Google-pålogging skjer på hovedsiden.',
'register_card_title' => 'Ny bruker?',
'register_card_note' => 'Gratis for familier i norske barnevernssaker.',
'register_google' => 'Registrer med Google',
'register_email' => 'Registrer med e-post',
'my_docs_title' => 'Mine dokumenter',
'my_docs_desc' => 'Referansedokumenter du lastet opp i AI-chatten er tilgjengelige her. Bruk dem på tvers av verktøy eller slett dem når de ikke lenger trengs.',
'my_docs_upload_cta' => 'Last opp dokumenter i AI-chat',
'my_docs_empty' => 'Ingen dokumenter lastet opp ennå. Last opp PDF, DOCX eller TXT i AI-chattens sidepanel.',
'my_docs_remove' => 'Fjern',
'my_docs_source_ai' => 'AI-chat',
'my_docs_source_tools' => 'Verktøy',
'loading' => 'Laster…',
'pricing_title_meta' => 'Priser — Do Better Norge verktøy',
'pricing_desc_meta' => 'Priser for tools.dobetternorge.no: gratis tier, abonnementer og kreditt-topp-opp. Bygg din egen sak med privat RAG.',
'pricing_eyebrow' => 'Do Better Norge — verktøy',
'pricing_hero_title' => 'Bygg din egen sak. Bruk hele verktøyboksen.',
'pricing_hero_sub' => '13 AI-verktøy for barnevernssaker. Last opp dine egne dokumenter, og la verktøyene jobbe på din private sak — ikke bare generisk lov.',
'pricing_status_success' => 'Takk! Din betaling er bekreftet. Det kan ta noen sekunder før kontoen oppdateres.',
'pricing_status_canceled' => 'Kassen ble avbrutt. Du kan prøve igjen når som helst.',
'pricing_survey_title' => 'Tjen 25 ekstra kreditter',
'pricing_survey_text' => 'Svar på 5 korte spørsmål om hva som hjelper deg mest. Ingen salgspitch — bare research som hjelper oss å forbedre verktøyene.',
'pricing_survey_cta' => 'Ta undersøkelsen',
'pricing_period_always' => 'alltid',
'pricing_period_mo' => '/ måned',
'pricing_credits_mo' => 'kreditter / måned',
'pricing_no_storage' => 'Ingen sak-lagring',
'pricing_seat_1' => '1 plass',
'pricing_seats_family' => '3 plasser (familie)',
'pricing_cap_suffix' => 'verktøy/time',
'pricing_cap_per_seat' => 'verktøy/time per plass',
'pricing_unlimited' => 'Ubegrenset',
'pricing_free_f1' => 'Tilgang til alle 13 verktøy',
'pricing_free_f2' => 'Spørsmål, søk, redaksjon',
'pricing_free_f3' => 'Korrespondanse-utkast',
'pricing_light_f1' => 'Alt i Gratis',
'pricing_light_f2' => 'Bygg din egen sak (Min Sak)',
'pricing_light_f3' => 'Privat dokument-RAG i alle verktøy',
'pricing_light_f4' => 'OCR på opplastede PDF-er',
'pricing_pro_f1' => 'Alt i Light',
'pricing_pro_f2' => 'Hybrid søk (BM25 + vektor) i din sak',
'pricing_pro_f3' => 'Prioritert kø ved opplasting',
'pricing_pro_f4' => 'Tidslinje-rapport på saken din',
'pricing_proplus_f1' => 'Alt i Pro',
'pricing_proplus_f2' => 'Inviter 2 familiemedlemmer eller advokat',
'pricing_proplus_f3' => 'Delt sak-arkiv med revisjonslogg',
'pricing_proplus_f4' => 'Ubegrensede saksrapporter',
'pricing_badge_popular' => 'Mest populær',
'pricing_badge_family' => 'For familier',
'pricing_cta_login' => 'Logg inn for å starte',
'pricing_cta_current' => 'Din nåværende plan',
'pricing_cta_available' => 'Tilgjengelig',
'pricing_cta_subscribe' => 'Logg inn for å abonnere',
'pricing_cta_choose' => 'Velg',
'pricing_topup_title' => 'Topp opp kreditter',
'pricing_topup_lead' => 'Trenger du flere kreditter denne måneden? Kjøp en engangspakke — de utløper aldri.',
'pricing_topup_s_note' => 'Impulskjøp',
'pricing_topup_m_note' => 'Beste verdi',
'pricing_topup_l_note' => 'Tunge brukere',
'pricing_topup_buy' => 'Kjøp',
'pricing_login_first' => 'Logg inn først',
'pricing_faq_title' => 'Ofte stilte spørsmål',
'pricing_faq1_q' => 'Hva er forskjellen mellom månedlige kreditter og bonuskreditter?',
'pricing_faq1_a' => 'Månedlige kreditter (fra abonnement eller gratis tier) tilbakestilles første hver måned. Bonuskreditter (fra undersøkelsen eller topp-opp) utløper aldri og brukes etter de månedlige er oppbrukt.',
'pricing_faq2_q' => 'Hva er Min Sak?',
'pricing_faq2_a' => 'Min Sak er din private dokumentbank. Last opp PDF-er fra saken din, så blir de OCR-ert, analysert og lagret i din egen sikre korpus. Alle verktøyene kan deretter referere til dine egne dokumenter i stedet for bare generisk lov.',
'pricing_faq3_q' => 'Hvor er dataene mine lagret?',
'pricing_faq3_a' => 'Alt innenfor EU: servere i Falkenstein (Tyskland) og Helsinki (Finland), AI-tjenester i Vest-Europa og Norge Øst. Vi er hostet hos Hetzner og bruker Microsoft Azure for AI. Stripe behandler betalinger gjennom Irland.',
'pricing_faq4_q' => 'Kan jeg dele en konto med advokaten min?',
'pricing_faq4_a' => 'Ja — Pro+ Familie inkluderer 3 plasser. Du kan invitere advokat, samboer eller en annen familiemedlem. Alle ser de samme dokumentene, men hvem som gjorde hva blir logget.',
'pricing_faq5_q' => 'Hva skjer hvis jeg sier opp?',
'pricing_faq5_a' => 'Du faller tilbake til gratis-tier. Bonuskredittene dine beholdes. Dokumentene i Min Sak oppbevares i 90 dager før de slettes — så du har tid til å eksportere dem eller fornye.',
'pricing_faq6_q' => 'Tilbyr dere refusjon?',
'pricing_faq6_a' => 'Ja, full refusjon innen 7 dager hvis du ikke er fornøyd. Send oss en e-post.',
'pricing_connecting' => 'Kobler til...',
'pricing_error_retry' => 'Feil — prøv igjen',
'pricing_error_checkout' => 'Kunne ikke starte kassen.',
'pricing_credits_label' => 'kreditter',
'hero_kicker' => 'Juridiske AI-verktøy · Norge · Gratis for medlemmer',
'stat_passages_indexed' => 'juridiske tekstutdrag indeksert',
'explore_tools' => 'Utforsk verktøy ↓',
'tools_section_title' => 'Laget for familier som navigerer i et komplekst system.',
'tools_section_sub' => 'Syv spesialbygde AI-verktøy — fra lydtranskripsjon til dyp juridisk forskning. Hvert verktøy behandler dokumentene dine i minnet og sletter dem når du er ferdig.',
'learn_more' => 'Les mer →',
'pricing_nav_link' => 'Priser →',
'why_ours_trust_link' => 'Hvorfor verktøyene våre gir andre svar enn ChatGPT →',
'footer_tagline' => 'Juridiske AI-verktøy for familier i norske barnevernssaker.',
'footer_privacy_note' => 'Dokumentene dine behandles i minnet og slettes når økten avsluttes. Ingenting lagres.',
'footer_legal_lib' => 'Juridisk bibliotek',
'footer_report' => 'Rapporter et problem',
'footer_about_caveau' => 'Om CaveauAI',
'footer_disclaimer' => 'KI-resultater er kun til støtte for saksforberedelse — ikke juridisk rådgivning. Bekreft alltid med en norsk advokat.',
'why_ours_strip_eyebrow' => 'Ikke ChatGPT. Ikke gjetning.',
'why_ours_strip_title' => 'Hvorfor verktøyene våre gir deg grunnleggende andre svar.',
'why_ours_strip_sub' => 'Vi søker i 220 000+ verifiserte norske juridiske tekstutdrag ved hvert spørsmål og siterer det vi finner. Generell KI svarer fra hukommelsen.',
'why_ours_strip_p1' => 'Søker i faktisk lovverk — ikke treningshukommelsen',
'why_ours_strip_p2' => 'Siterer det eksakte utdraget funnet, hver gang',
'why_ours_strip_p3' => 'Finjustert på norsk barnevernrett',
'why_ours_strip_cta' => 'Full forklaring — slik fungerer det →',
'pricing_strip_eyebrow' => 'Planer og priser',
'pricing_strip_title' => 'Start gratis. Oppgrader når du trenger din egen sak.',
'pricing_strip_sub' => '30 gratis kreditter hver måned. Betalte planer låser opp privat sakslager — last opp dokumentene og alle verktøy refererer til dem.',
'pricing_strip_cta' => 'Se alle planer og priser →',
// ── Nav + account + dashboard i18n ──────────────────────────────
'nav_tools' => 'Verktøy',
'nav_dashboard' => 'Oversikt',
'nav_account' => 'Konto',
'nav_login' => 'Logg inn',
'nav_logout' => 'Logg ut',
'credits_available' => 'Tilgjengelige kreditter',
'credits_monthly' => 'månedlige',
'credits_bonus' => 'bonus',
'details_link' => 'Detaljer',
'my_case' => 'Min sak',
'build_your_case' => 'Bygg din egen sak',
'upload_documents' => 'Last opp dokumenter',
'upgrade_from_plus' => 'Tilgjengelig fra Plus 129 kr/mnd',
'my_corpus' => 'Min korpus',
'open_corpus' => 'Åpne korpus',
'account_title' => 'Konto',
'account_credits' => 'Kreditter og plan',
'account_profile' => 'Profil',
'account_team' => 'Team',
'account_usage' => 'Bruk',
'renewal_date' => 'Neste fornyelse',
'trial_active_label' => 'Prøveperiode aktiv',
'trial_days_left' => 'dager igjen',
'earn_credits_eyebrow'=> 'Tjen 25 ekstra kreditter',
'survey_cta_text' => 'Svar på 5 korte spørsmål — ingen salgspitch, bare research.',
'survey_btn' => 'Ta undersøkelsen',
'login_method_sso' => 'Google SSO',
'login_method_email' => 'E-post og passord',
'team_single_sso' => 'Enkeltbrukerkonto (SSO)',
'usage_credits_used' => 'Kreditter brukt denne måneden',
'usage_storage_used' => 'Lagring brukt',
'usage_log_coming' => 'Detaljert aktivitetslogg kommer snart',
'account_not_auth' => 'Du må være innlogget for å se kontoen din.',
'dash_nav_overview' => 'Oversikt',
'dash_nav_documents' => 'Dokumenter',
'dash_nav_upload' => 'Last opp',
'dash_nav_ask' => 'Spør',
'dash_nav_settings' => 'Innstillinger',
'dash_page_subtitle' => 'Min korpus',
'dash_title_overview' => 'Min korpus',
'dash_lead_overview' => 'Privat juridisk kunnskapsbase. Last opp, organiser, spør — alt holdes til din konto.',
'dash_title_docs' => 'Dokumenter',
'dash_lead_docs' => 'Alle dokumenter i din private korpus. Klikk for å åpne, eller velg flere for bulk-handlinger.',
'dash_title_upload' => 'Last opp dokumenter',
'dash_lead_upload' => 'Last opp PDF, DOCX, eller TXT — eller lim inn tekst eller en URL. Innholdet chunkes, embedes og indekseres i din private korpus.',
'dash_title_chat' => 'Spør korpuset',
'dash_lead_chat' => 'Still juridiske spørsmål. Svar streames med kildehenvisninger til ditt eget korpus og delt Do Better Norge-pakke.',
'dash_title_settings' => 'Innstillinger',
'dash_lead_settings' => 'Innstillinger for ditt private korpus.',
'dash_title_document' => 'Dokument',
'dash_section_account' => 'Konto',
'dash_label_client_id' => 'Klient-ID',
'dash_label_corpus_id' => 'Korpus-ID',
'dash_label_user_id' => 'Bruker-ID',
'dash_section_rag' => 'RAG-pipeline',
'dash_section_privacy' => 'Personvern',
'dash_privacy_p1' => 'Alt du laster opp eller lagrer her holdes til din konto. Andre brukere kan ikke se eller søke i dine dokumenter. Felles-pakken family-legal (~220K passasjer av norsk lovverk og rettspraksis) er delt og brukes for å berike svar med autoritative kilder, men du eier alt du selv legger inn.',
'dash_privacy_p2a' => 'Slett enkelt-dokumenter fra',
'dash_privacy_p2b' => 'Trenger du å slette hele kontoen, kontakt support.',
'dash_upload_source' => 'Velg kilde',
'dash_upload_file_btn' => 'Fil',
'dash_upload_text_btn' => 'Lim inn tekst',
'dash_upload_drop_strong' => 'Slipp filen her, eller klikk for å bla',
'dash_upload_drop_small' => 'PDF · DOCX · TXT · maks 8 MB · automatisk OCR for skannede PDF-er',
'dash_upload_title_lbl' => 'Tittel',
'dash_upload_title_ph' => 'Auto fra filnavn om tom',
'dash_upload_category_lbl'=> 'Kategori',
'dash_upload_category_ph' => 'f.eks. barnevern, familierett',
'dash_upload_tags_lbl' => 'Tagger',
'dash_upload_lang_lbl' => 'Språk',
'dash_upload_content_lbl' => 'Innhold',
'dash_upload_content_ph' => 'Lim inn tekst her — minst 30 tegn',
'dash_upload_note_title_ph'=> 'Gi notatet en tittel',
'dash_upload_url_ph' => 'https://lovdata.no/dokument/…',
'dash_upload_url_title_ph'=> 'Tom = bruker URL',
'dash_upload_url_note' => 'URLer kjøres i bakgrunnen — sjekk «Dokumenter» for status.',
'dash_upload_btn_file' => 'Last opp og indekser',
'dash_upload_btn_text' => 'Lagre i korpus',
'dash_upload_btn_url' => 'Hent og indekser',
'dash_chat_disclaimer' => '⚖ Juridisk informasjon og forberedelsesstøtte — ikke endelig juridisk rådgivning. Bekreft alltid med advokat.',
'dash_chat_placeholder' => 'f.eks. «Hva sier barnevernloven § 4-12 om plassering uten samtykke?»',
'dash_filter_q_ph' => 'Søk i titler eller tagger…',
'dash_filter_all_status' => 'Alle statuser',
'dash_delete_selected' => 'Slett valgte',
'dash_upload_btn_short' => '+ Last opp',
'dash_prev' => '← Forrige',
'dash_next' => 'Neste →',
'js_locale' => 'nb-NO',
'js_status_ready' => 'Klar',
'js_status_pending' => 'Venter',
'js_status_processing' => 'Behandler',
'js_status_error' => 'Feil',
'js_th_title' => 'Tittel',
'js_th_status' => 'Status',
'js_th_chunks' => 'Passasjer',
'js_th_added' => 'Lagt til',
'js_th_category' => 'Kategori',
'js_loading' => 'Laster…',
'js_loading_docs' => 'Laster dokumenter…',
'js_empty_docs' => 'Ingen dokumenter ennå.',
'js_empty_docs_link' => 'Last opp ditt første',
'js_empty_filter' => 'Ingen treff for valgt filter.',
'js_error_loading' => 'Kunne ikke laste: ',
'js_kpi_docs' => 'Dokumenter',
'js_kpi_chunks' => 'Passasjer indeksert',
'js_kpi_ready' => 'Klare',
'js_kpi_last' => 'Siste opplasting',
'js_kpi_of_quota' => 'av kvote',
'js_kpi_searchable' => 'søkbare biter',
'js_kpi_of_total' => 'av totalt',
'js_kpi_date_label' => 'dato',
'js_get_started' => 'Kom i gang',
'js_see_all' => 'Se alle →',
'js_recent_activity' => 'Nylig aktivitet',
'js_upload_docs_btn' => '📥 Last opp dokumenter',
'js_ask_btn' => '💬 Still et juridisk spørsmål',
'js_browse_btn' => '📚 Bla gjennom korpus',
'js_pager_showing' => 'Viser {from}{to} av {total}',
'js_delete_selected' => 'Slett valgte',
'js_delete_n_selected' => 'Slett valgte ({n})',
'js_delete_docs_confirm'=> 'Slette {n} dokumenter? Dette kan ikke angres.',
'js_prev' => '← Forrige',
'js_next' => 'Neste →',
'js_filter_all_status' => 'Alle statuser',
'js_filter_placeholder'=> 'Søk i titler eller tagger…',
'js_chat_thinking' => 'tenker…',
'js_chat_save' => '💾 Lagre i korpus',
'js_chat_copy' => '📋 Kopier',
'js_chat_copied' => '✓ Kopiert',
'js_chat_passages_meta'=> '{n} passasjer',
'js_chat_save_unavail' => 'Lagre-dialog ikke tilgjengelig.',
'js_tab_preview' => 'Forhåndsvisning',
'js_tab_chunks' => 'Passasjer',
'js_tab_related' => 'Relatert',
'js_tab_edit' => 'Rediger',
'js_words' => 'ord',
'js_passages_label' => 'passasjer',
'js_added_at' => 'lagt til',
'js_tags_label' => 'Tagger:',
'js_source_url_label' => 'Original kilde ↗',
'js_back' => '← Tilbake',
'js_delete_btn' => 'Slett',
'js_save_changes' => 'Lagre endringer',
'js_saving' => 'Lagrer…',
'js_saved_at' => 'Lagret {time}',
'js_delete_doc_confirm'=> 'Slette dette dokumentet permanent?',
'js_loading_related' => 'Laster relaterte autoriteter fra graphen…',
'js_no_citations' => 'Dokumentet har ingen kjente siteringer i graf-databasen ennå.',
'js_graph_unavailable' => 'Graf-databasen er ikke tilgjengelig akkurat nå.',
'js_no_chunks' => 'Ingen passasjer indeksert ennå.',
'js_content_empty' => '(tom)',
'js_doc_not_found' => 'Dokument ikke funnet',
'js_missing_doc_id' => 'Mangler dokument-id.',
'js_upload_select_file'=> 'Velg en fil først.',
'js_upload_indexing' => 'Laster opp og indekserer…',
'js_upload_saving' => 'Indekserer…',
'js_upload_queuing' => 'Køer URL for henting…',
'js_upload_drop_hint' => 'Slipp filen her, eller klikk for å bla',
'js_upload_indexed' => '✅ Indeksert! {n} passasjer lagt til.',
'js_upload_open_doc' => 'Åpne dokument',
'js_upload_queued' => '📥 Lagt i kø.',
'js_upload_follow_docs'=> 'Følg fremdriften i Dokumenter',
'js_upload_bg_done' => '✅ Bakgrunnsjobb ferdig. {n} passasjer indeksert.',
'js_field_title' => 'Tittel',
'js_field_category' => 'Kategori',
'js_field_tags' => 'Tagger (komma-separert)',
'js_field_lang' => 'Språk',
'js_field_author' => 'Forfatter',
// ── Juridisk analyse ──────────────────────────────────────────────
'la_doc_type_label' => 'Dokumenttype',
'la_doc_type_auto' => 'Auto-oppdaging',
'la_doc_type_other' => 'Annet',
'la_engine_hint' => 'Motor: dbn-legal-agent-v3 (norsk juridisk fine-tune på GPU). Hvert spørsmål besvares hver for seg; ~30-60s per spørsmål, opp til 5 spørsmål per kjøring.',
'la_input_label' => 'Limt inn tekst',
'la_input_hint' => '(valgfritt hvis fil eller dokument er valgt)',
'la_input_placeholder' => 'Lim inn et saksnotat, rettsavgjørelse, vedtak, brev eller annen juridisk dokumenttekst. Du kan også laste opp en fil eller velge fra Mine dokumenter ovenfor — minst én kilde kreves.',
'la_run_button' => 'Kjør juridisk analyse',
'la_run_button_busy' => 'Kjører…',
'la_ready_title' => 'Klar',
'la_ready_intro' => 'Last opp et dokument eller lim inn tekst — verktøyet henter ut opptil 5 distinkte juridiske spørsmål og lar den norske fine-tunen svare på hvert enkelt med kilder.',
'la_ready_pipeline' => 'Pass 1 bruker Azure GPT-4o-mini for å identifisere spørsmål. Pass 2 kaller dbn-legal-agent-v3 fine-tunen på ocelot for hvert spørsmål. Pass 3 sammenfatter helhetsbildet. En typisk kjøring tar 2-5 minutter.',
'la_pipeline_pass1' => 'Pass 1',
'la_pipeline_pass2' => 'Pass 2',
'la_pipeline_pass3' => 'Pass 3',
'la_pass1_extracting' => 'Henter ut juridiske spørsmål fra dokumentet…',
'la_pass1_found' => 'Fant {n} juridisk(e) spørsmål',
'la_pass2_asking' => 'Spør dbn-legal-agent-v3 om hvert spørsmål…',
'la_pass2_answered' => 'Spesialisten besvarte {n} spørsmål',
'la_pass3_synthesis' => 'Syntese fullført',
'la_waiting' => 'Venter…',
'la_searching_corpus' => 'Søker i juridisk korpus…',
'la_asking_finetune' => 'Spør dbn-legal-agent-v3…',
'la_overall' => 'Helhetsvurdering',
'la_next_steps' => 'Neste skritt',
'la_answer_header' => 'Svar',
'la_legal_basis' => 'Lovgrunnlag:',
'la_extracting_status' => 'Identifiserer distinkte juridiske spørsmål…',
'la_synthesising_status' => 'Sammenfatter helhetsvurdering…',
'la_extracting_files' => 'Henter ut tekst fra {n} fil(er)…',
'la_need_input' => 'Lim inn tekst, last opp en fil eller velg et dokument før du kjører.',
'la_error_prefix' => 'Feil:',
'la_server_returned' => 'Server svarte',
'la_empty_issues' => 'Ingen distinkte juridiske spørsmål ble identifisert.',
'la_addon_button' => '⚖️🇳🇴 Kjør dyp juridisk analyse på denne teksten',
'la_addon_button_busy' => 'Kjører dyp juridisk analyse…',
'la_addon_section' => 'Dyp juridisk analyse',
],
'uk' => [
'meta_title' => 'Do Better Norge - юридичні AI інструменти',
'brand_line' => 'Do Better Norge - tools.dobetternorge.no',
'suite_title' => 'Юридичні інструменти',
'workspace_title' => 'Робочий простір справи',
'session_active' => 'Сесія активна',
'health' => 'Стан',
'sign_out' => 'Вийти',
'retention' => 'Сесія в памʼяті - за замовчуванням нічого не зберігається',
'disclaimer' => 'Юридична інформація та підтримка підготовки, не остаточна юридична порада. Текст і файли за замовчуванням обробляються в памʼяті.',
'manifesto_eyebrow' => 'Права сімʼї - Норвегія - з 2019',
'manifesto_title' => 'Її дитину забрали за дванадцять хвилин.',
'manifesto_sub' => 'Відкрийте інструмент. Побудуйте хронологію, дослідіть право, захистіть приватність і підготуйте наступний крок з джерелами.',
'stat_echr' => 'порушень ЄСПЛ з 2015',
'stat_loss' => 'справ ЄСПЛ програно 2017-22',
'stat_tribunal' => 'рішень трибуналів проаналізовано',
'stat_pending' => 'справ очікують у Страсбурзі',
'reasoning_eyebrow' => 'Файл - слід доказів',
'reasoning_title' => 'Обґрунтування',
'waiting_title' => 'Очікування',
'waiting_text' => 'Запустіть інструмент, щоб побачити тлумачення, джерела, впевненість, невизначеність і наступний крок.',
'dashboard_eyebrow' => 'Схвалений набір інструментів',
'dashboard_title' => 'Оберіть юридичний AI інструмент',
'dashboard_sub' => 'Для сімей, представників і союзників, які готують справи про сімейні права та захист дітей у Норвегії.',
'open_tool' => 'Відкрити інструмент',
'landing_kicker' => 'AI підготовка для справ про сімейні права в Норвегії',
'landing_title' => 'Юридичні інструменти для сімей, яким потрібно впорядкувати матеріали справи.',
'landing_sub' => 'Транскрибуйте зустрічі, будуйте хронології, аналізуйте документи Barnevernet, досліджуйте ЄСПЛ і норвезькі джерела та готуйте аргументи з цитатами.',
'primary_access' => 'Продовжити через Do Better Norge / Google',
'secondary_access' => 'Увійти з обліковим записом Caveau',
'member_note' => 'Використайте свій обліковий запис Do Better Norge. Google-вхід відбувається на основному сайті, після чого ви безпечно повертаєтесь сюди.',
'email' => 'Email',
'password' => 'Пароль',
'sign_in' => 'Увійти',
'register' => 'Зареєструватися безкоштовно на dobetternorge.no',
'cause_title' => 'Докази важливіші за обурення.',
'cause_text' => 'Кожен інструмент побудований на тому самому принципі: задокументувати факти, процитувати право і зробити наступний практичний крок видимим.',
'privacy_title' => 'Приватність за задумом',
'privacy_text' => 'Файли за замовчуванням обробляються в памʼяті. Зберігаються лише технічні метадані: інструмент, затримка, мова та анонімний id сесії.',
'source_title' => 'Джерела залишаються видимими',
'source_text' => 'Дослідницькі інструменти показують цитати, розділи, уривки джерел і примітки про невизначеність поруч із відповіддю.',
'tools_title' => 'Запущені інструменти',
'preview_back' => '← Усі інструменти',
'preview_what_it_does' => 'Що робить',
'preview_get_access' => 'Отримати доступ',
'preview_ready_title' => 'Готові до використання',
'preview_free_note' => 'Безкоштовно для членів Do Better Norge. Документи обробляються в пам\'яті і ніколи не зберігаються.',
'preview_other_tools' => 'Інші інструменти',
'preview_join' => 'Не член? Приєднайтесь до Do Better Norge',
'preview_input_label' => 'Приклад — вхідні дані',
'preview_output_label' => 'Приклад — вихідні дані',
'enter_workbench' => 'Відкрити робочий простір',
'signed_in_as' => 'Увійшли як',
'member_card_title' => 'Вже є акаунт?',
'member_card_note' => 'Увійдіть через обліковий запис Do Better Norge. Google-вхід відбувається на основному сайті.',
'register_card_title' => 'Вперше на Do Better Norge?',
'register_card_note' => 'Безкоштовно для сімей у норвезьких справах із захисту дітей.',
'register_google' => 'Зареєструватися через Google',
'register_email' => 'Зареєструватися через email',
'my_docs_title' => 'Мої документи',
'my_docs_desc' => 'Довідкові документи, завантажені в AI-чаті, доступні тут.',
'my_docs_upload_cta' => 'Завантажити документи в AI-чаті',
'my_docs_empty' => 'Документів ще немає. Завантажте PDF, DOCX або TXT у бічній панелі AI-чату.',
'my_docs_remove' => 'Видалити',
'my_docs_source_ai' => 'AI-чат',
'my_docs_source_tools' => 'Інструменти',
'loading' => 'Завантаження…',
'pricing_title_meta' => 'Ціни — інструменти Do Better Norge',
'pricing_desc_meta' => 'Ціни на tools.dobetternorge.no: безкоштовний рівень, підписки та поповнення кредитів. Побудуйте свою власну справу з приватним RAG.',
'pricing_eyebrow' => 'Do Better Norge — інструменти',
'pricing_hero_title' => 'Побудуйте власну справу. Використовуйте весь набір інструментів.',
'pricing_hero_sub' => '13 AI-інструментів для справ із захисту дітей. Завантажте власні документи й дозвольте інструментам працювати з вашою приватною справою — не лише з загальним законодавством.',
'pricing_status_success' => 'Дякуємо! Ваш платіж підтверджено. Оновлення облікового запису може зайняти кілька секунд.',
'pricing_status_canceled' => 'Оплату скасовано. Ви можете спробувати ще раз у будь-який час.',
'pricing_survey_title' => 'Отримайте 25 додаткових кредитів',
'pricing_survey_text' => 'Дайте відповідь на 5 коротких запитань про те, що допомагає вам найбільше. Без реклами — лише дослідження, що допоможе нам покращити інструменти.',
'pricing_survey_cta' => 'Пройти опитування',
'pricing_period_always' => 'завжди',
'pricing_period_mo' => '/ місяць',
'pricing_credits_mo' => 'кредитів / місяць',
'pricing_no_storage' => 'Без зберігання справи',
'pricing_seat_1' => '1 місце',
'pricing_seats_family' => '3 місця (сім\'я)',
'pricing_cap_suffix' => 'інстр./год',
'pricing_cap_per_seat' => 'інстр./год на місце',
'pricing_unlimited' => 'Без обмежень',
'pricing_free_f1' => 'Доступ до всіх 13 інструментів',
'pricing_free_f2' => 'Запити, пошук, редагування',
'pricing_free_f3' => 'Чернетки кореспонденції',
'pricing_light_f1' => 'Все з Безкоштовного',
'pricing_light_f2' => 'Побудуйте власну справу (Моя справа)',
'pricing_light_f3' => 'Приватний RAG документів у всіх інструментах',
'pricing_light_f4' => 'OCR завантажених PDF',
'pricing_pro_f1' => 'Все з Light',
'pricing_pro_f2' => 'Гібридний пошук (BM25 + вектор) у вашій справі',
'pricing_pro_f3' => 'Пріоритетна черга завантаження',
'pricing_pro_f4' => 'Звіт-хронологія вашої справи',
'pricing_proplus_f1' => 'Все з Pro',
'pricing_proplus_f2' => 'Запросіть 2 членів сім\'ї або адвоката',
'pricing_proplus_f3' => 'Спільний архів справи з журналом аудиту',
'pricing_proplus_f4' => 'Необмежені звіти по справі',
'pricing_badge_popular' => 'Найпопулярніший',
'pricing_badge_family' => 'Для сімей',
'pricing_cta_login' => 'Увійти для початку',
'pricing_cta_current' => 'Ваш поточний план',
'pricing_cta_available' => 'Доступно',
'pricing_cta_subscribe' => 'Увійти для підписки',
'pricing_cta_choose' => 'Обрати',
'pricing_topup_title' => 'Поповнити кредити',
'pricing_topup_lead' => 'Потрібно більше кредитів цього місяця? Придбайте разовий пакет — вони ніколи не закінчуються.',
'pricing_topup_s_note' => 'Швидке поповнення',
'pricing_topup_m_note' => 'Найкраща цінність',
'pricing_topup_l_note' => 'Активні користувачі',
'pricing_topup_buy' => 'Купити',
'pricing_login_first' => 'Спочатку увійдіть',
'pricing_faq_title' => 'Поширені запитання',
'pricing_faq1_q' => 'У чому різниця між місячними кредитами та бонусними кредитами?',
'pricing_faq1_a' => 'Місячні кредити (з підписки або безкоштовного рівня) скидаються першого числа кожного місяця. Бонусні кредити (з опитування або поповнення) ніколи не закінчуються і використовуються після вичерпання місячних.',
'pricing_faq2_q' => 'Що таке Моя справа?',
'pricing_faq2_a' => 'Моя справа — ваш приватний банк документів. Завантажте PDF-файли зі своєї справи; вони пройдуть OCR-обробку, аналіз і будуть збережені у вашому власному захищеному корпусі. Усі інструменти зможуть посилатися на ваші власні документи замість загального законодавства.',
'pricing_faq3_q' => 'Де зберігаються мої дані?',
'pricing_faq3_a' => 'Все в межах ЄС: сервери у Фалькенштайні (Німеччина) та Гельсінкі (Фінляндія), AI-сервіси в Західній Європі та Норвегії Схід. Ми використовуємо Hetzner і Microsoft Azure для AI. Stripe обробляє платежі через Ірландію.',
'pricing_faq4_q' => 'Чи можу я поділитися обліковим записом зі своїм адвокатом?',
'pricing_faq4_a' => 'Так — Pro+ Сім\'я включає 3 місця. Ви можете запросити адвоката, другого з батьків або іншого члена сім\'ї. Всі бачать одні й ті самі документи, але хто що зробив — фіксується.',
'pricing_faq5_q' => 'Що станеться, якщо я скасую підписку?',
'pricing_faq5_a' => 'Ви повернетеся до безкоштовного рівня. Ваші бонусні кредити збережуться. Документи в Моїй справі зберігатимуться 90 днів перед видаленням — щоб ви мали час їх експортувати або поновити підписку.',
'pricing_faq6_q' => 'Чи є повернення коштів?',
'pricing_faq6_a' => 'Так, повне повернення протягом 7 днів, якщо ви незадоволені. Напишіть нам електронного листа.',
'pricing_connecting' => 'Підключення…',
'pricing_error_retry' => 'Помилка — спробуйте ще раз',
'pricing_error_checkout' => 'Не вдалося розпочати оплату.',
'pricing_credits_label' => 'кредитів',
'hero_kicker' => 'Правові AI-інструменти · Норвегія · Безкоштовно для членів',
'stat_passages_indexed' => 'правових уривків проіндексовано',
'explore_tools' => 'Дослідити інструменти ↓',
'tools_section_title' => 'Створено для сімей, що долають складну систему.',
'tools_section_sub' => 'Сім спеціально розроблених AI-інструментів — від транскрипції аудіо до глибоких правових досліджень. Кожен інструмент обробляє ваші документи в пам\'яті та відкидає їх після завершення.',
'learn_more' => 'Дізнатися більше →',
'pricing_nav_link' => 'Ціни →',
'why_ours_trust_link' => 'Чому наші інструменти дають інші відповіді, ніж ChatGPT →',
'footer_tagline' => 'Правові AI-інструменти для сімей у норвезьких справах про захист дітей.',
'footer_privacy_note' => 'Ваші документи обробляються в пам\'яті та видаляються після завершення сеансу. Нічого не зберігається.',
'footer_legal_lib' => 'Правова бібліотека',
'footer_report' => 'Повідомити про проблему',
'footer_about_caveau' => 'Про CaveauAI',
'footer_disclaimer' => 'Вихідні дані AI призначені лише для підтримки підготовки справи — не для юридичних порад. Завжди перевіряйте у ліцензованого норвезького юриста.',
'why_ours_strip_eyebrow' => 'Не ChatGPT. Не здогадки.',
'why_ours_strip_title' => 'Чому наші інструменти дають вам принципово інші відповіді.',
'why_ours_strip_sub' => 'Ми шукаємо в 220 000+ перевірених норвезьких правових уривках при кожному запиті та цитуємо те, що знаходимо. Загальний AI відповідає з пам\'яті.',
'why_ours_strip_p1' => 'Шукає в реальному праві — не в пам\'яті навчання',
'why_ours_strip_p2' => 'Цитує точний знайдений уривок, щоразу',
'why_ours_strip_p3' => 'Дотренований на норвезькому праві захисту дітей',
'why_ours_strip_cta' => 'Повне пояснення — як це працює →',
'pricing_strip_eyebrow' => 'Плани та ціни',
'pricing_strip_title' => 'Починайте безкоштовно. Оновлюйтеся, коли потрібна власна справа.',
'pricing_strip_sub' => '30 безкоштовних кредитів щомісяця. Платні плани відкривають приватне сховище справи — завантажте документи, і кожен інструмент посилається на них.',
'pricing_strip_cta' => 'Переглянути всі плани та ціни →',
// ── Nav + account + dashboard i18n ──────────────────────────────
'nav_tools' => 'Інструменти',
'nav_dashboard' => 'Огляд',
'nav_account' => 'Обліковий запис',
'nav_login' => 'Увійти',
'nav_logout' => 'Вийти',
'credits_available' => 'Доступні кредити',
'credits_monthly' => 'щомісячні',
'credits_bonus' => 'бонусні',
'details_link' => 'Деталі',
'my_case' => 'Моя справа',
'build_your_case' => 'Побудуйте власну справу',
'upload_documents' => 'Завантажити документи',
'upgrade_from_plus' => 'Доступно з Plus NOK 129/місяць',
'my_corpus' => 'Мій корпус',
'open_corpus' => 'Відкрити корпус',
'account_title' => 'Обліковий запис',
'account_credits' => 'Кредити та план',
'account_profile' => 'Профіль',
'account_team' => 'Команда',
'account_usage' => 'Використання',
'renewal_date' => 'Наступне оновлення',
'trial_active_label' => 'Пробний період активний',
'trial_days_left' => 'днів залишилось',
'earn_credits_eyebrow'=> 'Заробіть 25 додаткових кредитів',
'survey_cta_text' => 'Дайте відповідь на 5 коротких запитань — без реклами, лише дослідження.',
'survey_btn' => 'Пройти опитування',
'login_method_sso' => 'Google SSO',
'login_method_email' => 'Email та пароль',
'team_single_sso' => 'Одноосібний обліковий запис (SSO)',
'usage_credits_used' => 'Кредити використано цього місяця',
'usage_storage_used' => 'Використано сховища',
'usage_log_coming' => 'Детальний журнал активності незабаром',
'account_not_auth' => 'Увійдіть, щоб переглянути свій обліковий запис.',
'dash_nav_overview' => 'Огляд',
'dash_nav_documents' => 'Документи',
'dash_nav_upload' => 'Завантажити',
'dash_nav_ask' => 'Запитати',
'dash_nav_settings' => 'Налаштування',
'dash_page_subtitle' => 'Мій корпус',
'dash_title_overview' => 'Мій корпус',
'dash_lead_overview' => 'Приватна юридична база знань. Завантажуйте, організовуйте, запитуйте — все зберігається на вашому рахунку.',
'dash_title_docs' => 'Документи',
'dash_lead_docs' => 'Усі документи у вашому приватному корпусі. Натисніть, щоб відкрити, або виберіть кілька для групових дій.',
'dash_title_upload' => 'Завантажити документи',
'dash_lead_upload' => 'Завантажте PDF, DOCX або TXT — або вставте текст чи URL. Вміст розбивається на частини, векторизується та індексується у вашому приватному корпусі.',
'dash_title_chat' => 'Запитати корпус',
'dash_lead_chat' => 'Ставте юридичні запитання. Відповіді виводяться потоком з посиланнями на ваш корпус та спільний пакет Do Better Norge.',
'dash_title_settings' => 'Налаштування',
'dash_lead_settings' => 'Налаштування вашого приватного корпусу.',
'dash_title_document' => 'Документ',
'dash_section_account' => 'Обліковий запис',
'dash_label_client_id' => 'ID клієнта',
'dash_label_corpus_id' => 'ID корпусу',
'dash_label_user_id' => 'ID користувача',
'dash_section_rag' => 'RAG-конвеєр',
'dash_section_privacy' => 'Конфіденційність',
'dash_privacy_p1' => 'Все, що ви завантажуєте або зберігаєте тут, належить вашому рахунку. Інші користувачі не можуть бачити або шукати у ваших документах. Спільний пакет family-legal (~220 тис. уривків норвезького законодавства) є спільним і використовується для збагачення відповідей авторитетними джерелами, але ви є власником всього, що ви самі додаєте.',
'dash_privacy_p2a' => 'Видаляйте окремі документи з',
'dash_privacy_p2b' => 'Щоб видалити весь обліковий запис, зверніться до підтримки.',
'dash_upload_source' => 'Виберіть джерело',
'dash_upload_file_btn' => 'Файл',
'dash_upload_text_btn' => 'Вставити текст',
'dash_upload_drop_strong' => 'Перетягніть файл сюди або натисніть для перегляду',
'dash_upload_drop_small' => 'PDF · DOCX · TXT · макс. 8 МБ · автоматичний OCR для сканованих PDF',
'dash_upload_title_lbl' => 'Назва',
'dash_upload_title_ph' => 'Авто з імені файлу, якщо порожньо',
'dash_upload_category_lbl'=> 'Категорія',
'dash_upload_category_ph' => 'напр. сімейне право, захист дітей',
'dash_upload_tags_lbl' => 'Теги',
'dash_upload_lang_lbl' => 'Мова',
'dash_upload_content_lbl' => 'Зміст',
'dash_upload_content_ph' => 'Вставте текст тут — мінімум 30 символів',
'dash_upload_note_title_ph'=> 'Дайте нотатці назву',
'dash_upload_url_ph' => 'https://lovdata.no/dokument/…',
'dash_upload_url_title_ph'=> 'Порожньо = використовує URL',
'dash_upload_url_note' => 'URL обробляються у фоні — перевіряйте «Документи» для статусу.',
'dash_upload_btn_file' => 'Завантажити та індексувати',
'dash_upload_btn_text' => 'Зберегти в корпус',
'dash_upload_btn_url' => 'Отримати та індексувати',
'dash_chat_disclaimer' => '⚖ Юридична інформація та підтримка підготовки — не остаточна юридична порада. Завжди підтверджуйте з адвокатом.',
'dash_chat_placeholder' => 'напр. «Що говорить § 4-12 про розміщення без згоди?»',
'dash_filter_q_ph' => 'Пошук у назвах або тегах…',
'dash_filter_all_status' => 'Всі статуси',
'dash_delete_selected' => 'Видалити вибрані',
'dash_upload_btn_short' => '+ Завантажити',
'dash_prev' => '← Попередня',
'dash_next' => 'Наступна →',
'js_locale' => 'uk-UA',
'js_status_ready' => 'Готово',
'js_status_pending' => 'Очікує',
'js_status_processing' => 'Обробляється',
'js_status_error' => 'Помилка',
'js_th_title' => 'Назва',
'js_th_status' => 'Статус',
'js_th_chunks' => 'Уривки',
'js_th_added' => 'Додано',
'js_th_category' => 'Категорія',
'js_loading' => 'Завантаження…',
'js_loading_docs' => 'Завантаження документів…',
'js_empty_docs' => 'Документів ще немає.',
'js_empty_docs_link' => 'Завантажте перший',
'js_empty_filter' => 'Немає результатів для вибраного фільтра.',
'js_error_loading' => 'Не вдалося завантажити: ',
'js_kpi_docs' => 'Документи',
'js_kpi_chunks' => 'Уривки індексовано',
'js_kpi_ready' => 'Готово',
'js_kpi_last' => 'Останнє завантаження',
'js_kpi_of_quota' => 'з квоти',
'js_kpi_searchable' => 'пошукових частин',
'js_kpi_of_total' => 'із загальної кількості',
'js_kpi_date_label' => 'дата',
'js_get_started' => 'Почати',
'js_see_all' => 'Переглянути все →',
'js_recent_activity' => 'Остання активність',
'js_upload_docs_btn' => '📥 Завантажити документи',
'js_ask_btn' => '💬 Поставити юридичне запитання',
'js_browse_btn' => '📚 Переглянути корпус',
'js_pager_showing' => 'Показано {from}{to} з {total}',
'js_delete_selected' => 'Видалити вибрані',
'js_delete_n_selected' => 'Видалити вибрані ({n})',
'js_delete_docs_confirm'=> 'Видалити {n} документи? Це не можна скасувати.',
'js_prev' => '← Попередня',
'js_next' => 'Наступна →',
'js_filter_all_status' => 'Всі статуси',
'js_filter_placeholder'=> 'Пошук у назвах або тегах…',
'js_chat_thinking' => 'думаю…',
'js_chat_save' => '💾 Зберегти в корпус',
'js_chat_copy' => '📋 Копіювати',
'js_chat_copied' => '✓ Скопійовано',
'js_chat_passages_meta'=> '{n} уривків',
'js_chat_save_unavail' => 'Діалог збереження недоступний.',
'js_tab_preview' => 'Попередній перегляд',
'js_tab_chunks' => 'Уривки',
'js_tab_related' => "Пов'язані",
'js_tab_edit' => 'Редагувати',
'js_words' => 'слів',
'js_passages_label' => 'уривків',
'js_added_at' => 'додано',
'js_tags_label' => 'Теги:',
'js_source_url_label' => 'Оригінальне джерело ↗',
'js_back' => '← Назад',
'js_delete_btn' => 'Видалити',
'js_save_changes' => 'Зберегти зміни',
'js_saving' => 'Збереження…',
'js_saved_at' => 'Збережено {time}',
'js_delete_doc_confirm'=> 'Видалити цей документ назавжди?',
'js_loading_related' => 'Завантаження пов\'язаних авторитетів з графу…',
'js_no_citations' => 'Відомих цитувань у базі графів поки немає.',
'js_graph_unavailable' => 'База графів зараз недоступна.',
'js_no_chunks' => 'Уривки ще не індексовано.',
'js_content_empty' => '(порожньо)',
'js_doc_not_found' => 'Документ не знайдено',
'js_missing_doc_id' => 'Відсутній ідентифікатор документа.',
'js_upload_select_file'=> 'Спочатку виберіть файл.',
'js_upload_indexing' => 'Завантаження та індексування…',
'js_upload_saving' => 'Індексування…',
'js_upload_queuing' => 'Додавання URL у чергу…',
'js_upload_drop_hint' => 'Перетягніть файл сюди або натисніть для перегляду',
'js_upload_indexed' => '✅ Індексовано! {n} уривків додано.',
'js_upload_open_doc' => 'Відкрити документ',
'js_upload_queued' => '📥 Додано до черги.',
'js_upload_follow_docs'=> 'Стежте за прогресом у Документах',
'js_upload_bg_done' => '✅ Фонове завдання виконано. {n} уривків індексовано.',
'js_field_title' => 'Назва',
'js_field_category' => 'Категорія',
'js_field_tags' => 'Теги (через кому)',
'js_field_lang' => 'Мова',
'js_field_author' => 'Автор',
// ── Юридичний аналіз ──────────────────────────────────────────────
'la_doc_type_label' => 'Тип документа',
'la_doc_type_auto' => 'Авто-визначення',
'la_doc_type_other' => 'Інше',
'la_engine_hint' => 'Модель: dbn-legal-agent-v3 (норвезька юридична fine-tune на GPU). Кожне питання обробляється окремо; ~30-60с на питання, до 5 питань за запуск.',
'la_input_label' => 'Вставлений текст',
'la_input_hint' => '(необов’язково, якщо вибрано файл або документ)',
'la_input_placeholder' => 'Вставте судову нотатку, рішення суду, vedtak, лист або будь-який юридичний текст. Можна також завантажити файл або вибрати з Моїх документів вище — потрібне принаймні одне джерело.',
'la_run_button' => 'Запустити юридичний аналіз',
'la_run_button_busy' => 'Виконання…',
'la_ready_title' => 'Готово',
'la_ready_intro' => 'Завантажте документ або вставте текст — інструмент виявить до 5 окремих юридичних питань і попросить норвезьку fine-tune відповісти на кожне з цитатами.',
'la_ready_pipeline' => 'Прохід 1 використовує Azure GPT-4o-mini для виявлення питань. Прохід 2 викликає dbn-legal-agent-v3 для кожного. Прохід 3 синтезує загальну картину. Типовий запуск триває 2-5 хвилин.',
'la_pipeline_pass1' => 'Прохід 1',
'la_pipeline_pass2' => 'Прохід 2',
'la_pipeline_pass3' => 'Прохід 3',
'la_pass1_extracting' => 'Виявлення юридичних питань у документі…',
'la_pass1_found' => 'Знайдено {n} юридичне(их) питання',
'la_pass2_asking' => 'Запит до dbn-legal-agent-v3 для кожного питання…',
'la_pass2_answered' => 'Спеціаліст відповів на {n} питання',
'la_pass3_synthesis' => 'Синтез завершено',
'la_waiting' => 'Очікування…',
'la_searching_corpus' => 'Пошук у юридичному корпусі…',
'la_asking_finetune' => 'Запит до dbn-legal-agent-v3…',
'la_overall' => 'Загальна оцінка',
'la_next_steps' => 'Наступні кроки',
'la_answer_header' => 'Відповідь',
'la_legal_basis' => 'Правова підстава:',
'la_extracting_status' => 'Виявлення окремих юридичних питань…',
'la_synthesising_status' => 'Синтез загальної оцінки…',
'la_extracting_files' => 'Виділення тексту з {n} файл(ів)…',
'la_need_input' => 'Вставте текст, завантажте файл або виберіть документ перед запуском.',
'la_error_prefix' => 'Помилка:',
'la_server_returned' => 'Сервер повернув',
'la_empty_issues' => 'Окремих юридичних питань не виявлено.',
'la_addon_button' => '⚖️🇳🇴 Запустити глибокий юридичний аналіз цього тексту',
'la_addon_button_busy' => 'Виконується глибокий юридичний аналіз…',
'la_addon_section' => 'Глибокий юридичний аналіз',
],
'pl' => [
'meta_title' => 'Do Better Norge - prawne narzędzia AI',
'brand_line' => 'Do Better Norge - tools.dobetternorge.no',
'suite_title' => 'Narzędzia prawne',
'workspace_title' => 'Panel pracy nad sprawą',
'session_active' => 'Sesja aktywna',
'health' => 'Stan',
'sign_out' => 'Wyloguj',
'retention' => 'Sesja w pamięci - domyślnie nic nie jest zapisywane',
'disclaimer' => 'Informacje prawne i wsparcie przygotowania, nie ostateczna porada prawna. Tekst i pliki są domyślnie przetwarzane w pamięci.',
'manifesto_eyebrow' => 'Prawa rodzinne - Norwegia - od 2019',
'manifesto_title' => 'Zabrali jej dziecko w dwanaście minut.',
'manifesto_sub' => 'Otwórz narzędzie. Zbuduj chronologię, zbadaj prawo, chroń prywatność i przygotuj kolejny krok z cytowanymi źródłami.',
'stat_echr' => 'naruszeń ETPC od 2015',
'stat_loss' => 'spraw ETPC przegranych 2017-22',
'stat_tribunal' => 'decyzji trybunałów przeanalizowano',
'stat_pending' => 'spraw oczekuje w Strasburgu',
'reasoning_eyebrow' => 'Plik - ślad dowodów',
'reasoning_title' => 'Uzasadnienie',
'waiting_title' => 'Oczekiwanie',
'waiting_text' => 'Uruchom narzędzie, aby zobaczyć interpretację, źródła, pewność, niepewność i następny krok.',
'dashboard_eyebrow' => 'Zatwierdzony pakiet narzędzi',
'dashboard_title' => 'Wybierz prawne narzędzie AI',
'dashboard_sub' => 'Dla rodzin, rzeczników i sojuszników przygotowujących norweskie sprawy rodzinne i dotyczące ochrony dzieci.',
'open_tool' => 'Otwórz narzędzie',
'landing_kicker' => 'Prawne przygotowanie AI dla spraw rodzinnych w Norwegii',
'landing_title' => 'Narzędzia prawne dla rodzin, które muszą uporządkować akta sprawy.',
'landing_sub' => 'Transkrybuj spotkania, buduj osie czasu, analizuj dokumenty Barnevernet, badaj ETPC i norweskie źródła oraz przygotowuj argumenty z cytatami.',
'primary_access' => 'Kontynuuj przez Do Better Norge / Google',
'secondary_access' => 'Zaloguj przez konto Caveau',
'member_note' => 'Użyj konta Do Better Norge. Logowanie Google odbywa się na głównej stronie, a potem bezpiecznie wracasz tutaj.',
'email' => 'Email',
'password' => 'Hasło',
'sign_in' => 'Zaloguj',
'register' => 'Zarejestruj się bezpłatnie na dobetternorge.no',
'cause_title' => 'Dowody ponad oburzenie.',
'cause_text' => 'Każde narzędzie opiera się na tej samej zasadzie: udokumentować fakty, przytoczyć prawo i pokazać następny praktyczny krok.',
'privacy_title' => 'Prywatność w projekcie',
'privacy_text' => 'Pliki są domyślnie przetwarzane w pamięci. Aplikacja zapisuje tylko metadane operacyjne, takie jak narzędzie, czas, język i anonimowy identyfikator sesji.',
'source_title' => 'Źródła pozostają widoczne',
'source_text' => 'Narzędzia badawcze pokazują cytaty, sekcje, fragmenty źródeł i notatki o niepewności obok odpowiedzi.',
'tools_title' => 'Uruchomione narzędzia',
'preview_back' => '← Wszystkie narzędzia',
'preview_what_it_does' => 'Co robi',
'preview_get_access' => 'Uzyskaj dostęp',
'preview_ready_title' => 'Gotowe do użycia',
'preview_free_note' => 'Bezpłatnie dla członków Do Better Norge. Dokumenty są przetwarzane w pamięci i nigdy nie są przechowywane.',
'preview_other_tools' => 'Inne narzędzia',
'preview_join' => 'Nie jesteś członkiem? Dołącz do Do Better Norge',
'preview_input_label' => 'Przykład — dane wejściowe',
'preview_output_label' => 'Przykład — dane wyjściowe',
'enter_workbench' => 'Otwórz panel pracy',
'signed_in_as' => 'Zalogowany jako',
'member_card_title' => 'Jesteś już członkiem?',
'member_card_note' => 'Zaloguj przez konto Do Better Norge. Logowanie Google odbywa się na głównej stronie.',
'register_card_title' => 'Nowy w Do Better Norge?',
'register_card_note' => 'Bezpłatnie dla rodzin w norweskich sprawach dotyczących ochrony dzieci.',
'register_google' => 'Zarejestruj przez Google',
'register_email' => 'Zarejestruj przez email',
'my_docs_title' => 'Moje dokumenty',
'my_docs_desc' => 'Dokumenty referencyjne przesłane w czacie AI są dostępne tutaj.',
'my_docs_upload_cta' => 'Prześlij dokumenty w czacie AI',
'my_docs_empty' => 'Brak dokumentów. Prześlij pliki PDF, DOCX lub TXT na pasku bocznym czatu AI.',
'my_docs_remove' => 'Usuń',
'my_docs_source_ai' => 'Czat AI',
'my_docs_source_tools' => 'Narzędzia',
'loading' => 'Ładowanie…',
'pricing_title_meta' => 'Cennik — narzędzia Do Better Norge',
'pricing_desc_meta' => 'Cennik tools.dobetternorge.no: bezpłatny poziom, subskrypcje i doładowania kredytów. Zbuduj własną sprawę z prywatnym RAG.',
'pricing_eyebrow' => 'Do Better Norge — narzędzia',
'pricing_hero_title' => 'Zbuduj własną sprawę. Korzystaj z pełnego zestawu narzędzi.',
'pricing_hero_sub' => '13 narzędzi AI dla spraw dotyczących ochrony dzieci. Prześlij własne dokumenty i pozwól narzędziom pracować na Twojej prywatnej sprawie — nie tylko na ogólnych przepisach.',
'pricing_status_success' => 'Dziękujemy! Twoja płatność została potwierdzona. Aktualizacja konta może potrwać kilka sekund.',
'pricing_status_canceled' => 'Płatność została anulowana. Możesz spróbować ponownie w dowolnym momencie.',
'pricing_survey_title' => 'Zdobądź 25 dodatkowych kredytów',
'pricing_survey_text' => 'Odpowiedz na 5 krótkich pytań o to, co najbardziej Ci pomaga. Żadnej reklamy — tylko badania, które pomagają nam ulepszać narzędzia.',
'pricing_survey_cta' => 'Wypełnij ankietę',
'pricing_period_always' => 'zawsze',
'pricing_period_mo' => '/ miesiąc',
'pricing_credits_mo' => 'kredytów / miesiąc',
'pricing_no_storage' => 'Brak przechowywania sprawy',
'pricing_seat_1' => '1 miejsce',
'pricing_seats_family' => '3 miejsca (rodzina)',
'pricing_cap_suffix' => 'narzędzi/godz',
'pricing_cap_per_seat' => 'narzędzi/godz na miejsce',
'pricing_unlimited' => 'Bez limitu',
'pricing_free_f1' => 'Dostęp do wszystkich 13 narzędzi',
'pricing_free_f2' => 'Pytania, wyszukiwanie, edycja',
'pricing_free_f3' => 'Szkice korespondencji',
'pricing_light_f1' => 'Wszystko z Bezpłatnego',
'pricing_light_f2' => 'Zbuduj własną sprawę (Moja sprawa)',
'pricing_light_f3' => 'Prywatny RAG dokumentów we wszystkich narzędziach',
'pricing_light_f4' => 'OCR przesłanych plików PDF',
'pricing_pro_f1' => 'Wszystko z Light',
'pricing_pro_f2' => 'Wyszukiwanie hybrydowe (BM25 + wektor) w Twojej sprawie',
'pricing_pro_f3' => 'Priorytetowa kolejka przesyłania',
'pricing_pro_f4' => 'Raport osi czasu Twojej sprawy',
'pricing_proplus_f1' => 'Wszystko z Pro',
'pricing_proplus_f2' => 'Zaproś 2 członków rodziny lub prawnika',
'pricing_proplus_f3' => 'Wspólne archiwum sprawy z dziennikiem audytu',
'pricing_proplus_f4' => 'Nieograniczone raporty dotyczące sprawy',
'pricing_badge_popular' => 'Najpopularniejszy',
'pricing_badge_family' => 'Dla rodzin',
'pricing_cta_login' => 'Zaloguj, aby zacząć',
'pricing_cta_current' => 'Twój obecny plan',
'pricing_cta_available' => 'Dostępne',
'pricing_cta_subscribe' => 'Zaloguj, aby subskrybować',
'pricing_cta_choose' => 'Wybierz',
'pricing_topup_title' => 'Doładuj kredyty',
'pricing_topup_lead' => 'Potrzebujesz więcej kredytów w tym miesiącu? Kup jednorazowy pakiet — nigdy nie wygasają.',
'pricing_topup_s_note' => 'Szybkie doładowanie',
'pricing_topup_m_note' => 'Najlepsza wartość',
'pricing_topup_l_note' => 'Intensywni użytkownicy',
'pricing_topup_buy' => 'Kup',
'pricing_login_first' => 'Najpierw się zaloguj',
'pricing_faq_title' => 'Często zadawane pytania',
'pricing_faq1_q' => 'Jaka jest różnica między miesięcznymi kredytami a kredytami bonusowymi?',
'pricing_faq1_a' => 'Miesięczne kredyty (z subskrypcji lub bezpłatnego poziomu) resetują się pierwszego dnia każdego miesiąca. Kredyty bonusowe (z ankiety lub doładowań) nigdy nie wygasają i są używane po wyczerpaniu miesięcznych.',
'pricing_faq2_q' => 'Co to jest Moja sprawa?',
'pricing_faq2_a' => 'Moja sprawa to Twój prywatny bank dokumentów. Prześlij pliki PDF ze swojej sprawy; zostaną one przetworzone przez OCR, przeanalizowane i zapisane w Twoim własnym bezpiecznym korpusie. Wszystkie narzędzia będą mogły odwoływać się do Twoich własnych dokumentów zamiast ogólnych przepisów.',
'pricing_faq3_q' => 'Gdzie przechowywane są moje dane?',
'pricing_faq3_a' => 'Wszystko w UE: serwery w Falkenstein (Niemcy) i Helsinkach (Finlandia), usługi AI w Europie Zachodniej i Norwegii Wschodniej. Korzystamy z Hetzner i Microsoft Azure dla AI. Stripe przetwarza płatności przez Irlandię.',
'pricing_faq4_q' => 'Czy mogę udostępnić konto swojemu prawnikowi?',
'pricing_faq4_a' => 'Tak — Pro+ Rodzina obejmuje 3 miejsca. Możesz zaprosić prawnika, drugiego rodzica lub innego członka rodziny. Wszyscy widzą te same dokumenty, ale kto co zrobił jest rejestrowane.',
'pricing_faq5_q' => 'Co się stanie, jeśli anuluję subskrypcję?',
'pricing_faq5_a' => 'Powrócisz do bezpłatnego poziomu. Twoje kredyty bonusowe zostaną zachowane. Dokumenty w Mojej sprawie będą przechowywane przez 90 dni przed usunięciem — masz czas na eksport lub odnowienie.',
'pricing_faq6_q' => 'Czy oferujecie zwroty?',
'pricing_faq6_a' => 'Tak, pełny zwrot w ciągu 7 dni, jeśli nie jesteś zadowolony. Wyślij nam e-mail.',
'pricing_connecting' => 'Łączenie…',
'pricing_error_retry' => 'Błąd — spróbuj ponownie',
'pricing_error_checkout' => 'Nie można uruchomić płatności.',
'pricing_credits_label' => 'kredytów',
'hero_kicker' => 'Prawne narzędzia AI · Norwegia · Bezpłatnie dla członków',
'stat_passages_indexed' => 'przepisów prawnych zindeksowanych',
'explore_tools' => 'Przeglądaj narzędzia ↓',
'tools_section_title' => 'Stworzone dla rodzin poruszających się w skomplikowanym systemie.',
'tools_section_sub' => 'Siedem dedykowanych narzędzi AI — od transkrypcji audio po dogłębne badania prawne. Każde narzędzie przetwarza Twoje dokumenty w pamięci i usuwa je po zakończeniu.',
'learn_more' => 'Dowiedz się więcej →',
'pricing_nav_link' => 'Cennik →',
'why_ours_trust_link' => 'Dlaczego nasze narzędzia dają inne odpowiedzi niż ChatGPT →',
'footer_tagline' => 'Prawne narzędzia AI dla rodzin w norweskich sprawach dotyczących ochrony dzieci.',
'footer_privacy_note' => 'Twoje dokumenty są przetwarzane w pamięci i usuwane po zakończeniu sesji. Nic nie jest przechowywane.',
'footer_legal_lib' => 'Biblioteka prawna',
'footer_report' => 'Zgłoś problem',
'footer_about_caveau' => 'O CaveauAI',
'footer_disclaimer' => 'Wyniki AI służą wyłącznie jako wsparcie w przygotowaniu sprawy — nie jako porada prawna. Zawsze weryfikuj z licencjonowanym norweskim prawnikiem.',
'why_ours_strip_eyebrow' => 'Nie ChatGPT. Nie zgadywanie.',
'why_ours_strip_title' => 'Dlaczego nasze narzędzia dają ci zasadniczo inne odpowiedzi.',
'why_ours_strip_sub' => 'Przeszukujemy 220 000+ zweryfikowanych norweskich przepisów prawnych przy każdym zapytaniu i cytujemy to, co znajdziemy. Ogólna AI odpowiada z pamięci.',
'why_ours_strip_p1' => 'Przeszukuje rzeczywiste prawo — nie pamięć treningową',
'why_ours_strip_p2' => 'Cytuje dokładny znaleziony przepis, za każdym razem',
'why_ours_strip_p3' => 'Dostrojony na norweskim prawie ochrony dzieci',
'why_ours_strip_cta' => 'Pełne wyjaśnienie — jak to działa →',
'pricing_strip_eyebrow' => 'Plany i cennik',
'pricing_strip_title' => 'Zacznij bezpłatnie. Rozszerz, gdy potrzebujesz własnej sprawy.',
'pricing_strip_sub' => '30 bezpłatnych kredytów miesięcznie. Płatne plany odblokują prywatne przechowywanie sprawy — prześlij dokumenty, a każde narzędzie do nich się odwoła.',
'pricing_strip_cta' => 'Zobacz wszystkie plany i cennik →',
// ── Nav + account + dashboard i18n ──────────────────────────────
'nav_tools' => 'Narzędzia',
'nav_dashboard' => 'Przegląd',
'nav_account' => 'Konto',
'nav_login' => 'Zaloguj',
'nav_logout' => 'Wyloguj',
'credits_available' => 'Dostępne kredyty',
'credits_monthly' => 'miesięczne',
'credits_bonus' => 'bonusowe',
'details_link' => 'Szczegóły',
'my_case' => 'Moja sprawa',
'build_your_case' => 'Zbuduj własną sprawę',
'upload_documents' => 'Prześlij dokumenty',
'upgrade_from_plus' => 'Dostępne od Plus NOK 129/miesiąc',
'my_corpus' => 'Mój korpus',
'open_corpus' => 'Otwórz korpus',
'account_title' => 'Konto',
'account_credits' => 'Kredyty i plan',
'account_profile' => 'Profil',
'account_team' => 'Zespół',
'account_usage' => 'Użycie',
'renewal_date' => 'Następne odnowienie',
'trial_active_label' => 'Okres próbny aktywny',
'trial_days_left' => 'dni pozostało',
'earn_credits_eyebrow'=> 'Zdobądź 25 dodatkowych kredytów',
'survey_cta_text' => 'Odpowiedz na 5 krótkich pytań — bez reklam, tylko badania.',
'survey_btn' => 'Wypełnij ankietę',
'login_method_sso' => 'Google SSO',
'login_method_email' => 'Email i hasło',
'team_single_sso' => 'Konto jednoosobowe (SSO)',
'usage_credits_used' => 'Kredyty użyte w tym miesiącu',
'usage_storage_used' => 'Użyte miejsce',
'usage_log_coming' => 'Szczegółowy dziennik aktywności wkrótce',
'account_not_auth' => 'Musisz być zalogowany, aby zobaczyć swoje konto.',
'dash_nav_overview' => 'Przegląd',
'dash_nav_documents' => 'Dokumenty',
'dash_nav_upload' => 'Prześlij',
'dash_nav_ask' => 'Zapytaj',
'dash_nav_settings' => 'Ustawienia',
'dash_page_subtitle' => 'Mój korpus',
'dash_title_overview' => 'Mój korpus',
'dash_lead_overview' => 'Prywatna baza wiedzy prawnej. Przesyłaj, organizuj, pytaj — wszystko przypisane do Twojego konta.',
'dash_title_docs' => 'Dokumenty',
'dash_lead_docs' => 'Wszystkie dokumenty w Twoim prywatnym korpusie. Kliknij, aby otworzyć, lub zaznacz kilka do operacji zbiorczych.',
'dash_title_upload' => 'Prześlij dokumenty',
'dash_lead_upload' => 'Prześlij PDF, DOCX lub TXT — albo wklej tekst lub URL. Treść jest dzielona na fragmenty, wektoryzowana i indeksowana w Twoim prywatnym korpusie.',
'dash_title_chat' => 'Zapytaj korpus',
'dash_lead_chat' => 'Zadawaj pytania prawne. Odpowiedzi są strumieniowane z cytatami z Twojego korpusu i wspólnego pakietu Do Better Norge.',
'dash_title_settings' => 'Ustawienia',
'dash_lead_settings' => 'Ustawienia Twojego prywatnego korpusu.',
'dash_title_document' => 'Dokument',
'dash_section_account' => 'Konto',
'dash_label_client_id' => 'ID klienta',
'dash_label_corpus_id' => 'ID korpusu',
'dash_label_user_id' => 'ID użytkownika',
'dash_section_rag' => 'RAG pipeline',
'dash_section_privacy' => 'Prywatność',
'dash_privacy_p1' => 'Wszystko, co przesyłasz lub zapisujesz tutaj, jest przypisane do Twojego konta. Inni użytkownicy nie mogą widzieć ani przeszukiwać Twoich dokumentów. Wspólny pakiet family-legal (~220 tys. fragmentów norweskiego prawa) jest współdzielony i używany do wzbogacania odpowiedzi autorytatywnymi źródłami, ale jesteś właścicielem wszystkiego, co sam dodajesz.',
'dash_privacy_p2a' => 'Usuwaj pojedyncze dokumenty z',
'dash_privacy_p2b' => 'Aby usunąć całe konto, skontaktuj się z pomocą techniczną.',
'dash_upload_source' => 'Wybierz źródło',
'dash_upload_file_btn' => 'Plik',
'dash_upload_text_btn' => 'Wklej tekst',
'dash_upload_drop_strong' => 'Upuść plik tutaj lub kliknij, aby przeglądać',
'dash_upload_drop_small' => 'PDF · DOCX · TXT · maks. 8 MB · automatyczny OCR dla skanowanych PDF',
'dash_upload_title_lbl' => 'Tytuł',
'dash_upload_title_ph' => 'Automatycznie z nazwy pliku, jeśli puste',
'dash_upload_category_lbl'=> 'Kategoria',
'dash_upload_category_ph' => 'np. prawo rodzinne, opieka nad dziećmi',
'dash_upload_tags_lbl' => 'Tagi',
'dash_upload_lang_lbl' => 'Język',
'dash_upload_content_lbl' => 'Treść',
'dash_upload_content_ph' => 'Wklej tekst tutaj — co najmniej 30 znaków',
'dash_upload_note_title_ph'=> 'Nadaj notatce tytuł',
'dash_upload_url_ph' => 'https://lovdata.no/dokument/…',
'dash_upload_url_title_ph'=> 'Puste = używa URL',
'dash_upload_url_note' => 'URL są przetwarzane w tle — sprawdź «Dokumenty», aby zobaczyć status.',
'dash_upload_btn_file' => 'Prześlij i indeksuj',
'dash_upload_btn_text' => 'Zapisz do korpusu',
'dash_upload_btn_url' => 'Pobierz i indeksuj',
'dash_chat_disclaimer' => '⚖ Informacje prawne i wsparcie przygotowania — nie ostateczna porada prawna. Zawsze potwierdzaj z prawnikiem.',
'dash_chat_placeholder' => 'np. «Co mówi § 4-12 o umieszczeniu bez zgody?»',
'dash_filter_q_ph' => 'Szukaj w tytułach lub tagach…',
'dash_filter_all_status' => 'Wszystkie statusy',
'dash_delete_selected' => 'Usuń zaznaczone',
'dash_upload_btn_short' => '+ Prześlij',
'dash_prev' => '← Poprzednia',
'dash_next' => 'Następna →',
'js_locale' => 'pl-PL',
'js_status_ready' => 'Gotowy',
'js_status_pending' => 'Oczekuje',
'js_status_processing' => 'Przetwarzanie',
'js_status_error' => 'Błąd',
'js_th_title' => 'Tytuł',
'js_th_status' => 'Status',
'js_th_chunks' => 'Fragmenty',
'js_th_added' => 'Dodano',
'js_th_category' => 'Kategoria',
'js_loading' => 'Ładowanie…',
'js_loading_docs' => 'Ładowanie dokumentów…',
'js_empty_docs' => 'Brak dokumentów.',
'js_empty_docs_link' => 'Prześlij pierwszy',
'js_empty_filter' => 'Brak wyników dla wybranego filtru.',
'js_error_loading' => 'Nie można załadować: ',
'js_kpi_docs' => 'Dokumenty',
'js_kpi_chunks' => 'Fragmenty indeksowane',
'js_kpi_ready' => 'Gotowe',
'js_kpi_last' => 'Ostatnie przesłanie',
'js_kpi_of_quota' => 'z limitu',
'js_kpi_searchable' => 'przeszukiwalnych fragmentów',
'js_kpi_of_total' => 'z łącznej liczby',
'js_kpi_date_label' => 'data',
'js_get_started' => 'Zacznij',
'js_see_all' => 'Zobacz wszystkie →',
'js_recent_activity' => 'Ostatnia aktywność',
'js_upload_docs_btn' => '📥 Prześlij dokumenty',
'js_ask_btn' => '💬 Zadaj pytanie prawne',
'js_browse_btn' => '📚 Przeglądaj korpus',
'js_pager_showing' => 'Wyświetlono {from}{to} z {total}',
'js_delete_selected' => 'Usuń zaznaczone',
'js_delete_n_selected' => 'Usuń zaznaczone ({n})',
'js_delete_docs_confirm'=> 'Usunąć {n} dokumenty? Tego nie można cofnąć.',
'js_prev' => '← Poprzednia',
'js_next' => 'Następna →',
'js_filter_all_status' => 'Wszystkie statusy',
'js_filter_placeholder'=> 'Szukaj w tytułach lub tagach…',
'js_chat_thinking' => 'myślę…',
'js_chat_save' => '💾 Zapisz do korpusu',
'js_chat_copy' => '📋 Kopiuj',
'js_chat_copied' => '✓ Skopiowano',
'js_chat_passages_meta'=> '{n} fragmentów',
'js_chat_save_unavail' => 'Okno zapisywania niedostępne.',
'js_tab_preview' => 'Podgląd',
'js_tab_chunks' => 'Fragmenty',
'js_tab_related' => 'Powiązane',
'js_tab_edit' => 'Edytuj',
'js_words' => 'słów',
'js_passages_label' => 'fragmentów',
'js_added_at' => 'dodano',
'js_tags_label' => 'Tagi:',
'js_source_url_label' => 'Oryginalne źródło ↗',
'js_back' => '← Wstecz',
'js_delete_btn' => 'Usuń',
'js_save_changes' => 'Zapisz zmiany',
'js_saving' => 'Zapisywanie…',
'js_saved_at' => 'Zapisano {time}',
'js_delete_doc_confirm'=> 'Trwale usunąć ten dokument?',
'js_loading_related' => 'Ładowanie powiązanych źródeł z grafu…',
'js_no_citations' => 'Brak znanych cytowań w bazie grafów.',
'js_graph_unavailable' => 'Baza grafów jest teraz niedostępna.',
'js_no_chunks' => 'Brak indeksowanych fragmentów.',
'js_content_empty' => '(puste)',
'js_doc_not_found' => 'Dokument nie znaleziony',
'js_missing_doc_id' => 'Brakujący identyfikator dokumentu.',
'js_upload_select_file'=> 'Najpierw wybierz plik.',
'js_upload_indexing' => 'Przesyłanie i indeksowanie…',
'js_upload_saving' => 'Indeksowanie…',
'js_upload_queuing' => 'Dodawanie URL do kolejki…',
'js_upload_drop_hint' => 'Upuść plik tutaj lub kliknij, aby przeglądać',
'js_upload_indexed' => '✅ Indeksowano! {n} fragmentów dodano.',
'js_upload_open_doc' => 'Otwórz dokument',
'js_upload_queued' => '📥 Dodano do kolejki.',
'js_upload_follow_docs'=> 'Śledź postęp w Dokumentach',
'js_upload_bg_done' => '✅ Zadanie w tle ukończone. {n} fragmentów indeksowano.',
'js_field_title' => 'Tytuł',
'js_field_category' => 'Kategoria',
'js_field_tags' => 'Tagi (oddzielone przecinkami)',
'js_field_lang' => 'Język',
'js_field_author' => 'Autor',
// ── Analiza prawna ────────────────────────────────────────────────
'la_doc_type_label' => 'Typ dokumentu',
'la_doc_type_auto' => 'Auto-wykrywanie',
'la_doc_type_other' => 'Inny',
'la_engine_hint' => 'Silnik: dbn-legal-agent-v3 (norweski prawny fine-tune na GPU). Każda kwestia odpowiadana osobno; ~30-60s na kwestię, do 5 kwestii na uruchomienie.',
'la_input_label' => 'Wklejony tekst',
'la_input_hint' => '(opcjonalne, jeśli wybrano plik lub dokument)',
'la_input_placeholder' => 'Wklej notatkę sprawy, orzeczenie sądu, vedtak, list lub dowolny tekst prawny. Możesz też przesłać plik lub wybrać z Moich dokumentów powyżej — wymagane jest co najmniej jedno źródło.',
'la_run_button' => 'Uruchom analizę prawną',
'la_run_button_busy' => 'Uruchamianie…',
'la_ready_title' => 'Gotowe',
'la_ready_intro' => 'Prześlij dokument lub wklej tekst — narzędzie wyodrębni do 5 odrębnych kwestii prawnych i poprosi norweski fine-tune o odpowiedź na każdą z cytatami.',
'la_ready_pipeline' => 'Przebieg 1 używa Azure GPT-4o-mini do wykrycia kwestii. Przebieg 2 wywołuje dbn-legal-agent-v3 dla każdej. Przebieg 3 syntetyzuje obraz całości. Typowe uruchomienie trwa 2-5 minut.',
'la_pipeline_pass1' => 'Przebieg 1',
'la_pipeline_pass2' => 'Przebieg 2',
'la_pipeline_pass3' => 'Przebieg 3',
'la_pass1_extracting' => 'Wyodrębnianie kwestii prawnych z dokumentu…',
'la_pass1_found' => 'Znaleziono {n} kwestii prawnych',
'la_pass2_asking' => 'Pytanie dbn-legal-agent-v3 o każdą kwestię…',
'la_pass2_answered' => 'Specjalista odpowiedział na {n} kwestii',
'la_pass3_synthesis' => 'Synteza zakończona',
'la_waiting' => 'Oczekiwanie…',
'la_searching_corpus' => 'Przeszukiwanie korpusu prawnego…',
'la_asking_finetune' => 'Pytanie dbn-legal-agent-v3…',
'la_overall' => 'Ocena całościowa',
'la_next_steps' => 'Następne kroki',
'la_answer_header' => 'Odpowiedź',
'la_legal_basis' => 'Podstawa prawna:',
'la_extracting_status' => 'Identyfikowanie odrębnych kwestii prawnych…',
'la_synthesising_status' => 'Syntetyzowanie oceny całościowej…',
'la_extracting_files' => 'Wyodrębnianie tekstu z {n} plik(ów)…',
'la_need_input' => 'Wklej tekst, prześlij plik lub wybierz dokument przed uruchomieniem.',
'la_error_prefix' => 'Błąd:',
'la_server_returned' => 'Serwer zwrócił',
'la_empty_issues' => 'Nie zidentyfikowano odrębnych kwestii prawnych.',
'la_addon_button' => '⚖️🇳🇴 Uruchom głęboką analizę prawną tego tekstu',
'la_addon_button_busy' => 'Trwa głęboka analiza prawna…',
'la_addon_section' => 'Głęboka analiza prawna',
],
];
}
function dbnToolsT(string $key, ?string $language = null): string
{
$language = dbnToolsNormalizeUiLanguage($language ?? dbnToolsCurrentLanguage());
$all = dbnToolsTranslations();
return (string)($all[$language][$key] ?? $all['en'][$key] ?? $key);
}
function dbnToolsWorkbenchCopy(?string $language = null): array
{
$language = dbnToolsNormalizeUiLanguage($language ?? dbnToolsCurrentLanguage());
$copy = [
'en' => [
'title' => 'Case Workbench',
'label' => 'Case Workbench',
'sub' => 'Guided case flow',
'description' => 'Plan a case, map evidence, and open the right legal tools in sequence without storing documents.',
'badge' => 'Private session',
'kicker' => 'Guided preparation',
'hero_title' => 'One calm place to organise the next legal step.',
'hero_text' => 'Use this workbench to frame the case, decide which tool to open next, and keep a local evidence map while your documents stay in memory by default.',
'privacy_title' => 'Local notes only',
'privacy_text' => 'This page saves notes in browser sessionStorage. It does not upload files or call tool APIs.',
'clear_session' => 'Clear session',
'all_tools' => 'All tools',
'intake_title' => 'Case intake',
'evidence_title' => 'Evidence map',
'flow_title' => 'Recommended tool sequence',
'outputs_title' => 'Output checklist',
'role' => 'Who are you helping?',
'choose' => 'Choose...',
'role_parent' => 'Parent',
'role_family' => 'Family member',
'role_advocate' => 'Advocate or lawyer',
'role_supporter' => 'Supporter',
'case_type' => 'Case type',
'case_barnevernet' => 'Barnevernet / child welfare',
'case_custody' => 'Custody or residence',
'case_access' => 'Contact / samvær',
'case_echr' => 'ECHR / Strasbourg preparation',
'deadline' => 'Next deadline',
'language' => 'Working language',
'main_concern' => 'Main concern',
'main_concern_hint' => 'What decision, meeting, deadline, or document are you preparing for?',
'documents' => 'Documents',
'documents_hint' => 'List letters, decisions, reports, emails, or forms.',
'meetings' => 'Meetings and audio',
'meetings_hint' => 'List recordings, meeting notes, or conversations to transcribe.',
'dates' => 'Dates and deadlines',
'dates_hint' => 'List hearings, response deadlines, visits, decisions, and events.',
'claims' => 'Claims and facts',
'claims_hint' => 'List what the other side says, what you dispute, and what you can prove.',
'missing' => 'Missing proof',
'missing_hint' => 'List records, witnesses, messages, or sources still needed.',
'bring_redact' => 'Bring back: safe text you can share with helpers.',
'bring_transcribe' => 'Bring back: speaker notes, quotes, and follow-up issues.',
'bring_timeline' => 'Bring back: dated events and urgent deadlines.',
'bring_barnevernet' => 'Bring back: red flags, parties, and cited procedural issues.',
'bring_research' => 'Bring back: legal angles, source excerpts, and uncertainty notes.',
'bring_advocate' => 'Bring back: strongest brief sections and weak points.',
'bring_corpus' => 'Bring back: source titles, sections, and exact citation context.',
'open_tool' => 'Open tool',
'output_lawyer' => 'Lawyer handoff pack',
'output_barnevernet_response' => 'Barnevernet response preparation',
'output_meeting_prep' => 'Meeting preparation note',
'output_strasbourg' => 'Strasbourg / ECHR research prep',
'next_step' => 'Next practical step',
'next_step_hint' => 'Write the next action, owner, and deadline.',
],
'no' => [
'title' => 'Saksarbeidsbenk',
'label' => 'Saksarbeidsbenk',
'sub' => 'Veiledet saksflyt',
'description' => 'Planlegg saken, kartlegg bevis og åpne riktig verktøy i riktig rekkefølge uten å lagre dokumenter.',
'badge' => 'Privat økt',
'kicker' => 'Veiledet forberedelse',
'hero_title' => 'Ett rolig sted for neste juridiske steg.',
'hero_text' => 'Bruk arbeidsbenken til å ramme inn saken, velge neste verktøy og holde et lokalt beviskart mens dokumenter behandles i minnet som standard.',
'privacy_title' => 'Kun lokale notater',
'privacy_text' => 'Denne siden lagrer notater i nettleserens sessionStorage. Den laster ikke opp filer og kaller ikke verktøy-API-er.',
],
'uk' => [
'title' => 'Робочий простір справи',
'label' => 'Робочий простір справи',
'sub' => 'Керований шлях справи',
'description' => 'Плануйте справу, картуйте докази й відкривайте потрібні інструменти по черзі без збереження документів.',
'badge' => 'Приватна сесія',
'kicker' => 'Керована підготовка',
'hero_title' => 'Одне спокійне місце для наступного юридичного кроку.',
'hero_text' => 'Використовуйте цей простір, щоб описати справу, вибрати наступний інструмент і вести локальну карту доказів.',
'privacy_title' => 'Лише локальні нотатки',
'privacy_text' => 'Сторінка зберігає нотатки в sessionStorage браузера. Вона не завантажує файли і не викликає API інструментів.',
],
'pl' => [
'title' => 'Panel pracy nad sprawą',
'label' => 'Panel pracy nad sprawą',
'sub' => 'Prowadzony tok sprawy',
'description' => 'Zaplanuj sprawę, uporządkuj dowody i otwieraj właściwe narzędzia po kolei bez zapisywania dokumentów.',
'badge' => 'Prywatna sesja',
'kicker' => 'Prowadzone przygotowanie',
'hero_title' => 'Jedno spokojne miejsce na kolejny krok prawny.',
'hero_text' => 'Użyj panelu, aby opisać sprawę, wybrać następne narzędzie i prowadzić lokalną mapę dowodów.',
'privacy_title' => 'Tylko lokalne notatki',
'privacy_text' => 'Strona zapisuje notatki w sessionStorage przeglądarki. Nie przesyła plików i nie wywołuje API narzędzi.',
],
];
return array_merge($copy['en'], $copy[$language] ?? []);
}
function dbnToolsWorkbenchMeta(?string $language = null): array
{
$copy = dbnToolsWorkbenchCopy($language);
return [
'label' => $copy['label'],
'sub' => $copy['sub'],
'description' => $copy['description'],
'badge' => $copy['badge'],
'url' => 'workbench.php',
'icon' => 'WB',
];
}
function dbnToolsLaunchedTools(?string $language = null): array
{
$language = dbnToolsNormalizeUiLanguage($language ?? dbnToolsCurrentLanguage());
$copy = [
'en' => [
'transcribe' => ['Transcribe', 'Audio and meetings', 'Turn audio or video into text with speaker separation and legal vocabulary support.', 'Whisper / GPU'],
'timeline' => ['Timeline', 'Events and deadlines', 'Extract dates, hearings, Barnevernet milestones, and legal deadlines from notes or files.', 'Process-and-forget'],
'redact' => ['Redact', 'Privacy protection', 'Remove names, ID numbers, phone numbers, and addresses before sharing documents.', 'Deterministic first'],
'summarize' => ['Summarize', 'Document summary', 'Extract key facts, dates, parties, and legal references from any document — with optional legal corpus enrichment.', 'Process-and-forget'],
'legal-analysis' => ['Legal Analysis', 'Deep Norwegian-law Q&A', 'Extract distinct legal issues from a document and answer each with the dbn-legal-agent-v3 fine-tune — citations from barnevernsloven, EMK, and Høyesterett.', 'Fine-tune · Norsk'],
'korrespond' => ['Korrespond', 'Draft & reply to authorities', 'Draft replies or new correspondence to NAV, Barnevernet, schools, Bufdir and other Norwegian authorities — Norwegian + your language, side-by-side, citations verified against the legal corpus.', 'Hard-RAG · Norsk + EN/PL/UK'],
'barnevernet' => ['BVJ Analyzer', 'Barnevernet documents', 'Analyze child-welfare documents from your perspective with procedural red flags and citations.', 'Document + RAG'],
'advocate' => ['Advocate', 'Partisan brief', 'Choose who you represent and generate a source-grounded brief for that position.', 'ECHR + Lovdata'],
'deep-research' => ['Deep Research', 'Agent + RAG', 'Expand a question into research angles, search legal slices, and synthesize a cited brief.', 'Family-legal'],
'discrepancy' => ['Discrepancy Finder', 'Document comparison', 'Upload two versions of a Barnevernet document and find contradictions, deleted facts, and new allegations.', 'Cross-document AI'],
'corpus' => ['Corpus', 'Legal knowledge base', 'Inspect indexed sources, corpus health, legal categories, and retrieval behavior.', '~220 K passages'],
'citations' => ['Citations', 'Citation graph', 'Browse the legal citation graph — what a statute cites, what cites it, and what implements or amends it.', 'Graph topology'],
],
'no' => [
'transcribe' => ['Transkriber', 'Lyd og møter', 'Gjør lyd eller video om til tekst med talerinndeling og juridisk ordforråd.', 'Whisper / GPU'],
'timeline' => ['Tidslinje', 'Hendelser og frister', 'Hent ut datoer, møter, barnevernsmilepæler og juridiske frister fra notater eller filer.', 'Behandles og glemmes'],
'redact' => ['Sladder', 'Personvern', 'Fjern navn, ID-numre, telefonnumre og adresser før du deler dokumenter.', 'Deterministisk først'],
'summarize' => ['Sammendrag', 'Dokumentsammendrag', 'Hent ut nøkkelfakta, datoer, parter og juridiske referanser fra et dokument — med valgfri korpusberikelse.', 'Behandles og glemmes'],
'legal-analysis' => ['Juridisk analyse', 'Dyp norsk-rett Q&A', 'Hent ut distinkte juridiske spørsmål fra et dokument og få svar fra dbn-legal-agent-v3 fine-tunen — kilder fra barnevernsloven, EMK og Høyesterett.', 'Fine-tune · Norsk'],
'korrespond' => ['Korrespond', 'Brev og svar til myndighetene', 'Skriv utkast til svar eller nytt brev til NAV, barnevernet, skolen, Bufdir og andre norske myndigheter — bokmål + ditt språk side om side, med verifiserte lovhenvisninger.', 'Hard-RAG · Norsk + EN/PL/UK'],
'barnevernet' => ['BVJ-analyse', 'Barnevernsdokumenter', 'Analyser barnevernsdokumenter fra ditt perspektiv med prosessuelle røde flagg og kilder.', 'Dokument + RAG'],
'advocate' => ['Advokatmodus', 'Partsinnlegg', 'Velg hvem du representerer og lag et kildebelagt innlegg for den posisjonen.', 'EMD + Lovdata'],
'deep-research' => ['Dyp research', 'Agent + RAG', 'Utvid et spørsmål til forskningsvinkler, søk juridiske kilder og lag et kildebelagt notat.', 'Familierett'],
'discrepancy' => ['Avviksfinner', 'Dokumentsammenligning', 'Last opp to versjoner av et barneverndokument og finn motsigelser, slettede fakta og nye påstander.', 'Kryssdokument AI'],
'corpus' => ['Korpus', 'Juridisk kunnskapsbase', 'Se indekserte kilder, korpushelse, juridiske kategorier og søkeoppsett.', '~220 K utdrag'],
'citations' => ['Siteringer', 'Siteringsgraf', 'Utforsk siteringsgrafen — hva et dokument siterer, hva som siterer det, og hva som implementerer det.', 'Grafstruktur'],
],
'uk' => [
'transcribe' => ['Транскрипція', 'Аудіо та зустрічі', 'Перетворюйте аудіо або відео на текст із розділенням мовців і юридичною лексикою.', 'Whisper / GPU'],
'timeline' => ['Хронологія', 'Події та строки', 'Витягуйте дати, слухання, етапи Barnevernet і юридичні строки з нотаток або файлів.', 'Обробити і забути'],
'redact' => ['Редагування', 'Захист приватності', 'Видаляйте імена, ідентифікаційні номери, телефони та адреси перед поширенням документів.', 'Детермінований метод'],
'summarize' => ['Резюме', 'Резюме документа', 'Витягуйте ключові факти, дати, сторони та юридичні посилання — з можливістю збагачення корпусом.', 'Обробити і забути'],
'legal-analysis' => ['Юридичний аналіз', 'Глибокий аналіз норвезького права', 'Витягніть юридичні питання з документа та отримайте відповіді від моделі dbn-legal-agent-v3 — з цитатами з barnevernsloven, ЄКПЛ і Verховного суду Норвегії.', 'Fine-tune · Norsk'],
'korrespond' => ['Korrespond', 'Листи і відповіді органам влади', 'Створюйте чернетки відповідей або нових листів до NAV, Barnevernet, школи, Bufdir та інших норвезьких органів — норвезькою + вашою мовою поряд, із перевіреними посиланнями на закон.', 'Hard-RAG · Norsk + EN/PL/UK'],
'barnevernet' => ['BVJ аналізатор', 'Документи Barnevernet', 'Аналізуйте документи захисту дітей з вашої позиції, з процесуальними ризиками та джерелами.', 'Документ + RAG'],
'advocate' => ['Адвокат', 'Позиційний бриф', 'Оберіть, кого представляєте, і створіть бриф із джерелами на підтримку цієї позиції.', 'ЄСПЛ + Lovdata'],
'deep-research' => ['Глибоке дослідження', 'Agent + RAG', 'Розгортає питання в дослідницькі напрями, шукає юридичні джерела та створює бриф.', 'Сімейне право'],
'discrepancy' => ['Пошук розбіжностей', 'Порівняння документів', 'Завантажте дві версії документа Barnevernet і знайдіть суперечності, видалені факти та нові твердження.', 'Міждокументний AI'],
'corpus' => ['Корпус', 'Юридична база знань', 'Переглядайте індексовані джерела, стан корпусу, категорії та поведінку пошуку.', '~220 тис. уривків'],
'citations' => ['Граф цитувань', 'Мережа посилань', 'Граф правових посилань — що цитує документ, хто цитує його, що його реалізує.', 'Граф-топологія'],
],
'pl' => [
'transcribe' => ['Transkrypcja', 'Audio i spotkania', 'Zamień audio lub wideo na tekst z rozdzieleniem mówców i słownictwem prawnym.', 'Whisper / GPU'],
'timeline' => ['Oś czasu', 'Wydarzenia i terminy', 'Wyodrębniaj daty, rozprawy, etapy Barnevernet i terminy prawne z notatek lub plików.', 'Przetwórz i zapomnij'],
'redact' => ['Redakcja', 'Ochrona prywatności', 'Usuń imiona, numery identyfikacyjne, telefony i adresy przed udostępnieniem dokumentów.', 'Metoda deterministyczna'],
'summarize' => ['Streszczenie', 'Streszczenie dokumentu', 'Wyodrębniaj kluczowe fakty, daty, strony i odniesienia prawne — z opcjonalnym wzbogaceniem korpusem.', 'Przetwórz i zapomnij'],
'legal-analysis' => ['Analiza prawna', 'Głęboka analiza prawa norweskiego', 'Wyodrębnij odrębne kwestie prawne z dokumentu i uzyskaj odpowiedzi od modelu dbn-legal-agent-v3 — z cytatami z barnevernsloven, EKPC i norweskiego Sądu Najwyższego.', 'Fine-tune · Norsk'],
'korrespond' => ['Korrespond', 'Pisma i odpowiedzi do urzędów', 'Twórz projekty odpowiedzi lub nowych pism do NAV, Barnevernet, szkoły, Bufdir i innych norweskich organów — norweski + Twój język obok siebie, ze zweryfikowanymi odniesieniami do ustaw.', 'Hard-RAG · Norsk + EN/PL/UK'],
'barnevernet' => ['Analizator BVJ', 'Dokumenty Barnevernet', 'Analizuj dokumenty opieki nad dziećmi z Twojej perspektywy, z ryzykami proceduralnymi i źródłami.', 'Dokument + RAG'],
'advocate' => ['Adwokat', 'Stronniczy brief', 'Wybierz, kogo reprezentujesz, i wygeneruj brief oparty na źródłach dla tej pozycji.', 'ETPC + Lovdata'],
'deep-research' => ['Głębokie badanie', 'Agent + RAG', 'Rozwija pytanie w kierunki badawcze, przeszukuje źródła prawne i tworzy brief z cytatami.', 'Prawo rodzinne'],
'discrepancy' => ['Wyszukiwacz rozbieżności', 'Porównanie dokumentów', 'Prześlij dwie wersje dokumentu Barnevernet i znajdź sprzeczności, usunięte fakty i nowe zarzuty.', 'AI Między-dokumentowe'],
'corpus' => ['Korpus', 'Prawna baza wiedzy', 'Sprawdzaj indeksowane źródła, stan korpusu, kategorie prawne i działanie wyszukiwania.', '~220 tys. fragmentów'],
'citations' => ['Graf cytowań', 'Sieć cytowań', 'Przeglądaj sieć cytowań — co cytuje dokument, kto go cytuje i co go implementuje.', 'Topologia grafu'],
],
];
$selected = $copy[$language] ?? $copy['en'];
$order = ['transcribe', 'timeline', 'redact', 'summarize', 'legal-analysis', 'korrespond', 'barnevernet', 'advocate', 'deep-research', 'discrepancy', 'corpus', 'citations'];
$icons = [
'transcribe' => 'TR',
'timeline' => 'TL',
'redact' => 'RX',
'summarize' => 'SZ',
'legal-analysis' => 'LA',
'korrespond' => 'KOR',
'barnevernet' => 'BVJ',
'advocate' => 'ADV',
'deep-research' => 'DR',
'discrepancy' => 'DC',
'corpus' => 'KB',
'citations' => 'CIT',
];
$out = [];
foreach ($order as $slug) {
[$label, $sub, $description, $badge] = $selected[$slug];
$out[$slug] = [
'label' => $label,
'sub' => $sub,
'description' => $description,
'badge' => $badge,
'url' => '/' . $slug . '.php',
'icon' => $icons[$slug],
];
}
return $out;
}