i18n all /dashboard/ corpus pages for en/no/uk/pl

- Add require_once bootstrap.php to all 6 dashboard page files so
  dbnToolsT() is available before layout_dashboard.php is included
- Add dash_upload_category_lbl key to no/uk/pl sections of i18n.php
  (was only in English); Kategori/Категорія/Kategoria
- Fix broken ternary on upload.php Category label — replace with
  dbnToolsT('dash_upload_category_lbl', $uiLang)
- layout_dashboard.php outputs window.DBN_I18N with all js_* keys
  so dashboard JS reads locale-aware strings from PHP translations

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-23 20:10:57 +02:00
parent 90117fa9de
commit a9e64b65ce
8 changed files with 886 additions and 197 deletions
+541
View File
@@ -259,6 +259,142 @@ function dbnToolsTranslations(): array
'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',
],
'no' => [
'meta_title' => 'Do Better Norge - juridiske AI-verktøy',
@@ -451,6 +587,141 @@ function dbnToolsTranslations(): array
'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',
],
'uk' => [
'meta_title' => 'Do Better Norge - юридичні AI інструменти',
@@ -643,6 +914,141 @@ function dbnToolsTranslations(): array
'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' => 'Автор',
],
'pl' => [
'meta_title' => 'Do Better Norge - prawne narzędzia AI',
@@ -835,6 +1241,141 @@ function dbnToolsTranslations(): array
'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',
],
];
}