{ "$schema": "https://inlang.com/schema/inlang-message-format", "error_annotation_not_found": "Annotation not found.", "error_annotation_update_failed": "Could not save annotation position.", "annotation_edit_mode_active": "Annotation selected — resize handles visible.", "annotation_resize_area": "Resize and reposition annotation", "annotation_resize_handle": "Resize handle: {direction}", "annotation_outdated_notice": "Some annotations refer to an earlier file version and are not shown.", "error_document_not_found": "Document not found.", "error_document_no_file": "No file is associated with this document.", "error_file_not_found": "The file could not be found in storage.", "error_file_upload_failed": "The file could not be uploaded.", "error_unsupported_file_type": "This file format is not supported.", "error_file_too_large": "The file is too large (max. 50 MB).", "error_user_not_found": "User not found.", "error_import_already_running": "An import is already running. Please wait for it to finish.", "error_unauthorized": "You are not logged in.", "error_forbidden": "You do not have permission for this action.", "error_validation_error": "The input is invalid.", "error_internal_error": "An unexpected error occurred.", "nav_documents": "Documents", "nav_persons": "Persons", "nav_conversations": "Letters", "nav_admin": "Admin", "nav_logout": "Sign out", "theme_toggle_to_light": "Switch to light mode", "theme_toggle_to_dark": "Switch to dark mode", "btn_save": "Save", "btn_cancel": "Cancel", "btn_confirm": "Confirm", "btn_edit": "Edit", "btn_create": "Create", "btn_delete": "Delete", "doc_delete_confirm": "Really delete this document? This action cannot be undone.", "btn_back_to_overview": "Back to overview", "btn_back": "Back", "btn_back_to_document": "Back to document", "form_label_person_type": "Type", "form_label_name": "Name", "form_label_first_name": "First name", "form_label_last_name": "Last name", "form_label_alias": "Nickname / Alias", "form_placeholder_alias": "e.g. Grandma Frieda, Uncle Karl…", "form_label_date": "Date", "form_placeholder_date": "DD.MM.YYYY", "form_date_error": "Please enter in DD.MM.YYYY format, e.g. 20.12.2026", "form_label_location": "Location", "form_placeholder_location": "e.g. Berlin, Vienna…", "form_label_sender": "Sender", "form_label_receivers": "Recipients", "form_label_title": "Title", "form_label_tags": "Tags", "form_label_content": "Content", "form_placeholder_content": "Brief description of the content…", "form_label_transcription": "Transcription", "form_placeholder_transcription": "Full text of the document…", "form_label_archive_location": "Storage location", "form_placeholder_archive_location": "e.g. Cabinet 3, Folder B", "form_helper_archive_location": "Where is the original document stored?", "label_optional": "Optional", "label_required_fields": "Required fields", "login_heading": "Sign in", "login_label_email": "Email", "login_label_password": "Password", "login_error_missing_credentials": "Please enter your email address and password.", "login_btn_submit": "Sign in", "docs_search_placeholder": "Search title, people, tags…", "docs_sort_label": "Sort", "docs_sort_date": "Date", "docs_sort_title": "Title", "docs_sort_sender": "Sender", "docs_sort_receiver": "Receiver", "docs_sort_upload": "Uploaded", "docs_result_count": "{count} documents", "docs_empty_for_term": "No documents found for \"{term}\"", "docs_btn_filter": "Filter", "docs_btn_reset_title": "Reset filter", "docs_filter_label_tags": "Tags", "docs_filter_label_sender": "Sender", "docs_filter_label_receivers": "Recipients", "docs_filter_label_from": "From", "docs_filter_label_to": "To", "docs_btn_new": "New document", "docs_empty_heading": "No documents found", "docs_empty_text": "Try adjusting the filters or changing the search term.", "docs_empty_btn_clear": "Clear all filters", "docs_group_unknown_sender": "Unknown sender", "docs_group_unknown_receiver": "Unknown recipient", "docs_list_from": "From", "docs_list_to": "To", "docs_list_content": "Content", "docs_list_summary": "Summary", "docs_list_unknown": "Unknown", "docs_group_undated": "Undated", "docs_group_unknown": "Unknown", "doc_section_who_when": "Who & When", "doc_section_description": "Description", "doc_section_file": "File", "doc_file_upload_label": "Upload file", "doc_file_upload_note": "(optional)", "doc_file_replace_label": "Upload new file", "doc_file_replace_note": "(replaces the current file)", "doc_current_file_label": "Current file:", "doc_more_details": "More details", "doc_new_heading": "New document", "doc_edit_heading": "Edit", "doc_section_details": "Details", "doc_label_document_date": "Document date", "doc_label_creation_location": "Place of creation", "doc_label_archive_location_original": "Storage location (original)", "doc_section_persons": "Persons", "doc_sender_not_specified": "Not specified", "doc_no_receivers": "No recipients", "doc_section_content": "Content", "doc_label_summary": "Summary", "doc_loading": "Loading document...", "doc_download_link": "Try direct download", "doc_no_scan": "No scan available", "persons_heading": "Person directory", "persons_subtitle": "Browse the index of all recorded persons in the family archive.", "persons_btn_new": "New person", "persons_search_placeholder": "Search names...", "persons_empty_heading": "No persons found.", "persons_empty_text": "Try a different search term.", "persons_new_heading": "New person", "persons_section_details": "Person details", "person_edit_heading": "Edit person", "person_label_full_name": "Full name", "person_merge_heading": "Merge person", "person_merge_description": "This person will be merged into the selected target person. All documents and links will be transferred, then this person will be deleted.", "person_merge_target_label": "Merge with", "person_btn_merge": "Merge", "person_btn_merge_confirm": "Yes, merge", "person_merge_warning": "Warning: This action cannot be undone.", "person_label_notes": "Notes", "person_placeholder_notes": "Biographical notes, remarks…", "person_label_birth_year": "Birth year", "person_label_death_year": "Death year", "person_placeholder_year": "e.g. 1923", "person_year_error": "Please enter a four-digit year", "person_years_error_order": "Birth year must be before death year", "person_docs_heading": "Sent documents", "person_no_docs": "This person has not yet been linked as a sender.", "person_received_docs_heading": "Received documents", "person_no_received_docs": "This person has not yet been linked as a receiver.", "person_role_sender": "Sent", "person_role_receiver": "Received", "person_co_correspondents_heading": "Frequent correspondents", "person_correspondents_hint": "click to view conversation", "person_show_more": "+ {count} more", "conv_label_person_a": "Person A (Sender)", "conv_label_person_b": "Correspondent", "conv_label_from": "Period from", "conv_label_to": "Period to", "conv_sort_label": "Sort:", "conv_sort_newest": "Newest first", "conv_sort_oldest": "Oldest first", "conv_empty_heading": "Whose letters would you like to read?", "conv_hero_crosslink": "Looking for a specific document? → Go to document search", "conv_no_results_heading": "No documents found.", "conv_no_results_text": "Try adjusting the time period.", "conv_swap_btn": "Swap persons", "conv_new_doc_link": "New document in this exchange", "conv_strip_sort_newest": "Newest", "conv_strip_sort_oldest": "Oldest", "conv_suggestions_heading": "Top correspondents", "conv_suggestions_all_label": "All correspondents of {name}", "conv_letters_count": "{count} letters", "conv_hero_divider": "or", "conv_empty_recent_label": "Recently opened", "conv_no_party": "—", "dist_bar_segment": "{count} from {name}", "dist_bar_aria": "Letter distribution in this period: {outCount} from {senderName}, {inCount} from {receiverName}", "row_direction_sent": "Sent", "row_direction_received": "Received", "admin_heading": "Admin Dashboard", "admin_tab_users": "Users", "admin_tab_groups": "Groups", "admin_tab_tags": "Tags", "admin_section_users": "User management", "admin_col_login": "Email", "admin_col_groups": "Groups", "admin_col_password": "Password", "admin_multiselect_hint": "Ctrl+Click to select", "admin_password_placeholder": "New PW (optional)", "admin_no_groups": "No groups", "admin_btn_delete_user_title": "Delete user", "admin_section_new_user": "Create new user", "admin_multiselect_hint_multi": "Ctrl+Click for multiple", "admin_multiselect_hint_full": "Ctrl+Click for multiple selection", "admin_section_tags": "Tags", "admin_tags_warning": "Warning: Renaming or deleting affects all linked documents.", "admin_tags_list_title": "All Tags", "admin_tags_empty": "No tags found.", "admin_tags_select_prompt": "Select a tag from the list.", "admin_tag_edit_heading": "Tag: {name}", "admin_tag_updated": "Tag saved.", "admin_unsaved_warning": "You have unsaved changes — save or discard before switching.", "admin_btn_collapse_list": "Collapse list", "admin_btn_expand_list": "Expand list", "admin_btn_edit_tag_label": "Edit tag", "admin_tag_delete_confirm": "Really delete? The tag will be removed from all documents.", "admin_btn_delete_tag_label": "Delete tag", "admin_section_groups": "Group management", "admin_col_name": "Name", "admin_col_permissions": "Permissions", "admin_col_actions": "Actions", "admin_group_delete_confirm": "Really delete group?", "admin_section_new_group": "Create new group", "admin_group_name_placeholder": "Group name (e.g. Editors)", "admin_user_delete_confirm": "Really delete user {username}?", "admin_btn_new_user": "New User", "admin_users_list_title": "All Users", "admin_users_search_placeholder": "Search users…", "admin_users_empty": "No users found.", "admin_users_select_prompt": "Select a user from the list.", "admin_btn_new_group": "New Group", "admin_groups_list_title": "All Groups", "admin_groups_empty": "No groups found.", "admin_groups_select_prompt": "Select a group from the list.", "admin_groups_permission_count": "{count} permissions", "admin_group_new_heading": "Create new group", "admin_group_edit_heading": "Group: {name}", "admin_group_updated": "Group saved.", "admin_group_created": "Group created.", "admin_groups_section_standard": "Standard", "admin_groups_section_administrative": "Administrative", "admin_perm_read_all": "Read only", "admin_perm_annotate_all": "Read & Annotate", "admin_perm_write_all": "Read & Write", "admin_perm_blog_write": "Write stories", "admin_perm_admin": "Full access (Admin)", "admin_perm_admin_user": "Manage users", "admin_perm_admin_tag": "Manage tags", "admin_perm_admin_permission": "Manage permissions", "admin_user_new_heading": "Create new user", "admin_user_edit_heading": "Edit user: {username}", "admin_user_created": "User has been created.", "admin_user_updated": "Changes saved.", "admin_col_full_name": "Name", "admin_label_new_password_optional": "New password (optional)", "admin_label_initial_password": "Password", "doc_file_error_preview": "Could not load preview.", "doc_download_title": "Download", "topbar_back_label": "Back to document list", "topbar_more_actions": "More actions", "topbar_overflow_more": "+{count} more", "topbar_overflow_suffix": "more", "topbar_overflow_heading": "More receivers", "topbar_overflow_show": "Show {count} more receivers", "doc_tag_filter_title": "Filter by {name}", "doc_conversation_title": "Show conversation", "doc_preview_iframe_title": "Document Preview", "doc_image_alt": "Original scan", "doc_no_date": "No date", "person_merge_will_be_deleted": "will be deleted.", "comp_typeahead_placeholder": "Type a name...", "comp_typeahead_loading": "Searching...", "comp_multiselect_placeholder": "Type a name...", "comp_multiselect_remove": "Remove", "comp_multiselect_loading": "Searching...", "comp_taginput_placeholder_create": "Add tags...", "comp_taginput_placeholder_filter": "Filter by tags...", "comp_taginput_remove": "Remove tag", "comp_taginput_create_hint": "Press Enter to create tag.", "error_email_already_in_use": "This email address is already used by another account.", "error_wrong_current_password": "The current password is incorrect.", "nav_profile": "Profile", "profile_heading": "My Profile", "profile_section_personal": "Personal Information", "profile_label_first_name": "First name", "profile_label_last_name": "Last name", "profile_label_birth_date": "Date of birth", "profile_label_email": "Email address", "profile_label_contact": "Contact details", "profile_contact_placeholder": "Phone, address or other notes...", "profile_section_password": "Change password", "profile_label_current_password": "Current password", "profile_label_new_password": "New password", "profile_label_new_password_confirm": "New password (repeat)", "profile_password_mismatch": "The new passwords do not match.", "profile_saved": "Saved.", "profile_password_changed": "Password changed successfully.", "user_profile_heading": "Profile of", "error_invalid_reset_token": "The link is invalid or has expired.", "forgot_password_heading": "Forgot password", "forgot_password_email_label": "Email address", "forgot_password_submit": "Request link", "forgot_password_success": "If an account with this email address exists, you will shortly receive an email with a link to reset your password.", "forgot_password_back_to_login": "Back to login", "reset_password_heading": "Set new password", "reset_password_label": "New password", "reset_password_confirm_label": "Confirm password", "reset_password_submit": "Save password", "reset_password_mismatch": "The passwords do not match.", "reset_password_success": "Your password has been changed successfully. You can now log in.", "login_forgot_password": "Forgot password?", "history_section_title": "History", "history_loading": "Loading history…", "history_empty": "No versions yet.", "history_version_label": "Version", "history_compare_mode": "Compare", "history_compare_select_a": "Version A", "history_compare_select_b": "Version B", "history_compare_apply": "Compare", "history_diff_no_changes": "No changes between these versions.", "history_field_title": "Title", "history_field_document_date": "Date", "history_field_location": "Location", "history_field_document_location": "Archive location", "history_field_transcription": "Transcription", "history_field_summary": "Summary", "history_field_sender": "Sender", "history_field_receivers": "Receivers", "history_field_tags": "Tags", "admin_tab_system": "System", "admin_tab_ocr": "OCR", "ocr_status_online": "Online", "ocr_status_offline": "Offline", "ocr_stat_training_blocks": "Ready (OCR training)", "ocr_stat_total_blocks": "Total text blocks", "ocr_stat_documents": "Training documents", "ocr_stat_seg_blocks": "Ready (seg. training)", "ocr_table_person": "Person", "ocr_table_cer": "CER", "ocr_table_accuracy": "Accuracy", "ocr_table_lines": "Lines", "ocr_table_actions": "Actions", "ocr_table_details": "Details", "ocr_no_models": "No sender models trained yet.", "ocr_sender_models_heading": "Sender Models", "ocr_global_history_link": "Global history →", "ocr_global_history_heading": "Global History", "admin_system_backfill_heading": "Backfill history data", "admin_system_backfill_description": "Creates an initial history entry for all documents that do not have one yet (e.g. imported documents). This ensures that future edits only highlight actually changed fields.", "admin_system_backfill_btn": "Backfill now", "admin_system_backfill_success": "{count} documents were backfilled.", "admin_system_backfill_hashes_heading": "Compute file hashes", "admin_system_backfill_hashes_description": "Computes the SHA-256 hash for all previously uploaded documents that do not have one yet. This ensures annotations are correctly linked to their file version and shown again.", "admin_system_backfill_hashes_btn": "Compute file hashes", "admin_system_backfill_hashes_success": "{count} documents were updated.", "admin_system_import_heading": "Mass import", "admin_system_import_description": "Imports documents and metadata from the spreadsheet file in the /import directory.", "admin_system_import_btn_start": "Start import", "admin_system_import_btn_retry": "Start again", "admin_system_import_status_idle": "No import started.", "admin_system_import_status_running": "Import running…", "admin_system_import_status_done": "Import complete – {count} documents processed.", "admin_system_import_status_failed": "Error: {message}", "admin_system_thumbnails_heading": "Generate thumbnails", "admin_system_thumbnails_description": "Generates preview images for documents without a thumbnail (e.g. after the mass import).", "admin_system_thumbnails_btn_start": "Generate thumbnails", "admin_system_thumbnails_btn_retry": "Run again", "admin_system_thumbnails_status_running": "Thumbnail generation running…", "admin_system_thumbnails_status_done": "Done — {processed} generated, {skipped} skipped, {failed} failed.", "admin_system_thumbnails_status_failed": "Error: {message}", "comp_expandable_show_more": "Show more", "comp_expandable_show_less": "Show less", "error_comment_not_found": "The comment could not be found.", "comment_section_title": "Discussion", "comment_placeholder": "Write a comment… (@name to mention · Enter to send)", "comment_btn_post": "Send", "comment_btn_reply": "Reply", "comment_edited_label": "(Edited)", "comment_edit_hint": "Enter to save · Esc to cancel", "comment_time_just_now": "just now", "comment_time_minutes": "{count} minute(s) ago", "comment_time_hours": "{count} hour(s) ago", "comment_time_days": "{count} day(s) ago", "comment_panel_title": "Comments", "comment_panel_close": "Close", "comp_dismiss": "Dismiss", "doc_panel_tab_metadata": "Metadata", "doc_panel_tab_transcription": "Transcription", "doc_panel_tab_discussion": "Discussion", "doc_panel_tab_history": "History", "doc_panel_annotate": "Annotate", "doc_panel_annotate_stop": "Done", "doc_panel_annotate_hint": "Click and drag to mark an area", "doc_panel_annotation_thread_title": "Annotation", "doc_panel_discussion_annotation_tab": "Annotation · Page {page}", "pdf_annotations_show": "Show annotations", "pdf_annotations_hide": "Hide annotations", "upload_action": "Upload", "upload_drop_hint": "Drop one or multiple files at once", "upload_accepted_types": "PDF, JPEG, PNG, TIFF", "upload_filename_hint": "Tip: 2024-03-15_Mueller_Hans.pdf → date and sender pre-filled", "upload_success": "{count} document(s) created", "upload_duplicate": "{filename} already exists —", "upload_duplicate_link": "View document", "upload_invalid_type": "{filename}: unsupported file format", "upload_error": "Error uploading {filename}", "enrich_list_back": "Back to overview", "enrich_list_count": "documents", "btn_save_and_mark_reviewed": "Save & mark as reviewed", "btn_mark_for_review": "Mark for review", "enrich_needs_metadata_title": "Documents without metadata", "enrich_needs_metadata_count": "{count} document(s) waiting for metadata", "enrich_needs_metadata_cta": "Complete now", "enrich_list_heading": "Documents without metadata", "enrich_list_empty_heading": "All documents complete", "enrich_list_empty_body": "There are no documents that still need metadata.", "enrich_list_start": "Start reviewing", "enrich_progress": "{count} remaining", "enrich_skip": "Skip", "enrich_done_heading": "All done!", "enrich_done_body": "All documents have been processed.", "enrich_back_to_list": "Back to list", "comment_empty_hint": "No comments yet – start the discussion!", "comment_start_discussion": "Start discussion →", "notification_bell_label": "Notifications", "notification_bell_unread_label": "{count} unread notifications", "notification_mark_all_read": "Mark all read", "notification_empty": "No new notifications", "notification_type_reply": "{actor} replied to your comment", "notification_type_mention": "{actor} mentioned you in a comment", "notification_prefs_heading": "Notifications", "notification_pref_reply": "Email when someone replies to my comment", "notification_pref_mention": "Email when someone mentions me in a comment", "notification_prefs_no_email": "Please add an email address above to receive notifications.", "notification_unread": "unread", "mention_btn_label": "Mention person", "mention_popup_empty": "No users found", "person_mention_open_link": "Open person", "person_mention_hover_hint": "Click opens the page", "person_mention_load_error": "Could not load person.", "person_mention_loading": "Loading person…", "person_mention_popup_empty": "No persons found", "person_mention_btn_label": "Link person", "person_mention_create_new": "Create new person", "transcription_editor_aria_label": "Transcription text", "person_born_name_prefix": "née", "page_title_home": "Archive", "page_title_persons": "Persons", "page_title_admin": "Administration", "page_title_login": "Sign in", "page_title_error": "Error – Family Archive", "dashboard_notifications_heading": "Notifications", "dashboard_notification_mentioned": "mentioned you", "dashboard_notification_replied": "replied", "dashboard_needs_metadata_heading": "Missing Metadata", "dashboard_needs_metadata_show_all": "Show all", "dashboard_needs_metadata_show_all_count": "Show all {count} →", "upload_banner_singular": "1 document uploaded.", "upload_banner_plural": "{count} documents uploaded.", "upload_banner_cta": "Enrich now →", "upload_banner_close": "Dismiss notification", "dashboard_recent_heading": "Recent Activity", "dashboard_stats_documents": "Documents", "dashboard_stats_persons": "Persons", "dashboard_reader_stats_documents": "Documents", "dashboard_reader_stats_persons": "Persons", "dashboard_reader_stats_stories": "Stories", "dashboard_reader_person_chips_heading": "Persons", "dashboard_reader_no_persons": "No persons in the archive yet.", "dashboard_reader_all_persons": "All Persons →", "dashboard_reader_drafts_heading": "My Drafts", "dashboard_reader_drafts_empty": "No drafts", "dashboard_reader_recent_docs_heading": "Recently Updated", "dashboard_reader_recent_stories_heading": "New Stories", "dashboard_badge_new": "New", "dashboard_badge_updated": "Updated", "dashboard_reader_all_stories": "All Stories →", "dashboard_reader_doc_count_suffix": "docs.", "dashboard_resume_label": "Last opened:", "dashboard_resume_fallback": "Unknown document", "doc_status_placeholder": "Placeholder", "doc_status_uploaded": "Uploaded", "doc_status_transcribed": "Transcribed", "doc_status_reviewed": "Reviewed", "doc_status_archived": "Archived", "doc_status_unknown": "Unknown", "persons_stats_persons_one": "1 person", "persons_stats_persons_many": "{count} persons", "persons_stats_documents_one": "1 document", "persons_stats_documents_many": "{count} documents", "persons_stats_label_persons_one": "Person", "persons_stats_label_persons_many": "Persons", "persons_stats_label_documents_one": "Document", "persons_stats_label_documents_many": "Documents", "person_card_doc_count_one": "1 doc", "person_card_doc_count_many": "{count} docs", "error_person_not_found": "Person not found.", "person_btn_edit": "Edit", "person_discard_changes": "Discard changes", "person_danger_zone_heading": "Danger zone", "persons_new_birth_year": "Birth year", "persons_new_death_year": "Death year", "persons_new_notes": "Notes", "person_save_changes": "Save changes", "notification_view_all": "View all →", "notification_history_heading": "Notifications", "notification_history_view_link": "View notification history →", "notification_filter_all": "All", "notification_filter_unread": "Unread", "notification_filter_mention": "Mention", "notification_filter_reply": "Reply", "notification_mark_all_read_aria": "Mark all notifications as read", "notification_load_more": "Load older", "notification_empty_history": "No notifications", "notification_empty_history_body": "Mentions and replies to your comments will appear here.", "notification_row_aria": "{actor} {type} on \"{title}\" — {time} — {readState}", "notification_read_state_read": "read", "notification_read_state_unread": "unread", "error_transcription_block_not_found": "Transcription block not found.", "error_transcription_block_conflict": "This block was modified by someone else. Please reload the page.", "doc_details_toggle": "Details", "doc_details_section_details": "Details", "doc_details_section_persons": "Persons", "doc_details_section_tags": "Tags", "doc_details_field_date": "Date", "doc_details_field_sender": "Sender", "doc_details_field_receivers": "Receivers", "doc_details_field_status": "Status", "doc_details_no_persons": "No persons assigned", "doc_details_no_tags": "No tags assigned", "doc_details_more_receivers": "+{count} more", "transcription_mode_label": "Transcribe", "transcription_mode_stop": "Done", "transcription_block_placeholder": "Type text — use @name to link a person from the archive", "transcription_block_save_saving": "Saving...", "transcription_block_save_saved": "Saved", "transcription_block_save_error": "Not saved", "transcription_block_save_retry": "Retry", "transcription_block_comment_btn": "Comment", "transcription_block_quote_hint": "Select text to quote", "transcription_block_delete_confirm": "Really delete this block and all its comments?", "transcription_block_history_btn": "History", "transcription_empty_cta": "Mark a region on the scan to start transcribing", "transcription_next_block_cta": "Draw a frame on the scan to create block {number}", "transcription_draw_tooltip": "Click and drag to mark a text region", "transcription_quote_stale": "Quote from an older version", "transcription_block_conflict": "This block was changed by someone else — please reload", "sort_dir_asc": "Sort ascending", "sort_dir_desc": "Sort descending", "mode_read": "Read", "mode_edit": "Edit", "mode_edit_short": "Edit", "transcription_status_section": "1 section", "transcription_status_sections": "{count} sections", "transcription_status_last_edited": "Last edited: {time}", "scan_expand": "Expand scan", "scan_collapse": "Collapse scan", "transcription_empty_title": "No transcription yet", "transcription_empty_desc": "Draw regions on the scan and type the text to create a transcription.", "transcription_panel_close": "Close panel", "person_alias_heading": "Name history", "person_alias_empty": "No name changes recorded yet.", "person_alias_type_BIRTH": "Birth name", "person_alias_type_WIDOWED": "Name as widow/widower", "person_alias_type_DIVORCED": "Name after divorce", "person_alias_type_MAIDEN_NAME": "Maiden name", "person_alias_type_OTHER": "Other name", "person_type_PERSON": "Person", "person_type_INSTITUTION": "Institution", "person_type_GROUP": "Group", "person_type_UNKNOWN": "Unknown", "a11y_type_changed": "Type changed to {type}", "person_alias_add_heading": "Add name", "person_alias_label_type": "Type", "person_alias_label_last_name": "Last name", "person_alias_label_first_name": "First name (optional)", "person_alias_btn_add": "Add", "person_alias_delete_title": "Remove alias?", "person_alias_delete_body": "This name will be removed from search results.", "person_alias_btn_delete": "Remove", "error_alias_not_found": "The name alias was not found.", "error_invalid_person_type": "The specified person type is not valid.", "validation_last_name_required": "Last name is required.", "validation_first_name_required": "First name is required.", "error_ocr_service_unavailable": "The OCR service is not available.", "error_ocr_job_not_found": "The OCR job was not found.", "error_ocr_document_not_uploaded": "The document has no file — OCR is not possible.", "error_ocr_processing_failed": "OCR processing failed.", "error_training_already_running": "A training run is already in progress.", "error_invalid_tag_color": "The chosen color is not valid.", "error_tag_cycle_detected": "This parent tag would create a cycle.", "ocr_script_type_typewriter": "Typewriter", "ocr_script_type_handwriting_latin": "Handwriting (Latin)", "ocr_script_type_handwriting_kurrent": "Handwriting (Kurrent/Sütterlin)", "ocr_trigger_label": "Script type", "ocr_trigger_select_placeholder": "Select script type…", "ocr_trigger_btn": "Start OCR", "ocr_trigger_btn_disabled": "Please select a script type", "ocr_confirm_title": "Replace existing transcription?", "ocr_confirm_body": "All {count} existing blocks will be deleted and replaced with OCR results. This action cannot be undone.", "ocr_confirm_btn": "Replace", "ocr_rerun_label": "Re-run OCR…", "ocr_progress_heading": "OCR running", "ocr_progress_page": "Page {current} of {total}", "ocr_error_heading": "OCR failed", "ocr_error_retry": "Try again", "ocr_batch_running": "OCR running · {processed} of {total} documents complete", "ocr_batch_done": "OCR complete · {processed} successful · {errors} failed", "ocr_status_preparing": "Preparing document…", "ocr_status_loading": "Loading model and document…", "ocr_status_analyzing": "OCR analysis running — this may take a few minutes…", "ocr_status_creating_blocks": "{count} text blocks detected — creating transcription…", "ocr_status_done_blocks": "{count} blocks created", "ocr_status_analyzing_page": "Analyzing page {current} of {total}…", "ocr_status_preprocessing_page": "Preparing page {current} of {total}…", "ocr_status_done_skipped": "{count} blocks created, {skipped} page(s) skipped", "ocr_status_error": "OCR failed", "ocr_trigger_no_annotations": "Draw regions on the document first.", "ocr_section_heading": "Run OCR", "transcription_block_review": "Mark as reviewed", "transcription_block_unreview": "Unmark as reviewed", "transcription_reviewed_count": "{reviewed} of {total} reviewed", "training_ocr_heading": "Train Kurrent recognition", "training_ocr_description": "Start a new training run using the reviewed OCR blocks to improve recognition accuracy for Kurrent script.", "training_ocr_blocks_ready": "{blocks} reviewed blocks ready / {docs} documents", "training_ocr_blocks_total": "(of {total} OCR blocks total)", "training_start_btn": "Start training", "training_in_progress": "…", "training_success": "Training started and completed.", "training_start_failed": "Failed to start training. Please try again.", "training_too_few_blocks": "At least 5 reviewed blocks required (currently: {available}).", "training_service_down": "OCR service is unavailable.", "training_history_heading": "History", "training_history_empty": "No training runs yet.", "training_history_col_date": "Date", "training_history_col_status": "Status", "training_history_col_blocks": "Blocks", "training_history_col_docs": "Documents", "training_history_col_cer": "Error Rate", "training_status_done": "Done", "training_status_failed": "Failed", "training_error_detail_label": "Error details", "training_status_running": "Running…", "training_seg_heading": "Train segmentation", "training_seg_description": "Start a new training run using annotated segmentation regions to improve text detection.", "training_seg_blocks_ready": "{blocks} segmentation blocks ready", "training_seg_too_few_blocks": "At least 5 segmentation blocks required (currently: {available}).", "transcription_block_segmentation_only": "Segmentation only", "training_chip_kurrent": "Kurrent recognition", "training_chip_segmentation": "Segmentation", "training_col_type": "Type", "training_type_base": "Base", "training_type_personalized": "Personalized", "training_col_person": "Sender", "training_status_queued": "Queued", "mission_control_heading": "What needs attention?", "mission_control_segmentation_heading": "Mark text", "mission_control_segmentation_description": "Mark text areas — no prior knowledge needed", "mission_control_seg_skill_pill": "✓ No prior knowledge", "mission_control_segmentation_empty": "All documents already have segmentation blocks.", "mission_control_transcription_heading": "Transcribe text", "mission_control_transcription_description": "Type out text — Kurrent knowledge helpful", "mission_control_trans_skill_pill": "Kurrent helpful", "mission_control_transcription_empty": "No documents waiting for transcription.", "mission_control_ready_heading": "Ready to read ✓", "mission_control_ready_description": "Fully transcribed and reviewed", "mission_control_ready_subtitle": "{count} documents ready", "mission_control_ready_empty": "No documents fully transcribed yet.", "mission_control_ready_empty_cta": "Start contributing", "mission_control_weekly_pulse": "↑ +{count} this week", "mission_control_blocks_progress": "{texted} / {total} blocks", "mission_control_reviewed_pct": "{pct}% reviewed", "error_tag_not_found": "This tag was not found.", "error_tag_merge_self": "A tag cannot be merged with itself.", "error_tag_merge_invalid_target": "The target tag is a descendant of the source tag.", "admin_tag_tree_label": "Tags", "admin_tag_collapse_node": "Collapse", "admin_tag_expand_node": "Expand", "admin_tag_parent_placeholder": "Search parent tag …", "admin_tag_inherited_color": "Color inherited from {parent}", "admin_tag_ancestry_label": "Path", "admin_tag_children_label": "Child Tags", "admin_tag_children_more": "… and {count} more", "admin_tag_merge_heading": "Merge", "admin_tag_merge_description": "Transfer all documents and child tags to another tag, then delete this one.", "admin_tag_merge_btn": "Merge with another tag …", "admin_tag_merge_target_label": "Target Tag", "admin_tag_merge_preview_docs": "{count} documents", "admin_tag_merge_preview_children": "{count} children", "admin_tag_merge_deleted_after": "will be deleted after", "admin_tag_merge_confirm_btn": "Merge now", "admin_tag_merge_step1": "Step 1 of 2", "admin_tag_merge_step2": "Step 2 of 2", "admin_tag_merge_target_placeholder": "Search target tag …", "admin_tag_merge_success": "Merged successfully.", "admin_tag_delete_impact": "{docs} document(s) · {descendants} child tags", "admin_tag_delete_only_this": "Delete only this tag", "admin_tag_delete_only_this_sub": "Children will be moved to {parent}", "admin_tag_delete_only_this_sub_root": "Children will become root tags", "admin_tag_delete_subtree": "Delete entire subtree", "admin_tag_delete_subtree_warn": "Also deletes {count} child tags", "admin_tag_delete_subtree_confirm_btn": "Delete subtree", "admin_tag_delete_confirm_heading": "Type «{name}» to confirm:", "filter_operator_and": "AND", "filter_operator_or": "OR", "filter_operator_and_label": "All selected tags must match (AND)", "filter_operator_or_label": "At least one tag must match (OR)", "error_invite_not_found": "Invite link not found or invalid.", "error_invite_exhausted": "This invite link has already been fully used.", "error_invite_revoked": "This invite link has been deactivated.", "error_invite_expired": "This invite link has expired.", "register_heading": "Create account", "register_subtext": "You've been invited to join Familienarchiv.", "register_label_first_name": "First name", "register_label_last_name": "Last name", "register_label_email": "Email address", "register_label_password": "Password", "register_prefill_hint": "Pre-filled from your invite – you can change it", "register_password_show": "Show password", "register_password_hide": "Hide password", "register_btn_submit": "Create account", "register_invalid_code": "Invalid invite link", "register_invalid_code_desc": "This invite link is not valid, has already been used, or has expired. Please contact the administrator.", "register_invite_only": "The archive is invite-only.", "register_invite_only_desc": "You need a personal invite link to create an account. Please get in touch with a family member.", "register_success": "Your account has been created. You can now sign in.", "register_eyebrow": "A family project", "register_hero_headline": "Glad you're here.", "register_hero_subtext": "Together we preserve letters and documents – for the family, now and in the future.", "register_section_about": "About you", "register_section_account": "Account", "register_section_notifications": "Notifications", "register_label_password_confirm": "Confirm password", "register_pw_hint": "At least 8 characters.", "register_pw_ok": "At least 8 characters. ✓", "register_pw_match_ok": "Passwords match.", "register_pw_match_no": "The two passwords don't match yet.", "register_notify_title": "Notify me", "register_notify_desc": "when someone mentions me in a comment or replies to one of my comments.", "register_btn_loading": "Creating …", "register_already_have_account": "Already have an account?", "register_sign_in": "Sign in", "login_registered_success": "Your account was created successfully. Sign in now.", "admin_tab_invites": "Invites", "admin_invites_list_title": "Invites", "admin_invites_empty": "No active invites.", "admin_btn_new_invite": "New invite", "admin_btn_show_all": "Show all", "admin_btn_show_active": "Active only", "admin_btn_revoke": "Revoke", "admin_btn_copy_link": "Copy link", "admin_btn_copied": "Copied!", "admin_invite_status_active": "Active", "admin_invite_status_exhausted": "Exhausted", "admin_invite_status_revoked": "Revoked", "admin_invite_status_expired": "Expired", "admin_invite_col_code": "Code", "admin_invite_col_label": "Label", "admin_invite_col_uses": "Uses", "admin_invite_col_expiry": "Expiry", "admin_invite_col_status": "Status", "admin_invite_col_link": "Link", "admin_invite_unlimited": "∞", "admin_invite_no_expiry": "No expiry", "admin_new_invite_label": "Label (e.g. who it is for)", "admin_new_invite_max_uses": "Max uses (empty = unlimited)", "admin_new_invite_prefill_first": "Pre-fill first name (optional)", "admin_new_invite_prefill_last": "Pre-fill last name (optional)", "admin_new_invite_prefill_email": "Pre-fill email (optional)", "admin_new_invite_expires": "Expiry date (optional)", "admin_invite_created_title": "Invite created", "admin_invite_created_desc": "Share this link with the person you are inviting:", "admin_invite_revoke_confirm": "Really revoke this invite?", "greeting_morning": "Good morning, {name}.", "greeting_day": "Hello, {name}.", "greeting_evening": "Good evening, {name}.", "dashboard_resume_label": "Continue where you left off", "dashboard_blocks": "{count} sections", "dashboard_resume_cta": "Continue transcribing", "dashboard_resume_other": "or choose another document", "dashboard_empty_title": "No document started yet", "dashboard_empty_body": "Choose a document from the archive to start transcribing.", "dashboard_empty_cta": "To the archive", "dashboard_mission_caption": "Open tasks", "queue_segment": "Segment", "queue_segment_blurb": "Split pages", "queue_transcribe": "Transcribe", "queue_transcribe_blurb": "Capture text", "queue_review": "Review", "queue_review_blurb": "Check texts", "queue_n_open": "{n} open", "queue_show_all": "Show all →", "pulse_eyebrow": "This week", "pulse_headline": "You have worked on {pages} pages.", "pulse_you": "You personally worked on {pages} of them.", "pulse_contributors": "Contributors", "pulse_transcribed": "Passages annotated", "pulse_reviewed": "Passages transcribed", "pulse_uploaded": "Documents uploaded", "feed_caption": "Comments & activity", "feed_show_all": "Show all", "feed_for_you": "for you", "audit_action_text_saved": "saved text in", "audit_action_file_uploaded": "uploaded a file:", "audit_action_annotation_created": "created an annotation in", "audit_action_comment_added": "commented:", "audit_action_mention_created": "mentioned you in", "dropzone_release": "Release to upload", "chronik_page_title": "Activity", "chronik_for_you_caption": "For you", "chronik_for_you_count": "{count} new", "chronik_mark_read_aria": "Mark as read", "chronik_mark_all_read": "Mark all read", "chronik_inbox_zero_title": "No new mentions", "chronik_inbox_zero_link": "See older mentions →", "chronik_filter_label": "Filter activity", "chronik_filter_all": "All", "chronik_filter_for_you": "For you", "chronik_filter_uploaded": "Uploaded", "chronik_filter_transcription": "Transcription", "chronik_filter_comments": "Comments", "chronik_day_today": "Today", "chronik_day_yesterday": "Yesterday", "chronik_day_this_week": "This week", "chronik_day_older": "Older", "chronik_singleton_text_saved": "{actor} transcribed a block in {doc}", "chronik_rollup_text_saved": "{actor} transcribed {doc}", "chronik_singleton_uploaded": "{actor} uploaded {doc}", "chronik_rollup_uploaded": "{actor} uploaded documents", "chronik_singleton_reviewed": "{actor} reviewed a block in {doc}", "chronik_rollup_reviewed": "{actor} reviewed {doc}", "chronik_singleton_annotated": "{actor} annotated {doc}", "chronik_rollup_annotated": "{actor} annotated {doc}", "chronik_comment_added": "{actor} commented on {doc}", "chronik_mention_created": "{actor} mentioned you in {doc}", "chronik_reply_received": "{actor} replied to you in {doc}", "chronik_empty_first_run_title": "Nothing has happened yet", "chronik_empty_first_run_body": "As soon as someone in the family uploads or transcribes a document, the activity will show up here.", "chronik_empty_filter_title": "Nothing in this view", "chronik_empty_filter_body": "There are no entries for this filter.", "chronik_error_title": "Activity could not be loaded.", "chronik_error_retry": "Try again", "chronik_load_more": "Load more", "chronik_loading": "Loading …", "chronik_load_more_announcement": "{count} more entries loaded", "chronik_view_all": "All activity →", "pagination_prev": "Previous", "pagination_next": "Next", "pagination_page_of": "Page {page} of {total}", "pagination_nav_label": "Pagination", "pagination_page_button": "Page {page}", "common_opens_new_tab": "(opens in new tab)", "transcribe_coach_title": "First transcription?", "transcribe_coach_preamble": "Our Kurrent recogniser is still learning. Every transcription you release for training teaches it the handwriting — here's how it works:", "transcribe_coach_step_1_title": "Draw a frame.", "transcribe_coach_step_1_body": "Click and drag a frame around the text you want to transcribe.", "transcribe_coach_step_2_title": "Enter the text.", "transcribe_coach_step_2_body": "Type the text you see inside the frame into the new text field.", "transcribe_coach_step_3_title": "Saves automatically.", "transcribe_coach_footer_kurrent": "Kurrent help ↗", "transcribe_coach_footer_richtlinien": "Transcription guidelines ↗", "transcription_mode_help_label": "Read and edit mode", "transcription_mode_help_body": "Read shows the transcription as flowing text. Edit opens the text fields for each passage.", "richtlinien_title": "Transcription Guidelines", "richtlinien_intro": "So every letter is transcribed consistently — no matter who types — here are our rules. The page grows with us: as soon as we agree a new convention, it lands here.", "richtlinien_wiki_text": "The Kurrent and Sütterlin alphabets are well explained on Wikipedia. Here you'll only find our own conventions for this archive.", "richtlinien_wiki_link": "Wikipedia", "richtlinien_rules_label": "Transcription rules", "richtlinien_rule_unleserlich_title": "Illegible words", "richtlinien_rule_unleserlich_body": "If you can't decipher a word even after trying, write [unleserlich]. Someone else will take another look later.", "richtlinien_rule_durchgestrichen_title": "Struck-through words", "richtlinien_rule_durchgestrichen_body": "Struck-through text still belongs to the letter. Write it in square brackets with prefix durchgestrichen:", "richtlinien_rule_langes_s_title": "The long s (ſ)", "richtlinien_rule_langes_s_body": "The ſ is just an old written form of the letter s — not a separate sound. Always write a normal s.", "richtlinien_rule_name_title": "Uncertain names", "richtlinien_rule_name_body": "If you think you can read a name but aren't sure, add a question mark in square brackets.", "richtlinien_rule_dialekt_title": "Dialect, foreign words, foreign quotes", "richtlinien_rule_dialekt_body": "Low German, French, Latin phrases — copy them verbatim, exactly as written.", "richtlinien_beispiel_label": "Example", "richtlinien_klaerung_label": "Still to be decided", "richtlinien_klaerung_intro": "These questions are still open — if you hit one while transcribing, make a plausible choice and note it in the comments:", "richtlinien_klaer_abkuerzungen": "Abbreviations", "richtlinien_klaer_datumsformate": "Date formats", "richtlinien_klaer_umbrueche": "Original line breaks", "richtlinien_klaer_caps": "Old capitalisation", "richtlinien_closing_title": "Missing a rule?", "richtlinien_closing_body": "If you hit a situation while transcribing that isn't listed here — leave a comment on the relevant block. We collect them and discuss them at the next family gathering.", "error_batch_too_large": "Too many files at once — please upload in smaller batches.", "bulk_drop_hint": "Drop one or more files here", "bulk_drop_sub": "PDF · up to 50 MB per file", "bulk_count_pill": "{count} will be created", "bulk_save_cta_one": "Save →", "bulk_save_cta": "Save {count} →", "bulk_discard_all": "Discard all", "bulk_discard_confirm": "Discard all files and entered data? This action cannot be undone.", "bulk_add_more": "Add more", "bulk_scope_per_file_label": "This file only", "bulk_scope_shared_label": "Applies to all {count}", "bulk_title_suggested_hint": "Suggested from filename — click to edit", "bulk_switcher_prev": "Previous file", "bulk_switcher_next": "Next file", "bulk_file_error_chip_label": "Upload failed", "bulk_upload_progress": "{done} of {total} uploaded", "bulk_partial_success": "{created} created, {failed} failed", "bulk_all_failed": "All uploads failed", "bulk_drop_desc": "A separate document is created for each file. The title is pre-filled from the filename — all other fields apply to all documents.", "bulk_select_files": "Select files", "bulk_drop_zone_label": "Drop files here", "bulk_remove_file": "Remove", "bulk_title_single": "New Document", "bulk_title_multi": "New Documents", "bulk_edit_button": "Bulk edit", "bulk_edit_n_selected_one": "1 document selected", "bulk_edit_n_selected_other": "{count} documents selected", "bulk_edit_clear_all": "Clear all", "bulk_edit_all_x": "Edit all {count}", "bulk_edit_select_document": "Select document {title}", "bulk_edit_hint": "Only filled fields are applied. Tags and receivers are added, not replaced.", "bulk_edit_badge_additive": "+ will be added", "bulk_edit_badge_replace": "will replace", "bulk_edit_save_progress": "Batch {done} of {total} processed", "bulk_edit_save_partial": "{done} of {total} saved", "bulk_edit_retry": "Retry", "bulk_edit_title": "Bulk edit", "bulk_edit_save_button": "Apply", "error_bulk_edit_too_many_ids": "Maximum 500 documents per request.", "form_label_archive_box": "Box", "form_helper_archive_box": "Which box in the archive?", "form_label_archive_folder": "Folder", "form_helper_archive_folder": "Which folder inside the box?", "bulk_edit_clear_selection": "Clear selection", "bulk_edit_clear_hint_keyboard": "Esc: clear selection", "bulk_edit_loading": "Loading documents…", "bulk_edit_all_x_failed": "Could not load filter results — please retry.", "bulk_edit_topbar_title": "Bulk edit", "bulk_edit_count_pill": "{count} will be edited", "nav_stammbaum": "Family tree", "nav_geschichten": "Stories", "error_geschichte_not_found": "The story was not found.", "geschichten_index_title": "Stories", "geschichten_new_button": "New story", "geschichten_filter_all_pill": "All", "geschichten_filter_choose_person": "Choose person", "geschichten_filter_aria_label": "Filter by person", "geschichten_filter_remove_chip": "Remove {name} from filter", "geschichten_filter_and_hint": "Only stories that include every selected person are shown.", "geschichten_empty_for_person": "No stories found for {name}.", "geschichten_empty_for_persons": "No stories found for {names}.", "geschichten_empty_no_filter": "There are no published stories yet.", "geschichten_back_to_index": "Back to stories", "geschichten_published_on": "published on {date}", "geschichten_persons_section": "People in this story", "geschichten_documents_section": "Referenced documents", "geschichten_card_heading": "Stories", "geschichten_card_write_action": "+ Write a story", "geschichten_card_attach_action": "+ Attach a story", "geschichten_card_show_all_for_person": "All stories about {name}", "geschichten_card_show_all": "Show all", "geschichte_editor_title_placeholder": "Story title", "geschichte_editor_body_placeholder": "Write your story here…", "geschichte_editor_status_draft": "DRAFT", "geschichte_editor_status_published": "PUBLISHED", "geschichte_editor_status_draft_hint": "Not yet visible to readers.", "geschichte_editor_status_published_hint": "Visible to all readers.", "geschichte_editor_save_hint_draft": "All changes are saved as a draft.", "geschichte_editor_save_hint_published": "Changes go live immediately.", "geschichte_editor_save_draft": "Save draft", "geschichte_editor_publish": "Publish", "geschichte_editor_save": "Save", "geschichte_editor_unpublish": "Back to draft", "geschichte_editor_title_required": "Please enter a title.", "geschichte_editor_unsaved_changes": "You have unsaved changes — leave anyway?", "geschichte_editor_personen_heading": "People", "geschichte_editor_personen_hint": "Which historical persons appear in this story?", "geschichte_editor_dokumente_heading": "Documents", "geschichte_editor_dokumente_hint": "Which letters or documents are part of this story?", "geschichte_editor_search_person": "Search person…", "geschichte_editor_search_document": "Search document…", "geschichte_editor_toolbar_bold": "Bold (Ctrl+B)", "geschichte_editor_toolbar_italic": "Italic (Ctrl+I)", "geschichte_editor_toolbar_h2": "Heading", "geschichte_editor_toolbar_h3": "Subheading", "geschichte_editor_toolbar_ul": "Bulleted list", "geschichte_editor_toolbar_ol": "Numbered list", "geschichte_delete_confirm_title": "Delete story?", "geschichte_delete_confirm_body": "This action cannot be undone. The story will be permanently deleted and removed from all linked person and document pages.", "error_relationship_not_found": "Relationship not found.", "error_circular_relationship": "This relationship would form a cycle.", "error_duplicate_relationship": "This relationship already exists.", "relation_parent_of": "Parent of", "relation_child_of": "Child of", "relation_spouse_of": "Spouse", "relation_sibling_of": "Sibling", "relation_friend": "Friend", "relation_colleague": "Colleague", "relation_employer": "Employer", "relation_doctor": "Doctor", "relation_neighbor": "Neighbour", "relation_other": "Other", "relation_inferred_parent": "Parent", "relation_inferred_child": "Child", "relation_inferred_spouse": "Spouse", "relation_inferred_sibling": "Sibling", "relation_inferred_grandparent": "Grandparent", "relation_inferred_grandchild": "Grandchild", "relation_inferred_great_grandparent": "Great-grandparent", "relation_inferred_great_grandchild": "Great-grandchild", "relation_inferred_uncle_aunt": "Uncle/Aunt", "relation_inferred_niece_nephew": "Niece/Nephew", "relation_inferred_great_uncle_aunt": "Great-uncle/Aunt", "relation_inferred_great_niece_nephew": "Great-niece/Nephew", "relation_inferred_inlaw_parent": "Parent-in-law", "relation_inferred_inlaw_child": "Child-in-law", "relation_inferred_sibling_inlaw": "Sibling-in-law", "relation_inferred_cousin_1": "Cousin", "relation_inferred_distant": "Distant relative", "doc_details_field_relationship": "Relationship", "stammbaum_empty_heading": "No family members yet", "stammbaum_empty_body": "Mark a person as a family member on their edit page so they appear here.", "stammbaum_empty_link": "→ Go to person list", "stammbaum_panel_direct_rels": "Direct relationships", "stammbaum_panel_derived_rels": "Derived relationships", "stammbaum_panel_to_person": "Go to person page →", "stammbaum_panel_add_rel": "+ Add relationship", "stammbaum_relationships_heading": "Family tree & relationships", "stammbaum_zoom_in": "Zoom in", "stammbaum_zoom_out": "Zoom out", "stammbaum_generations": "Generations", "relation_error_duplicate": "This relationship already exists.", "relation_error_circular": "This relationship would form a cycle.", "relation_error_self": "A person cannot be related to themselves.", "relation_year_from": "from {year}", "relation_year_to": "until {year}", "relation_year_error_bis_before_von": "End year must not precede start year.", "relation_label_family_member": "Family member", "relation_toggle_add_to_tree": "Add to family tree", "relation_toggle_remove_from_tree": "Remove from family tree", "relation_label_in_tree": "Appears in the family tree", "relation_label_view_in_tree": "View →", "relation_label_direct": "Direct relationships", "relation_label_derived": "Derived relationships", "relation_btn_add": "Add", "relation_btn_save": "Save", "relation_btn_cancel": "Cancel", "relation_form_group_family": "Family", "relation_form_group_social": "Social", "relation_form_field_type": "Type", "relation_form_field_from_year": "From year", "relation_form_field_to_year": "To year", "relation_form_year_placeholder": "e.g. 1920", "person_relationships_heading": "Relationships", "person_relationships_empty": "No relationships known yet.", "timeline_aria_label": "Document density timeline", "timeline_clear_selection": "Clear selection", "timeline_zoom_reset": "Reset zoom", "timeline_bar_aria_singular": "{when}, 1 document", "timeline_bar_aria_plural": "{when}, {count} documents", "timeline_dragging_aria_live": "Range {from} to {to} selected" }